OGRE  13.6
Object-Oriented Graphics Rendering Engine
Ogre::TerrainLodManager Class Reference

Terrain LOD data manager. More...

#include <OgreTerrainLodManager.h>

+ Inheritance diagram for Ogre::TerrainLodManager:

Classes

struct  LoadLodRequest
 
struct  LodInfo
 

Public Types

typedef std::vector< float > LodData
 
typedef std::vector< LodDataLodsData
 

Public Member Functions

 TerrainLodManager (Terrain *t, const String &filename="")
 
 TerrainLodManager (Terrain *t, DataStreamPtr &stream)
 
virtual ~TerrainLodManager ()
 
bool canHandleRequest (const WorkQueue::Request *req, const WorkQueue *srcQ) override
 Return whether this handler can process a given request. More...
 
bool canHandleResponse (const WorkQueue::Response *res, const WorkQueue *srcQ) override
 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 ()
 
LodInfogetLodInfo (uint lodLevel)
 
int getTargetLodLevel ()
 
WorkQueue::ResponsehandleRequest (const WorkQueue::Request *req, const WorkQueue *srcQ) override
 The handler method every subclass must implement. More...
 
void handleResponse (const WorkQueue::Response *res, const WorkQueue *srcQ) override
 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 ()
 
- Public Member Functions inherited from Ogre::WorkQueue::RequestHandler
 RequestHandler ()
 
virtual ~RequestHandler ()
 
- Public Member Functions inherited from Ogre::WorkQueue::ResponseHandler
 ResponseHandler ()
 
virtual ~ResponseHandler ()
 

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

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()

bool Ogre::TerrainLodManager::canHandleRequest ( const WorkQueue::Request req,
const WorkQueue srcQ 
)
overridevirtual

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()

bool Ogre::TerrainLodManager::canHandleResponse ( const WorkQueue::Response res,
const WorkQueue srcQ 
)
overridevirtual

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()

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

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
reqThe 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.
srcQThe 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()

void Ogre::TerrainLodManager::handleResponse ( const WorkQueue::Response res,
const WorkQueue srcQ 
)
overridevirtual

The handler method every subclass must implement.

Parameters
resThe 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.
srcQThe 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
lodLevelA LOD level to work with
data,dataSizeBuffer 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
lowerLodBoundLower bound of LOD levels to load
higherLodBoundUpper 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: