class SG_EXPORT osg::LOD

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

Inheritance:


Public Methods

[more] LOD()
[more] LOD(const LOD&, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy
[more] META_Node(osg, LOD)
[more]virtual void traverse(NodeVisitor& nv)
[more]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.
[more]inline const float getRange(const unsigned int index) const
returns the range for specified index
[more]inline const unsigned int getNumRanges() const
returns the number of ranges currently set
[more]inline void setCenter(const Vec3 &center)
Sets the object-space point which defines the center of the osg::LOD.
[more]inline const Vec3& getCenter() const
return the LOD center point.
[more]void setEvaluateLODCallback(EvaluateLODCallback* cbc)
Set the EvaluateLODCallback which allows users to attach customize computation of the the selection of LOD children
[more]EvaluateLODCallback* getEvaluateLODCallback()
Get the non const ComputeBillboardCallback
[more]const EvaluateLODCallback* getEvaluateLODCallback() const
Get the const ComputeBillboardCallback
[more]inline const int evaluate(const Vec3& eye_local, const float bias=1.0f) const
return the child to traverse.
[more]virtual const int evaluateLODChild(const Vec3& eye_local, const float bias) const

Public Members

[more]struct EvaluateLODCallback: public osg::Referenced
Callback attached to an LOD which allows the users to customize the selection of LOD children

Protected Fields

[more]RangeList _rangeList2
[more]ref_ptr<EvaluateLODCallback> _evaluateLODCallback
[more]Vec3 _center

Protected Methods

[more]virtual ~LOD()

Protected Members

[more]typedef std::vector<float> RangeList RangeList _rangeList


Inherited from Group:

Public Methods

ovirtual bool addChild( Node* child )
ovirtual bool removeChild( Node* child )
ovirtual bool replaceChild( Node* origChild, Node* newChild )
oinline const unsigned int getNumChildren() const
oinline Node* getChild( const unsigned int i )
oinline const Node* getChild( const unsigned int i ) const
oinline bool containsNode( const Node* node ) const
oinline ChildList::iterator findNode( const Node* node )
oinline ChildList::const_iterator findNode( const Node* node ) const

Protected Fields

oChildList _children

Protected Methods

ovirtual const bool computeBound() const


Documentation

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]
o LOD()

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

o META_Node(osg, LOD)

ovirtual void traverse(NodeVisitor& nv)

ovoid 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().

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

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

oinline void setCenter(const Vec3 &center)
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.

oinline const Vec3& getCenter() const
return the LOD center point.

ostruct EvaluateLODCallback: public osg::Referenced
Callback attached to an LOD which allows the users to customize the selection of LOD children

ovirtual const int evaluateLODChild(const osg::LOD* lod, const Vec3& eye_local, const float bias) const = 0
Compute the child to select

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

oEvaluateLODCallback* getEvaluateLODCallback()
Get the non const ComputeBillboardCallback

oconst EvaluateLODCallback* getEvaluateLODCallback() const
Get the const ComputeBillboardCallback

oinline const int evaluate(const Vec3& eye_local, const float bias=1.0f) const
return the child to traverse. Selected by the distance between the eye point in local coordinates and the LOD center, multiplied by the bias.

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

ovirtual ~LOD()

otypedef std::vector<float> RangeList RangeList _rangeList

oRangeList _rangeList2

oref_ptr<EvaluateLODCallback> _evaluateLODCallback

oVec3 _center


Direct child classes:
Impostor

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.