Home Hierarchy Members Alphabetical Related Pages

nurbscurve2d.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_NURBSCURVE2D_H
00002 #define XDKWRL_NURBSCURVE2D_H
00003 
00004 #include <xdkwrl/config.h>
00005 #include <xdkwrl/node.h>
00006 #include <xdkwrl/fieldtypes/mffloat.h>
00007 #include <xdkwrl/fieldtypes/mfvec2f.h>
00008 #include <xdkwrl/fieldtypes/sfint32.h>
00009 
00010 namespace wrl
00011 {
00012   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00013   // Interface of NurbsCurve2D
00014   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00015   class XDKWRL_EXPORT NurbsCurve2D : public Node
00016   {
00017    public:
00018      NurbsCurve2D(const char* name="");
00019      virtual ~NurbsCurve2D();
00020      virtual inline unsigned int nbFields() const;
00021      virtual FieldHandle field(const std::string& n);
00022      virtual FieldHandle field(unsigned int i);
00023      virtual bool isSetToDefaultValue(unsigned int i) const;
00024      virtual inline unsigned int nbEventsIn() const;
00025      virtual EventInHandle eventIn(const std::string& n);
00026      virtual EventInHandle eventIn(unsigned int i);
00027      virtual inline unsigned int nbEventsOut() const;
00028      virtual EventOutHandle eventOut(const std::string& n);
00029      virtual EventOutHandle eventOut(unsigned int i);
00030      inline const char* typeName() const;
00031      virtual Node* duplicate() const;
00032      virtual Node* duplicate(std::map<const Node*,Node*>&) const;
00033      /*!@name Exposed Fields
00034       * A field that is capable of receiving events via an eventIn to 
00035       * change its value(s), and generating events via an eventOut 
00036       * when its value(s) change.
00037       */
00038       //!@{
00039       /*!
00040        * See <a href="#_details" class="md">Detailed Description</a>
00041        * for meaning of this field.
00042        * Default value is set to MFVec2f default value
00043        */
00044        MFVec2f    controlPoint;
00045       /*!
00046        * See <a href="#_details" class="md">Detailed Description</a>
00047        * for meaning of this field.
00048        * Default value is set to 
00049        \code
00050        tessellation = 0;
00051        \endcode
00052        */
00053        SFInt32    tessellation;
00054       /*!
00055        * See <a href="#_details" class="md">Detailed Description</a>
00056        * for meaning of this field.
00057        * Default value is set to MFFloat default value
00058        */
00059        MFFloat    weight;
00060      //!@}
00061      /*!@name Fields
00062       * A property or attribute of a node. Each node type has a fixed set
00063       * of fields. Fields may contain various kinds of data and one or many
00064       * values. Each field has a default value.
00065       */
00066       //!@{
00067       /*!
00068        * See <a href="#_details" class="md">Detailed Description</a>
00069        * for meaning of this field.
00070        * Default value is set to MFFloat default value
00071        */
00072        MFFloat    knot;
00073       /*!
00074        * See <a href="#_details" class="md">Detailed Description</a>
00075        * for meaning of this field.
00076        * Default value is set to 
00077        \code
00078        order = 3;
00079         \endcode
00080        */
00081        SFInt32    order;
00082      //!@}
00083      /*!@name Events In
00084       * 
00085       */
00086       //!@{
00087       /*!
00088        * Set event associated to exposedField controlPoint
00089        */
00090        EventIn<MFVec2f>    set_controlPoint;
00091       /*!
00092        * Set event associated to exposedField tessellation
00093        */
00094        EventIn<SFInt32>    set_tessellation;
00095       /*!
00096        * Set event associated to exposedField weight
00097        */
00098        EventIn<MFFloat>    set_weight;
00099   //!@}
00100      /*!@name Events Out
00101       * 
00102       */
00103       //!@{
00104       /*!
00105        * Changed event associated to exposedField controlPoint
00106        */
00107        EventOut<MFVec2f>    controlPoint_changed;
00108       /*!
00109        * Changed event associated to exposedField tessellation
00110        */
00111        EventOut<SFInt32>    tessellation_changed;
00112       /*!
00113        * Changed event associated to exposedField weight
00114        */
00115        EventOut<MFFloat>    weight_changed;
00116   //!@}
00117   };
00118 };
00119 //************************************************************
00120 // Implementation of NurbsCurve2D
00121 //************************************************************
00122 /*!
00123  * Returns <code>"NurbsCurve2D"</code>. Useful for printing.
00124  */
00125 inline const char*
00126 wrl::NurbsCurve2D::typeName() const
00127 {
00128   return "NurbsCurve2D";
00129 }
00130 /*!
00131  * Returns the number of fields (exposed or not) for this node type.
00132  */
00133 inline unsigned int
00134 wrl::NurbsCurve2D::nbFields() const
00135 {
00136    return 5;
00137 }
00138 /*!
00139  * Returns the number of events in for this node type.
00140  */
00141 inline unsigned int
00142 wrl::NurbsCurve2D::nbEventsIn() const
00143 {
00144    return 0;
00145 }
00146 /*!
00147  * Returns the number of events out for this node type.
00148  */
00149 inline unsigned int
00150 wrl::NurbsCurve2D::nbEventsOut() const
00151 {
00152    return 0;
00153 }
00154 #endif // XDKWRL_NURBSCURVE2D_H
00155 
00156 // Local variables section.
00157 // This is only used by emacs!
00158 // Local Variables:
00159 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00160 // End:

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