00001 #ifndef X3DTK_X3D_NURBSCURVE 00002 #define X3DTK_X3D_NURBSCURVE 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DParametricGeometryNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00018 class NurbsCurve : public X3DParametricGeometryNode 00019 { 00020 public: 00022 NurbsCurve(); 00024 NurbsCurve(const MFVec3f &controlPoint, 00025 const SFInt32 &tesselation, 00026 const MFDouble &weight, 00027 const MFDouble &knot, 00028 const SFInt32 &order); 00030 virtual SFAbstractNode clone() const; 00032 virtual ~NurbsCurve(); 00033 00035 void setControlPoint(const MFVec3f &controlPoint); 00037 void setTesselation(const SFInt32 &tesselation); 00039 void setWeight(const MFDouble &weight); 00041 void setKnot(const MFDouble &knot); 00043 void setOrder(const SFInt32 &order); 00044 00046 inline const MFVec3f &getControlPoint() const {return _controlPoint;}; 00048 inline const SFInt32 &getTesselation() const {return _tesselation;}; 00050 inline const MFDouble &getWeight() const {return _weight;}; 00052 inline const MFDouble &getKnot() const {return _knot;}; 00054 inline const SFInt32 &getOrder() const {return _order;}; 00055 00057 virtual void load(const X3DFileElement *element); 00059 virtual SFString &write(SFString &output) const; 00060 00061 protected: 00063 NurbsCurve(const NurbsCurve &N); 00064 00065 private: 00067 MFVec3f _controlPoint; 00069 SFInt32 _tesselation; 00071 MFDouble _weight; 00073 MFDouble _knot; 00075 SFInt32 _order; 00076 }; 00077 00078 } 00079 } 00080 00081 #endif