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(); 00025 00027 void setControlPoint(const MFVec3f &controlPoint); 00029 void setUTesselation(const SFInt32 &uTesselation); 00031 void setVTesselation(const SFInt32 &vTesselation); 00033 void setWeight(const MFDouble &weight); 00035 void setCcw(const SFBool &ccw); 00037 void setSolid(const SFBool &solid); 00039 void setUDimension(const SFInt32 &uDimension); 00041 void setVDimension(const SFInt32 &vDimension); 00043 void setUKnot(const MFDouble &uKnot); 00045 void setVKnot(const MFDouble &vKnot); 00047 void setUOrder(const SFInt32 &uOrder); 00049 void setVOrder(const SFInt32 &vOrder); 00050 00052 inline const MFVec3f &getControlPoint() const {return _controlPoint;}; 00054 inline X3DTextureCoordinateNode *getTexCoord() const {return _texCoord;}; 00056 inline const SFInt32 &getUTesselation() const {return _uTesselation;}; 00058 inline const SFInt32 &getVTesselation() const {return _vTesselation;}; 00060 inline const MFDouble &getWeight() const {return _weight;}; 00062 inline const SFBool &getCcw() const {return _ccw;}; 00064 inline const SFBool &getSolid() const {return _solid;}; 00066 inline const SFInt32 &getUDimension() const {return _uDimension;}; 00068 inline const SFInt32 &getVDimension() const {return _vDimension;}; 00070 inline const MFDouble &getUKnot() const {return _uKnot;}; 00072 inline const MFDouble &getVKnot() const {return _vKnot;}; 00074 inline const SFInt32 &getUOrder() const {return _uOrder;}; 00076 inline const SFInt32 &getVOrder() const {return _vOrder;}; 00077 00078 private: 00080 MFVec3f _controlPoint; 00082 X3DTextureCoordinateNode *_texCoord; 00084 SFInt32 _uTesselation; 00086 SFInt32 _vTesselation; 00088 MFDouble _weight; 00090 SFBool _ccw; 00092 SFBool _solid; 00094 SFInt32 _uDimension; 00096 SFInt32 _vDimension; 00098 MFDouble _uKnot; 00100 MFDouble _vKnot; 00102 SFInt32 _uOrder; 00104 SFInt32 _vOrder; 00105 }; 00106 00107 } 00108 } 00109 00110 #endif