00001 #ifndef X3DTK_X3D_CYLINDER_H 00002 #define X3DTK_X3D_CYLINDER_H 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DGeometry3DNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00018 class Cylinder : public X3DGeometry3DNode 00019 { 00020 public: 00022 Cylinder(); 00024 Cylinder(const SFBool &bottom, 00025 const SFFloat &radius, 00026 const SFFloat &height, 00027 const SFBool &side, 00028 const SFBool &top); 00030 virtual SFAbstractNode clone() const; 00032 virtual ~Cylinder(); 00033 00035 void setBottom(const SFBool &bottom); 00037 void setRadius(const SFFloat &radius); 00039 void setHeight(const SFFloat &height); 00041 void setSide(const SFBool &side); 00043 void setTop(const SFBool &top); 00044 00046 inline const SFBool &getBottom() const {return _bottom;}; 00048 inline const SFFloat &getRadius() const {return _radius;}; 00050 inline const SFFloat &getHeight() const {return _height;}; 00052 inline const SFBool &getSide() const {return _side;}; 00054 inline const SFBool &getTop() const {return _top;}; 00055 00057 virtual void load(const X3DFileElement *element); 00059 virtual SFString &write(SFString &output) const; 00060 00061 protected: 00063 Cylinder(const Cylinder &C); 00064 00065 private: 00067 SFBool _bottom; 00069 SFFloat _radius; 00071 SFFloat _height; 00073 SFBool _side; 00075 SFBool _top; 00076 }; 00077 00078 } 00079 } 00080 00081 #endif