00001
00002
00004
00005 #ifndef NURBSCURVE
00006 #define NURBSCURVE
00007
00008 #include "X3DTypes.h"
00009 #include "X3D_X3DParametricGeometryNode.h"
00010
00011 namespace X3DTK {
00012 namespace X3D {
00013
00018
00019 class NurbsCurve : public X3DParametricGeometryNode
00020 {
00021 public:
00023 NurbsCurve();
00025 NurbsCurve(const MFVec3f &controlPoint,
00026 const SFInt32 &tesselation,
00027 const MFDouble &weight,
00028 const MFDouble &knot,
00029 const SFInt32 &order);
00031 virtual SFAbstractNode clone() const;
00033 virtual ~NurbsCurve();
00034
00036 void setControlPoint(const MFVec3f &controlPoint);
00038 void setTesselation(const SFInt32 &tesselation);
00040 void setWeight(const MFDouble &weight);
00042 void setKnot(const MFDouble &knot);
00044 void setOrder(const SFInt32 &order);
00045
00047 inline const MFVec3f &getControlPoint() const {return _controlPoint;};
00049 inline const SFInt32 &getTesselation() const {return _tesselation;};
00051 inline const MFDouble &getWeight() const {return _weight;};
00053 inline const MFDouble &getKnot() const {return _knot;};
00055 inline const SFInt32 &getOrder() const {return _order;};
00056
00058 virtual void load(const X3DFileElement *element);
00060 virtual SFString &write(SFString &output) const;
00061
00062 protected:
00064 NurbsCurve(const NurbsCurve &N);
00065
00066 private:
00068 MFVec3f _controlPoint;
00070 SFInt32 _tesselation;
00072 MFDouble _weight;
00074 MFDouble _knot;
00076 SFInt32 _order;
00077 };
00078
00079 }
00080 }
00081
00082 #endif