00001 #ifndef X3DTK_GL_CONE_H 00002 #define X3DTK_GL_CONE_H 00003 00004 #include "GL_X3DGeometry3DNode.h" 00005 00006 namespace X3DTK { 00007 namespace GL { 00008 00009 class ConeDrawArray; 00010 00017 class Cone : public X3DGeometry3DNode 00018 { 00019 public: 00021 Cone(); 00023 virtual SFAbstractNode clone() const; 00025 virtual ~Cone(); 00026 00028 void setBottomRadius(const SFFloat &bottomRadius); 00030 void setHeight(const SFFloat &height); 00032 void setSide(const SFBool &side); 00034 void setBottom(const SFBool &bottom); 00036 void setConeArray(ConeDrawArray *coneArray); 00037 00039 inline const SFFloat &getBottomRadius() const {return _bottomRadius;}; 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 ConeDrawArray *getConeArray() const {return _coneArray;}; 00048 00050 virtual void update(); 00052 virtual void draw() const; 00053 00054 protected: 00056 Cone(const Cone &C); 00057 00059 SFFloat _bottomRadius; 00061 SFFloat _height; 00063 SFBool _side; 00065 SFBool _bottom; 00067 ConeDrawArray *_coneArray; 00068 }; 00069 00070 } 00071 } 00072 00073 #endif