00001 #ifndef X3DTK_GL_CYLINDER_H 00002 #define X3DTK_GL_CYLINDER_H 00003 00004 #include "GL_X3DGeometryNode.h" 00005 00006 namespace X3DTK { 00007 namespace GL { 00008 00009 class CylinderDrawArray; 00010 00017 class Cylinder : public X3DGeometryNode 00018 { 00019 public: 00021 Cylinder(); 00023 virtual ~Cylinder(); 00024 00026 void setRadius(const SFFloat &radius); 00028 void setHeight(const SFFloat &height); 00030 void setSide(const SFBool &side); 00032 void setBottom(const SFBool &bottom); 00034 void setTop(const SFBool &top); 00036 void setCylinderArray(CylinderDrawArray *cylinderArray); 00037 00039 inline const SFFloat &getRadius() const {return _radius;}; 00041 inline const SFFloat &getHeight() const {return _height;}; 00043 inline const SFBool &getSide() const {return _side;}; 00045 inline const SFBool &getBottom() const {return _bottom;}; 00047 inline const SFBool &getTop() const {return _top;}; 00049 inline CylinderDrawArray *getCylinderArray() const {return _cylinderArray;}; 00050 00052 virtual void update(); 00054 virtual void draw() const; 00055 00056 private: 00058 SFFloat _radius; 00060 SFFloat _height; 00062 SFBool _side; 00064 SFBool _bottom; 00066 SFBool _top; 00068 CylinderDrawArray *_cylinderArray; 00069 }; 00070 00071 } 00072 } 00073 00074 #endif