//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_DEPTHSORTEDBIN #define OSGUTIL_DEPTHSORTEDBIN 1 #include namespace osgUtil { class OSGUTIL_EXPORT DepthSortedBin : public RenderBin { public: DepthSortedBin(); virtual osg::Object* cloneType() const { return new DepthSortedBin(); } virtual osg::Object* clone(const osg::CopyOp&) const { return new DepthSortedBin(); } // 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 "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