Home Hierarchy Members Alphabetical Related Pages

spotlight.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_SPOTLIGHT_H
00002 #define XDKWRL_SPOTLIGHT_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 SpotLight
00015   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016   class XDKWRL_EXPORT SpotLight : public Node
00017   {
00018    public:
00019      SpotLight(const char* name="");
00020      virtual ~SpotLight();
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        beamWidth = 1.5708f;
00064        \endcode
00065        */
00066        SFFloat    beamWidth;
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        color.setRGB(1,1,1);
00073        \endcode
00074        */
00075        SFColor    color;
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        cutOffAngle = 0.785398f;
00082        \endcode
00083        */
00084        SFFloat    cutOffAngle;
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        direction.setXYZ(0,0,-1);
00091        \endcode
00092        */
00093        SFVec3f    direction;
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        intensity = 1.0f;
00100        \endcode
00101        */
00102        SFFloat    intensity;
00103       /*!
00104        * See <a href="#_details" class="md">Detailed Description</a>
00105        * for meaning of this field.
00106        * Default value is set to 
00107        \code
00108        location.setXYZ(0,0,0);
00109        \endcode
00110        */
00111        SFVec3f    location;
00112       /*!
00113        * See <a href="#_details" class="md">Detailed Description</a>
00114        * for meaning of this field.
00115        * Default value is set to 
00116        \code
00117        on = true;
00118        \endcode
00119        */
00120        SFBool     on;
00121       /*!
00122        * See <a href="#_details" class="md">Detailed Description</a>
00123        * for meaning of this field.
00124        * Default value is set to 
00125        \code
00126        radius = 100.0f;
00127        \endcode
00128        */
00129        SFFloat    radius;
00130      //!@}
00131      /*!@name Fields
00132       * A property or attribute of a node. Each node type has a fixed set
00133       * of fields. Fields may contain various kinds of data and one or many
00134       * values. Each field has a default value.
00135       */
00136       //!@{
00137      //!@}
00138      /*!@name Events In
00139       * 
00140       */
00141       //!@{
00142       /*!
00143        * Set event associated to exposedField ambientIntensity
00144        */
00145        EventIn<SFFloat>    set_ambientIntensity;
00146       /*!
00147        * Set event associated to exposedField attenuation
00148        */
00149        EventIn<SFVec3f>    set_attenuation;
00150       /*!
00151        * Set event associated to exposedField beamWidth
00152        */
00153        EventIn<SFFloat>    set_beamWidth;
00154       /*!
00155        * Set event associated to exposedField color
00156        */
00157        EventIn<SFColor>    set_color;
00158       /*!
00159        * Set event associated to exposedField cutOffAngle
00160        */
00161        EventIn<SFFloat>    set_cutOffAngle;
00162       /*!
00163        * Set event associated to exposedField direction
00164        */
00165        EventIn<SFVec3f>    set_direction;
00166       /*!
00167        * Set event associated to exposedField intensity
00168        */
00169        EventIn<SFFloat>    set_intensity;
00170       /*!
00171        * Set event associated to exposedField location
00172        */
00173        EventIn<SFVec3f>    set_location;
00174       /*!
00175        * Set event associated to exposedField on
00176        */
00177        EventIn<SFBool>     set_on;
00178       /*!
00179        * Set event associated to exposedField radius
00180        */
00181        EventIn<SFFloat>    set_radius;
00182   //!@}
00183      /*!@name Events Out
00184       * 
00185       */
00186       //!@{
00187       /*!
00188        * Changed event associated to exposedField ambientIntensity
00189        */
00190        EventOut<SFFloat>    ambientIntensity_changed;
00191       /*!
00192        * Changed event associated to exposedField attenuation
00193        */
00194        EventOut<SFVec3f>    attenuation_changed;
00195       /*!
00196        * Changed event associated to exposedField beamWidth
00197        */
00198        EventOut<SFFloat>    beamWidth_changed;
00199       /*!
00200        * Changed event associated to exposedField color
00201        */
00202        EventOut<SFColor>    color_changed;
00203       /*!
00204        * Changed event associated to exposedField cutOffAngle
00205        */
00206        EventOut<SFFloat>    cutOffAngle_changed;
00207       /*!
00208        * Changed event associated to exposedField direction
00209        */
00210        EventOut<SFVec3f>    direction_changed;
00211       /*!
00212        * Changed event associated to exposedField intensity
00213        */
00214        EventOut<SFFloat>    intensity_changed;
00215       /*!
00216        * Changed event associated to exposedField location
00217        */
00218        EventOut<SFVec3f>    location_changed;
00219       /*!
00220        * Changed event associated to exposedField on
00221        */
00222        EventOut<SFBool>     on_changed;
00223       /*!
00224        * Changed event associated to exposedField radius
00225        */
00226        EventOut<SFFloat>    radius_changed;
00227   //!@}
00228   };
00229 };
00230 //************************************************************
00231 // Implementation of SpotLight
00232 //************************************************************
00233 /*!
00234  * Returns <code>"SpotLight"</code>. Useful for printing.
00235  */
00236 inline const char*
00237 wrl::SpotLight::typeName() const
00238 {
00239   return "SpotLight";
00240 }
00241 /*!
00242  * Returns the number of fields (exposed or not) for this node type.
00243  */
00244 inline unsigned int
00245 wrl::SpotLight::nbFields() const
00246 {
00247    return 10;
00248 }
00249 /*!
00250  * Returns the number of events in for this node type.
00251  */
00252 inline unsigned int
00253 wrl::SpotLight::nbEventsIn() const
00254 {
00255    return 0;
00256 }
00257 /*!
00258  * Returns the number of events out for this node type.
00259  */
00260 inline unsigned int
00261 wrl::SpotLight::nbEventsOut() const
00262 {
00263    return 0;
00264 }
00265 #endif // XDKWRL_SPOTLIGHT_H
00266 
00267 // Local variables section.
00268 // This is only used by emacs!
00269 // Local Variables:
00270 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00271 // End:

Generated on 5 Jan 2007 with doxygen version 1.5.1. Valid HTML 4.0! Valid CSS!