00001
00002
00004
00005 #ifndef POINTLIGHT
00006 #define POINTLIGHT
00007
00008 #include "X3DTypes.h"
00009 #include "X3D_X3DLightNode.h"
00010
00011 namespace X3DTK {
00012 namespace X3D {
00013
00018
00019 class PointLight : public X3DLightNode
00020 {
00021 public:
00023 PointLight();
00025 PointLight(const SFFloat &ambientIntensity,
00026 const SFVec3f &attenuation,
00027 const SFColor &color,
00028 const SFFloat &intensity,
00029 const SFVec3f &location,
00030 const SFBool &on,
00031 const SFFloat &radius);
00033 virtual SFAbstractNode clone() const;
00035 virtual ~PointLight();
00036
00038 void setAttenuation(const SFVec3f &attenuation);
00040 void setLocation(const SFVec3f &location);
00042 void setRadius(const SFFloat &radius);
00043
00045 inline const SFVec3f &getAttenuation() const {return _attenuation;};
00047 inline const SFVec3f &getLocation() const {return _location;};
00049 inline const SFFloat getRadius() const {return _radius;};
00050
00052 virtual void load(const X3DFileElement *element);
00054 virtual SFString &write(SFString &output) const;
00055
00056 protected:
00058 PointLight(const PointLight &N);
00059
00060 private:
00062 SFVec3f _attenuation;
00064 SFVec3f _location;
00066 SFFloat _radius;
00067 };
00068
00069 }
00070 }
00071
00072 #endif