00001 #ifndef X3DTK_X3D_POINTLIGHT 00002 #define X3DTK_X3D_POINTLIGHT 00003 00004 #include "X3DTypes.h" 00005 #include "X3D_X3DLightNode.h" 00006 00007 namespace X3DTK { 00008 namespace X3D { 00009 00018 class PointLight : public X3DLightNode 00019 { 00020 public: 00022 PointLight(); 00024 PointLight(const SFFloat &ambientIntensity, 00025 const SFVec3f &attenuation, 00026 const SFColor &color, 00027 const SFFloat &intensity, 00028 const SFVec3f &location, 00029 const SFBool &on, 00030 const SFFloat &radius); 00032 virtual SFAbstractNode clone() const; 00034 virtual ~PointLight(); 00035 00037 void setAttenuation(const SFVec3f &attenuation); 00039 void setLocation(const SFVec3f &location); 00041 void setRadius(const SFFloat &radius); 00042 00044 inline const SFVec3f &getAttenuation() const {return _attenuation;}; 00046 inline const SFVec3f &getLocation() const {return _location;}; 00048 inline const SFFloat getRadius() const {return _radius;}; 00049 00051 virtual void load(const X3DFileElement *element); 00053 virtual SFString &write(SFString &output) const; 00054 00055 protected: 00057 PointLight(const PointLight &N); 00058 00059 private: 00061 SFVec3f _attenuation; 00063 SFVec3f _location; 00065 SFFloat _radius; 00066 }; 00067 00068 } 00069 } 00070 00071 #endif