Main Page   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 
00002 //                            X3D_NurbsSurface.h                              //
00004 
00005 #ifndef NURBSSURFACE
00006 #define NURBSSURFACE
00007 
00008 #include "X3DTypes.h"
00009 #include "X3D_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                X3DTextureCoordinateNode       *texCoord,
00029                const SFInt32                        &uTesselation,
00030                const SFInt32                        &vTesselation,
00031                const MFDouble                 &weight,
00032                const SFBool                         &ccw,
00033                const SFBool                         &solid,
00034                const SFInt32                        &uDimension,
00035                const SFInt32                        &vDimension,
00036                const MFDouble                 &uKnot,
00037                const MFDouble                 &vKnot,
00038                const SFInt32                        &uOrder,
00039                const SFInt32                        &vOrder);
00041   virtual SFAbstractNode clone() const;
00043   virtual ~NurbsSurface();
00044 
00046   void setControlPoint(const MFVec3f &controlPoint);
00048   void setTexCoord(X3DTextureCoordinateNode *texCoord);
00050   void setUTesselation(const SFInt32 &uTesselation);
00052   void setVTesselation(const SFInt32 &vTesselation);
00054   void setWeight(const MFDouble &weight);
00056   void setCcw(const SFBool &ccw);
00058   void setSolid(const SFBool &solid);
00060   void setUDimension(const SFInt32 &uDimension);
00062   void setVDimension(const SFInt32 &vDimension);
00064   void setUKnot(const MFDouble &uKnot);
00066   void setVKnot(const MFDouble &vKnot);
00068   void setUOrder(const SFInt32 &uOrder);
00070   void setVOrder(const SFInt32 &vOrder);
00071 
00073   inline const MFVec3f &getControlPoint() const {return _controlPoint;};
00075   inline const SFNode &getTexCoord() const {return _texCoord;};
00077   inline const SFInt32 &getUTesselation() const {return _uTesselation;};
00079   inline const SFInt32 &getVTesselation() const {return _vTesselation;};
00081   inline const MFDouble &getWeight() const {return _weight;};
00083   inline const SFBool &getCcw() const {return _ccw;};
00085   inline const SFBool &getSolid() const {return _solid;};
00087   inline const SFInt32 &getUDimension() const {return _uDimension;};
00089   inline const SFInt32 &getVDimension() const {return _vDimension;};
00091   inline const MFDouble &getUKnot() const {return _uKnot;};
00093   inline const MFDouble &getVKnot() const {return _vKnot;};
00095   inline const SFInt32 &getUOrder() const {return _uOrder;};
00097   inline const 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(SFString &output) 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 Dec 4 13:25:48 2003 for X3DToolKit by doxygen1.2.18