OGRE  2.0
Object-Oriented Graphics Rendering Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Ogre::TerrainQuadTreeNode Class Reference

A node in a quad tree used to store a patch of terrain. More...

#include <OgreTerrainQuadTreeNode.h>

+ Inheritance diagram for Ogre::TerrainQuadTreeNode:
+ Collaboration diagram for Ogre::TerrainQuadTreeNode:

Classes

struct  LodLevel
 
class  Movable
 MovableObject implementation to provide the hook to the scene. More...
 
class  Rend
 Hook to the render queue. More...
 
struct  VertexDataRecord
 

Public Types

typedef vector< LodLevel * >::type LodLevelList
 

Public Member Functions

 TerrainQuadTreeNode (ObjectMemoryManager *objectMemoryManager, Terrain *terrain, TerrainQuadTreeNode *parent, uint16 xoff, uint16 yoff, uint16 size, uint16 lod, uint16 depth, uint16 quadrant)
 Constructor. More...
 
virtual ~TerrainQuadTreeNode ()
 
Renderable_getRenderable ()
 Returns the internal renderable object for this node. More...
 
void assignVertexData (uint16 treeDepthStart, uint16 treeDepthEnd, uint16 resolution, uint sz)
 Assign vertex data to the tree, from a depth and at a given resolution. More...
 
bool calculateCurrentLod (const Camera *cam, Real cFactor)
 Calculate appropriate LOD for this node and children. More...
 
void finaliseDeltaValues (const Rect &rect)
 Promote the delta values calculated to the runtime ones (this must be called in the main thread). More...
 
const AxisAlignedBoxgetAABB () const
 Get the AABB (local coords) of this node. More...
 
uint16 getBaseLod () const
 Get the base LOD level this node starts at (the highest LOD it handles) More...
 
Real getBoundingRadius () const
 Get the bounding radius of this node. More...
 
TerrainQuadTreeNodegetChild (unsigned short child) const
 Get child node. More...
 
int getCurrentLod () const
 Get the current LOD index (only valid after calculateCurrentLod) More...
 
const Vector3getLocalCentre () const
 Get the local centre of this node, relative to parent terrain centre. More...
 
uint16 getLodCount () const
 Get the number of LOD levels this node can represent itself (only > 1 for leaf nodes) More...
 
const LodLevelgetLodLevel (uint16 lod)
 Get the LodLevel information for a given lod. More...
 
float getLodTransition () const
 Get the transition state between the current LOD and the next lower one (only valid after calculateCurrentLod) More...
 
Real getMaxHeight () const
 Get the maximum height of the node. More...
 
Real getMinHeight () const
 Get the minimum height of the node. More...
 
TerrainQuadTreeNodegetParent () const
 Get parent node. More...
 
TerraingetTerrain () const
 Get ultimate parent terrain. More...
 
uint16 getXOffset () const
 Get the horizontal offset into the main terrain data of this node. More...
 
uint16 getYOffset () const
 Get the vertical offset into the main terrain data of this node. More...
 
bool isLeaf () const
 Is this a leaf node (no children) More...
 
bool isRenderedAtCurrentLod () const
 Returns whether this node is rendering itself at the current LOD level. More...
 
bool isSelfOrChildRenderedAtCurrentLod () const
 Returns whether this node or its children are being rendered at the current LOD level. More...
 
void load ()
 Load node and children (perform GPU tasks, will be render thread) More...
 
void load (uint16 depthStart, uint16 depthEnd)
 Load node and children in a depth range (perform GPU tasks, will be render thread) More...
 
void loadSelf ()
 
void mergeIntoBounds (long x, long y, const Vector3 &pos)
 Merge a point (relative to terrain node) into the local bounds, and that of children if applicable. More...
 
void notifyDelta (uint16 x, uint16 y, uint16 lod, Real delta)
 Notify the node (and children) of a height delta value. More...
 
void notifyMaterialChanged (void)
 Called when the Terrain changes its material. More...
 
void operator delete (void *ptr)
 
void operator delete (void *ptr, void *)
 
void operator delete (void *ptr, const char *, int, const char *)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, const char *, int, const char *)
 
void * operator new (size_t sz, const char *file, int line, const char *func)
 operator new, with debug line info More...
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *ptr)
 placement operator new More...
 
void * operator new[] (size_t sz, const char *file, int line, const char *func)
 array operator new, with debug line info More...
 
void * operator new[] (size_t sz)
 
bool pointIntersectsNode (long x, long y)
 Returns true if the given point is in the terrain area that this node references. More...
 
void postDeltaCalculation (const Rect &rect)
 Notify the node (and children) that deltas have finished being calculated. More...
 
void preDeltaCalculation (const Rect &rect)
 Notify the node (and children) that deltas are going to be calculated for a given range. More...
 
void prepare ()
 Prepare node and children (perform CPU tasks, may be background thread) More...
 
void prepare (StreamSerialiser &stream)
 Prepare node from a stream. More...
 
bool rectContainsNode (const Rect &rect)
 Returns true if the given rectangle completely contains the terrain area that this node references. More...
 
bool rectIntersectsNode (const Rect &rect)
 Returns true if the given rectangle overlaps the terrain area that this node references. More...
 
void resetBounds (const Rect &rect)
 Reset the bounds of this node and all its children for the region given. More...
 
void save (StreamSerialiser &stream)
 Save node to a stream. More...
 
void setCurrentLod (int lod)
 Manually set the current LOD, intended for internal use only. More...
 
void setLodTransition (float t)
 Manually set the current LOD transition state, intended for internal use only. More...
 
void unload ()
 Unload node and children (perform GPU tasks, will be render thread) More...
 
void unload (uint16 depthStart, uint16 depthEnd)
 Unload node and children in a depth range (perform GPU tasks, will be render thread) More...
 
void unprepare ()
 Unprepare node and children (perform CPU tasks, may be background thread) More...
 
void updateVertexData (bool positions, bool deltas, const Rect &rect, bool cpuData)
 Tell the node to update its vertex data for a given region. More...
 
void useAncestorVertexData (TerrainQuadTreeNode *owner, uint16 treeDepthEnd, uint16 resolution)
 Tell a node that it should use an anscestor's vertex data. More...
 

Static Public Attributes

static unsigned short DELTA_BUFFER
 Buffer binding used for holding delta values. More...
 
static unsigned short POSITION_BUFFER
 Buffer binding used for holding positions. More...
 

Protected Member Functions

uint16 calcSkirtVertexIndex (uint16 mainIndex, bool isCol)
 
void createCpuVertexData ()
 
void createGpuIndexData ()
 
void createGpuVertexData ()
 
void destroyCpuVertexData ()
 
void destroyGpuIndexData ()
 
void destroyGpuVertexData ()
 
bool getCastsShadows (void) const
 
const LightListgetLights (void) const
 
const MaterialPtrgetMaterial (void) const
 
void getRenderOperation (RenderOperation &op)
 
Real getSquaredViewDepth (const Camera *cam) const
 
TechniquegetTechnique (void) const
 
const VertexDataRecordgetVertexDataRecord () const
 
void getWorldTransforms (Matrix4 *xform) const
 
void populateIndexData (uint16 batchSize, IndexData *destData)
 
void updateGpuVertexData ()
 
void updateRenderQueue (RenderQueue *queue)
 
void updateVertexBuffer (HardwareVertexBufferSharedPtr &posbuf, HardwareVertexBufferSharedPtr &deltabuf, const Rect &rect)
 
void visitRenderables (Renderable::Visitor *visitor, bool debugRenderables=false)
 
void writeDeltaVertex (bool compress, uint16 x, uint16 y, float delta, float deltaThresh, float **ppDelta)
 
void writePosVertex (bool compress, uint16 x, uint16 y, float height, const Vector3 &pos, float uvScale, float **ppPos)
 

Protected Attributes

AxisAlignedBox mAABB
 Relative to terrain centre. More...
 
uint16 mBaseLod
 
uint16 mBoundaryX
 
uint16 mBoundaryY
 
Real mBoundingRadius
 Relative to mLocalCentre. More...
 
TerrainQuadTreeNodemChildren [4]
 
TerrainQuadTreeNodemChildWithMaxHeightDelta
 0-1 transition to lower LOD More...
 
int mCurrentLod
 Relative to mLocalCentre. More...
 
uint16 mDepth
 
Vector3 mLocalCentre
 
SceneNodemLocalNode
 
LodLevelList mLodLevels
 
float mLodTransition
 -1 = none (do not render) More...
 
MovablemMovable
 
TerrainQuadTreeNodemNodeWithVertexData
 
uint16 mOffsetX
 
uint16 mOffsetY
 
TerrainQuadTreeNodemParent
 
uint16 mQuadrant
 
RendmRend
 
bool mSelfOrChildRendered
 
uint16 mSize
 The number of vertices at the original terrain resolution this node encompasses. More...
 
TerrainmTerrain
 
VertexDataRecordmVertexDataRecord
 

Friends

class Movable
 
class Rend
 

Detailed Description

A node in a quad tree used to store a patch of terrain.

Remarks
Algorithm overview:
Our goal is to perform traditional chunked LOD with geomorphing. But, instead of just dividing the terrain into tiles, we will divide them into a hierarchy of tiles, a quadtree, where any level of the quadtree can be a rendered tile (to the exclusion of its children). The idea is to collect together children into a larger batch with their siblings as LOD decreases, to improve performance.
The minBatchSize and maxBatchSize parameters on Terrain a key to defining this behaviour. Both values are expressed in vertices down one axis. maxBatchSize determines the number of tiles on one side of the terrain, which is numTiles = (terrainSize-1) / (maxBatchSize-1). This in turn determines the depth of the quad tree, which is sqrt(numTiles). The minBatchSize determines the 'floor' of how low the number of vertices can go in a tile before it has to be grouped together with its siblings to drop any lower. We also do not group a tile with its siblings unless all of them are at this minimum batch size, rather than trying to group them when they all end up on the same 'middle' LOD; this is for several reasons; firstly, tiles hitting the same 'middle' LOD is less likely and more transient if they have different levels of 'roughness', and secondly since we're sharing a vertex / index pool between all tiles, only grouping at the min level means that the number of combinations of buffer sizes for any one tile is greatly simplified, making it easier to pool data. To be more specific, any tile / quadtree node can only have log2(maxBatchSize-1) - log2(minBatchSize-1) + 1 LOD levels (and if you set them to the same value, LOD can only change by going up/down the quadtree). The numbers of vertices / indices in each of these levels is constant for the same (relative) LOD index no matter where you are in the tree, therefore buffers can potentially be reused more easily.

Definition at line 82 of file OgreTerrainQuadTreeNode.h.

Member Typedef Documentation

Constructor & Destructor Documentation

Ogre::TerrainQuadTreeNode::TerrainQuadTreeNode ( ObjectMemoryManager objectMemoryManager,
Terrain terrain,
TerrainQuadTreeNode parent,
uint16  xoff,
uint16  yoff,
uint16  size,
uint16  lod,
uint16  depth,
uint16  quadrant 
)

Constructor.

Parameters
terrainThe ultimate parent terrain
parentOptional parent node (in which case xoff, yoff are 0 and size must be entire terrain)
xoff,yoffOffsets from the start of the terrain data in 2D
sizeThe size of the node in vertices at the highest LOD
lodThe base LOD level
depthThe depth that this node is at in the tree (or convenience)
quadrantThe index of the quadrant (0, 1, 2, 3)
virtual Ogre::TerrainQuadTreeNode::~TerrainQuadTreeNode ( )
virtual

Member Function Documentation

Renderable* Ogre::TerrainQuadTreeNode::_getRenderable ( )

Returns the internal renderable object for this node.

void Ogre::TerrainQuadTreeNode::assignVertexData ( uint16  treeDepthStart,
uint16  treeDepthEnd,
uint16  resolution,
uint  sz 
)

Assign vertex data to the tree, from a depth and at a given resolution.

Parameters
treeDepthStartThe first depth of tree that should use this data, owns the data
treeDepthEndThe end of the depth that should use this data (exclusive)
resolutionThe resolution of the data to use (compared to full terrain)
szThe size of the data along one edge
uint16 Ogre::TerrainQuadTreeNode::calcSkirtVertexIndex ( uint16  mainIndex,
bool  isCol 
)
protected
bool Ogre::TerrainQuadTreeNode::calculateCurrentLod ( const Camera cam,
Real  cFactor 
)

Calculate appropriate LOD for this node and children.

Parameters
camThe camera to be used (this should already be the LOD camera)
cFactorThe cFactor which incorporates the viewport size, max pixel error and lod bias
Returns
true if this node or any of its children were selected for rendering
void Ogre::TerrainQuadTreeNode::createCpuVertexData ( )
protected
void Ogre::TerrainQuadTreeNode::createGpuIndexData ( )
protected
void Ogre::TerrainQuadTreeNode::createGpuVertexData ( )
protected
void Ogre::TerrainQuadTreeNode::destroyCpuVertexData ( )
protected
void Ogre::TerrainQuadTreeNode::destroyGpuIndexData ( )
protected
void Ogre::TerrainQuadTreeNode::destroyGpuVertexData ( )
protected
void Ogre::TerrainQuadTreeNode::finaliseDeltaValues ( const Rect rect)

Promote the delta values calculated to the runtime ones (this must be called in the main thread).

const AxisAlignedBox& Ogre::TerrainQuadTreeNode::getAABB ( ) const

Get the AABB (local coords) of this node.

uint16 Ogre::TerrainQuadTreeNode::getBaseLod ( ) const
inline

Get the base LOD level this node starts at (the highest LOD it handles)

Definition at line 105 of file OgreTerrainQuadTreeNode.h.

Real Ogre::TerrainQuadTreeNode::getBoundingRadius ( ) const

Get the bounding radius of this node.

bool Ogre::TerrainQuadTreeNode::getCastsShadows ( void  ) const
protected
TerrainQuadTreeNode* Ogre::TerrainQuadTreeNode::getChild ( unsigned short  child) const

Get child node.

int Ogre::TerrainQuadTreeNode::getCurrentLod ( ) const
inline

Get the current LOD index (only valid after calculateCurrentLod)

Definition at line 248 of file OgreTerrainQuadTreeNode.h.

const LightList& Ogre::TerrainQuadTreeNode::getLights ( void  ) const
protected
const Vector3& Ogre::TerrainQuadTreeNode::getLocalCentre ( ) const
inline

Get the local centre of this node, relative to parent terrain centre.

Definition at line 234 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::getLodCount ( ) const

Get the number of LOD levels this node can represent itself (only > 1 for leaf nodes)

const LodLevel* Ogre::TerrainQuadTreeNode::getLodLevel ( uint16  lod)

Get the LodLevel information for a given lod.

Parameters
lodThe lod level index relative to this classes own list; if you want to use a global lod level, subtract getBaseLod() first. Higher LOD levels are lower detail.
float Ogre::TerrainQuadTreeNode::getLodTransition ( ) const
inline

Get the transition state between the current LOD and the next lower one (only valid after calculateCurrentLod)

Definition at line 256 of file OgreTerrainQuadTreeNode.h.

const MaterialPtr& Ogre::TerrainQuadTreeNode::getMaterial ( void  ) const
protected
Real Ogre::TerrainQuadTreeNode::getMaxHeight ( ) const

Get the maximum height of the node.

Real Ogre::TerrainQuadTreeNode::getMinHeight ( ) const

Get the minimum height of the node.

TerrainQuadTreeNode* Ogre::TerrainQuadTreeNode::getParent ( ) const

Get parent node.

void Ogre::TerrainQuadTreeNode::getRenderOperation ( RenderOperation op)
protected
Real Ogre::TerrainQuadTreeNode::getSquaredViewDepth ( const Camera cam) const
protected
Technique* Ogre::TerrainQuadTreeNode::getTechnique ( void  ) const
protected
Terrain* Ogre::TerrainQuadTreeNode::getTerrain ( ) const

Get ultimate parent terrain.

const VertexDataRecord* Ogre::TerrainQuadTreeNode::getVertexDataRecord ( ) const
protected
void Ogre::TerrainQuadTreeNode::getWorldTransforms ( Matrix4 xform) const
protected
uint16 Ogre::TerrainQuadTreeNode::getXOffset ( ) const
inline

Get the horizontal offset into the main terrain data of this node.

Definition at line 99 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::getYOffset ( ) const
inline

Get the vertical offset into the main terrain data of this node.

Definition at line 101 of file OgreTerrainQuadTreeNode.h.

bool Ogre::TerrainQuadTreeNode::isLeaf ( ) const

Is this a leaf node (no children)

bool Ogre::TerrainQuadTreeNode::isRenderedAtCurrentLod ( ) const

Returns whether this node is rendering itself at the current LOD level.

bool Ogre::TerrainQuadTreeNode::isSelfOrChildRenderedAtCurrentLod ( ) const

Returns whether this node or its children are being rendered at the current LOD level.

void Ogre::TerrainQuadTreeNode::load ( )

Load node and children (perform GPU tasks, will be render thread)

void Ogre::TerrainQuadTreeNode::load ( uint16  depthStart,
uint16  depthEnd 
)

Load node and children in a depth range (perform GPU tasks, will be render thread)

void Ogre::TerrainQuadTreeNode::loadSelf ( )
void Ogre::TerrainQuadTreeNode::mergeIntoBounds ( long  x,
long  y,
const Vector3 pos 
)

Merge a point (relative to terrain node) into the local bounds, and that of children if applicable.

Parameters
x,yThe point on the terrain to which this position corresponds (affects which nodes update their bounds)
posThe position relative to the terrain centre
void Ogre::TerrainQuadTreeNode::notifyDelta ( uint16  x,
uint16  y,
uint16  lod,
Real  delta 
)

Notify the node (and children) of a height delta value.

void Ogre::TerrainQuadTreeNode::notifyMaterialChanged ( void  )

Called when the Terrain changes its material.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr)
inlineinherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
void *   
)
inlineinherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete ( void *  ptr,
const char *  ,
int  ,
const char *   
)
inlineinherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr)
inlineinherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void Ogre::AllocatedObject< Alloc >::operator delete[] ( void *  ptr,
const char *  ,
int  ,
const char *   
)
inlineinherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
const char *  file,
int  line,
const char *  func 
)
inlineinherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz)
inlineinherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new ( size_t  sz,
void *  ptr 
)
inlineinherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz,
const char *  file,
int  line,
const char *  func 
)
inlineinherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

template<class Alloc >
void* Ogre::AllocatedObject< Alloc >::operator new[] ( size_t  sz)
inlineinherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

bool Ogre::TerrainQuadTreeNode::pointIntersectsNode ( long  x,
long  y 
)

Returns true if the given point is in the terrain area that this node references.

Parameters
x,yThe point in top-level terrain coords
void Ogre::TerrainQuadTreeNode::populateIndexData ( uint16  batchSize,
IndexData destData 
)
protected
void Ogre::TerrainQuadTreeNode::postDeltaCalculation ( const Rect rect)

Notify the node (and children) that deltas have finished being calculated.

void Ogre::TerrainQuadTreeNode::preDeltaCalculation ( const Rect rect)

Notify the node (and children) that deltas are going to be calculated for a given range.

Remarks
Based on this call, we can know whether or not to reset the max height.
void Ogre::TerrainQuadTreeNode::prepare ( )

Prepare node and children (perform CPU tasks, may be background thread)

void Ogre::TerrainQuadTreeNode::prepare ( StreamSerialiser stream)

Prepare node from a stream.

bool Ogre::TerrainQuadTreeNode::rectContainsNode ( const Rect rect)

Returns true if the given rectangle completely contains the terrain area that this node references.

Parameters
rectThe region in top-level terrain coords
bool Ogre::TerrainQuadTreeNode::rectIntersectsNode ( const Rect rect)

Returns true if the given rectangle overlaps the terrain area that this node references.

Parameters
rectThe region in top-level terrain coords
void Ogre::TerrainQuadTreeNode::resetBounds ( const Rect rect)

Reset the bounds of this node and all its children for the region given.

Parameters
rectThe region for which bounds should be reset, in top-level terrain coords
void Ogre::TerrainQuadTreeNode::save ( StreamSerialiser stream)

Save node to a stream.

void Ogre::TerrainQuadTreeNode::setCurrentLod ( int  lod)

Manually set the current LOD, intended for internal use only.

void Ogre::TerrainQuadTreeNode::setLodTransition ( float  t)

Manually set the current LOD transition state, intended for internal use only.

void Ogre::TerrainQuadTreeNode::unload ( )

Unload node and children (perform GPU tasks, will be render thread)

void Ogre::TerrainQuadTreeNode::unload ( uint16  depthStart,
uint16  depthEnd 
)

Unload node and children in a depth range (perform GPU tasks, will be render thread)

void Ogre::TerrainQuadTreeNode::unprepare ( )

Unprepare node and children (perform CPU tasks, may be background thread)

void Ogre::TerrainQuadTreeNode::updateGpuVertexData ( )
protected
void Ogre::TerrainQuadTreeNode::updateRenderQueue ( RenderQueue queue)
protected
void Ogre::TerrainQuadTreeNode::updateVertexBuffer ( HardwareVertexBufferSharedPtr posbuf,
HardwareVertexBufferSharedPtr deltabuf,
const Rect rect 
)
protected
void Ogre::TerrainQuadTreeNode::updateVertexData ( bool  positions,
bool  deltas,
const Rect rect,
bool  cpuData 
)

Tell the node to update its vertex data for a given region.

void Ogre::TerrainQuadTreeNode::useAncestorVertexData ( TerrainQuadTreeNode owner,
uint16  treeDepthEnd,
uint16  resolution 
)

Tell a node that it should use an anscestor's vertex data.

Parameters
treeDepthEndThe end of the depth that should use this data (exclusive)
resolutionThe resolution of the data to use
void Ogre::TerrainQuadTreeNode::visitRenderables ( Renderable::Visitor visitor,
bool  debugRenderables = false 
)
protected
void Ogre::TerrainQuadTreeNode::writeDeltaVertex ( bool  compress,
uint16  x,
uint16  y,
float  delta,
float  deltaThresh,
float **  ppDelta 
)
protected
void Ogre::TerrainQuadTreeNode::writePosVertex ( bool  compress,
uint16  x,
uint16  y,
float  height,
const Vector3 pos,
float  uvScale,
float **  ppPos 
)
protected

Friends And Related Function Documentation

friend class Movable
friend

Definition at line 357 of file OgreTerrainQuadTreeNode.h.

friend class Rend
friend

Definition at line 379 of file OgreTerrainQuadTreeNode.h.

Member Data Documentation

unsigned short Ogre::TerrainQuadTreeNode::DELTA_BUFFER
static

Buffer binding used for holding delta values.

Definition at line 263 of file OgreTerrainQuadTreeNode.h.

AxisAlignedBox Ogre::TerrainQuadTreeNode::mAABB
protected

Relative to terrain centre.

Definition at line 281 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mBaseLod
protected

Definition at line 277 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mBoundaryX
protected

Definition at line 274 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mBoundaryY
protected

Definition at line 274 of file OgreTerrainQuadTreeNode.h.

Real Ogre::TerrainQuadTreeNode::mBoundingRadius
protected

Relative to mLocalCentre.

Definition at line 282 of file OgreTerrainQuadTreeNode.h.

TerrainQuadTreeNode* Ogre::TerrainQuadTreeNode::mChildren[4]
protected

Definition at line 270 of file OgreTerrainQuadTreeNode.h.

TerrainQuadTreeNode* Ogre::TerrainQuadTreeNode::mChildWithMaxHeightDelta
protected

0-1 transition to lower LOD

The child with the largest height delta

Definition at line 286 of file OgreTerrainQuadTreeNode.h.

int Ogre::TerrainQuadTreeNode::mCurrentLod
protected

Relative to mLocalCentre.

Definition at line 283 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mDepth
protected

Definition at line 278 of file OgreTerrainQuadTreeNode.h.

Vector3 Ogre::TerrainQuadTreeNode::mLocalCentre
protected

Definition at line 280 of file OgreTerrainQuadTreeNode.h.

SceneNode* Ogre::TerrainQuadTreeNode::mLocalNode
protected

Definition at line 358 of file OgreTerrainQuadTreeNode.h.

LodLevelList Ogre::TerrainQuadTreeNode::mLodLevels
protected

Definition at line 271 of file OgreTerrainQuadTreeNode.h.

float Ogre::TerrainQuadTreeNode::mLodTransition
protected

-1 = none (do not render)

Definition at line 284 of file OgreTerrainQuadTreeNode.h.

Movable* Ogre::TerrainQuadTreeNode::mMovable
protected

Definition at line 356 of file OgreTerrainQuadTreeNode.h.

TerrainQuadTreeNode* Ogre::TerrainQuadTreeNode::mNodeWithVertexData
protected

Definition at line 312 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mOffsetX
protected

Definition at line 273 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mOffsetY
protected

Definition at line 273 of file OgreTerrainQuadTreeNode.h.

TerrainQuadTreeNode* Ogre::TerrainQuadTreeNode::mParent
protected

Definition at line 269 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mQuadrant
protected

Definition at line 279 of file OgreTerrainQuadTreeNode.h.

Rend* Ogre::TerrainQuadTreeNode::mRend
protected

Definition at line 378 of file OgreTerrainQuadTreeNode.h.

bool Ogre::TerrainQuadTreeNode::mSelfOrChildRendered
protected

Definition at line 287 of file OgreTerrainQuadTreeNode.h.

uint16 Ogre::TerrainQuadTreeNode::mSize
protected

The number of vertices at the original terrain resolution this node encompasses.

Definition at line 276 of file OgreTerrainQuadTreeNode.h.

Terrain* Ogre::TerrainQuadTreeNode::mTerrain
protected

Definition at line 268 of file OgreTerrainQuadTreeNode.h.

VertexDataRecord* Ogre::TerrainQuadTreeNode::mVertexDataRecord
protected

Definition at line 313 of file OgreTerrainQuadTreeNode.h.

unsigned short Ogre::TerrainQuadTreeNode::POSITION_BUFFER
static

Buffer binding used for holding positions.

Definition at line 261 of file OgreTerrainQuadTreeNode.h.


The documentation for this class was generated from the following file: