00001
00002
00004
00005 #ifndef NURBSTEXTURESURFACE
00006 #define NURBSTEXTURESURFACE
00007
00008 #include "X3DTypes.h"
00009 #include "X3D_X3DTextureCoordinateNode.h"
00010
00011 namespace X3DTK {
00012 namespace X3D {
00013
00018
00019 class NurbsTextureSurface : public X3DTextureCoordinateNode
00020 {
00021 public:
00023 NurbsTextureSurface();
00025 NurbsTextureSurface(const MFVec2f &point,
00026 const MFVec2f &controlPoint,
00027 const MFFloat &weight,
00028 const SFInt32 &uDimension,
00029 const SFInt32 &vDimension,
00030 const MFDouble &uKnot,
00031 const MFDouble &vKnot,
00032 const SFInt32 &uOrder,
00033 const SFInt32 &vOrder);
00035 virtual SFAbstractNode clone() const;
00037 virtual ~NurbsTextureSurface();
00038
00040 void setControlPoint(const MFVec2f &controlPoint);
00042 void setWeight(const MFFloat &weight);
00044 void setUDimension(const SFInt32 &uDimension);
00046 void setVDimension(const SFInt32 &vDimension);
00048 void setUKnot(const MFDouble &uKnot);
00050 void setVKnot(const MFDouble &vKnot);
00052 void setUOrder(const SFInt32 &uOrder);
00054 void setVOrder(const SFInt32 &vOrder);
00055
00057 inline const MFVec2f &getControlPoint() const {return _controlPoint;};
00059 inline const MFFloat &getWeight() const {return _weight;};
00061 inline const SFInt32 &getUDimension() const {return _uDimension;};
00063 inline const SFInt32 &getVDimension() const {return _vDimension;};
00065 inline const MFDouble &getUKnot() const {return _uKnot;};
00067 inline const MFDouble &getVKnot() const {return _vKnot;};
00069 inline const SFInt32 &getUOrder() const {return _uOrder;};
00071 inline const SFInt32 &getVOrder() const {return _vOrder;};
00072
00074 virtual void load(const X3DFileElement *element);
00076 virtual SFString &write(SFString &output) const;
00077
00078 protected:
00080 NurbsTextureSurface(const NurbsTextureSurface &N);
00081
00082 private:
00084 MFVec2f _controlPoint;
00086 MFFloat _weight;
00088 SFInt32 _uDimension;
00090 SFInt32 _vDimension;
00092 MFDouble _uKnot;
00094 MFDouble _vKnot;
00096 SFInt32 _uOrder;
00098 SFInt32 _vOrder;
00099 };
00100
00101 }
00102 }
00103
00104 #endif