Home Hierarchy Members Alphabetical Related Pages

nurbspositioninterpolator.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_NURBSPOSITIONINTERPOLATOR_H
00002 #define XDKWRL_NURBSPOSITIONINTERPOLATOR_H
00003 
00004 #include <xdkwrl/node.h>
00005 #include <xdkwrl/fieldtypes/mffloat.h>
00006 #include <xdkwrl/fieldtypes/mfvec3f.h>
00007 #include <xdkwrl/fieldtypes/sffloat.h>
00008 #include <xdkwrl/fieldtypes/sfint32.h>
00009 #include <xdkwrl/fieldtypes/sfvec3f.h>
00010 
00011 namespace wrl
00012 {
00013   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00014   // Interface of NurbsPositionInterpolator
00015   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016   class NurbsPositionInterpolator : public Node
00017   {
00018    public:
00019      NurbsPositionInterpolator(const char* name="");
00020      virtual ~NurbsPositionInterpolator();
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 
00044        \code
00045        dimension = 0;
00046        \endcode
00047        */
00048        SFInt32    dimension;
00049       /*!
00050        * See <a href="#_details" class="md">Detailed Description</a>
00051        * for meaning of this field.
00052        * Default value is set to MFVec3f default value
00053        */
00054        MFVec3f    keyValue;
00055       /*!
00056        * See <a href="#_details" class="md">Detailed Description</a>
00057        * for meaning of this field.
00058        * Default value is set to MFFloat default value
00059        */
00060        MFFloat    keyWeight;
00061       /*!
00062        * See <a href="#_details" class="md">Detailed Description</a>
00063        * for meaning of this field.
00064        * Default value is set to MFFloat default value
00065        */
00066        MFFloat    knot;
00067       /*!
00068        * See <a href="#_details" class="md">Detailed Description</a>
00069        * for meaning of this field.
00070        * Default value is set to 
00071        \code
00072        order = 4;
00073        \endcode
00074        */
00075        SFInt32    order;
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      /*!@name Events In
00085       * 
00086       */
00087       //!@{
00088       /*!
00089        * See <a href="#_details" class="md">Detailed Description</a>
00090        * for meaning of this event.
00091        */
00092        EventIn<SFFloat>    set_fraction;
00093       /*!
00094        * Set event associated to exposedField dimension
00095        */
00096        EventIn<SFInt32>    set_dimension;
00097       /*!
00098        * Set event associated to exposedField keyValue
00099        */
00100        EventIn<MFVec3f>    set_keyValue;
00101       /*!
00102        * Set event associated to exposedField keyWeight
00103        */
00104        EventIn<MFFloat>    set_keyWeight;
00105       /*!
00106        * Set event associated to exposedField knot
00107        */
00108        EventIn<MFFloat>    set_knot;
00109       /*!
00110        * Set event associated to exposedField order
00111        */
00112        EventIn<SFInt32>    set_order;
00113   //!@}
00114      /*!@name Events Out
00115       * 
00116       */
00117       //!@{
00118       /*!
00119        * See <a href="#_details" class="md">Detailed Description</a>
00120        * for meaning of this event.
00121        */
00122        EventOut<SFVec3f>    value_changed;
00123       /*!
00124        * Changed event associated to exposedField dimension
00125        */
00126        EventOut<SFInt32>    dimension_changed;
00127       /*!
00128        * Changed event associated to exposedField keyValue
00129        */
00130        EventOut<MFVec3f>    keyValue_changed;
00131       /*!
00132        * Changed event associated to exposedField keyWeight
00133        */
00134        EventOut<MFFloat>    keyWeight_changed;
00135       /*!
00136        * Changed event associated to exposedField knot
00137        */
00138        EventOut<MFFloat>    knot_changed;
00139       /*!
00140        * Changed event associated to exposedField order
00141        */
00142        EventOut<SFInt32>    order_changed;
00143   //!@}
00144   };
00145 };
00146 //************************************************************
00147 // Implementation of NurbsPositionInterpolator
00148 //************************************************************
00149 /*!
00150  * Returns <code>"NurbsPositionInterpolator"</code>. Useful for printing.
00151  */
00152 inline const char*
00153 wrl::NurbsPositionInterpolator::typeName() const
00154 {
00155   return "NurbsPositionInterpolator";
00156 }
00157 /*!
00158  * Returns the number of fields (exposed or not) for this node type.
00159  */
00160 inline unsigned int
00161 wrl::NurbsPositionInterpolator::nbFields() const
00162 {
00163    return 5;
00164 }
00165 /*!
00166  * Returns the number of events in for this node type.
00167  */
00168 inline unsigned int
00169 wrl::NurbsPositionInterpolator::nbEventsIn() const
00170 {
00171    return 1;
00172 }
00173 /*!
00174  * Returns the number of events out for this node type.
00175  */
00176 inline unsigned int
00177 wrl::NurbsPositionInterpolator::nbEventsOut() const
00178 {
00179    return 1;
00180 }
00181 #endif // XDKWRL_NURBSPOSITIONINTERPOLATOR_H
00182 
00183 // Local variables section.
00184 // This is only used by emacs!
00185 // Local Variables:
00186 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00187 // End:

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