XdkWrl: nurbspositioninterpolator.h Source File

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(unsigned int i);
    00024      virtual bool isSetToDefaultValue(unsigned int i) const;
    00025      virtual inline unsigned int nbEventsIn() const;
    00026      virtual EventInHandle eventIn(const std::string& n);
    00027      virtual EventInHandle eventIn(unsigned int i);
    00028      virtual inline unsigned int nbEventsOut() const;
    00029      virtual EventOutHandle eventOut(const std::string& n);
    00030      virtual EventOutHandle eventOut(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 28 Jun 2006 with version 1.4.4. |