00001 #ifndef X3DTK_X3D_NURBSTEXTURESURFACE 00002 #define X3DTK_X3D_NURBSTEXTURESURFACE 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DTextureCoordinateNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00018 class NurbsTextureSurface : public X3DTextureCoordinateNode 00019 { 00020 public: 00022 NurbsTextureSurface(); 00024 NurbsTextureSurface(const MFVec2f &point, 00025 const MFVec2f &controlPoint, 00026 const MFFloat &weight, 00027 const SFInt32 &uDimension, 00028 const SFInt32 &vDimension, 00029 const MFDouble &uKnot, 00030 const MFDouble &vKnot, 00031 const SFInt32 &uOrder, 00032 const SFInt32 &vOrder); 00034 virtual SFAbstractNode clone() const; 00036 virtual ~NurbsTextureSurface(); 00037 00039 void setControlPoint(const MFVec2f &controlPoint); 00041 void setWeight(const MFFloat &weight); 00043 void setUDimension(const SFInt32 &uDimension); 00045 void setVDimension(const SFInt32 &vDimension); 00047 void setUKnot(const MFDouble &uKnot); 00049 void setVKnot(const MFDouble &vKnot); 00051 void setUOrder(const SFInt32 &uOrder); 00053 void setVOrder(const SFInt32 &vOrder); 00054 00056 inline const MFVec2f &getControlPoint() const {return _controlPoint;}; 00058 inline const MFFloat &getWeight() const {return _weight;}; 00060 inline const SFInt32 &getUDimension() const {return _uDimension;}; 00062 inline const SFInt32 &getVDimension() const {return _vDimension;}; 00064 inline const MFDouble &getUKnot() const {return _uKnot;}; 00066 inline const MFDouble &getVKnot() const {return _vKnot;}; 00068 inline const SFInt32 &getUOrder() const {return _uOrder;}; 00070 inline const SFInt32 &getVOrder() const {return _vOrder;}; 00071 00073 virtual void load(const X3DFileElement *element); 00075 virtual SFString &write(SFString &output) const; 00076 00077 protected: 00079 NurbsTextureSurface(const NurbsTextureSurface &N); 00080 00081 private: 00083 MFVec2f _controlPoint; 00085 MFFloat _weight; 00087 SFInt32 _uDimension; 00089 SFInt32 _vDimension; 00091 MFDouble _uKnot; 00093 MFDouble _vKnot; 00095 SFInt32 _uOrder; 00097 SFInt32 _vOrder; 00098 }; 00099 00100 } 00101 } 00102 00103 #endif