Home Hierarchy Members Alphabetical Related Pages

directionallight.h

Go to the documentation of this file.
00001 #ifndef XDKWRL_DIRECTIONALLIGHT_H
00002 #define XDKWRL_DIRECTIONALLIGHT_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 DirectionalLight
00015   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00016   class XDKWRL_EXPORT DirectionalLight : public Node
00017   {
00018    public:
00019      DirectionalLight(const char* name="");
00020      virtual ~DirectionalLight();
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        color.setRGB(1,1,1);
00055        \endcode
00056        */
00057        SFColor    color;
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        direction.setXYZ(0,0,-1);
00064        \endcode
00065        */
00066        SFVec3f    direction;
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        on = true;
00082        \endcode
00083        */
00084        SFBool     on;
00085      //!@}
00086      /*!@name Fields
00087       * A property or attribute of a node. Each node type has a fixed set
00088       * of fields. Fields may contain various kinds of data and one or many
00089       * values. Each field has a default value.
00090       */
00091       //!@{
00092      //!@}
00093      /*!@name Events In
00094       * 
00095       */
00096       //!@{
00097       /*!
00098        * Set event associated to exposedField ambientIntensity
00099        */
00100        EventIn<SFFloat>    set_ambientIntensity;
00101       /*!
00102        * Set event associated to exposedField color
00103        */
00104        EventIn<SFColor>    set_color;
00105       /*!
00106        * Set event associated to exposedField direction
00107        */
00108        EventIn<SFVec3f>    set_direction;
00109       /*!
00110        * Set event associated to exposedField intensity
00111        */
00112        EventIn<SFFloat>    set_intensity;
00113       /*!
00114        * Set event associated to exposedField on
00115        */
00116        EventIn<SFBool>     set_on;
00117   //!@}
00118      /*!@name Events Out
00119       * 
00120       */
00121       //!@{
00122       /*!
00123        * Changed event associated to exposedField ambientIntensity
00124        */
00125        EventOut<SFFloat>    ambientIntensity_changed;
00126       /*!
00127        * Changed event associated to exposedField color
00128        */
00129        EventOut<SFColor>    color_changed;
00130       /*!
00131        * Changed event associated to exposedField direction
00132        */
00133        EventOut<SFVec3f>    direction_changed;
00134       /*!
00135        * Changed event associated to exposedField intensity
00136        */
00137        EventOut<SFFloat>    intensity_changed;
00138       /*!
00139        * Changed event associated to exposedField on
00140        */
00141        EventOut<SFBool>     on_changed;
00142   //!@}
00143   };
00144 };
00145 //************************************************************
00146 // Implementation of DirectionalLight
00147 //************************************************************
00148 /*!
00149  * Returns <code>"DirectionalLight"</code>. Useful for printing.
00150  */
00151 inline const char*
00152 wrl::DirectionalLight::typeName() const
00153 {
00154   return "DirectionalLight";
00155 }
00156 /*!
00157  * Returns the number of fields (exposed or not) for this node type.
00158  */
00159 inline unsigned int
00160 wrl::DirectionalLight::nbFields() const
00161 {
00162    return 5;
00163 }
00164 /*!
00165  * Returns the number of events in for this node type.
00166  */
00167 inline unsigned int
00168 wrl::DirectionalLight::nbEventsIn() const
00169 {
00170    return 0;
00171 }
00172 /*!
00173  * Returns the number of events out for this node type.
00174  */
00175 inline unsigned int
00176 wrl::DirectionalLight::nbEventsOut() const
00177 {
00178    return 0;
00179 }
00180 #endif // XDKWRL_DIRECTIONALLIGHT_H
00181 
00182 // Local variables section.
00183 // This is only used by emacs!
00184 // Local Variables:
00185 // ff-search-directories: ("../../" "../../../src/xdkwrl/nodes")
00186 // End:

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