XdkWrl: pointlight.h Source File

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 version 1.5.1. |