Home | Hierarchy | Members | Alphabetical | Related Pages |
00001 #ifndef XDKWRL_POINTLIGHT_H 00002 #define XDKWRL_POINTLIGHT_H 00003 00004 #include <xdkwrl/config.h> 00005 #include <xdkwrl/node.h> 00006 #include <xdkwrl/fieldtypes/sfbool.h> 00007 #include <xdkwrl/fieldtypes/sfcolor.h> 00008 #include <xdkwrl/fieldtypes/sffloat.h> 00009 #include <xdkwrl/fieldtypes/sfvec3f.h> 00010 00011 namespace wrl 00012 { 00013 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00014 // Interface of PointLight 00015 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00016 class XDKWRL_EXPORT PointLight : public Node 00017 { 00018 public: 00019 PointLight(const char* name=""); 00020 virtual ~PointLight(); 00021 virtual inline unsigned int nbFields() const; 00022 virtual FieldHandle field(const std::string& n); 00023 virtual FieldHandle field(unsigned int i); 00024 virtual bool isSetToDefaultValue(unsigned int i) const; 00025 virtual inline unsigned int nbEventsIn() const; 00026 virtual EventInHandle eventIn(const std::string& n); 00027 virtual EventInHandle eventIn(unsigned int i); 00028 virtual inline unsigned int nbEventsOut() const; 00029 virtual EventOutHandle eventOut(const std::string& n); 00030 virtual EventOutHandle eventOut(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 ambientIntensity = 0.0f; 00046 \endcode 00047 */ 00048 SFFloat ambientIntensity; 00049 /*! 00050 * See <a href="#_details" class="md">Detailed Description</a> 00051 * for meaning of this field. 00052 * Default value is set to 00053 \code 00054 attenuation.setXYZ(1,0,0); 00055 \endcode 00056 */ 00057 SFVec3f attenuation; 00058 /*! 00059 * See <a href="#_details" class="md">Detailed Description</a> 00060 * for meaning of this field. 00061 * Default value is set to 00062 \code 00063 color.setRGB(1,1,1); 00064 \endcode 00065 */ 00066 SFColor color; 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 intensity = 1.0f; 00073 \endcode 00074 */ 00075 SFFloat intensity; 00076 /*! 00077 * See <a href="#_details" class="md">Detailed Description</a> 00078 * for meaning of this field. 00079 * Default value is set to 00080 \code 00081 location.setXYZ(0,0,0); 00082 \endcode 00083 */ 00084 SFVec3f location; 00085 /*! 00086 * See <a href="#_details" class="md">Detailed Description</a> 00087 * for meaning of this field. 00088 * Default value is set to 00089 \code 00090 on = true; 00091 \endcode 00092 */ 00093 SFBool on; 00094 /*! 00095 * See <a href="#_details" class="md">Detailed Description</a> 00096 * for meaning of this field. 00097 * Default value is set to 00098 \code 00099 radius = 100.0f; 00100 \endcode 00101 */ 00102 SFFloat radius; 00103 //!@} 00104 /*!@name Fields 00105 * A property or attribute of a node. Each node type has a fixed set 00106 * of fields. Fields may contain various kinds of data and one or many 00107 * values. Each field has a default value. 00108 */ 00109 //!@{ 00110 //!@} 00111 /*!@name Events In 00112 * 00113 */ 00114 //!@{ 00115 /*! 00116 * Set event associated to exposedField ambientIntensity 00117 */ 00118 EventIn<SFFloat> set_ambientIntensity; 00119 /*! 00120 * Set event associated to exposedField attenuation 00121 */ 00122 EventIn<SFVec3f> set_attenuation; 00123 /*! 00124 * Set event associated to exposedField color 00125 */ 00126 EventIn<SFColor> set_color; 00127 /*! 00128 * Set event associated to exposedField intensity 00129 */ 00130 EventIn<SFFloat> set_intensity; 00131 /*! 00132 * Set event associated to exposedField location 00133 */ 00134 EventIn<SFVec3f> set_location; 00135 /*! 00136 * Set event associated to exposedField on 00137 */ 00138 EventIn<SFBool> set_on; 00139 /*! 00140 * Set event associated to exposedField radius 00141 */ 00142 EventIn<SFFloat> set_radius; 00143 //!@} 00144 /*!@name Events Out 00145 * 00146 */ 00147 //!@{ 00148 /*! 00149 * Changed event associated to exposedField ambientIntensity 00150 */ 00151 EventOut<SFFloat> ambientIntensity_changed; 00152 /*! 00153 * Changed event associated to exposedField attenuation 00154 */ 00155 EventOut<SFVec3f> attenuation_changed; 00156 /*! 00157 * Changed event associated to exposedField color 00158 */ 00159 EventOut<SFColor> color_changed; 00160 /*! 00161 * Changed event associated to exposedField intensity 00162 */ 00163 EventOut<SFFloat> intensity_changed; 00164 /*! 00165 * Changed event associated to exposedField location 00166 */ 00167 EventOut<SFVec3f> location_changed; 00168 /*! 00169 * Changed event associated to exposedField on 00170 */ 00171 EventOut<SFBool> on_changed; 00172 /*! 00173 * Changed event associated to exposedField radius 00174 */ 00175 EventOut<SFFloat> radius_changed; 00176 //!@} 00177 }; 00178 }; 00179 //************************************************************ 00180 // Implementation of PointLight 00181 //************************************************************ 00182 /*! 00183 * Returns <code>"PointLight"</code>. Useful for printing. 00184 */ 00185 inline const char* 00186 wrl::PointLight::typeName() const 00187 { 00188 return "PointLight"; 00189 } 00190 /*! 00191 * Returns the number of fields (exposed or not) for this node type. 00192 */ 00193 inline unsigned int 00194 wrl::PointLight::nbFields() const 00195 { 00196 return 7; 00197 } 00198 /*! 00199 * Returns the number of events in for this node type. 00200 */ 00201 inline unsigned int 00202 wrl::PointLight::nbEventsIn() const 00203 { 00204 return 0; 00205 } 00206 /*! 00207 * Returns the number of events out for this node type. 00208 */ 00209 inline unsigned int 00210 wrl::PointLight::nbEventsOut() const 00211 { 00212 return 0; 00213 } 00214 #endif // XDKWRL_POINTLIGHT_H 00215 00216 // Local variables section. 00217 // This is only used by emacs! 00218 // Local Variables: 00219 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes") 00220 // End:
Generated on 5 Jan 2007 with
![]() |
|