Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# osgUtil::RenderBin Class Reference

RenderBin base class. More...

Inheritance diagram for osgUtil::RenderBin:

[legend]
List of all members.

## Public Types
typedef std::vector< RenderLeaf * > | RenderLeafList
typedef std::vector< StateGraph * > | StateGraphList
typedef std::map< int, osg::ref_ptr< RenderBin > > | RenderBinList
enum | SortMode { SORT_BY_STATE, SORT_BY_STATE_THEN_FRONT_TO_BACK, SORT_FRONT_TO_BACK, SORT_BACK_TO_FRONT }
## Public Member Functions
| RenderBin ()
| RenderBin (SortMode mode)
| RenderBin (const RenderBin &rhs, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
| Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Object * | cloneType () const
| Clone the type of an object, with Object* return type.
virtual osg::Object * | clone (const osg::CopyOp &copyop) const
virtual bool | isSameKindAs (const osg::Object *obj) const
virtual const char * | libraryName () const
| return the name of the object's library.
virtual const char * | className () const
| return the name of the object's class type.
virtual void | reset ()
RenderBin * | getParent ()
const RenderBin * | getParent () const
RenderStage * | getStage ()
const RenderStage * | getStage () const
int | getBinNum () const
StateGraphList & | getStateGraphList ()
const StateGraphList & | getStateGraphList () const
RenderBinList & | getRenderBinList ()
const RenderBinList & | getRenderBinList () const
RenderLeafList & | getRenderLeafList ()
const RenderLeafList & | getRenderLeafList () const
RenderBin * | find_or_insert (int binNum, const std::string &binName)
void | addStateGraph (StateGraph *rg)
virtual void | sort ()
virtual void | sortImplementation ()
void | setSortMode (SortMode mode)
SortMode | getSortMode () const
virtual void | sortByState ()
virtual void | sortByStateThenFrontToBack ()
virtual void | sortFrontToBack ()
virtual void | sortBackToFront ()
void | setSortCallback (SortCallback *sortCallback)
SortCallback * | getSortCallback ()
const SortCallback * | getSortCallback () const
virtual void | draw (osg::State &state, RenderLeaf *&previous)
virtual void | drawImplementation (osg::State &state, RenderLeaf *&previous)
void | setDrawCallback (DrawCallback *drawCallback)
DrawCallback * | getDrawCallback ()
const DrawCallback * | getDrawCallback () const
bool | getStats (Statistics *primStats)
| Extract stats for current draw list.
void | getPrims (Statistics *primStats)
bool | getPrims (Statistics *primStats, int nbin)
void | copyLeavesFromStateGraphListToRenderLeafList ()
## Static Public Member Functions
RenderBin * | createRenderBin (const std::string &binName)
RenderBin * | getRenderBinPrototype (const std::string &binName)
void | addRenderBinPrototype (const std::string &binName, RenderBin *proto)
void | removeRenderBinPrototype (RenderBin *proto)
void | setDefaultRenderBinSortMode (SortMode mode)
SortMode | getDefaultRenderBinSortMode ()
## Protected Member Functions
virtual | ~RenderBin ()
## Protected Attributes
int | _binNum
RenderBin * | _parent
RenderStage * | _stage
RenderBinList | _bins
StateGraphList | _stateGraphList
RenderLeafList | _renderLeafList
SortMode | _sortMode
osg::ref_ptr< SortCallback > | _sortCallback
osg::ref_ptr< DrawCallback > | _drawCallback

## Detailed Description

RenderBin base class.

Renderbin contains geometries to be rendered as a group, renderbins are rendered once each. They can improve efficiency or use different rendering algorithms. A renderBin can contain further renderBins producing a tree hierarchy of renderBins.

## Member Typedef Documentation

typedef std::map< int, osg::ref_ptr<RenderBin> > osgUtil::RenderBin::RenderBinList

typedef std::vector<RenderLeaf*> osgUtil::RenderBin::RenderLeafList

typedef std::vector<StateGraph*> osgUtil::RenderBin::StateGraphList

## Member Enumeration Documentation

enum osgUtil::RenderBin::SortMode

  | Enumeration values:
  SORT_BY_STATE |
  SORT_BY_STATE_THEN_FRONT_TO_BACK |
  SORT_FRONT_TO_BACK |
  SORT_BACK_TO_FRONT |

## Constructor & Destructor Documentation

osgUtil::RenderBin::RenderBin | ( |  | ) |

osgUtil::RenderBin::RenderBin | ( | SortMode | mode | ) |

osgUtil::RenderBin::RenderBin | ( | const RenderBin & | rhs,
|  | const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY
| ) |

| Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osgUtil::RenderBin::~RenderBin | ( |  | ) | `[protected, virtual]`

## Member Function Documentation

void osgUtil::RenderBin::addRenderBinPrototype | ( | const std::string & | binName,
|  | RenderBin * | proto
| ) | `[static]`

void osgUtil::RenderBin::addStateGraph | ( | StateGraph * | rg | ) | `[inline]`

virtual const char* osgUtil::RenderBin::className | ( |  | ) | const`[inline, virtual]`

| return the name of the object's class type. Must be defined by derived classes. Implements osg::Object. Reimplemented in osgUtil::RenderStage.

virtual osg::Object* osgUtil::RenderBin::clone | ( | const osg::CopyOp & | copyop | ) | const`[inline, virtual]`

| Reimplemented in osgUtil::RenderStage.

virtual osg::Object* osgUtil::RenderBin::cloneType | ( |  | ) | const`[inline, virtual]`

| Clone the type of an object, with Object* return type. Must be defined by derived classes. Implements osg::Object. Reimplemented in osgUtil::RenderStage.

void osgUtil::RenderBin::copyLeavesFromStateGraphListToRenderLeafList | ( |  | ) |

RenderBin* osgUtil::RenderBin::createRenderBin | ( | const std::string & | binName | ) | `[static]`

virtual void osgUtil::RenderBin::draw | ( | osg::State & | state,
|  | RenderLeaf *& | previous
| ) | `[virtual]`

| Reimplemented in osgUtil::RenderStage.

virtual void osgUtil::RenderBin::drawImplementation | ( | osg::State & | state,
|  | RenderLeaf *& | previous
| ) | `[virtual]`

| Reimplemented in osgUtil::RenderStage.

RenderBin* osgUtil::RenderBin::find_or_insert | ( | int | binNum,
|  | const std::string & | binName
| ) |

int osgUtil::RenderBin::getBinNum | ( |  | ) | const`[inline]`

SortMode osgUtil::RenderBin::getDefaultRenderBinSortMode | ( |  | ) | `[static]`

const DrawCallback* osgUtil::RenderBin::getDrawCallback | ( |  | ) | const`[inline]`

DrawCallback* osgUtil::RenderBin::getDrawCallback | ( |  | ) | `[inline]`

const RenderBin* osgUtil::RenderBin::getParent | ( |  | ) | const`[inline]`

RenderBin* osgUtil::RenderBin::getParent | ( |  | ) | `[inline]`

bool osgUtil::RenderBin::getPrims | ( | Statistics * | primStats,
|  | int | nbin
| ) |

void osgUtil::RenderBin::getPrims | ( | Statistics * | primStats | ) |

const RenderBinList& osgUtil::RenderBin::getRenderBinList | ( |  | ) | const`[inline]`

RenderBinList& osgUtil::RenderBin::getRenderBinList | ( |  | ) | `[inline]`

RenderBin* osgUtil::RenderBin::getRenderBinPrototype | ( | const std::string & | binName | ) | `[static]`

const RenderLeafList& osgUtil::RenderBin::getRenderLeafList | ( |  | ) | const`[inline]`

RenderLeafList& osgUtil::RenderBin::getRenderLeafList | ( |  | ) | `[inline]`

const SortCallback* osgUtil::RenderBin::getSortCallback | ( |  | ) | const`[inline]`

SortCallback* osgUtil::RenderBin::getSortCallback | ( |  | ) | `[inline]`

SortMode osgUtil::RenderBin::getSortMode | ( |  | ) | const`[inline]`

const RenderStage* osgUtil::RenderBin::getStage | ( |  | ) | const`[inline]`

RenderStage* osgUtil::RenderBin::getStage | ( |  | ) | `[inline]`

const StateGraphList& osgUtil::RenderBin::getStateGraphList | ( |  | ) | const`[inline]`

StateGraphList& osgUtil::RenderBin::getStateGraphList | ( |  | ) | `[inline]`

bool osgUtil::RenderBin::getStats | ( | Statistics * | primStats | ) |

| Extract stats for current draw list. Reimplemented in osgUtil::RenderStage.

virtual bool osgUtil::RenderBin::isSameKindAs | ( | const osg::Object * | obj | ) | const`[inline, virtual]`

| Reimplemented in osgUtil::RenderStage.

virtual const char* osgUtil::RenderBin::libraryName | ( |  | ) | const`[inline, virtual]`

| return the name of the object's library. Must be defined by derived classes. The OpenSceneGraph convention is that the namespace of a library is the same as the library name. Implements osg::Object.

void osgUtil::RenderBin::removeRenderBinPrototype | ( | RenderBin * | proto | ) | `[static]`

virtual void osgUtil::RenderBin::reset | ( |  | ) | `[virtual]`

| Reimplemented in osgUtil::RenderStage.

void osgUtil::RenderBin::setDefaultRenderBinSortMode | ( | SortMode | mode | ) | `[static]`

void osgUtil::RenderBin::setDrawCallback | ( | DrawCallback * | drawCallback | ) | `[inline]`

void osgUtil::RenderBin::setSortCallback | ( | SortCallback * | sortCallback | ) | `[inline]`

void osgUtil::RenderBin::setSortMode | ( | SortMode | mode | ) |

virtual void osgUtil::RenderBin::sort | ( |  | ) | `[virtual]`

| Reimplemented in osgUtil::RenderStage.

virtual void osgUtil::RenderBin::sortBackToFront | ( |  | ) | `[virtual]`

virtual void osgUtil::RenderBin::sortByState | ( |  | ) | `[virtual]`

virtual void osgUtil::RenderBin::sortByStateThenFrontToBack | ( |  | ) | `[virtual]`

virtual void osgUtil::RenderBin::sortFrontToBack | ( |  | ) | `[virtual]`

virtual void osgUtil::RenderBin::sortImplementation | ( |  | ) | `[virtual]`

## Member Data Documentation

int osgUtil::RenderBin::_binNum`[protected]`

RenderBinList osgUtil::RenderBin::_bins`[protected]`

osg::ref_ptr<DrawCallback> osgUtil::RenderBin::_drawCallback`[protected]`

RenderBin* osgUtil::RenderBin::_parent`[protected]`

RenderLeafList osgUtil::RenderBin::_renderLeafList`[protected]`

osg::ref_ptr<SortCallback> osgUtil::RenderBin::_sortCallback`[protected]`

SortMode osgUtil::RenderBin::_sortMode`[protected]`

RenderStage* osgUtil::RenderBin::_stage`[protected]`

StateGraphList osgUtil::RenderBin::_stateGraphList`[protected]`

The documentation for this class was generated from the following file:

- RenderBin