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

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