Home | Hierarchy | Members | Alphabetical | Related Pages |
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
![]() |
|