00001 00002 00003 00005 00006 00011 00016 00021 // CoordinateDeformer.h // 00023 00024 #ifndef COORDINATEDEFORMER 00025 #define COORDINATEDEFORMER 00026 00027 #include "X3DTypes.h" 00028 #include "X3DGroupingNode.h" 00029 #include "X3DBoundedObject.h" 00030 00031 namespace X3DTK { 00032 namespace X3D { 00033 00038 00039 class CoordinateDeformer : public X3DGroupingNode, public X3DBoundedObject 00040 { 00041 public: 00043 CoordinateDeformer(); 00045 CoordinateDeformer(const MFVec3f &controlPoint, 00046 const MFNode &inputCoord, 00047 const MFNode &inputTransform, 00048 const MFNode &outputCoord, 00049 const MFFloat &weight); 00051 virtual SFNode clone() const; 00053 virtual ~CoordinateDeformer(); 00054 00056 virtual bool addChild(const SFAbstractNode &N); 00058 virtual bool setChild(const SFAbstractNode &N); 00059 00061 void setControlPoint(const MFVec3f &controlPoint); 00063 void setInputCoord(const MFNode &inputCoord); 00065 void setInputTransform(const MFNode &inputTransform); 00067 void setOutputCoord(const MFNode &outputCoord); 00069 void setWeight(const MFFloat &weight); 00070 00072 inline const MFVec3f &getControlPoint() const {return _controlPoint;}; 00074 inline const MFNode &getInputCoord() const {return _inputCoord;}; 00076 inline const MFNode &getInputTransform() const {return _inputTransform;}; 00078 inline const MFNode &getOutputCoord() const {return _outputCoord;}; 00080 inline const MFFloat &getWeight() const {return _weight;}; 00081 00083 virtual void load(const X3DFileElement *element); 00085 virtual SFString write() const; 00086 00087 protected: 00089 CoordinateDeformer(const CoordinateDeformer &N); 00090 00091 private: 00093 MFVec3f _controlPoint; 00095 MFNode _inputCoord; 00097 MFNode _inputTransform; 00099 MFNode _outputCoord; 00101 MFFloat _weight; 00103 SFInt32 _uDimension; 00105 MFDouble _uKnot; 00107 SFInt32 _uOrder; 00109 SFInt32 _vDimension; 00111 MFDouble _vKnot; 00113 SFInt32 _vOrder; 00115 SFInt32 _wDimension; 00117 MFDouble _wKnot; 00119 SFInt32 _wOrder; 00120 }; 00121 00122 } 00123 } 00124 00125 #endif