| OGRE 1.11.1 Object-Oriented Graphics Rendering Engine

Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Ogre::TerrainLodManager Class Reference
Optional Components » Terrain

Terrain LOD data manager. More...

`#include <OgreTerrainLodManager.h>`

Inheritance diagram for Ogre::TerrainLodManager:
[legend]

## Classes
struct | LoadLodRequest
struct | LodInfo

## Public Types
typedef std::vector< float > | LodData
typedef std::vector< LodData > | LodsData

## Public Member Functions
| TerrainLodManager (Terrain *t, DataStreamPtr &stream)
| TerrainLodManager (Terrain *t, const String &filename="")
virtual | ~TerrainLodManager ()
virtual bool | canHandleRequest (const WorkQueue::Request *req, const WorkQueue *srcQ)
| Return whether this handler can process a given request. More...
virtual bool | canHandleResponse (const WorkQueue::Response *res, const WorkQueue *srcQ)
| Return whether this handler can process a given response. More...
void | close ()
void | fillBufferAtLod (uint lodLevel, const float *data, uint dataSize)
| Copy geometry data from buffer to mHeightData/mDeltaData. More...
int | getHighestLodLoaded ()
int | getHighestLodPrepared ()
LodInfo & | getLodInfo (uint lodLevel)
int | getTargetLodLevel ()
virtual WorkQueue::Response * | handleRequest (const WorkQueue::Request *req, const WorkQueue *srcQ)
| The handler method every subclass must implement. More...
virtual void | handleResponse (const WorkQueue::Response *res, const WorkQueue *srcQ)
| The handler method every subclass must implement. More...
bool | isOpen () const
void | open (const String &filename)
void | readLodData (uint16 lowerLodBound, uint16 higherLodBound)
| Read separated geometry data from file into allocated memory. More...
void | updateToLodLevel (int lodLevel, bool synchronous=false)
void | waitForDerivedProcesses ()

## Static Public Member Functions
static void | saveLodData (StreamSerialiser &stream, Terrain *terrain)
| Save each LOD level separately compressed so seek is possible. More...

## Static Public Attributes
static const uint32 | TERRAINLODDATA_CHUNK_ID
static const uint16 | TERRAINLODDATA_CHUNK_VERSION
static const uint16 | WORKQUEUE_LOAD_LOD_DATA_REQUEST

## Detailed Description

Terrain LOD data manager.

  This class is used for managing terrain LOD data's loading, unloading.

## Member Typedef Documentation

## ◆ LodData

typedef std::vector<float> Ogre::TerrainLodManager::LodData

## ◆ LodsData

typedef std::vector<LodData> Ogre::TerrainLodManager::LodsData

## Constructor & Destructor Documentation

## ◆ TerrainLodManager() [1/2]

Ogre::TerrainLodManager::TerrainLodManager | ( | Terrain * | t,
|  | DataStreamPtr & | stream
| ) |  |

## ◆ TerrainLodManager() [2/2]

Ogre::TerrainLodManager::TerrainLodManager | ( | Terrain * | t,
|  | const String & | filename = `""`
| ) |  |

## ◆ ~TerrainLodManager()

virtual Ogre::TerrainLodManager::~TerrainLodManager | ( |  | ) |
| virtual

## Member Function Documentation

## ◆ open()

void Ogre::TerrainLodManager::open | ( | const String & | filename | ) |

## ◆ close()

void Ogre::TerrainLodManager::close | ( |  | ) |

## ◆ isOpen()

bool Ogre::TerrainLodManager::isOpen | ( |  | ) | const

## ◆ canHandleRequest()

virtual bool Ogre::TerrainLodManager::canHandleRequest | ( | const WorkQueue::Request * | req,
|  | const WorkQueue * | srcQ
| ) |  |
| virtual

Return whether this handler can process a given request.

Remarks
  Defaults to true, but if you wish to add several handlers each of which deal with different types of request, you can override this method.

Reimplemented from Ogre::WorkQueue::RequestHandler.

## ◆ canHandleResponse()

virtual bool Ogre::TerrainLodManager::canHandleResponse | ( | const WorkQueue::Response * | res,
|  | const WorkQueue * | srcQ
| ) |  |
| virtual

Return whether this handler can process a given response.

Remarks
  Defaults to true, but if you wish to add several handlers each of which deal with different types of response, you can override this method.

Reimplemented from Ogre::WorkQueue::ResponseHandler.

## ◆ handleRequest()

virtual WorkQueue::Response* Ogre::TerrainLodManager::handleRequest | ( | const WorkQueue::Request * | req,
|  | const WorkQueue * | srcQ
| ) |  |
| virtual

The handler method every subclass must implement.

If a failure is encountered, return a Response with a failure result rather than raise an exception.

Parameters

  req | The Request structure, which is effectively owned by the handler during this call. It must be attached to the returned Response regardless of success or failure.
  srcQ | The work queue that this request originated from

Returns
  Pointer to a Response object - the caller is responsible for deleting the object.

Implements Ogre::WorkQueue::RequestHandler.

## ◆ handleResponse()

virtual void Ogre::TerrainLodManager::handleResponse | ( | const WorkQueue::Response * | res,
|  | const WorkQueue * | srcQ
| ) |  |
| virtual

The handler method every subclass must implement.

Parameters

  res | The Response structure. The caller is responsible for deleting this after the call is made, none of the data contained (except pointers to structures in user Any data) will persist after this call is returned.
  srcQ | The work queue that this request originated from

Implements Ogre::WorkQueue::ResponseHandler.

## ◆ updateToLodLevel()

void Ogre::TerrainLodManager::updateToLodLevel | ( | int | lodLevel,
|  | bool | synchronous = `false`
| ) |  |

## ◆ saveLodData()

static void Ogre::TerrainLodManager::saveLodData | ( | StreamSerialiser & | stream,
|  | Terrain * | terrain
| ) |  |
| static

Save each LOD level separately compressed so seek is possible.

## ◆ fillBufferAtLod()

void Ogre::TerrainLodManager::fillBufferAtLod | ( | uint | lodLevel,
|  | const float * | data,
|  | uint | dataSize
| ) |  |

Copy geometry data from buffer to mHeightData/mDeltaData.

Parameters

  lodLevel | A LOD level to work with
  data | Buffer which holds geometry data if separated form

Remarks
  Data in buffer has to be both height and delta data. First half is height data. Seconds half is delta data.

## ◆ readLodData()

void Ogre::TerrainLodManager::readLodData | ( | uint16 | lowerLodBound,
|  | uint16 | higherLodBound
| ) |  |

Read separated geometry data from file into allocated memory.

Parameters

  lowerLodBound | Lower bound of LOD levels to load
  higherLodBound | Upper bound of LOD levels to load

Remarks
  Geometry data are uncompressed using inflate() and stored into allocated buffer

## ◆ waitForDerivedProcesses()

void Ogre::TerrainLodManager::waitForDerivedProcesses | ( |  | ) |

## ◆ getHighestLodPrepared()

int Ogre::TerrainLodManager::getHighestLodPrepared | ( |  | ) |
| inline

## ◆ getHighestLodLoaded()

int Ogre::TerrainLodManager::getHighestLodLoaded | ( |  | ) |
| inline

## ◆ getTargetLodLevel()

int Ogre::TerrainLodManager::getTargetLodLevel | ( |  | ) |
| inline

## ◆ getLodInfo()

LodInfo& Ogre::TerrainLodManager::getLodInfo | ( | uint | lodLevel | ) |
| inline

## Member Data Documentation

## ◆ TERRAINLODDATA_CHUNK_ID

const uint32 Ogre::TerrainLodManager::TERRAINLODDATA_CHUNK_ID
| static

## ◆ TERRAINLODDATA_CHUNK_VERSION

const uint16 Ogre::TerrainLodManager::TERRAINLODDATA_CHUNK_VERSION
| static

## ◆ WORKQUEUE_LOAD_LOD_DATA_REQUEST

const uint16 Ogre::TerrainLodManager::WORKQUEUE_LOAD_LOD_DATA_REQUEST
| static

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

- OgreTerrainLodManager.h