OgreTerrainGroup.h
Go to the documentation of this file.
1 /*
2 -----------------------------------------------------------------------------
3 This source file is part of OGRE
4 (Object-oriented Graphics Rendering Engine)
5 For the latest info, see http://www.ogre3d.org/
6 
7 Copyright (c) 2000-2013 Torus Knot Software Ltd
8 
9 Permission is hereby granted, free of charge, to any person obtaining a copy
10 of this software and associated documentation files (the "Software"), to deal
11 in the Software without restriction, including without limitation the rights
12 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13 copies of the Software, and to permit persons to whom the Software is
14 furnished to do so, subject to the following conditions:
15 
16 The above copyright notice and this permission notice shall be included in
17 all copies or substantial portions of the Software.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 THE SOFTWARE.
26 -----------------------------------------------------------------------------
27 */
28 
29 #ifndef __Ogre_TerrainGroup_H__
30 #define __Ogre_TerrainGroup_H__
31 
33 #include "OgreTerrain.h"
34 #include "OgreWorkQueue.h"
35 #include "OgreIteratorWrappers.h"
37 
38 namespace Ogre
39 {
72  {
73  public:
81  Real terrainWorldSize);
88  virtual ~TerrainGroup();
89 
107  virtual Terrain::ImportData& getDefaultImportSettings() { return mDefaultImportData; }
108 
111  virtual void setOrigin(const Vector3& pos);
112 
115  virtual const Vector3& getOrigin() const { return mOrigin; }
116 
119  virtual Terrain::Alignment getAlignment() const { return mAlignment; }
120 
123  virtual Real getTerrainWorldSize() const { return mTerrainWorldSize; }
128  virtual void setTerrainWorldSize(Real newWorldSize);
131  virtual uint16 getTerrainSize() const { return mTerrainSize; }
137  virtual void setTerrainSize(uint16 newTerrainSize);
140  virtual SceneManager* getSceneManager() const { return mSceneManager; }
141 
151  void setFilenameConvention(const String& prefix, const String& extension);
153  void setFilenamePrefix(const String& prefix);
155  void setFilenameExtension(const String& extension);
157  const String& getFilenamePrefix() const { return mFilenamePrefix; }
159  const String& getFilenameExtension() const { return mFilenameExtension; }
160 
162  void setResourceGroup(const String& grp) { mResourceGroup = grp; }
164  const String& getResourceGroup() const { return mResourceGroup; }
178  virtual void defineTerrain(long x, long y);
179 
190  virtual void defineTerrain(long x, long y, float constantHeight);
191 
202  virtual void defineTerrain(long x, long y, const Terrain::ImportData* importData);
203 
216  virtual void defineTerrain(long x, long y, const Image* img, const Terrain::LayerInstanceList* layers = 0);
217 
230  virtual void defineTerrain(long x, long y, const float* pFloat, const Terrain::LayerInstanceList* layers = 0);
231 
242  virtual void defineTerrain(long x, long y, const String& filename);
243 
244 
249  virtual void loadAllTerrains(bool synchronous = false);
250 
257  virtual void loadTerrain(long x, long y, bool synchronous = false);
258 
271  virtual void unloadTerrain(long x, long y);
272 
279  virtual void removeTerrain(long x, long y);
280 
284 
299  void saveAllTerrains(bool onlyIfModified, bool replaceManualFilenames = true);
300 
304  {
309 
310  TerrainSlotDefinition() :importData(0) {}
312 
316  void useFilename();
319  };
320 
323  {
325  long x, y;
330 
331  TerrainSlot(long _x, long _y) : x(_x), y(_y), instance(0) {}
332  virtual ~TerrainSlot();
333  void freeInstance();
334  };
335 
345  virtual TerrainSlotDefinition* getTerrainDefinition(long x, long y) const;
346 
352  virtual Terrain* getTerrain(long x, long y) const;
353 
359 
363  void update(bool synchronous = false);
364 
369 
373  void updateDerivedData(bool synchronous = false, uint8 typeMask = 0xFF);
374 
378  {
380  bool hit;
385 
386  RayResult(bool _hit, Terrain* _terrain, const Vector3& _pos)
387  : hit(_hit), terrain(_terrain), position(_pos) {}
388  };
389 
397  float getHeightAtWorldPosition(Real x, Real y, Real z, Terrain** ppTerrain = 0);
398 
406  float getHeightAtWorldPosition(const Vector3& pos, Terrain** ppTerrain = 0);
407 
417  RayResult rayIntersects(const Ray& ray, Real distanceLimit = 0) const;
418 
429  void boxIntersects(const AxisAlignedBox& box, TerrainList* resultList) const;
439  void sphereIntersects(const Sphere& sphere, TerrainList* resultList) const;
440 
445  void convertWorldPositionToTerrainSlot(const Vector3& pos, long *x, long *y) const;
446 
451  void convertTerrainSlotToWorldPosition(long x, long y, Vector3* pos) const;
452 
457 
462 
467 
469  bool canHandleRequest(const WorkQueue::Request* req, const WorkQueue* srcQ);
473  bool canHandleResponse(const WorkQueue::Response* res, const WorkQueue* srcQ);
475  void handleResponse(const WorkQueue::Response* res, const WorkQueue* srcQ);
476 
478  uint32 packIndex(long x, long y) const;
479 
481  void unpackIndex(uint32 key, long *x, long *y);
482 
484  String generateFilename(long x, long y) const;
485 
488  void saveGroupDefinition(const String& filename);
494  void loadGroupDefinition(const String& filename);
498 
499 
501  static const uint32 CHUNK_ID;
502  static const uint16 CHUNK_VERSION;
503 
505  void increaseLodLevel(long x, long y, bool synchronous = false);
507  void decreaseLodLevel(long x, long y);
508 
511  void autoUpdateLod(long x, long y, bool synchronous, const Any &data);
512  void autoUpdateLodAll(bool synchronous, const Any &data);
513 
514  protected:
528 
532  TerrainSlot* getTerrainSlot(long x, long y, bool createIfMissing);
533  TerrainSlot* getTerrainSlot(long x, long y) const;
534  void connectNeighbour(TerrainSlot* slot, long offsetx, long offsety);
535 
536  void loadTerrainImpl(TerrainSlot* slot, bool synchronous);
537 
539  struct LoadRequest
540  {
544  _OgreTerrainExport friend std::ostream& operator<<(std::ostream& o, const LoadRequest& r)
545  { return o; }
546  };
547 
548 
549  };
550 
551 
555 }
556 
557 #endif
558 
Ogre::TerrainGroup::getAlignment
virtual Terrain::Alignment getAlignment() const
Retrieve the alignment of the grid of terrain (cannot be modified after construction).
Definition: OgreTerrainGroup.h:119
Ogre::TerrainGroup::isDerivedDataUpdateInProgress
bool isDerivedDataUpdateInProgress() const
Calls Terrain::isDerivedDataUpdateInProgress on each loaded instance and returns true if any of them ...
Ogre::TerrainGroup::saveAllTerrains
void saveAllTerrains(bool onlyIfModified, bool replaceManualFilenames=true)
Save all terrain instances using the assigned file names, or via the filename convention.
Ogre::TerrainGroup::defineTerrain
virtual void defineTerrain(long x, long y, const Terrain::ImportData *importData)
Define the content of a 'slot' in the terrain grid.
Ogre::TerrainGroup::getFilenameExtension
const String & getFilenameExtension() const
Definition: OgreTerrainGroup.h:159
Ogre::TerrainGroup::mBufferAllocator
Terrain::DefaultGpuBufferAllocator mBufferAllocator
Definition: OgreTerrainGroup.h:527
Ogre::TerrainGroup::mAlignment
Terrain::Alignment mAlignment
Definition: OgreTerrainGroup.h:516
Ogre::TerrainGroup::rayIntersects
RayResult rayIntersects(const Ray &ray, Real distanceLimit=0) const
Test for intersection of a given ray with any terrain in the group.
Ogre::TerrainGroup::RayResult::RayResult
RayResult(bool _hit, Terrain *_terrain, const Vector3 &_pos)
Definition: OgreTerrainGroup.h:386
Ogre::TerrainGroup::TerrainSlotDefinition::importData
Terrain::ImportData * importData
Import data, if this is to be defined based on importing.
Definition: OgreTerrainGroup.h:308
Ogre::TerrainGroup
Helper class to assist you in managing multiple terrain instances that are connected to each other.
Definition: OgreTerrainGroup.h:72
Ogre::TerrainGroup::CHUNK_ID
static const uint32 CHUNK_ID
Definition: OgreTerrainGroup.h:501
Ogre::TerrainGroup::handleResponse
void handleResponse(const WorkQueue::Response *res, const WorkQueue *srcQ)
WorkQueue::ResponseHandler override.
Ogre::Terrain::Alignment
Alignment
The alignment of the terrain.
Definition: OgreTerrain.h:312
Ogre::WorkQueue
Interface to a general purpose request / response style background work queue.
Definition: OgreWorkQueue.h:71
Ogre::AllocatedObject
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Definition: OgreMemoryAllocatedObject.h:59
Ogre::WorkQueue::Request
General purpose request structure.
Definition: OgreWorkQueue.h:84
Ogre
Definition: OgreAndroidLogListener.h:35
Ogre::TerrainGroup::mFilenameExtension
String mFilenameExtension
Definition: OgreTerrainGroup.h:524
Ogre::TerrainGroup::decreaseLodLevel
void decreaseLodLevel(long x, long y)
Removes terrain's highest LOD level.
Ogre::TerrainGroup::RayResult::terrain
Terrain * terrain
Which terrain instance was hit, if any.
Definition: OgreTerrainGroup.h:382
Ogre::TerrainGroup::removeTerrain
virtual void removeTerrain(long x, long y)
Remove a specific terrain slot.
Ogre::map
Definition: OgrePrerequisites.h:534
Ogre::TerrainGroup::WORKQUEUE_LOAD_REQUEST
static const uint16 WORKQUEUE_LOAD_REQUEST
Definition: OgreTerrainGroup.h:500
Ogre::TerrainGroup::connectNeighbour
void connectNeighbour(TerrainSlot *slot, long offsetx, long offsety)
Ogre::TerrainGroup::LoadRequest::slot
TerrainSlot * slot
Definition: OgreTerrainGroup.h:541
Ogre::TerrainGroup::defineTerrain
virtual void defineTerrain(long x, long y, const Image *img, const Terrain::LayerInstanceList *layers=0)
Define the content of a 'slot' in the terrain grid.
Ogre::TerrainGroup::getTerrainIterator
TerrainIterator getTerrainIterator()
Get an iterator over the defined terrains.
Ogre::TerrainGroup::defineTerrain
virtual void defineTerrain(long x, long y)
Define a 'slot' in the terrain grid - in this case to be loaded from a generated file name.
Ogre::TerrainGroup::getResourceGroup
const String & getResourceGroup() const
Get the resource group in which files will be located.
Definition: OgreTerrainGroup.h:164
Ogre::TerrainGroup::~TerrainGroup
virtual ~TerrainGroup()
Ogre::TerrainGroup::removeAllTerrains
void removeAllTerrains()
Remove all terrain instances.
Ogre::TerrainGroup::getTerrainSlot
TerrainSlot * getTerrainSlot(long x, long y, bool createIfMissing)
Retrieve a slot, potentially allocate one.
Ogre::TerrainGroup::TerrainSlot::freeInstance
void freeInstance()
Ogre::TerrainGroup::RayResult::position
Vector3 position
Position at which the intersection occurred.
Definition: OgreTerrainGroup.h:384
Ogre::TerrainGroup::saveGroupDefinition
void saveGroupDefinition(StreamSerialiser &stream)
Save the group data only in native form to a serializing stream.
Ogre::TerrainGroup::getSceneManager
virtual SceneManager * getSceneManager() const
Retrieve the SceneManager being used for this group.
Definition: OgreTerrainGroup.h:140
Ogre::TerrainGroup::TerrainSlot::def
TerrainSlotDefinition def
Definition used to load the terrain.
Definition: OgreTerrainGroup.h:327
Ogre::TerrainGroup::loadTerrainImpl
void loadTerrainImpl(TerrainSlot *slot, bool synchronous)
Ogre::TerrainGroup::getTerrainSlot
TerrainSlot * getTerrainSlot(long x, long y) const
Ogre::Image
Class representing an image file.
Definition: OgreImage.h:62
_OgreTerrainExport
#define _OgreTerrainExport
Definition: OgreTerrainPrerequisites.h:58
Ogre::TerrainGroup::mTerrainSlots
TerrainSlotMap mTerrainSlots
Definition: OgreTerrainGroup.h:521
Ogre::TerrainGroup::TerrainSlot::y
long y
Definition: OgreTerrainGroup.h:325
Ogre::TerrainGroup::getFilenamePrefix
const String & getFilenamePrefix() const
Definition: OgreTerrainGroup.h:157
Ogre::TerrainGroup::unpackIndex
void unpackIndex(uint32 key, long *x, long *y)
Convert a packed integer index to coordinates.
Ogre::TerrainGroup::convertTerrainSlotToWorldPosition
void convertTerrainSlotToWorldPosition(long x, long y, Vector3 *pos) const
Convert a slot location to a world position at the centre.
Ogre::TerrainGroup::getHeightAtWorldPosition
float getHeightAtWorldPosition(const Vector3 &pos, Terrain **ppTerrain=0)
Get the height data for a given world position (projecting the point down on to the terrain).
Ogre::TerrainGroup::getTerrainDefinition
virtual TerrainSlotDefinition * getTerrainDefinition(long x, long y) const
Get the definition of a slot in the terrain.
Ogre::Terrain
The main containing class for a chunk of terrain.
Definition: OgreTerrain.h:264
Ogre::TerrainGroup::canHandleResponse
bool canHandleResponse(const WorkQueue::Response *res, const WorkQueue *srcQ)
WorkQueue::ResponseHandler override.
Ogre::Any
Variant type that can hold Any other type.
Definition: OgreAny.h:57
Ogre::TerrainGroup::autoUpdateLod
void autoUpdateLod(long x, long y, bool synchronous, const Any &data)
Automatically checks if terrain's LOD level needs to be updated.
Ogre::uint16
unsigned short uint16
Definition: OgrePlatform.h:360
Ogre::TerrainGroup::update
void update(bool synchronous=false)
Trigger the update process for all terrain instances.
Ogre::WorkQueue::Response
General purpose response structure.
Definition: OgreWorkQueue.h:123
Ogre::TerrainGroup::mTerrainWorldSize
Real mTerrainWorldSize
Definition: OgreTerrainGroup.h:518
Ogre::TerrainGroup::TerrainSlot::TerrainSlot
TerrainSlot(long _x, long _y)
Definition: OgreTerrainGroup.h:331
Ogre::TerrainGroup::mResourceGroup
String mResourceGroup
Definition: OgreTerrainGroup.h:525
Ogre::uint32
unsigned int uint32
Definition: OgrePlatform.h:359
Ogre::TerrainGroup::mSceneManager
SceneManager * mSceneManager
Definition: OgreTerrainGroup.h:515
Ogre::TerrainGroup::mTerrainSize
uint16 mTerrainSize
Definition: OgreTerrainGroup.h:517
Ogre::TerrainGroup::TerrainSlotDefinition::filename
String filename
Filename, if this is to be loaded from a file.
Definition: OgreTerrainGroup.h:306
Ogre::TerrainGroup::updateGeometry
void updateGeometry()
Performs an update on all terrain geometry.
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::TerrainGroup::loadTerrain
virtual void loadTerrain(long x, long y, bool synchronous=false)
Load a specific terrain slot based on the definition that has already been supplied.
Ogre::TerrainGroup::canHandleRequest
bool canHandleRequest(const WorkQueue::Request *req, const WorkQueue *srcQ)
WorkQueue::RequestHandler override.
OgreTerrainAutoUpdateLod.h
Ogre::TerrainGroup::TerrainSlotDefinition::~TerrainSlotDefinition
~TerrainSlotDefinition()
Ogre::TerrainGroup::loadAllTerrains
virtual void loadAllTerrains(bool synchronous=false)
Load any terrain instances that have been defined but not loaded yet.
OgreTerrainPrerequisites.h
Ogre::TerrainGroup::setAutoUpdateLod
void setAutoUpdateLod(TerrainAutoUpdateLod *updater)
Ogre::TerrainGroup::TerrainGroup
TerrainGroup(SceneManager *sm, Terrain::Alignment align, uint16 terrainSize, Real terrainWorldSize)
Constructor.
Ogre::TerrainGroup::increaseLodLevel
void increaseLodLevel(long x, long y, bool synchronous=false)
Loads terrain's next LOD level.
Ogre::TerrainGroup::TerrainSlotDefinition::TerrainSlotDefinition
TerrainSlotDefinition()
Definition: OgreTerrainGroup.h:310
Ogre::TerrainGroup::LoadRequest::operator<<
_OgreTerrainExport friend std::ostream & operator<<(std::ostream &o, const LoadRequest &r)
Definition: OgreTerrainGroup.h:544
Ogre::vector::type
std::vector< T, A > type
Definition: OgrePrerequisites.h:494
Ogre::TerrainGroup::mOrigin
Vector3 mOrigin
Definition: OgreTerrainGroup.h:520
Ogre::TerrainGroup::boxIntersects
void boxIntersects(const AxisAlignedBox &box, TerrainList *resultList) const
Test intersection of a box with the terrain.
Ogre::SceneManager
Manages the organisation and rendering of a 'scene' i.e.
Definition: OgreSceneManager.h:144
Ogre::TerrainGroup::getOrigin
virtual const Vector3 & getOrigin() const
Retrieve the centre position of the grid of terrain.
Definition: OgreTerrainGroup.h:115
Ogre::TerrainGroup::RayResult
Result from a terrain ray intersection with the terrain group.
Definition: OgreTerrainGroup.h:378
Ogre::TerrainGroup::LoadRequest
Structure for holding the load request.
Definition: OgreTerrainGroup.h:540
Ogre::WorkQueue::ResponseHandler
Interface definition for a handler of responses.
Definition: OgreWorkQueue.h:197
Ogre::TerrainGroup::setOrigin
virtual void setOrigin(const Vector3 &pos)
Define the centre position of the grid of terrain.
Ogre::TerrainGroup::convertWorldPositionToTerrainSlot
void convertWorldPositionToTerrainSlot(const Vector3 &pos, long *x, long *y) const
Convert a world position to terrain slot coordinates.
Ogre::TerrainGroup::LoadRequest::loadingTaskNum
static uint loadingTaskNum
Definition: OgreTerrainGroup.h:543
Ogre::TerrainGroup::updateDerivedData
void updateDerivedData(bool synchronous=false, uint8 typeMask=0xFF)
Updates derived data for all terrains (LOD, lighting) to reflect changed height data.
Ogre::TerrainGroup::generateFilename
String generateFilename(long x, long y) const
Generate a file name based on the current naming convention.
Ogre::TerrainGroup::sphereIntersects
void sphereIntersects(const Sphere &sphere, TerrainList *resultList) const
Test intersection of a sphere with the terrain.
Ogre::Terrain::DefaultGpuBufferAllocator
Standard implementation of a buffer allocator which re-uses buffers.
Definition: OgreTerrain.h:573
Ogre::TerrainGroup::saveGroupDefinition
void saveGroupDefinition(const String &filename)
Save the group data only in native form to a file.
Ogre::TerrainGroup::mDefaultImportData
Terrain::ImportData mDefaultImportData
Definition: OgreTerrainGroup.h:519
Ogre::TerrainGroup::TerrainSlotDefinition::useFilename
void useFilename()
Set to use file name.
OgreTerrain.h
Ogre::AxisAlignedBox
A 3D box aligned with the x/y/z axes.
Definition: OgreAxisAlignedBox.h:55
Ogre::TerrainGroup::TerrainSlotDefinition::useImportData
void useImportData()
Set to use import data.
Ogre::TerrainGroup::freeTemporaryResources
void freeTemporaryResources()
Free as many resources as possible for optimal run-time memory use for all terrain tiles.
Ogre::TerrainGroup::TerrainList
vector< Terrain * >::type TerrainList
Definition: OgreTerrainGroup.h:419
Ogre::TerrainGroup::setResourceGroup
void setResourceGroup(const String &grp)
Set the resource group in which files will be located.
Definition: OgreTerrainGroup.h:162
Ogre::Sphere
A sphere primitive, mostly used for bounds checking.
Definition: OgreSphere.h:52
Ogre::TerrainGroup::TerrainSlotDefinition::freeImportData
void freeImportData()
Destroy temp import resources.
Ogre::TerrainGroup::getTerrain
virtual Terrain * getTerrain(long x, long y) const
Get the terrain instance at a given slot, if loaded.
Ogre::TerrainGroup::defineTerrain
virtual void defineTerrain(long x, long y, float constantHeight)
Define a 'slot' in the terrain grid - in this case a flat terrain.
Ogre::TerrainGroup::loadGroupDefinition
void loadGroupDefinition(StreamSerialiser &stream)
Load the group definition only in native form from a serializing stream.
Ogre::uint8
unsigned char uint8
Definition: OgrePlatform.h:361
Ogre::MapIterator
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Definition: OgreIteratorWrapper.h:319
OgreIteratorWrappers.h
Ogre::TerrainGroup::TerrainSlot::~TerrainSlot
virtual ~TerrainSlot()
Ogre::TerrainGroup::getTerrainSlotPosition
Vector3 getTerrainSlotPosition(long x, long y)
Get the position of a terrain instance.
Ogre::StreamSerialiser
Utility class providing helper methods for reading / writing structured data held in a DataStream.
Definition: OgreStreamSerialiser.h:67
OgreWorkQueue.h
Ogre::TerrainGroup::setTerrainWorldSize
virtual void setTerrainWorldSize(Real newWorldSize)
Set the world size of terrain.
Ogre::TerrainGroup::setFilenameExtension
void setFilenameExtension(const String &extension)
Ogre::TerrainGroup::mFilenamePrefix
String mFilenamePrefix
Definition: OgreTerrainGroup.h:523
Ogre::uint
unsigned int uint
Definition: OgrePrerequisites.h:114
Ogre::TerrainGroup::defineTerrain
virtual void defineTerrain(long x, long y, const String &filename)
Define the content of a 'slot' in the terrain grid.
Ogre::TerrainGroup::unloadTerrain
virtual void unloadTerrain(long x, long y)
Unload a specific terrain slot.
Ogre::TerrainGroup::setFilenamePrefix
void setFilenamePrefix(const String &prefix)
Ogre::TerrainGroup::TerrainGroup
TerrainGroup(SceneManager *sm)
Alternate constructor.
Ogre::Terrain::LayerInstanceList
vector< LayerInstance >::type LayerInstanceList
Definition: OgreTerrain.h:308
Ogre::TerrainGroup::ConstTerrainIterator
ConstMapIterator< TerrainSlotMap > ConstTerrainIterator
Definition: OgreTerrainGroup.h:461
Ogre::TerrainGroup::getTerrainWorldSize
virtual Real getTerrainWorldSize() const
Retrieve the world size of each terrain instance.
Definition: OgreTerrainGroup.h:123
Ogre::TerrainGroup::TerrainSlot
Slot for a terrain instance, together with its definition.
Definition: OgreTerrainGroup.h:323
Ogre::TerrainGroup::getDefaultImportSettings
virtual Terrain::ImportData & getDefaultImportSettings()
Retrieve a shared structure which will provide the base settings for all terrains created via this gr...
Definition: OgreTerrainGroup.h:107
Ogre::WorkQueue::RequestHandler
Interface definition for a handler of requests.
Definition: OgreWorkQueue.h:162
Ogre::TerrainGroup::mWorkQueueChannel
uint16 mWorkQueueChannel
Definition: OgreTerrainGroup.h:522
Ogre::Real
float Real
Software floating point type.
Definition: OgrePrerequisites.h:70
Ogre::ConstMapIterator
Concrete IteratorWrapper for const access to the underlying key-value container.
Definition: OgreIteratorWrapper.h:352
Ogre::TerrainGroup::packIndex
uint32 packIndex(long x, long y) const
Convert coordinates to a packed integer index.
Ogre::TerrainAutoUpdateLod
Terrain automatic LOD loading.
Definition: OgreTerrainAutoUpdateLod.h:55
Ogre::TerrainGroup::setFilenameConvention
void setFilenameConvention(const String &prefix, const String &extension)
Set the naming convention for file names in this terrain group.
Ogre::TerrainGroup::TerrainSlotMap
map< uint32, TerrainSlot * >::type TerrainSlotMap
Packed map, signed 16 bits for each axis from -32767 to +32767.
Definition: OgreTerrainGroup.h:459
Ogre::TerrainGroup::CHUNK_VERSION
static const uint16 CHUNK_VERSION
Definition: OgreTerrainGroup.h:502
Ogre::TerrainGroup::getTerrainSize
virtual uint16 getTerrainSize() const
Retrieve the size of each terrain instance in number of vertices down one side.
Definition: OgreTerrainGroup.h:131
Ogre::TerrainGroup::mAutoUpdateLod
TerrainAutoUpdateLod * mAutoUpdateLod
Definition: OgreTerrainGroup.h:526
Ogre::Ray
Representation of a ray in space, i.e.
Definition: OgreRay.h:47
Ogre::TerrainGroup::getHeightAtWorldPosition
float getHeightAtWorldPosition(Real x, Real y, Real z, Terrain **ppTerrain=0)
Get the height data for a given world position (projecting the point down on to the terrain underneat...
Ogre::TerrainGroup::handleRequest
WorkQueue::Response * handleRequest(const WorkQueue::Request *req, const WorkQueue *srcQ)
WorkQueue::RequestHandler override.
Ogre::TerrainGroup::TerrainSlot::instance
Terrain * instance
Actual terrain instance.
Definition: OgreTerrainGroup.h:329
Ogre::TerrainGroup::RayResult::hit
bool hit
Whether an intersection occurred.
Definition: OgreTerrainGroup.h:380
Ogre::TerrainGroup::setTerrainSize
virtual void setTerrainSize(uint16 newTerrainSize)
Set the size of each terrain instance in number of vertices down one side.
Ogre::TerrainGroup::getTerrainIterator
ConstTerrainIterator getTerrainIterator() const
Get an iterator over the defined terrains (const)
Ogre::TerrainGroup::autoUpdateLodAll
void autoUpdateLodAll(bool synchronous, const Any &data)
Ogre::TerrainGroup::loadGroupDefinition
void loadGroupDefinition(const String &filename)
Load the group definition only in native form from a file.
Ogre::Vector3
Standard 3-dimensional vector.
Definition: OgreVector3.h:52
Ogre::TerrainGroup::TerrainSlotDefinition
Definition of how to populate a 'slot' in the terrain group.
Definition: OgreTerrainGroup.h:304
Ogre::TerrainGroup::TerrainIterator
MapIterator< TerrainSlotMap > TerrainIterator
Definition: OgreTerrainGroup.h:460
Ogre::TerrainGroup::defineTerrain
virtual void defineTerrain(long x, long y, const float *pFloat, const Terrain::LayerInstanceList *layers=0)
Define the content of a 'slot' in the terrain grid.
Ogre::Terrain::ImportData
Structure encapsulating import data that you may use to bootstrap the terrain without loading from a ...
Definition: OgreTerrain.h:325
Ogre::TerrainGroup::LoadRequest::origin
TerrainGroup * origin
Definition: OgreTerrainGroup.h:542

Copyright © 2012 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.