Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TGLCylinder.h
Go to the documentation of this file.
1 // @(#)root/gl:$Id$
2 // Author: Timur Pocheptsov 03/08/2004
3 // NOTE: This code moved from obsoleted TGLSceneObject.h / .cxx - see these
4 // attic files for previous CVS history
5 
6 /*************************************************************************
7  * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers. *
8  * All rights reserved. *
9  * *
10  * For the licensing terms see $ROOTSYS/LICENSE. *
11  * For the list of contributors see $ROOTSYS/README/CREDITS. *
12  *************************************************************************/
13 
14 #ifndef ROOT_TGLCylinder
15 #define ROOT_TGLCylinder
16 
17 #include "TGLLogicalShape.h"
18 
19 class TBuffer3DTube;
20 
21 class TGLCylinder : public TGLLogicalShape
22 {
23 private:
24  Double_t fR1, fR2, fR3, fR4;
25  Double_t fDz;
26  Double_t fPhi1, fPhi2;
27 
28  TGLVector3 fLowPlaneNorm, fHighPlaneNorm;
29  Bool_t fSegMesh;
30 
31 public:
32  TGLCylinder(const TBuffer3DTube & buffer);
33  ~TGLCylinder();
34 
35  virtual UInt_t DLOffset(Short_t lod) const;
36 
37  // Cylinders support LOD (tesselation quality) adjustment along
38  // X/Y axes (round the cylinder radius), but not along length (Z)
39  virtual ELODAxes SupportedLODAxes() const { return ELODAxes(kLODAxesX | kLODAxesY); }
40  virtual Short_t QuantizeShapeLOD(Short_t shapeLOD, Short_t combiLOD) const;
41  virtual void DirectDraw(TGLRnrCtx & rnrCtx) const;
42 
43 private:
44  ClassDef(TGLCylinder,0); // a cylinderical logical shape
45 };
46 
47 #endif
48