00001 00002 // PointLight.h // 00004 00005 #ifndef POINTLIGHT 00006 #define POINTLIGHT 00007 00008 #include "X3DTypes.h" 00009 #include "X3DLightNode.h" 00010 00011 namespace X3DTK { 00012 namespace X3D { 00013 00018 00019 class PointLight : public X3DLightNode 00020 { 00021 public: 00023 PointLight(); 00025 PointLight(SFFloat ambientIntensity, 00026 const SFVec3f &attenuation, 00027 const SFColor &color, 00028 SFFloat intensity, 00029 const SFVec3f &location, 00030 SFBool on, 00031 SFFloat radius); 00033 virtual SFNode clone() const; 00035 virtual ~PointLight(); 00036 00038 void setAttenuation(const SFVec3f &attenuation); 00040 void setLocation(const SFVec3f &location); 00042 void setRadius(SFFloat radius); 00043 00045 inline const SFVec3f &getAttenuation() const {return _attenuation;}; 00047 inline const SFVec3f &getLocation() const {return _location;}; 00049 inline SFFloat getRadius() const {return _radius;}; 00050 00052 virtual void load(const X3DFileElement *element); 00054 virtual SFString write() 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