#include <LodGrid.h>
Public Member Functions | |
| virtual void | Setup (const FPoint3 &origin, const FPoint3 &size, int iDimension, float fLODDistance, vtHeightField3d *pHF=NULL)=0 |
| bool | AddToGrid (osg::Node *pNode) |
| void | RemoveFromGrid (osg::Node *pNode) |
| virtual void | SetDistance (float fLODDistance)=0 |
| float | GetDistance () |
| int | GetDimension () |
| FPoint3 | GetCellSize () |
Protected Member Functions | |
| virtual osg::Group * | FindCellParent (const FPoint3 &point)=0 |
| virtual void | AllocateCell (int a, int b)=0 |
| virtual osg::Group * | GetCell (int a, int b)=0 |
| void | DetermineCell (const FPoint3 &pos, int &a, int &b) |
Protected Attributes | |
| FPoint3 | m_origin |
| FPoint3 | m_size |
| FPoint3 | m_step |
| int | m_dim |
| float | m_fLODDistance |
| vtHeightField3d * | m_pHeightField |
Additional Inherited Members | |
Public Attributes inherited from NodeExtension | |
| osg::Node * | m_pNode |
| bool | m_bCastShadow |
An LOD Grid is a useful way of grouping objects in your scene graph.
It implements a sparse 2D array of LOD nodes, which divide an area into a set of Cells. When objects (geometry, or other node types) are added to the LOD Grid, they are placed in the appropriate Cell. Each Cell has a distance at which the objects in that Cell are not drawn. This allows you to have a large number of objects in your scene, yet efficiently cull faraway objects. The distance can be accessed with SetDistance()/GetDistance().
The LOD Grid is particularly designed for terrain, since the Cell division is based on the horizontal (XZ) plane.
Since the LOD Grid is a specialized kind of vtGroup, you should call Release() on it rather than delete.
1.8.4