//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield //Distributed under the terms of the GNU Library General Public License (LGPL) //as published by the Free Software Foundation. #ifndef OSG_LIGHTSOURCE #define OSG_LIGHTSOURCE 1 #include #include #include namespace osg { /** Leaf Node for defining a light in the scene.*/ class SG_EXPORT LightSource : public Node { public: LightSource(); LightSource(const LightSource& es, const CopyOp& copyop=CopyOp::SHALLOW_COPY): Node(es,copyop), _light(dynamic_cast(copyop(es._light.get()))) {} META_Node(LightSource); /** Set the attached light.*/ inline void setLight(Light* light) { _light = light; } /** Get the attached light.*/ inline Light* getLight() { return _light.get(); } /** Get the const attached light.*/ inline const Light* getLight() const { return _light.get(); } protected: virtual ~LightSource(); virtual const bool computeBound() const; ref_ptr _light; }; } #endif