Home Hierarchy Members Alphabetical Related Pages

pointlight.h

Go to the documentation of this file.
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 doxygen version 1.5.1. Valid HTML 4.0! Valid CSS!