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

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()
[more]virtual const int evaluateLODChild(const Vec3& eye_local, const float bias) const

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 int getNumChildren() const
oinline Node* getChild( const int i )
oinline const Node* getChild( const 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


Inherited from Node:

Public Methods

ovirtual Object* cloneType() const
ovirtual Object* clone(const CopyOp& copyop) const
ovirtual bool isSameKindAs(const Object* obj) const
ovirtual const char* className() const
ovirtual void accept(NodeVisitor& nv)
ovirtual void ascend(NodeVisitor& nv)
oinline void setName( const std::string& name )
oinline void setName( const char* name )
oinline const std::string& getName() const
oinline const ParentList& getParents() const
oinline ParentList getParents()
oinline Group* getParent(const int i)
oinline const Group* getParent(const int i) const
oinline const int getNumParents() const
ovoid setAppCallback(NodeCallback* nc)
oinline NodeCallback* getAppCallback()
oinline const NodeCallback* getAppCallback() const
oinline const int getNumChildrenRequiringAppTraversal() const
ovoid setCullingActive(const bool active)
oinline const bool getCullingActive() const
oinline const int getNumChildrenWithCullingDisabled() const
oinline void setUserData(osg::Referenced* obj)
oinline Referenced* getUserData()
oinline const Referenced* getUserData() const
oinline void setNodeMask(const NodeMask nm)
oinline const NodeMask getNodeMask() const
oinline const DescriptionList& getDescriptions() const
oinline DescriptionList& getDescriptions()
oinline const std::string& getDescription(const int i) const
oinline std::string& getDescription(const int i)
oinline const int getNumDescriptions() const
ovoid addDescription(const std::string& desc)
oinline void setStateSet(osg::StateSet* dstate)
oinline osg::StateSet* getStateSet()
oinline const osg::StateSet* getStateSet() const
oinline const BoundingSphere& getBound() const
ovoid dirtyBound()

Public Members

otypedef std::vector<Group*> ParentList
otypedef std::vector<std::string> DescriptionList

Protected Fields

omutable BoundingSphere _bsphere
omutable bool _bsphere_computed
ostd::string _name
oParentList _parents
oref_ptr<NodeCallback> _appCallback
oint _numChildrenRequiringAppTraversal
obool _cullingActive
oint _numChildrenWithCullingDisabled
oosg::ref_ptr<Referenced> _userData
oNodeMask _nodeMask
oDescriptionList _descriptions
oref_ptr<StateSet> _dstate

Protected Methods

ovoid addParent(osg::Group* node)
ovoid removeParent(osg::Group* node)
ovoid setNumChildrenRequiringAppTraversal(const int num)
ovoid setNumChildrenWithCullingDisabled(const int num)


Inherited from Object:


Inherited from Referenced:

Public Methods

oinline Referenced& operator = (Referenced&)
oinline void ref() const
oinline void unref() const
oinline const int referenceCount() const

Protected Fields

omutable int _refCount


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(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 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
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 ~LOD()

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

otypedef std::vector<float> RangeList RangeList _rangeList

oRangeList _rangeList2

oref_ptr<EvaluateLODCallback> _evaluateLODCallback

oVec3 _center


Direct child classes:
Impostor
Friends:
struct osg::LOD::EvaluateLODCallback

Alphabetic index HTML hierarchy of classes or Java



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