# 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< RenderGraph * > | RenderGraphList
typedef std::map< int, osg::ref_ptr< RenderBin > > | RenderBinList
enum | SortMode { SORT_BY_STATE, SORT_FRONT_TO_BACK, SORT_BACK_TO_FRONT }

## Public Member Functions

| RenderBin (SortMode mode=SORT_BY_STATE)
| 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
RenderGraphList & | getRenderGraphList ()
const RenderGraphList & | getRenderGraphList () const
RenderBinList & | getRenderBinList ()
const RenderBinList & | getRenderBinList () const
RenderLeafList & | getRenderLeafList ()
const RenderLeafList & | getRenderLeafList () const
RenderBin * | find_or_insert (int binNum, const std::string &binName)
void | addRenderGraph (RenderGraph *rg)
void | sort ()
virtual void | sortImplementation ()
void | setSortMode (SortMode mode)
SortMode | getSortMode () const
virtual void | sortByState ()
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)

## Static Public Member Functions

static RenderBin * | createRenderBin (const std::string &binName)
static RenderBin * | getRenderBinPrototype (const std::string &binName)
static void | addRenderBinPrototype (const std::string &binName, RenderBin *proto)
static void | removeRenderBinPrototype (RenderBin *proto)

## Protected Member Functions

virtual | ~RenderBin ()
void | copyLeavesFromRenderGraphListToRenderLeafList ()

## Protected Attributes

int | _binNum
RenderBin * | _parent
RenderStage * | _stage
RenderBinList | _bins
RenderGraphList | _renderGraphList
RenderLeafList | _renderLeafList
SortMode | _sortMode
osg::ref_ptr< SortCallback > | _sortCallback
osg::ref_ptr< DrawCallback > | _drawCallback

## Classes

struct | DrawCallback
struct | SortCallback

## 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<RenderGraph*> osgUtil::RenderBin::RenderGraphList

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

## Member Enumeration Documentation

enum osgUtil::RenderBin::SortMode

Enumeration values:

  SORT_BY_STATE |
  SORT_FRONT_TO_BACK |
  SORT_BACK_TO_FRONT |

## Constructor & Destructor Documentation

RenderBin::RenderBin | ( | SortMode | mode = `SORT_BY_STATE` | ) |

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

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

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

## Member Function Documentation

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

void osgUtil::RenderBin::addRenderGraph | ( | RenderGraph * | 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, and osgUtil::RenderToTextureStage.

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

| Reimplemented in osgUtil::RenderStage, and osgUtil::RenderToTextureStage.

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, and osgUtil::RenderToTextureStage.

void RenderBin::copyLeavesFromRenderGraphListToRenderLeafList | ( |  | ) | `[protected]`

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

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

| Reimplemented in osgUtil::RenderStage, and osgUtil::RenderToTextureStage.

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

| Reimplemented in osgUtil::RenderStage.

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

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

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 RenderBin::getPrims | ( | Statistics * | primStats,
|  | int | nbin
| ) |

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

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

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

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

const RenderGraphList& osgUtil::RenderBin::getRenderGraphList | ( |  | ) | const`[inline]`

RenderGraphList& osgUtil::RenderBin::getRenderGraphList | ( |  | ) | `[inline]`

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]`

bool 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, and osgUtil::RenderToTextureStage.

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. Reimplemented in osgUtil::RenderToTextureStage.

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

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

| Reimplemented in osgUtil::RenderStage, and osgUtil::RenderToTextureStage.

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

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

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

void RenderBin::sort | ( |  | ) |

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

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

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

void 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]`

RenderGraphList osgUtil::RenderBin::_renderGraphList `[protected]`

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

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

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

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

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

- RenderBin
- RenderBin.cpp