//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 OSGUTIL_RENDERSTAGELIGHTING #define OSGUTIL_RENDERSTAGELIGHTING 1 #include #include #include #include #include namespace osgUtil { /** * RenderBin base class. */ class OSGUTIL_EXPORT RenderStageLighting : public osg::Object { public: RenderStageLighting(); virtual osg::Object* cloneType() const { return new RenderStageLighting(); } virtual osg::Object* clone(const osg::CopyOp&) const { return new RenderStageLighting(); } // note only implements a clone of type. virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast(obj)!=0L; } virtual const char* className() const { return "RenderStageLighting"; } virtual void reset(); typedef std::pair< osg::Light*, osg::ref_ptr > LightMatrixPair; typedef std::vector< LightMatrixPair > LightList; virtual void addLight(osg::Light* light,osg::Matrix* matrix) { _lightList.push_back(LightMatrixPair(light,matrix)); } virtual void draw(osg::State& state,RenderLeaf*& previous); public: LightList _lightList; protected: virtual ~RenderStageLighting(); }; } #endif