00001 #ifndef X3DTK_X3D_NURBSSURFACE 00002 #define X3DTK_X3D_NURBSSURFACE 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DParametricGeometryNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00010 class X3DTextureCoordinateNode; 00011 00020 class NurbsSurface : public X3DParametricGeometryNode 00021 { 00022 public: 00024 NurbsSurface(); 00026 virtual ~NurbsSurface(); 00027 00029 void setControlPoint(const MFVec3f &controlPoint); 00031 void setUTesselation(const SFInt32 &uTesselation); 00033 void setVTesselation(const SFInt32 &vTesselation); 00035 void setWeight(const MFDouble &weight); 00037 void setCcw(const SFBool &ccw); 00039 void setSolid(const SFBool &solid); 00041 void setUDimension(const SFInt32 &uDimension); 00043 void setVDimension(const SFInt32 &vDimension); 00045 void setUKnot(const MFDouble &uKnot); 00047 void setVKnot(const MFDouble &vKnot); 00049 void setUOrder(const SFInt32 &uOrder); 00051 void setVOrder(const SFInt32 &vOrder); 00052 00054 inline const MFVec3f &getControlPoint() const {return _controlPoint;}; 00056 inline X3DTextureCoordinateNode *getTexCoord() const {return _texCoord;}; 00058 inline const SFInt32 &getUTesselation() const {return _uTesselation;}; 00060 inline const SFInt32 &getVTesselation() const {return _vTesselation;}; 00062 inline const MFDouble &getWeight() const {return _weight;}; 00064 inline const SFBool &getCcw() const {return _ccw;}; 00066 inline const SFBool &getSolid() const {return _solid;}; 00068 inline const SFInt32 &getUDimension() const {return _uDimension;}; 00070 inline const SFInt32 &getVDimension() const {return _vDimension;}; 00072 inline const MFDouble &getUKnot() const {return _uKnot;}; 00074 inline const MFDouble &getVKnot() const {return _vKnot;}; 00076 inline const SFInt32 &getUOrder() const {return _uOrder;}; 00078 inline const SFInt32 &getVOrder() const {return _vOrder;}; 00079 00080 private: 00082 MFVec3f _controlPoint; 00084 X3DTextureCoordinateNode *_texCoord; 00086 SFInt32 _uTesselation; 00088 SFInt32 _vTesselation; 00090 MFDouble _weight; 00092 SFBool _ccw; 00094 SFBool _solid; 00096 SFInt32 _uDimension; 00098 SFInt32 _vDimension; 00100 MFDouble _uKnot; 00102 MFDouble _vKnot; 00104 SFInt32 _uOrder; 00106 SFInt32 _vOrder; 00107 }; 00108 00109 } 00110 } 00111 00112 #endif