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

Generated on 5 Jan 2007 with doxygen version 1.5.1. Valid HTML 4.0! Valid CSS!