14#ifndef OSGUTIL_RENDERBIN
15#define OSGUTIL_RENDERBIN 1
72 virtual const char*
className()
const {
return "RenderBin"; }
The osgUtil library provides general purpose utility classes such as update, cull and draw traverses,...
Definition NodeVisitor:25
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Base class/standard interface for objects which require IO support, cloning and reference counting.
Definition Object:61
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
Base class for providing reference counted objects.
Definition Referenced:44
Encapsulates the current applied OpenGL modes, attributes and vertex arrays settings,...
Definition State:80
Stores a set of modes and attributes which represent a set of OpenGL state.
Definition StateSet:46
RenderBin * getParent()
Definition RenderBin:84
osg::StateSet * getStateSet()
Definition RenderBin:80
void setStateSet(osg::StateSet *stateset)
Definition RenderBin:79
const RenderBin * getParent() const
Definition RenderBin:85
virtual void sortBackToFront()
virtual void sortImplementation()
int _binNum
Definition RenderBin:165
int getBinNum() const
Definition RenderBin:90
virtual const char * libraryName() const
return the name of the object's library.
Definition RenderBin:71
const RenderLeafList & getRenderLeafList() const
Definition RenderBin:99
RenderStage * getStage()
Definition RenderBin:87
std::vector< RenderLeaf * > RenderLeafList
Definition RenderBin:37
StateGraph * getStateGraph()
Definition RenderBin:77
const DrawCallback * getDrawCallback() const
Definition RenderBin:144
virtual osg::Object * cloneType() const
Clone the type of an object, with Object* return type.
Definition RenderBin:68
RenderLeafList & getRenderLeafList()
Definition RenderBin:98
virtual void sortFrontToBack()
osg::ref_ptr< DrawCallback > _drawCallback
Definition RenderBin:176
RenderBin * _parent
Definition RenderBin:166
std::map< int, osg::ref_ptr< RenderBin > > RenderBinList
Definition RenderBin:39
bool getStats(Statistics &primStats) const
Extract stats for current draw list.
osg::ref_ptr< SortCallback > _sortCallback
Definition RenderBin:174
virtual void sortTraversalOrder()
SortMode
Definition RenderBin:42
@ SORT_BY_STATE_THEN_FRONT_TO_BACK
Definition RenderBin:44
@ SORT_BACK_TO_FRONT
Definition RenderBin:46
@ TRAVERSAL_ORDER
Definition RenderBin:47
@ SORT_BY_STATE
Definition RenderBin:43
@ SORT_FRONT_TO_BACK
Definition RenderBin:45
RenderLeafList _renderLeafList
Definition RenderBin:170
std::vector< StateGraph * > StateGraphList
Definition RenderBin:38
StateGraphList _stateGraphList
Definition RenderBin:169
SortMode getSortMode() const
Definition RenderBin:114
virtual void drawImplementation(osg::RenderInfo &renderInfo, RenderLeaf *&previous)
void setSortCallback(SortCallback *sortCallback)
Definition RenderBin:127
static void addRenderBinPrototype(const std::string &binName, RenderBin *proto)
virtual void sortByStateThenFrontToBack()
void setStateGraph(StateGraph *sg)
Definition RenderBin:76
RenderBinList & getRenderBinList()
Definition RenderBin:95
void copyLeavesFromStateGraphListToRenderLeafList()
static void removeRenderBinPrototype(RenderBin *proto)
DrawCallback * getDrawCallback()
Definition RenderBin:143
RenderBin(const RenderBin &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy.
static RenderBin * createRenderBin(const std::string &binName)
virtual bool isSameKindAs(const osg::Object *obj) const
Definition RenderBin:70
void setDrawCallback(DrawCallback *drawCallback)
Definition RenderBin:142
static SortMode getDefaultRenderBinSortMode()
virtual const char * className() const
return the name of the object's class type.
Definition RenderBin:72
const StateGraphList & getStateGraphList() const
Definition RenderBin:93
const RenderBinList & getRenderBinList() const
Definition RenderBin:96
static RenderBin * getRenderBinPrototype(const std::string &binName)
SortMode _sortMode
Definition RenderBin:173
const osg::StateSet * getStateSet() const
Definition RenderBin:81
SortCallback * getSortCallback()
Definition RenderBin:128
const RenderStage * getStage() const
Definition RenderBin:88
virtual void sortByState()
static void setDefaultRenderBinSortMode(SortMode mode)
osg::ref_ptr< osg::StateSet > _stateset
Definition RenderBin:178
osg::ref_ptr< StateGraph > _rootStateGraph
Definition RenderBin:163
RenderStage * _stage
Definition RenderBin:167
RenderBinList _bins
Definition RenderBin:168
StateGraphList & getStateGraphList()
Definition RenderBin:92
virtual unsigned int computeNumberOfDynamicRenderLeaves() const
Compute the number of dynamic RenderLeaves.
void setSortMode(SortMode mode)
RenderBin * find_or_insert(int binNum, const std::string &binName)
bool _sorted
Definition RenderBin:172
const SortCallback * getSortCallback() const
Definition RenderBin:129
virtual osg::Object * clone(const osg::CopyOp ©op) const
Clone an object, with Object* return type.
Definition RenderBin:69
void addStateGraph(StateGraph *rg)
Definition RenderBin:104
virtual void releaseGLObjects(osg::State *state=0) const
If State is non-zero, this function releases any associated OpenGL objects for the specified graphics...
virtual void draw(osg::RenderInfo &renderInfo, RenderLeaf *&previous)
virtual void sortImplementation(RenderBin *)=0
virtual void drawImplementation(RenderBin *bin, osg::RenderInfo &renderInfo, RenderLeaf *&previous)=0
Container class for all data required for rendering of drawables.
Definition RenderLeaf:34
RenderStage base class.
Definition RenderStage:38
StateGraph - contained in a renderBin, defines the scene to be drawn.
Definition StateGraph:42
Statistics base class.
Definition Statistics:48
#define OSGUTIL_EXPORT
Definition Export:40