Home | Hierarchy | Members | Alphabetical | Related Pages |
00001 #ifndef XDKWRL_NURBSPOSITIONINTERPOLATOR_H 00002 #define XDKWRL_NURBSPOSITIONINTERPOLATOR_H 00003 00004 #include <xdkwrl/node.h> 00005 #include <xdkwrl/fieldtypes/mffloat.h> 00006 #include <xdkwrl/fieldtypes/mfvec3f.h> 00007 #include <xdkwrl/fieldtypes/sffloat.h> 00008 #include <xdkwrl/fieldtypes/sfint32.h> 00009 #include <xdkwrl/fieldtypes/sfvec3f.h> 00010 00011 namespace wrl 00012 { 00013 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00014 // Interface of NurbsPositionInterpolator 00015 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00016 class NurbsPositionInterpolator : public Node 00017 { 00018 public: 00019 NurbsPositionInterpolator(const char* name=""); 00020 virtual ~NurbsPositionInterpolator(); 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 00044 \code 00045 dimension = 0; 00046 \endcode 00047 */ 00048 SFInt32 dimension; 00049 /*! 00050 * See <a href="#_details" class="md">Detailed Description</a> 00051 * for meaning of this field. 00052 * Default value is set to MFVec3f default value 00053 */ 00054 MFVec3f keyValue; 00055 /*! 00056 * See <a href="#_details" class="md">Detailed Description</a> 00057 * for meaning of this field. 00058 * Default value is set to MFFloat default value 00059 */ 00060 MFFloat keyWeight; 00061 /*! 00062 * See <a href="#_details" class="md">Detailed Description</a> 00063 * for meaning of this field. 00064 * Default value is set to MFFloat default value 00065 */ 00066 MFFloat knot; 00067 /*! 00068 * See <a href="#_details" class="md">Detailed Description</a> 00069 * for meaning of this field. 00070 * Default value is set to 00071 \code 00072 order = 4; 00073 \endcode 00074 */ 00075 SFInt32 order; 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 /*!@name Events In 00085 * 00086 */ 00087 //!@{ 00088 /*! 00089 * See <a href="#_details" class="md">Detailed Description</a> 00090 * for meaning of this event. 00091 */ 00092 EventIn<SFFloat> set_fraction; 00093 /*! 00094 * Set event associated to exposedField dimension 00095 */ 00096 EventIn<SFInt32> set_dimension; 00097 /*! 00098 * Set event associated to exposedField keyValue 00099 */ 00100 EventIn<MFVec3f> set_keyValue; 00101 /*! 00102 * Set event associated to exposedField keyWeight 00103 */ 00104 EventIn<MFFloat> set_keyWeight; 00105 /*! 00106 * Set event associated to exposedField knot 00107 */ 00108 EventIn<MFFloat> set_knot; 00109 /*! 00110 * Set event associated to exposedField order 00111 */ 00112 EventIn<SFInt32> set_order; 00113 //!@} 00114 /*!@name Events Out 00115 * 00116 */ 00117 //!@{ 00118 /*! 00119 * See <a href="#_details" class="md">Detailed Description</a> 00120 * for meaning of this event. 00121 */ 00122 EventOut<SFVec3f> value_changed; 00123 /*! 00124 * Changed event associated to exposedField dimension 00125 */ 00126 EventOut<SFInt32> dimension_changed; 00127 /*! 00128 * Changed event associated to exposedField keyValue 00129 */ 00130 EventOut<MFVec3f> keyValue_changed; 00131 /*! 00132 * Changed event associated to exposedField keyWeight 00133 */ 00134 EventOut<MFFloat> keyWeight_changed; 00135 /*! 00136 * Changed event associated to exposedField knot 00137 */ 00138 EventOut<MFFloat> knot_changed; 00139 /*! 00140 * Changed event associated to exposedField order 00141 */ 00142 EventOut<SFInt32> order_changed; 00143 //!@} 00144 }; 00145 }; 00146 //************************************************************ 00147 // Implementation of NurbsPositionInterpolator 00148 //************************************************************ 00149 /*! 00150 * Returns <code>"NurbsPositionInterpolator"</code>. Useful for printing. 00151 */ 00152 inline const char* 00153 wrl::NurbsPositionInterpolator::typeName() const 00154 { 00155 return "NurbsPositionInterpolator"; 00156 } 00157 /*! 00158 * Returns the number of fields (exposed or not) for this node type. 00159 */ 00160 inline unsigned int 00161 wrl::NurbsPositionInterpolator::nbFields() const 00162 { 00163 return 5; 00164 } 00165 /*! 00166 * Returns the number of events in for this node type. 00167 */ 00168 inline unsigned int 00169 wrl::NurbsPositionInterpolator::nbEventsIn() const 00170 { 00171 return 1; 00172 } 00173 /*! 00174 * Returns the number of events out for this node type. 00175 */ 00176 inline unsigned int 00177 wrl::NurbsPositionInterpolator::nbEventsOut() const 00178 { 00179 return 1; 00180 } 00181 #endif // XDKWRL_NURBSPOSITIONINTERPOLATOR_H 00182 00183 // Local variables section. 00184 // This is only used by emacs! 00185 // Local Variables: 00186 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes") 00187 // End:
Generated on 24 Feb 2005 with
![]() |
|