00001 // @(#)root/gl:$Id: TGLCylinder.h 26250 2008-11-17 20:56:44Z matevz $ 00002 // Author: Timur Pocheptsov 03/08/2004 00003 // NOTE: This code moved from obsoleted TGLSceneObject.h / .cxx - see these 00004 // attic files for previous CVS history 00005 00006 /************************************************************************* 00007 * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. * 00008 * All rights reserved. * 00009 * * 00010 * For the licensing terms see $ROOTSYS/LICENSE. * 00011 * For the list of contributors see $ROOTSYS/README/CREDITS. * 00012 *************************************************************************/ 00013 00014 #ifndef ROOT_TGLCylinder 00015 #define ROOT_TGLCylinder 00016 00017 #ifndef ROOT_TGLLogicalShape 00018 #include "TGLLogicalShape.h" 00019 #endif 00020 00021 class TBuffer3DTube; 00022 00023 class TGLCylinder : public TGLLogicalShape 00024 { 00025 private: 00026 Double_t fR1, fR2, fR3, fR4; 00027 Double_t fDz; 00028 Double_t fPhi1, fPhi2; 00029 00030 TGLVector3 fLowPlaneNorm, fHighPlaneNorm; 00031 Bool_t fSegMesh; 00032 00033 public: 00034 TGLCylinder(const TBuffer3DTube & buffer); 00035 ~TGLCylinder(); 00036 00037 virtual UInt_t DLOffset(Short_t lod) const; 00038 00039 // Cylinders support LOD (tesselation quality) adjustment along 00040 // X/Y axes (round the cylinder radius), but not along length (Z) 00041 virtual ELODAxes SupportedLODAxes() const { return ELODAxes(kLODAxesX | kLODAxesY); } 00042 virtual Short_t QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD) const; 00043 virtual void DirectDraw(TGLRnrCtx & rnrCtx) const; 00044 00045 private: 00046 ClassDef(TGLCylinder,0); // a cylinderical logical shape 00047 }; 00048 00049 #endif 00050