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

NurbsSurface.h

Go to the documentation of this file.
00001 
00002 //                            NurbsSurface.h                                  //
00004 
00005 #ifndef NURBSSURFACE
00006 #define NURBSSURFACE
00007 
00008 #include "X3DTypes.h"
00009 #include "X3DParametricGeometryNode.h"
00010 
00011 namespace X3DTK {
00012 namespace X3D {
00013 
00014 class X3DTextureCoordinateNode;
00015 
00020 
00021 class NurbsSurface : public X3DParametricGeometryNode
00022 {
00023 public:
00025   NurbsSurface();
00027   NurbsSurface(const MFVec3f                  &controlPoint,
00028                const X3DTextureCoordinateNode *texCoord,
00029                SFInt32                        uTesselation,
00030                SFInt32                        vTesselation,
00031                const MFDouble                 &weight,
00032                SFBool                         ccw,
00033                SFBool                         solid,
00034                SFInt32                        uDimension,
00035                SFInt32                        vDimension,
00036                const MFDouble                 &uKnot,
00037                const MFDouble                 &vKnot,
00038                SFInt32                        uOrder,
00039                SFInt32                        vOrder);
00041   virtual SFNode clone() const;
00043   virtual ~NurbsSurface();
00044 
00046   void setControlPoint(const MFVec3f &controlPoint);
00048   void setTexCoord(const X3DTextureCoordinateNode *texCoord);
00050   void setUTesselation(SFInt32 uTesselation);
00052   void setVTesselation(SFInt32 vTesselation);
00054   void setWeight(const MFDouble &weight);
00056   void setCcw(SFBool ccw);
00058   void setSolid(SFBool solid);
00060   void setUDimension(SFInt32 uDimension);
00062   void setVDimension(SFInt32 vDimension);
00064   void setUKnot(const MFDouble &uKnot);
00066   void setVKnot(const MFDouble &vKnot);
00068   void setUOrder(SFInt32 uOrder);
00070   void setVOrder(SFInt32 vOrder);
00071 
00073   inline const MFVec3f &getControlPoint() const {return _controlPoint;};
00075   inline const SFNode &getTexCoord() const {return _texCoord;};
00077   inline SFInt32 getUTesselation() const {return _uTesselation;};
00079   inline SFInt32 getVTesselation() const {return _vTesselation;};
00081   inline const MFDouble &getWeight() const {return _weight;};
00083   inline SFBool getCcw() const {return _ccw;};
00085   inline SFBool getSolid() const {return _solid;};
00087   inline SFInt32 getUDimension() const {return _uDimension;};
00089   inline SFInt32 getVDimension() const {return _vDimension;};
00091   inline const MFDouble &getUKnot() const {return _uKnot;};
00093   inline const MFDouble &getVKnot() const {return _vKnot;};
00095   inline SFInt32 getUOrder() const {return _uOrder;};
00097   inline SFInt32 getVOrder() const {return _vOrder;};
00098 
00100   virtual bool addChild(const SFAbstractNode &N);
00102   virtual bool setChild(const SFAbstractNode &N);
00104   virtual bool removeChild(const SFAbstractNode &N);
00105 
00107   virtual void load(const X3DFileElement *element);
00109   virtual SFString write() const;
00110 
00111 protected:
00113   NurbsSurface(const NurbsSurface &N);
00114 
00115 private:
00117   MFVec3f _controlPoint;
00119   SFNode _texCoord;
00121   SFInt32 _uTesselation;
00123   SFInt32 _vTesselation;
00125   MFDouble _weight;
00127   SFBool _ccw;
00129   SFBool _solid;
00131   SFInt32 _uDimension;
00133   SFInt32 _vDimension;
00135   MFDouble _uKnot;
00137   MFDouble _vKnot;
00139   SFInt32 _uOrder;
00141   SFInt32 _vOrder;
00142 };
00143 
00144 }
00145 }
00146 
00147 #endif

Generated on Thu Oct 9 13:50:54 2003 for X3DToolKit by doxygen1.2.18