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

osg::LOD Class Reference

LOD - Level Of Detail group node which allows switching between children depending on distance from eye point. More...

Inheritance diagram for osg::LOD:

Inheritance graph
[legend]
List of all members.

Public Methods

 LOD ()
 LOD (const LOD &, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
 Copy constructor using CopyOp to manage deep vs shallow copy.

 META_Node (osg, LOD)
virtual void traverse (NodeVisitor &nv)
 Traverse downwards : calls children's accept method with NodeVisitor.

void setRange (const unsigned int index, const float range)
 Sets the value of range list element index to range which is a floating point distance specified in world coordinates.

const float getRange (const unsigned int index) const
 returns the range for specified index.

const unsigned int getNumRanges () const
 returns the number of ranges currently set.

void setCenter (const Vec3 &center)
 Sets the object-space point which defines the center of the osg::LOD.

const Vec3getCenter () const
 return the LOD center point.

void setEvaluateLODCallback (EvaluateLODCallback *cbc)
 Set the EvaluateLODCallback which allows users to attach customize computation of the the selection of LOD children.

EvaluateLODCallbackgetEvaluateLODCallback ()
 Get the non const ComputeBillboardCallback.

const EvaluateLODCallbackgetEvaluateLODCallback () const
 Get the const ComputeBillboardCallback.

const int evaluate (const Vec3 &eye_local, const float bias=1.0f) const
 return the child to traverse.

virtual const int evaluateLODChild (const Vec3 &eye_local, const float bias) const

Protected Types

typedef std::vector< float > RangeList

Protected Methods

virtual ~LOD ()

Protected Attributes

RangeList _rangeList
RangeList _rangeList2
ref_ptr< EvaluateLODCallback_evaluateLODCallback
Vec3 _center

Detailed Description

LOD - Level Of Detail group node which allows switching between children depending on distance from eye point.

Typical uses are for load balancing - objects further away from the eye point are rendered at a lower level of detail, and at times of high stress on the graphics pipeline lower levels of detail can also be chosen. The children are ordered from most detailed (for close up views) to the least (see from a distance), and a set of ranges are used to decide which LOD is used at different view distances, the criteria used is child 'i' is used when range[i]<dist<range[i+1] is true. This requires there to be n+1 range values where the number of children is n, since no maximum distance of infinity is assumed. If the number of range values (m) is insufficient then the children m through to n will be ignored, only 0..m-1 will be used during rendering.


Member Typedef Documentation

typedef std::vector<float> osg::LOD::RangeList [protected]
 


Constructor & Destructor Documentation

osg::LOD::LOD   [inline]
 

osg::LOD::LOD const LOD &   ,
const CopyOp   copyop = CopyOp::SHALLOW_COPY
 

Copy constructor using CopyOp to manage deep vs shallow copy.

virtual osg::LOD::~LOD   [inline, protected, virtual]
 


Member Function Documentation

const int osg::LOD::evaluate const Vec3   eye_local,
const float    bias = 1.0f
const [inline]
 

return the child to traverse.

Selected by the distance between the eye point in local coordinates and the LOD center, multiplied by the bias.

virtual const int osg::LOD::evaluateLODChild const Vec3   eye_local,
const float    bias
const [virtual]
 

const Vec3& osg::LOD::getCenter   const [inline]
 

return the LOD center point.

const EvaluateLODCallback* osg::LOD::getEvaluateLODCallback   const [inline]
 

Get the const ComputeBillboardCallback.

EvaluateLODCallback* osg::LOD::getEvaluateLODCallback   [inline]
 

Get the non const ComputeBillboardCallback.

const unsigned int osg::LOD::getNumRanges   const [inline]
 

returns the number of ranges currently set.

const float osg::LOD::getRange const unsigned int    index const [inline]
 

returns the range for specified index.

osg::LOD::META_Node osg   ,
LOD   
 

void osg::LOD::setCenter const Vec3   center [inline]
 

Sets the object-space point which defines the center of the osg::LOD.

center is affected by any transforms in the hierarchy above the osg::LOD.

void osg::LOD::setEvaluateLODCallback EvaluateLODCallback   cbc [inline]
 

Set the EvaluateLODCallback which allows users to attach customize computation of the the selection of LOD children.

void osg::LOD::setRange const unsigned int    index,
const float    range
 

Sets the value of range list element index to range which is a floating point distance specified in world coordinates.

Range list automatically expands to accommodate values beyond the current getNumRanges().

virtual void osg::LOD::traverse NodeVisitor   nv [virtual]
 

Traverse downwards : calls children's accept method with NodeVisitor.

Reimplemented from osg::Group.


Member Data Documentation

Vec3 osg::LOD::_center [protected]
 

ref_ptr<EvaluateLODCallback> osg::LOD::_evaluateLODCallback [protected]
 

RangeList osg::LOD::_rangeList [protected]
 

RangeList osg::LOD::_rangeList2 [protected]
 


The documentation for this class was generated from the following file:
Generated at Wed Sep 18 13:55:33 2002 for the Open Scene Graph by doxygen 1.2.16.