## 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

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)
virtual bool addChild(Node* child)
virtual bool addChild(Node* child, float min, float max)
virtual bool removeChild(Node* child)
void setCenterMode(CenterMode mode)
CenterMode getCenterMode() const
inline void setCenter(const Vec3& center)
  Sets the object-space point which defines the center of the osg::LOD.
inline const Vec3& getCenter() const
  return the LOD center point.
void setRange(unsigned int childNo, float min, float max)
  Sets the min and max visible ranges of range of specifiec child.
inline float getMinRange(unsigned int childNo) const
  returns the min visible range for specified child
inline float getMaxRange(unsigned int childNo) const
  returns the max visible range for specified child
inline unsigned int getNumRanges() const
  returns the number of ranges currently set.
inline RangeList& getRangeList()
  return the list of MinMax ranges for each child
inline const RangeList& getRangeList() const
  return the list of MinMax ranges for each child

### Public Members

typedef std::pair<float,float> MinMaxPair
typedef std::vector<MinMaxPair> RangeList
enum CenterMode

### Protected Fields

CenterMode _centerMode
Vec3 _userDefinedCenter
RangeList _rangeList

### Protected Methods

virtual ~LOD()

### Inherited from Group:

### Public Methods

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

### Protected Fields

NodeList _children

### Protected Methods

virtual bool computeBound() const

### Inherited from Node:

### Public Methods

virtual Object* cloneType() const
virtual Object* clone(const CopyOp& copyop) const
virtual bool isSameKindAs(const Object* obj) const
virtual const char* libraryName() const
virtual const char* className() const
virtual Transform* asTransform()
virtual const Transform* asTransform() const
virtual void accept(NodeVisitor& nv)
virtual void ascend(NodeVisitor& nv)
inline void setName( const std::string& name )
inline void setName( const char* name )
inline const std::string& getName() const
inline const ParentList& getParents() const
inline ParentList getParents()
inline Group* getParent(unsigned int i)
inline const Group* getParent(unsigned int i) const
inline unsigned int getNumParents() const
void setUpdateCallback(NodeCallback* nc)
inline NodeCallback* getUpdateCallback()
inline const NodeCallback* getUpdateCallback() const
inline unsigned int getNumChildrenRequiringUpdateTraversal() const
void setCullCallback(NodeCallback* nc)
inline NodeCallback* getCullCallback()
inline const NodeCallback* getCullCallback() const
void setCullingActive(bool active)
inline bool getCullingActive() const
inline unsigned int getNumChildrenWithCullingDisabled() const
inline bool isCullingActive() const
inline unsigned int getNumChildrenWithOccluderNodes() const
bool containsOccluderNodes() const
inline void setNodeMask(NodeMask nm)
inline NodeMask getNodeMask() const
inline const DescriptionList& getDescriptions() const
inline DescriptionList& getDescriptions()
inline const std::string& getDescription(unsigned int i) const
inline std::string& getDescription(unsigned int i)
inline unsigned int getNumDescriptions() const
void addDescription(const std::string& desc)
inline void setStateSet(osg::StateSet* dstate)
osg::StateSet* getOrCreateStateSet()
inline osg::StateSet* getStateSet()
inline const osg::StateSet* getStateSet() const
inline const BoundingSphere& getBound() const
void dirtyBound()

### Public Members

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

### Protected Fields

mutable BoundingSphere _bsphere
mutable bool _bsphere_computed
std::string _name
ParentList _parents
ref_ptr<NodeCallback> _updateCallback
unsigned int _numChildrenRequiringUpdateTraversal
ref_ptr<NodeCallback> _cullCallback
bool _cullingActive
unsigned int _numChildrenWithCullingDisabled
unsigned int _numChildrenWithOccluderNodes
NodeMask _nodeMask
DescriptionList _descriptions
ref_ptr<StateSet> _stateset

### Protected Methods

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

### Inherited from Object:

### Public Methods

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

### Public Members

enum DataVariance

### Protected Fields

DataVariance _dataVariance
ref_ptr<Referenced> _userData

### Inherited from Referenced:

### Public Methods

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

### Protected Fields

mutable 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]
> `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)`

> `virtual bool addChild(Node* child)`

> `virtual bool addChild(Node* child, float min, float max)`

> `virtual bool removeChild(Node* child)`

> `typedef std::pair<float,float> MinMaxPair`

> `typedef std::vector<MinMaxPair> RangeList`

> `enum CenterMode`

> `USE_BOUNDING_SPHERE_CENTER`

> `USER_DEFINED_CENTER`

> `void setCenterMode(CenterMode mode)`

> `CenterMode getCenterMode() const`

> `inline 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.

> `inline const Vec3& getCenter() const`
>   return the LOD center point.

> `void 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.

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

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

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

> `inline RangeList& getRangeList()`
>   return the list of MinMax ranges for each child

> `inline const RangeList& getRangeList() const`
>   return the list of MinMax ranges for each child

> `virtual ~LOD()`

> `CenterMode _centerMode`

> `Vec3 _userDefinedCenter`

> `RangeList _rangeList`

> Direct child classes:
>   PagedLOD
>   Impostor

> Alphabetic index HTML hierarchy of classes or Java

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