Home Hierarchy Members Alphabetical Related Pages

coordinatedeformer.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_COORDINATEDEFORMER_H
00002 #define XDKWRL_COORDINATEDEFORMER_H
00003 
00004 #include <xdkwrl/node.h>
00005 #include <xdkwrl/fieldtypes/mffloat.h>
00006 #include <xdkwrl/fieldtypes/mfnode.h>
00007 #include <xdkwrl/fieldtypes/mfvec3f.h>
00008 #include <xdkwrl/fieldtypes/sfint32.h>
00009 #include <xdkwrl/fieldtypes/sfvec3f.h>
00010 
00011 namespace wrl
00012 {
00013   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00014   // Interface of CoordinateDeformer
00015   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016   class CoordinateDeformer : public Node
00017   {
00018    public:
00019      CoordinateDeformer(const char* name="");
00020      virtual ~CoordinateDeformer();
00021      virtual inline unsigned int nbFields() const;
00022      virtual FieldHandle field(const std::string& n);
00023      virtual FieldHandle field(const unsigned int i);
00024      virtual bool isSetToDefaultValue(const unsigned int i) const;
00025      virtual inline unsigned int nbEventsIn() const;
00026      virtual EventInHandle eventIn(const std::string& n);
00027      virtual EventInHandle eventIn(const unsigned int i);
00028      virtual inline unsigned int nbEventsOut() const;
00029      virtual EventOutHandle eventOut(const std::string& n);
00030      virtual EventOutHandle eventOut(const unsigned int i);
00031      inline const char* typeName() const;
00032      virtual Node* duplicate() const;
00033      virtual Node* duplicate(std::map<const Node*,Node*>&) const;
00034      /*!@name Exposed Fields
00035       * A field that is capable of receiving events via an eventIn to 
00036       * change its value(s), and generating events via an eventOut 
00037       * when its value(s) change.
00038       */
00039       //!@{
00040       /*!
00041        * See <a href="#_details" class="md">Detailed Description</a>
00042        * for meaning of this field.
00043        * Default value is set to MFNode default value
00044        */
00045        MFNode     children;
00046       /*!
00047        * See <a href="#_details" class="md">Detailed Description</a>
00048        * for meaning of this field.
00049        * Default value is set to MFVec3f default value
00050        */
00051        MFVec3f    controlPoint;
00052       /*!
00053        * See <a href="#_details" class="md">Detailed Description</a>
00054        * for meaning of this field.
00055        * Default value is set to MFNode default value
00056        */
00057        MFNode     inputCoord;
00058       /*!
00059        * See <a href="#_details" class="md">Detailed Description</a>
00060        * for meaning of this field.
00061        * Default value is set to MFNode default value
00062        */
00063        MFNode     inputTransform;
00064       /*!
00065        * See <a href="#_details" class="md">Detailed Description</a>
00066        * for meaning of this field.
00067        * Default value is set to MFNode default value
00068        */
00069        MFNode     outputCoord;
00070       /*!
00071        * See <a href="#_details" class="md">Detailed Description</a>
00072        * for meaning of this field.
00073        * Default value is set to MFFloat default value
00074        */
00075        MFFloat    weight;
00076      //!@}
00077      /*!@name Fields
00078       * A property or attribute of a node. Each node type has a fixed set
00079       * of fields. Fields may contain various kinds of data and one or many
00080       * values. Each field has a default value.
00081       */
00082       //!@{
00083       /*!
00084        * See <a href="#_details" class="md">Detailed Description</a>
00085        * for meaning of this field.
00086        * Default value is set to 
00087        \code
00088        bboxCenter.setXYZ(0,0,0);
00089         \endcode
00090        */
00091        SFVec3f    bboxCenter;
00092       /*!
00093        * See <a href="#_details" class="md">Detailed Description</a>
00094        * for meaning of this field.
00095        * Default value is set to 
00096        \code
00097        bboxSize.setXYZ(-1,-1,-1);
00098         \endcode
00099        */
00100        SFVec3f    bboxSize;
00101       /*!
00102        * See <a href="#_details" class="md">Detailed Description</a>
00103        * for meaning of this field.
00104        * Default value is set to 
00105        \code
00106        uDimension = 0;
00107         \endcode
00108        */
00109        SFInt32    uDimension;
00110       /*!
00111        * See <a href="#_details" class="md">Detailed Description</a>
00112        * for meaning of this field.
00113        * Default value is set to MFFloat default value
00114        */
00115        MFFloat    uKnot;
00116       /*!
00117        * See <a href="#_details" class="md">Detailed Description</a>
00118        * for meaning of this field.
00119        * Default value is set to 
00120        \code
00121        uOrder = 2;
00122         \endcode
00123        */
00124        SFInt32    uOrder;
00125       /*!
00126        * See <a href="#_details" class="md">Detailed Description</a>
00127        * for meaning of this field.
00128        * Default value is set to 
00129        \code
00130        vDimension = 0;
00131         \endcode
00132        */
00133        SFInt32    vDimension;
00134       /*!
00135        * See <a href="#_details" class="md">Detailed Description</a>
00136        * for meaning of this field.
00137        * Default value is set to MFFloat default value
00138        */
00139        MFFloat    vKnot;
00140       /*!
00141        * See <a href="#_details" class="md">Detailed Description</a>
00142        * for meaning of this field.
00143        * Default value is set to 
00144        \code
00145        vOrder = 2;
00146         \endcode
00147        */
00148        SFInt32    vOrder;
00149       /*!
00150        * See <a href="#_details" class="md">Detailed Description</a>
00151        * for meaning of this field.
00152        * Default value is set to 
00153        \code
00154        wDimension = 0;
00155         \endcode
00156        */
00157        SFInt32    wDimension;
00158       /*!
00159        * See <a href="#_details" class="md">Detailed Description</a>
00160        * for meaning of this field.
00161        * Default value is set to MFFloat default value
00162        */
00163        MFFloat    wKnot;
00164       /*!
00165        * See <a href="#_details" class="md">Detailed Description</a>
00166        * for meaning of this field.
00167        * Default value is set to 
00168        \code
00169        wOrder = 2;
00170         \endcode
00171        */
00172        SFInt32    wOrder;
00173      //!@}
00174      /*!@name Events In
00175       * 
00176       */
00177       //!@{
00178       /*!
00179        * See <a href="#_details" class="md">Detailed Description</a>
00180        * for meaning of this event.
00181        */
00182        EventIn<MFNode>     addChildren;
00183       /*!
00184        * See <a href="#_details" class="md">Detailed Description</a>
00185        * for meaning of this event.
00186        */
00187        EventIn<MFNode>     removeChildren;
00188       /*!
00189        * Set event associated to exposedField children
00190        */
00191        EventIn<MFNode>     set_children;
00192       /*!
00193        * Set event associated to exposedField controlPoint
00194        */
00195        EventIn<MFVec3f>    set_controlPoint;
00196       /*!
00197        * Set event associated to exposedField inputCoord
00198        */
00199        EventIn<MFNode>     set_inputCoord;
00200       /*!
00201        * Set event associated to exposedField inputTransform
00202        */
00203        EventIn<MFNode>     set_inputTransform;
00204       /*!
00205        * Set event associated to exposedField outputCoord
00206        */
00207        EventIn<MFNode>     set_outputCoord;
00208       /*!
00209        * Set event associated to exposedField weight
00210        */
00211        EventIn<MFFloat>    set_weight;
00212   //!@}
00213      /*!@name Events Out
00214       * 
00215       */
00216       //!@{
00217       /*!
00218        * Changed event associated to exposedField children
00219        */
00220        EventOut<MFNode>     children_changed;
00221       /*!
00222        * Changed event associated to exposedField controlPoint
00223        */
00224        EventOut<MFVec3f>    controlPoint_changed;
00225       /*!
00226        * Changed event associated to exposedField inputCoord
00227        */
00228        EventOut<MFNode>     inputCoord_changed;
00229       /*!
00230        * Changed event associated to exposedField inputTransform
00231        */
00232        EventOut<MFNode>     inputTransform_changed;
00233       /*!
00234        * Changed event associated to exposedField outputCoord
00235        */
00236        EventOut<MFNode>     outputCoord_changed;
00237       /*!
00238        * Changed event associated to exposedField weight
00239        */
00240        EventOut<MFFloat>    weight_changed;
00241   //!@}
00242   };
00243 };
00244 //************************************************************
00245 // Implementation of CoordinateDeformer
00246 //************************************************************
00247 /*!
00248  * Returns <code>"CoordinateDeformer"</code>. Useful for printing.
00249  */
00250 inline const char*
00251 wrl::CoordinateDeformer::typeName() const
00252 {
00253   return "CoordinateDeformer";
00254 }
00255 /*!
00256  * Returns the number of fields (exposed or not) for this node type.
00257  */
00258 inline unsigned int
00259 wrl::CoordinateDeformer::nbFields() const
00260 {
00261    return 17;
00262 }
00263 /*!
00264  * Returns the number of events in for this node type.
00265  */
00266 inline unsigned int
00267 wrl::CoordinateDeformer::nbEventsIn() const
00268 {
00269    return 2;
00270 }
00271 /*!
00272  * Returns the number of events out for this node type.
00273  */
00274 inline unsigned int
00275 wrl::CoordinateDeformer::nbEventsOut() const
00276 {
00277    return 0;
00278 }
00279 #endif // XDKWRL_COORDINATEDEFORMER_H
00280 
00281 // Local variables section.
00282 // This is only used by emacs!
00283 // Local Variables:
00284 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00285 // End:

Generated on 24 Feb 2005 with doxygen version 1.3.9.1. Valid HTML 4.0! Valid CSS!