Main Page | Modules | Namespace List | Class Hierarchy | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages

X3D_NurbsSurface.h

Go to the documentation of this file.
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   NurbsSurface(const MFVec3f                  &controlPoint,
00027                X3DTextureCoordinateNode       *texCoord,
00028                const SFInt32                        &uTesselation,
00029                const SFInt32                        &vTesselation,
00030                const MFDouble                 &weight,
00031                const SFBool                         &ccw,
00032                const SFBool                         &solid,
00033                const SFInt32                        &uDimension,
00034                const SFInt32                        &vDimension,
00035                const MFDouble                 &uKnot,
00036                const MFDouble                 &vKnot,
00037                const SFInt32                        &uOrder,
00038                const SFInt32                        &vOrder);
00040   virtual SFAbstractNode clone() const;
00042   virtual ~NurbsSurface();
00043 
00045   void setControlPoint(const MFVec3f &controlPoint);
00047   void setTexCoord(X3DTextureCoordinateNode *texCoord);
00049   void setUTesselation(const SFInt32 &uTesselation);
00051   void setVTesselation(const SFInt32 &vTesselation);
00053   void setWeight(const MFDouble &weight);
00055   void setCcw(const SFBool &ccw);
00057   void setSolid(const SFBool &solid);
00059   void setUDimension(const SFInt32 &uDimension);
00061   void setVDimension(const SFInt32 &vDimension);
00063   void setUKnot(const MFDouble &uKnot);
00065   void setVKnot(const MFDouble &vKnot);
00067   void setUOrder(const SFInt32 &uOrder);
00069   void setVOrder(const SFInt32 &vOrder);
00070 
00072   inline const MFVec3f &getControlPoint() const {return _controlPoint;};
00074   inline const SFNode &getTexCoord() const {return _texCoord;};
00076   inline const SFInt32 &getUTesselation() const {return _uTesselation;};
00078   inline const SFInt32 &getVTesselation() const {return _vTesselation;};
00080   inline const MFDouble &getWeight() const {return _weight;};
00082   inline const SFBool &getCcw() const {return _ccw;};
00084   inline const SFBool &getSolid() const {return _solid;};
00086   inline const SFInt32 &getUDimension() const {return _uDimension;};
00088   inline const SFInt32 &getVDimension() const {return _vDimension;};
00090   inline const MFDouble &getUKnot() const {return _uKnot;};
00092   inline const MFDouble &getVKnot() const {return _vKnot;};
00094   inline const SFInt32 &getUOrder() const {return _uOrder;};
00096   inline const SFInt32 &getVOrder() const {return _vOrder;};
00097 
00099   virtual bool addChild(const SFAbstractNode &N);
00101   virtual bool setChild(const SFAbstractNode &N);
00103   virtual bool removeChild(const SFAbstractNode &N);
00104 
00106   virtual void load(const X3DFileElement *element);
00108   virtual SFString &write(SFString &output) const;
00109 
00110 protected:
00112   NurbsSurface(const NurbsSurface &N);
00113 
00114 private:
00116   MFVec3f _controlPoint;
00118   SFNode _texCoord;
00120   SFInt32 _uTesselation;
00122   SFInt32 _vTesselation;
00124   MFDouble _weight;
00126   SFBool _ccw;
00128   SFBool _solid;
00130   SFInt32 _uDimension;
00132   SFInt32 _vDimension;
00134   MFDouble _uKnot;
00136   MFDouble _vKnot;
00138   SFInt32 _uOrder;
00140   SFInt32 _vOrder;
00141 };
00142 
00143 }
00144 }
00145 
00146 #endif

Generated on Wed Apr 7 12:15:22 2004 for X3DToolKit by doxygen 1.3.3