Inheritance diagram for osg::LOD:
Public Methods | |
LOD () | |
LOD (const LOD &, const CopyOp ©op=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 ¢er) |
Sets the object-space point which defines the center of the osg::LOD. | |
const Vec3 & | getCenter () 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. | |
EvaluateLODCallback * | getEvaluateLODCallback () |
Get the non const ComputeBillboardCallback. | |
const EvaluateLODCallback * | getEvaluateLODCallback () 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 |
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.
|
|
|
|
|
Copy constructor using CopyOp to manage deep vs shallow copy.
|
|
|
|
return the child to traverse. Selected by the distance between the eye point in local coordinates and the LOD center, multiplied by the bias. |
|
|
|
return the LOD center point.
|
|
Get the const ComputeBillboardCallback.
|
|
Get the non const ComputeBillboardCallback.
|
|
returns the number of ranges currently set.
|
|
returns the range for specified index.
|
|
|
|
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. |
|
Set the EvaluateLODCallback which allows users to attach customize computation of the the selection of LOD children.
|
|
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(). |
|
Traverse downwards : calls children's accept method with NodeVisitor.
Reimplemented from osg::Group. |
|
|
|
|
|
|
|
|