//C++ header - Open Scene Graph - Copyright (C) 1998-2002 Robert Osfield //Distributed under the terms of the GNU Library General Public License (LGPL) //as published by the Free Software Foundation. #ifndef OSGUTIL_DEPTHSORTEDBIN #define OSGUTIL_DEPTHSORTEDBIN 1 #include namespace osgUtil { class OSGUTIL_EXPORT DepthSortedBin : public RenderBin { public: DepthSortedBin(); virtual osg::Object* cloneType() const { return osgNew DepthSortedBin(); } virtual osg::Object* clone(const osg::CopyOp&) const { return osgNew DepthSortedBin(); } // note only implements a clone of type. virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast(obj)!=0L; } virtual const char* libraryName() const { return "osgUtil"; } virtual const char* className() const { return "DepthSortedBin"; } virtual void reset(); virtual void sort_local(); virtual void draw_local(osg::State& state,RenderLeaf*& previous); enum DrawOrder { FRONT_TO_BACK, BACK_TO_FRONT }; void setDrawOrder(const DrawOrder drawOrder) { _drawOrder = drawOrder; } const DrawOrder getDrawOrder() const { return _drawOrder; } protected: virtual ~DepthSortedBin(); DrawOrder _drawOrder; //RenderLeafList _renderLeafList; }; } #endif