class SG_EXPORT osg::LOD

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

Inheritance:


Public Classes

[more]enum CenterMode
Modes which control how the center of object should be determined when computed which child is active
[more]enum RangeMode
Modes that control how the range values should be intepreted when computing which child is active

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]virtual bool addChild(Node* child)
[more]virtual bool addChild(Node* child, float min, float max)
[more]virtual bool removeChild(Node* child)
[more]void setCenterMode(CenterMode mode)
Set how the center of object should be determined when computed which child is active
[more]CenterMode getCenterMode() const
Get how the center of object should be determined when computed which child is active
[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]inline void setRadius(float radius)
Set the object-space reference radius of the volume enclosed by the LOD.
[more]inline float getRadius() const
Get the object-space radius of the volume enclosed by the LOD
[more]void setRangeMode(RangeMode mode)
Set how the range values should be intepreted when computing which child is active
[more]RangeMode getRangeMode() const
Get how the range values should be intepreted when computing which child is active
[more]void setRange(unsigned int childNo, float min, float max)
Sets the min and max visible ranges of range of specifiec child.
[more]inline float getMinRange(unsigned int childNo) const
returns the min visible range for specified child
[more]inline float getMaxRange(unsigned int childNo) const
returns the max visible range for specified child
[more]inline unsigned int getNumRanges() const
returns the number of ranges currently set.
[more]inline const RangeList& getRangeList() const
return the list of MinMax ranges for each child

Public

[more]typedef std::pair<float,float> MinMaxPair
[more]typedef std::vector<MinMaxPair> RangeList

Protected Fields

[more]CenterMode _centerMode
[more]Vec3 _userDefinedCenter
[more]float _radius
[more]RangeMode _rangeMode
[more]RangeList _rangeList

Protected Methods

[more]virtual ~LOD()
[more]virtual bool computeBound() const
[more]virtual void childRemoved(unsigned int pos, unsigned int numChildrenToRemove)
[more]virtual void childInserted(unsigned int pos)
[more]virtual void rangeRemoved(unsigned int , unsigned int )
[more]virtual void rangeInserted(unsigned int )


Inherited from Group:

Public Methods

ovirtual Group* asGroup()
ovirtual const Group* asGroup() const
ovirtual bool insertChild( unsigned int index, Node* child )
ovirtual bool replaceChild( Node* origChild, Node* newChild )
oinline unsigned int getNumChildren() const
ovirtual bool setChild( unsigned int i, Node* node )
oinline Node* getChild( unsigned int i )
oinline const Node* getChild( unsigned int i ) const
oinline bool containsNode( const Node* node ) const
oinline unsigned int getChildIndex( const Node* node ) const

Protected Fields

oNodeList _children


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* libraryName() const
ovirtual const char* className() const
ovirtual Transform* asTransform()
ovirtual const Transform* asTransform() 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(unsigned int i)
oinline const Group* getParent(unsigned int i) const
oinline unsigned int getNumParents() const
ovoid setUpdateCallback(NodeCallback* nc)
oinline NodeCallback* getUpdateCallback()
oinline const NodeCallback* getUpdateCallback() const
oinline unsigned int getNumChildrenRequiringUpdateTraversal() const
ovoid setCullCallback(NodeCallback* nc)
oinline NodeCallback* getCullCallback()
oinline const NodeCallback* getCullCallback() const
ovoid setCullingActive(bool active)
oinline bool getCullingActive() const
oinline unsigned int getNumChildrenWithCullingDisabled() const
oinline bool isCullingActive() const
oinline unsigned int getNumChildrenWithOccluderNodes() const
obool containsOccluderNodes() const
oinline void setNodeMask(NodeMask nm)
oinline NodeMask getNodeMask() const
oinline const DescriptionList& getDescriptions() const
oinline DescriptionList& getDescriptions()
oinline const std::string& getDescription(unsigned int i) const
oinline std::string& getDescription(unsigned int i)
oinline unsigned int getNumDescriptions() const
ovoid addDescription(const std::string& desc)
oinline void setStateSet(osg::StateSet* dstate)
oosg::StateSet* getOrCreateStateSet()
oinline osg::StateSet* getStateSet()
oinline const osg::StateSet* getStateSet() const
oinline const BoundingSphere& getBound() const
ovoid dirtyBound()

Public

otypedef std::vector<Group*> ParentList
otypedef unsigned int NodeMask
otypedef std::vector<std::string> DescriptionList

Protected Fields

omutable BoundingSphere _bsphere
omutable bool _bsphere_computed
ostd::string _name
oParentList _parents
oref_ptr<NodeCallback> _updateCallback
ounsigned int _numChildrenRequiringUpdateTraversal
oref_ptr<NodeCallback> _cullCallback
obool _cullingActive
ounsigned int _numChildrenWithCullingDisabled
ounsigned int _numChildrenWithOccluderNodes
oNodeMask _nodeMask
oDescriptionList _descriptions
oref_ptr<StateSet> _stateset

Protected Methods

ovoid addParent(osg::Group* node)
ovoid removeParent(osg::Group* node)
ovoid setNumChildrenRequiringUpdateTraversal(unsigned int num)
ovoid setNumChildrenWithCullingDisabled(unsigned int num)
ovoid setNumChildrenWithOccluderNodes(unsigned int num)


Inherited from Object:

Public Classes

oenum DataVariance

Public Methods

oinline void setDataVariance(DataVariance dv)
oinline DataVariance getDataVariance() const
oinline void setUserData(Referenced* obj)
oinline Referenced* getUserData()
oinline const Referenced* getUserData() const

Protected Fields

oDataVariance _dataVariance
oref_ptr<Referenced> _userData


Inherited from Referenced:

Public Methods

oinline Referenced& operator = (const Referenced&)
ostatic void setDeleteHandler(DeleteHandler* handler)
ostatic DeleteHandler* getDeleteHandler()
oinline void ref() const
oinline void unref_nodelete() const
oinline int referenceCount() const
oinline void unref() const

Protected Fields

omutable OpenThreads::Mutex _refMutex
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(osg, LOD)

ovirtual void traverse(NodeVisitor& nv)

ovirtual bool addChild(Node* child)

ovirtual bool addChild(Node* child, float min, float max)

ovirtual bool removeChild(Node* child)

otypedef std::pair<float,float> MinMaxPair

otypedef std::vector<MinMaxPair> RangeList

oenum CenterMode
Modes which control how the center of object should be determined when computed which child is active

o USE_BOUNDING_SPHERE_CENTER

o USER_DEFINED_CENTER

ovoid setCenterMode(CenterMode mode)
Set how the center of object should be determined when computed which child is active

oCenterMode getCenterMode() const
Get how the center of object should be determined when computed which child is active

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.

oinline void setRadius(float radius)
Set the object-space reference radius of the volume enclosed by the LOD. Used to detmine the bounding sphere of the LOD in the absense of any children.

oinline float getRadius() const
Get the object-space radius of the volume enclosed by the LOD

oenum RangeMode
Modes that control how the range values should be intepreted when computing which child is active

o DISTANCE_FROM_EYE_POINT

o PIXEL_SIZE_ON_SCREEN

ovoid setRangeMode(RangeMode mode)
Set how the range values should be intepreted when computing which child is active

oRangeMode getRangeMode() const
Get how the range values should be intepreted when computing which child is active

ovoid setRange(unsigned int childNo, float min, float max)
Sets the min and max visible ranges of range of specifiec child. Values are floating point distance specified in local objects coordinates.

oinline float getMinRange(unsigned int childNo) const
returns the min visible range for specified child

oinline float getMaxRange(unsigned int childNo) const
returns the max visible range for specified child

oinline unsigned int getNumRanges() const
returns the number of ranges currently set. An LOD which has been fully set up will have getNumChildren()==getNumRanges().

oinline const RangeList& getRangeList() const
return the list of MinMax ranges for each child

ovirtual ~LOD()

ovirtual bool computeBound() const

ovirtual void childRemoved(unsigned int pos, unsigned int numChildrenToRemove)

ovirtual void childInserted(unsigned int pos)

ovirtual void rangeRemoved(unsigned int , unsigned int )

ovirtual void rangeInserted(unsigned int )

oCenterMode _centerMode

oVec3 _userDefinedCenter

ofloat _radius

oRangeMode _rangeMode

oRangeList _rangeList


Direct child classes:
PagedLOD
Impostor

Alphabetic index HTML hierarchy of classes or Java



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