Home Hierarchy Members Alphabetical Related Pages

nurbssurface.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_NURBSSURFACE_H
00002 #define XDKWRL_NURBSSURFACE_H
00003 
00004 #include <xdkwrl/node.h>
00005 #include <xdkwrl/fieldtypes/mffloat.h>
00006 #include <xdkwrl/fieldtypes/mfvec3f.h>
00007 #include <xdkwrl/fieldtypes/sfbool.h>
00008 #include <xdkwrl/fieldtypes/sfint32.h>
00009 #include <xdkwrl/fieldtypes/sfnode.h>
00010 
00011 namespace wrl
00012 {
00013   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00014   // Interface of NurbsSurface
00015   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016   class NurbsSurface : public Node
00017   {
00018    public:
00019      NurbsSurface(const char* name="");
00020      virtual ~NurbsSurface();
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 MFVec3f default value
00044        */
00045        MFVec3f    controlPoint;
00046       /*!
00047        * See <a href="#_details" class="md">Detailed Description</a>
00048        * for meaning of this field.
00049        * Default value is set to SFNode default value
00050        */
00051        SFNode     texCoord;
00052       /*!
00053        * See <a href="#_details" class="md">Detailed Description</a>
00054        * for meaning of this field.
00055        * Default value is set to 
00056        \code
00057        uTessellation = 0;
00058        \endcode
00059        */
00060        SFInt32    uTessellation;
00061       /*!
00062        * See <a href="#_details" class="md">Detailed Description</a>
00063        * for meaning of this field.
00064        * Default value is set to 
00065        \code
00066        vTessellation = 0;
00067        \endcode
00068        */
00069        SFInt32    vTessellation;
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        ccw = true;
00089         \endcode
00090        */
00091        SFBool     ccw;
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        solid = true;
00098         \endcode
00099        */
00100        SFBool     solid;
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 = 3;
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 = 3;
00146         \endcode
00147        */
00148        SFInt32    vOrder;
00149      //!@}
00150      /*!@name Events In
00151       * 
00152       */
00153       //!@{
00154       /*!
00155        * Set event associated to exposedField controlPoint
00156        */
00157        EventIn<MFVec3f>    set_controlPoint;
00158       /*!
00159        * Set event associated to exposedField texCoord
00160        */
00161        EventIn<SFNode>     set_texCoord;
00162       /*!
00163        * Set event associated to exposedField uTessellation
00164        */
00165        EventIn<SFInt32>    set_uTessellation;
00166       /*!
00167        * Set event associated to exposedField vTessellation
00168        */
00169        EventIn<SFInt32>    set_vTessellation;
00170       /*!
00171        * Set event associated to exposedField weight
00172        */
00173        EventIn<MFFloat>    set_weight;
00174   //!@}
00175      /*!@name Events Out
00176       * 
00177       */
00178       //!@{
00179       /*!
00180        * Changed event associated to exposedField controlPoint
00181        */
00182        EventOut<MFVec3f>    controlPoint_changed;
00183       /*!
00184        * Changed event associated to exposedField texCoord
00185        */
00186        EventOut<SFNode>     texCoord_changed;
00187       /*!
00188        * Changed event associated to exposedField uTessellation
00189        */
00190        EventOut<SFInt32>    uTessellation_changed;
00191       /*!
00192        * Changed event associated to exposedField vTessellation
00193        */
00194        EventOut<SFInt32>    vTessellation_changed;
00195       /*!
00196        * Changed event associated to exposedField weight
00197        */
00198        EventOut<MFFloat>    weight_changed;
00199   //!@}
00200   };
00201 };
00202 //************************************************************
00203 // Implementation of NurbsSurface
00204 //************************************************************
00205 /*!
00206  * Returns <code>"NurbsSurface"</code>. Useful for printing.
00207  */
00208 inline const char*
00209 wrl::NurbsSurface::typeName() const
00210 {
00211   return "NurbsSurface";
00212 }
00213 /*!
00214  * Returns the number of fields (exposed or not) for this node type.
00215  */
00216 inline unsigned int
00217 wrl::NurbsSurface::nbFields() const
00218 {
00219    return 13;
00220 }
00221 /*!
00222  * Returns the number of events in for this node type.
00223  */
00224 inline unsigned int
00225 wrl::NurbsSurface::nbEventsIn() const
00226 {
00227    return 0;
00228 }
00229 /*!
00230  * Returns the number of events out for this node type.
00231  */
00232 inline unsigned int
00233 wrl::NurbsSurface::nbEventsOut() const
00234 {
00235    return 0;
00236 }
00237 #endif // XDKWRL_NURBSSURFACE_H
00238 
00239 // Local variables section.
00240 // This is only used by emacs!
00241 // Local Variables:
00242 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00243 // End:

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