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

osgUtil::RenderBin Class Reference

Inheritance diagram for osgUtil::RenderBin:

osg::Object osg::Referenced osgUtil::RenderStage osgUtil::RenderToTextureStage 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)
virtual osg::Object * cloneType () const
virtual osg::Object * clone (const osg::CopyOp &copyop) const
virtual bool isSameKindAs (const osg::Object *obj) const
virtual const char * libraryName () const
virtual const char * className () const
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)
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

osgUtil::RenderBin::RenderBin (  SortMode  mode = SORT_BY_STATE  ) 
 

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

static void osgUtil::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 osgUtil::RenderBin::copyLeavesFromRenderGraphListToRenderLeafList (   )  [protected]
 

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

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

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

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]
 

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]
 

static RenderBin* osgUtil::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 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, 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.

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

virtual void osgUtil::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 osgUtil::RenderBin::setSortMode (  SortMode  mode  ) 
 

void osgUtil::RenderBin::sort (   ) 
 

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

virtual void osgUtil::RenderBin::sortByState (   )  [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]
 

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 file:
Generated on Fri May 13 15:15:53 2005 for openscenegraph by  doxygen 1.4.2