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