00001 00002 // GLCylinder.h // 00004 00005 #ifndef GLCYLINDER_H 00006 #define GLCYLINDER_H 00007 00008 #include "X3DGLGeometry3DNode.h" 00009 00010 namespace X3DTK { 00011 00012 class Cylinder; 00013 class CylinderDrawArray; 00014 00017 00018 class GLCylinder : public X3DGLGeometry3DNode 00019 { 00020 public: 00022 GLCylinder(); 00024 virtual SFNode clone() const; 00026 virtual ~GLCylinder(); 00027 00029 SFFloat &getRadius() const {return (SFFloat &)_radius;}; 00031 SFFloat &getHeight() const {return (SFFloat &)_height;}; 00033 SFBool &getSide() const {return (SFBool &)_side;}; 00035 SFBool &getBottom() const {return (SFBool &)_bottom;}; 00037 SFBool &getTop() const {return (SFBool &)_top;}; 00039 inline CylinderDrawArray *&getCylinderDrawArray() const {return (CylinderDrawArray *&)_cylinderArray;}; 00040 00041 protected: 00043 GLCylinder(const GLCylinder &C); 00044 00045 private: 00046 //GL attributes 00047 SFFloat _radius; 00048 SFFloat _height; 00049 SFBool _side; 00050 SFBool _bottom; 00051 SFBool _top; 00052 CylinderDrawArray *_cylinderArray; 00053 }; 00054 00055 } 00056 00057 #endif