00001
00002
00003
00005
00006
00011
00016
00021
00023
00024 #ifndef POINTLIGHT
00025 #define POINTLIGHT
00026
00027 #include "X3DTypes.h"
00028 #include "X3DLightNode.h"
00029
00030 namespace X3DTK {
00031 namespace X3D {
00032
00037
00038 class PointLight : public X3DLightNode
00039 {
00040 public:
00042 PointLight();
00044 PointLight(SFFloat ambientIntensity,
00045 const SFVec3f &attenuation,
00046 const SFColor &color,
00047 SFFloat intensity,
00048 const SFVec3f &location,
00049 SFBool on,
00050 SFFloat radius);
00052 virtual SFNode clone() const;
00054 virtual ~PointLight();
00055
00057 void setAttenuation(const SFVec3f &attenuation);
00059 void setLocation(const SFVec3f &location);
00061 void setRadius(SFFloat radius);
00062
00064 inline const SFVec3f &getAttenuation() const {return _attenuation;};
00066 inline const SFVec3f &getLocation() const {return _location;};
00068 inline SFFloat getRadius() const {return _radius;};
00069
00071 virtual void load(const X3DFileElement *element);
00073 virtual SFString write() const;
00074
00075 protected:
00077 PointLight(const PointLight &N);
00078
00079 private:
00081 SFVec3f _attenuation;
00083 SFVec3f _location;
00085 SFFloat _radius;
00086 };
00087
00088 }
00089 }
00090
00091 #endif