Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Ogre::InstancedGeometry Class Reference

Pre-transforms and batches up meshes for efficient use as instanced geometry in a scene. More...

#include <OgreInstancedGeometry.h>

List of all members.

Public Types

typedef std::list< OptimisedSubMeshGeometry * > OptimisedSubMeshGeometryList
typedef std::vector< SubMeshLodGeometryLinkSubMeshLodGeometryLinkList
typedef std::map< SubMesh *,
SubMeshLodGeometryLinkList * > 
SubMeshGeometryLookup
typedef std::vector< QueuedSubMesh * > QueuedSubMeshList
typedef std::vector< StringQueuedSubMeshOriginList
typedef std::vector< QueuedGeometry * > QueuedGeometryList
typedef std::map< uint32,
BatchInstance * > 
BatchInstanceMap
 Indexed BatchInstance map based on packed x/y/z BatchInstance index, 10 bits for each axis.
typedef std::vector< RenderOperation * > RenderOperationVector
 Simple vectors where are stored all the renderoperations of the Batch.
typedef MapIterator< BatchInstanceMapBatchInstanceIterator
 Iterator for iterating over contained BatchInstances.

Public Member Functions

 InstancedGeometry (SceneManager *owner, const String &name)
 Constructor; do not use directly ( SceneManager::createInstancedGeometry).
virtual ~InstancedGeometry ()
 Destructor.
const StringgetName (void) const
 Get the name of this object.
virtual void addEntity (Entity *ent, const Vector3 &position, const Quaternion &orientation=Quaternion::IDENTITY, const Vector3 &scale=Vector3::UNIT_SCALE)
 Adds an Entity to the static geometry.
virtual void addSceneNode (const SceneNode *node)
 Adds all the Entity objects attached to a SceneNode and all it's children to the static geometry.
virtual void build (void)
 Build the geometry.
void addBatchInstance (void)
 Add a new batch instance.
virtual void destroy (void)
 Destroys all the built geometry state (reverse of build).
virtual void reset (void)
 Clears any of the entities / nodes added to this geometry and destroys anything which has already been built.
virtual void setRenderingDistance (Real dist)
 Sets the distance at which batches are no longer rendered.
virtual Real getRenderingDistance (void) const
 Gets the distance at which batches are no longer rendered.
virtual Real getSquaredRenderingDistance (void) const
 Gets the squared distance at which batches are no longer rendered.
virtual void setVisible (bool visible)
 Hides or shows all the batches.
virtual bool isVisible (void) const
 Are the batches visible?
virtual void setCastShadows (bool castShadows)
 Sets whether this geometry should cast shadows.
virtual bool getCastShadows (void)
 Will the geometry from this object cast shadows?
virtual void setBatchInstanceDimensions (const Vector3 &size)
 Sets the size of a single BatchInstance of geometry.
virtual const Vector3getBatchInstanceDimensions (void) const
 Gets the size of a single batch of geometry.
virtual void setOrigin (const Vector3 &origin)
 Sets the origin of the geometry.
virtual const Vector3getOrigin (void) const
 Gets the origin of this geometry.
virtual void setRenderQueueGroup (uint8 queueID)
 Sets the render queue group this object will be rendered through.
virtual uint8 getRenderQueueGroup (void) const
 Gets the queue group for this entity, see setRenderQueueGroup for full details.
BatchInstanceIterator getBatchInstanceIterator (void)
 Get an iterator over the BatchInstances in this geometry.
RenderOperationVectorgetRenderOperationVector ()
 get the mRenderOps vector.
virtual void dump (const String &filename) const
 Dump the contents of this InstancedGeometry to a file for diagnostic purposes.
SkeletonInstancegetBaseSkeletonInstance (void)
SkeletonPtr getBaseSkeleton (void)
AnimationStateSetgetBaseAnimationState (void)
unsigned int getObjectCount (void)

Protected Types

typedef std::map< size_t,
size_t > 
IndexRemap

Protected Member Functions

virtual BatchInstancegetBatchInstance (const AxisAlignedBox &bounds, bool autoCreate)
 Virtual method for getting a BatchInstance most suitable for the passed in bounds.
virtual BatchInstancegetBatchInstance (const Vector3 &point, bool autoCreate)
 Get the BatchInstance within which a point lies.
virtual BatchInstancegetBatchInstance (ushort x, ushort y, ushort z, bool autoCreate)
 Get the BatchInstance using indexes.
virtual BatchInstancegetBatchInstance (uint32 index)
 Get the BatchInstance using a packed index, returns null if it doesn't exist.
virtual void getBatchInstanceIndexes (const Vector3 &point, ushort &x, ushort &y, ushort &z)
 Get the BatchInstance indexes for a point.
virtual BatchInstancegetInstancedGeometryInstance (void)
 get the first BatchInstance or create on if it does not exists.
virtual uint32 packIndex (ushort x, ushort y, ushort z)
 Pack 3 indexes into a single index value.
virtual Real getVolumeIntersection (const AxisAlignedBox &box, ushort x, ushort y, ushort z)
 Get the volume intersection for an indexed BatchInstance with some bounds.
virtual AxisAlignedBox getBatchInstanceBounds (ushort x, ushort y, ushort z)
 Get the bounds of an indexed BatchInstance.
virtual Vector3 getBatchInstanceCentre (ushort x, ushort y, ushort z)
 Get the centre of an indexed BatchInstance.
virtual AxisAlignedBox calculateBounds (VertexData *vertexData, const Vector3 &position, const Quaternion &orientation, const Vector3 &scale)
 Calculate world bounds from a set of vertex data.
SubMeshLodGeometryLinkListdetermineGeometry (SubMesh *sm)
 Look up or calculate the geometry data to use for this SubMesh.
void splitGeometry (VertexData *vd, IndexData *id, SubMeshLodGeometryLink *targetGeomLink)
 Split some shared geometry into dedicated geometry.
template<typename T>
void buildIndexRemap (T *pBuffer, size_t numIndexes, IndexRemap &remap)
 Method for figuring out which vertices are used by an index buffer and calculating a remap lookup for a vertex buffer just containing those vertices.
template<typename T>
void remapIndexes (T *src, T *dst, const IndexRemap &remap, size_t numIndexes)
 Method for altering indexes based on a remap.

Protected Attributes

SceneManagermOwner
String mName
bool mBuilt
Real mUpperDistance
Real mSquaredUpperDistance
bool mCastShadows
Vector3 mBatchInstanceDimensions
Vector3 mHalfBatchInstanceDimensions
Vector3 mOrigin
bool mVisible
uint8 mRenderQueueID
 The render queue to use when rendering this object.
bool mRenderQueueIDSet
 Flags whether the RenderQueue's default should be used.
unsigned int mObjectCount
 number of objects in the batch
QueuedSubMeshList mQueuedSubMeshes
BatchInstancemInstancedGeometryInstance
SkeletonPtr mBaseSkeleton
 this is just a pointer to the base skeleton that will be used for each animated object in the batches This pointer has a value only during the creation of the InstancedGeometry
SkeletonInstancemSkeletonInstance
AnimationStateSetmAnimationState
 This is the main animation state.
OptimisedSubMeshGeometryList mOptimisedSubMeshGeometryList
 List of geometry which has been optimised for SubMesh use This is the primary storage used for cleaning up later.
SubMeshGeometryLookup mSubMeshGeometryLookup
 Cached links from SubMeshes to (potentially optimised) geometry This is not used for deletion since the lookup may reference original vertex data.
BatchInstanceMap mBatchInstanceMap
 Map of BatchInstances.
RenderOperationVector mRenderOps
 This vector stores all the renderOperation used in the batch.

Classes

class  BatchInstance
 The details of a topological BatchInstance which is the highest level of partitioning for this class. More...
class  GeometryBucket
 A GeometryBucket is a the lowest level bucket where geometry with the same vertex & index format is stored. More...
class  InstancedObject
class  LODBucket
 A LODBucket is a collection of smaller buckets with the same LOD. More...
class  MaterialBucket
 A MaterialBucket is a collection of smaller buckets with the same Material (and implicitly the same LOD). More...
class  OptimisedSubMeshGeometry
 Struct holding geometry optimised per SubMesh / lod level, ready for copying to instances. More...
struct  QueuedGeometry
 Structure recording a queued geometry for low level builds. More...
struct  QueuedSubMesh
 Structure recording a queued submesh for the build. More...
struct  SubMeshLodGeometryLink
 Saved link between SubMesh at a LOD and vertex/index data May point to original or optimised geometry. More...


Detailed Description

Pre-transforms and batches up meshes for efficient use as instanced geometry in a scene.

Remarks:
Shader instancing allows to save both memory and draw calls. While StaticGeometry stores 500 times the same object in a batch to display 500 objects, this shader instancing implementation stores only 80 times the object, and then re-uses the vertex data with different shader parameter. Although you save memory, you make more draw call. However, you still make less draw calls than if you were rendering each object independently. Plus, you can move the batched objects independently of one another which you cannot do with StaticGeometry.
Therefore it is important when you are rendering a lot of geometry to batch things up into as few rendering calls as possible. This class allows you to build a batched object from a series of entities in order to benefit from this behaviour. Batching has implications of it's own though:
The bounding box information is computed whith object position only. It doesn't take account of the object orientation.
The LOD settings of both the Mesh and the Materials used in constructing this instanced geometry will be respected. This means that if you use meshes/materials which have LOD, batches in the distance will have a lower polygon count or material detail to those in the foreground. Since each mesh might have different LOD distances, during build the furthest distance at each LOD level from all meshes in that BatchInstance is used. This means all the LOD levels change at the same time, but at the furthest distance of any of them (so quality is not degraded). Be aware that using Mesh LOD in this class will further increase the memory required. Only generated LOD is supported for meshes.
There are 2 ways you can add geometry to this class; you can add Entity objects directly with predetermined positions, scales and orientations, or you can add an entire SceneNode and it's subtree, including all the objects attached to it. Once you've added everthing you need to, you have to call build() the fix the geometry in place.
You should not construct instances of this class directly; instead, call SceneManager::createInstancedGeometry, which gives the SceneManager the option of providing you with a specialised version of this class if it wishes, and also handles the memory management for you like other classes.

Definition at line 95 of file OgreInstancedGeometry.h.


Member Typedef Documentation

typedef MapIterator<BatchInstanceMap> Ogre::InstancedGeometry::BatchInstanceIterator
 

Iterator for iterating over contained BatchInstances.

Definition at line 796 of file OgreInstancedGeometry.h.

typedef std::map<uint32, BatchInstance*> Ogre::InstancedGeometry::BatchInstanceMap
 

Indexed BatchInstance map based on packed x/y/z BatchInstance index, 10 bits for each axis.

Definition at line 496 of file OgreInstancedGeometry.h.

typedef std::map<size_t, size_t> Ogre::InstancedGeometry::IndexRemap [protected]
 

Definition at line 588 of file OgreInstancedGeometry.h.

typedef std::list<OptimisedSubMeshGeometry*> Ogre::InstancedGeometry::OptimisedSubMeshGeometryList
 

Definition at line 122 of file OgreInstancedGeometry.h.

typedef std::vector<QueuedGeometry*> Ogre::InstancedGeometry::QueuedGeometryList
 

Definition at line 157 of file OgreInstancedGeometry.h.

typedef std::vector<QueuedSubMesh*> Ogre::InstancedGeometry::QueuedSubMeshList
 

Definition at line 146 of file OgreInstancedGeometry.h.

typedef std::vector<String> Ogre::InstancedGeometry::QueuedSubMeshOriginList
 

Definition at line 147 of file OgreInstancedGeometry.h.

typedef std::vector<RenderOperation*> Ogre::InstancedGeometry::RenderOperationVector
 

Simple vectors where are stored all the renderoperations of the Batch.

This vector is used when we want to delete the batch, in order to delete only one time each render operation.

Definition at line 502 of file OgreInstancedGeometry.h.

typedef std::map<SubMesh*, SubMeshLodGeometryLinkList*> Ogre::InstancedGeometry::SubMeshGeometryLookup
 

Definition at line 131 of file OgreInstancedGeometry.h.

typedef std::vector<SubMeshLodGeometryLink> Ogre::InstancedGeometry::SubMeshLodGeometryLinkList
 

Definition at line 130 of file OgreInstancedGeometry.h.


Constructor & Destructor Documentation

Ogre::InstancedGeometry::InstancedGeometry SceneManager owner,
const String name
 

Constructor; do not use directly ( SceneManager::createInstancedGeometry).

virtual Ogre::InstancedGeometry::~InstancedGeometry  )  [virtual]
 

Destructor.


Member Function Documentation

void Ogre::InstancedGeometry::addBatchInstance void   ) 
 

Add a new batch instance.

Remarks:
This method add a new instance of the whole batch, by creating a new BatchInstance, containing new lod buckets, material buckets and geometry buckets. The new geometry bukets will use the same buffers as the base bucket.
Note:
no note

virtual void Ogre::InstancedGeometry::addEntity Entity ent,
const Vector3 position,
const Quaternion orientation = Quaternion::IDENTITY,
const Vector3 scale = Vector3::UNIT_SCALE
[virtual]
 

Adds an Entity to the static geometry.

Remarks:
This method takes an existing Entity and adds its details to the list of elements to include when building. Note that the Entity itself is not copied or referenced in this method; an Entity is passed simply so that you can change the materials of attached SubEntity objects if you want. You can add the same Entity instance multiple times with different material settings completely safely, and destroy the Entity before destroying this InstancedGeometry if you like. The Entity passed in is simply used as a definition.
Note:
Must be called before 'build'.
Parameters:
ent The Entity to use as a definition (the Mesh and Materials referenced will be recorded for the build call).
position The world position at which to add this Entity
orientation The world orientation at which to add this Entity
scale The scale at which to add this entity

virtual void Ogre::InstancedGeometry::addSceneNode const SceneNode node  )  [virtual]
 

Adds all the Entity objects attached to a SceneNode and all it's children to the static geometry.

Remarks:
This method performs just like addEntity, except it adds all the entities attached to an entire sub-tree to the geometry. The position / orientation / scale parameters are taken from the node structure instead of being specified manually.
Note:
The SceneNode you pass in will not be automatically detached from it's parent, so if you have this node already attached to the scene graph, you will need to remove it if you wish to avoid the overhead of rendering both the original objects and their new static versions! We don't do this for you incase you are preparing this in advance and so don't want the originals detached yet.

Must be called before 'build'.

Parameters:
node Pointer to the node to use to provide a set of Entity templates

virtual void Ogre::InstancedGeometry::build void   )  [virtual]
 

Build the geometry.

Remarks:
Based on all the entities which have been added, and the batching options which have been set, this method constructs the batched geometry structures required. The batches are added to the scene and will be rendered unless you specifically hide them.
Note:
Once you have called this method, you can no longer add any more entities.

template<typename T>
void Ogre::InstancedGeometry::buildIndexRemap T *  pBuffer,
size_t  numIndexes,
IndexRemap remap
[protected]
 

Method for figuring out which vertices are used by an index buffer and calculating a remap lookup for a vertex buffer just containing those vertices.

Definition at line 594 of file OgreInstancedGeometry.h.

virtual AxisAlignedBox Ogre::InstancedGeometry::calculateBounds VertexData vertexData,
const Vector3 position,
const Quaternion orientation,
const Vector3 scale
[protected, virtual]
 

Calculate world bounds from a set of vertex data.

virtual void Ogre::InstancedGeometry::destroy void   )  [virtual]
 

Destroys all the built geometry state (reverse of build).

Remarks:
You can call build() again after this and it will pick up all the same entities / nodes you queued last time.

SubMeshLodGeometryLinkList* Ogre::InstancedGeometry::determineGeometry SubMesh sm  )  [protected]
 

Look up or calculate the geometry data to use for this SubMesh.

virtual void Ogre::InstancedGeometry::dump const String filename  )  const [virtual]
 

Dump the contents of this InstancedGeometry to a file for diagnostic purposes.

AnimationStateSet* Ogre::InstancedGeometry::getBaseAnimationState void   ) 
 

Remarks:
Return the animation state that will be cloned each time an InstancedObject is made

Definition at line 819 of file OgreInstancedGeometry.h.

SkeletonPtr Ogre::InstancedGeometry::getBaseSkeleton void   ) 
 

Remarks:
Return the skeleton that is shared by all instanced objects.

Definition at line 814 of file OgreInstancedGeometry.h.

SkeletonInstance* Ogre::InstancedGeometry::getBaseSkeletonInstance void   ) 
 

Remarks:
Return the skeletonInstance that will be used

Definition at line 809 of file OgreInstancedGeometry.h.

virtual BatchInstance* Ogre::InstancedGeometry::getBatchInstance uint32  index  )  [protected, virtual]
 

Get the BatchInstance using a packed index, returns null if it doesn't exist.

virtual BatchInstance* Ogre::InstancedGeometry::getBatchInstance ushort  x,
ushort  y,
ushort  z,
bool  autoCreate
[protected, virtual]
 

Get the BatchInstance using indexes.

virtual BatchInstance* Ogre::InstancedGeometry::getBatchInstance const Vector3 point,
bool  autoCreate
[protected, virtual]
 

Get the BatchInstance within which a point lies.

virtual BatchInstance* Ogre::InstancedGeometry::getBatchInstance const AxisAlignedBox bounds,
bool  autoCreate
[protected, virtual]
 

Virtual method for getting a BatchInstance most suitable for the passed in bounds.

Can be overridden by subclasses.

virtual AxisAlignedBox Ogre::InstancedGeometry::getBatchInstanceBounds ushort  x,
ushort  y,
ushort  z
[protected, virtual]
 

Get the bounds of an indexed BatchInstance.

virtual Vector3 Ogre::InstancedGeometry::getBatchInstanceCentre ushort  x,
ushort  y,
ushort  z
[protected, virtual]
 

Get the centre of an indexed BatchInstance.

virtual const Vector3& Ogre::InstancedGeometry::getBatchInstanceDimensions void   )  const [virtual]
 

Gets the size of a single batch of geometry.

Definition at line 764 of file OgreInstancedGeometry.h.

virtual void Ogre::InstancedGeometry::getBatchInstanceIndexes const Vector3 point,
ushort x,
ushort y,
ushort z
[protected, virtual]
 

Get the BatchInstance indexes for a point.

BatchInstanceIterator Ogre::InstancedGeometry::getBatchInstanceIterator void   ) 
 

Get an iterator over the BatchInstances in this geometry.

virtual bool Ogre::InstancedGeometry::getCastShadows void   )  [virtual]
 

Will the geometry from this object cast shadows?

Definition at line 747 of file OgreInstancedGeometry.h.

virtual BatchInstance* Ogre::InstancedGeometry::getInstancedGeometryInstance void   )  [protected, virtual]
 

get the first BatchInstance or create on if it does not exists.

const String& Ogre::InstancedGeometry::getName void   )  const
 

Get the name of this object.

Definition at line 626 of file OgreInstancedGeometry.h.

unsigned int Ogre::InstancedGeometry::getObjectCount void   ) 
 

Remarks:
return the total number of object that are in all the batches

Definition at line 824 of file OgreInstancedGeometry.h.

virtual const Vector3& Ogre::InstancedGeometry::getOrigin void   )  const [virtual]
 

Gets the origin of this geometry.

Definition at line 778 of file OgreInstancedGeometry.h.

virtual Real Ogre::InstancedGeometry::getRenderingDistance void   )  const [virtual]
 

Gets the distance at which batches are no longer rendered.

Definition at line 716 of file OgreInstancedGeometry.h.

RenderOperationVector& Ogre::InstancedGeometry::getRenderOperationVector  ) 
 

get the mRenderOps vector.

Definition at line 800 of file OgreInstancedGeometry.h.

virtual uint8 Ogre::InstancedGeometry::getRenderQueueGroup void   )  const [virtual]
 

Gets the queue group for this entity, see setRenderQueueGroup for full details.

virtual Real Ogre::InstancedGeometry::getSquaredRenderingDistance void   )  const [virtual]
 

Gets the squared distance at which batches are no longer rendered.

Definition at line 719 of file OgreInstancedGeometry.h.

virtual Real Ogre::InstancedGeometry::getVolumeIntersection const AxisAlignedBox box,
ushort  x,
ushort  y,
ushort  z
[protected, virtual]
 

Get the volume intersection for an indexed BatchInstance with some bounds.

virtual bool Ogre::InstancedGeometry::isVisible void   )  const [virtual]
 

Are the batches visible?

Definition at line 726 of file OgreInstancedGeometry.h.

virtual uint32 Ogre::InstancedGeometry::packIndex ushort  x,
ushort  y,
ushort  z
[protected, virtual]
 

Pack 3 indexes into a single index value.

template<typename T>
void Ogre::InstancedGeometry::remapIndexes T *  src,
T *  dst,
const IndexRemap remap,
size_t  numIndexes
[protected]
 

Method for altering indexes based on a remap.

Definition at line 607 of file OgreInstancedGeometry.h.

virtual void Ogre::InstancedGeometry::reset void   )  [virtual]
 

Clears any of the entities / nodes added to this geometry and destroys anything which has already been built.

virtual void Ogre::InstancedGeometry::setBatchInstanceDimensions const Vector3 size  )  [virtual]
 

Sets the size of a single BatchInstance of geometry.

Remarks:
This method allows you to configure the physical world size of each BatchInstance, so you can balance culling against batch size. Entities will be fitted within the batch they most closely fit, and the eventual bounds of each batch may well be slightly larger than this if they overlap a little. The default is Vector3(1000, 1000, 1000).
Note:
Must be called before 'build'.
Parameters:
size Vector3 expressing the 3D size of each BatchInstance.

Definition at line 759 of file OgreInstancedGeometry.h.

virtual void Ogre::InstancedGeometry::setCastShadows bool  castShadows  )  [virtual]
 

Sets whether this geometry should cast shadows.

Remarks:
No matter what the settings on the original entities, the InstancedGeometry class defaults to not casting shadows. This is because, being static, unless you have moving lights you'd be better to use precalculated shadows of some sort. However, if you need them, you can enable them using this method. If the SceneManager is set up to use stencil shadows, edge lists will be copied from the underlying meshes on build. It is essential that all meshes support stencil shadows in this case.
Note:
If you intend to use stencil shadows, you must set this to true before calling 'build' as well as making sure you set the scene's shadow type (that should always be the first thing you do anyway). You can turn shadows off temporarily but they can never be turned on if they were not at the time of the build.

virtual void Ogre::InstancedGeometry::setOrigin const Vector3 origin  )  [virtual]
 

Sets the origin of the geometry.

Remarks:
This method allows you to configure the world centre of the geometry, thus the place which all BatchInstances surround. You probably don't need to mess with this unless you have a seriously large world, since the default set up can handle an area 1024 * mBatchInstanceDimensions, and the sparseness of population is no issue when it comes to rendering. The default is Vector3(0,0,0).
Note:
Must be called before 'build'.
Parameters:
size Vector3 expressing the 3D origin of the geometry.

Definition at line 776 of file OgreInstancedGeometry.h.

virtual void Ogre::InstancedGeometry::setRenderingDistance Real  dist  )  [virtual]
 

Sets the distance at which batches are no longer rendered.

Remarks:
This lets you turn off batches at a given distance. This can be useful for things like detail meshes (grass, foliage etc) and could be combined with a shader which fades the geometry out beforehand to lessen the effect.
Parameters:
dist Distance beyond which the batches will not be rendered (the default is 0, which means batches are always rendered).

Definition at line 710 of file OgreInstancedGeometry.h.

virtual void Ogre::InstancedGeometry::setRenderQueueGroup uint8  queueID  )  [virtual]
 

Sets the render queue group this object will be rendered through.

Remarks:
Render queues are grouped to allow you to more tightly control the ordering of rendered objects. If you do not call this method, all objects default to the default queue (RenderQueue::getDefaultQueueGroup), which is fine for most objects. You may want to alter this if you want to perform more complex rendering.
See RenderQueue for more details.
Parameters:
queueID Enumerated value of the queue group to use.

virtual void Ogre::InstancedGeometry::setVisible bool  visible  )  [virtual]
 

Hides or shows all the batches.

void Ogre::InstancedGeometry::splitGeometry VertexData vd,
IndexData id,
SubMeshLodGeometryLink targetGeomLink
[protected]
 

Split some shared geometry into dedicated geometry.


Member Data Documentation

AnimationStateSet* Ogre::InstancedGeometry::mAnimationState [protected]
 

This is the main animation state.

All "objects" in the batch will use an instance of this animation state

Definition at line 531 of file OgreInstancedGeometry.h.

SkeletonPtr Ogre::InstancedGeometry::mBaseSkeleton [protected]
 

this is just a pointer to the base skeleton that will be used for each animated object in the batches This pointer has a value only during the creation of the InstancedGeometry

Definition at line 526 of file OgreInstancedGeometry.h.

Vector3 Ogre::InstancedGeometry::mBatchInstanceDimensions [protected]
 

Definition at line 511 of file OgreInstancedGeometry.h.

BatchInstanceMap Ogre::InstancedGeometry::mBatchInstanceMap [protected]
 

Map of BatchInstances.

Definition at line 543 of file OgreInstancedGeometry.h.

bool Ogre::InstancedGeometry::mBuilt [protected]
 

Definition at line 507 of file OgreInstancedGeometry.h.

bool Ogre::InstancedGeometry::mCastShadows [protected]
 

Definition at line 510 of file OgreInstancedGeometry.h.

Vector3 Ogre::InstancedGeometry::mHalfBatchInstanceDimensions [protected]
 

Definition at line 512 of file OgreInstancedGeometry.h.

BatchInstance* Ogre::InstancedGeometry::mInstancedGeometryInstance [protected]
 

Definition at line 522 of file OgreInstancedGeometry.h.

String Ogre::InstancedGeometry::mName [protected]
 

Definition at line 506 of file OgreInstancedGeometry.h.

unsigned int Ogre::InstancedGeometry::mObjectCount [protected]
 

number of objects in the batch

Definition at line 520 of file OgreInstancedGeometry.h.

OptimisedSubMeshGeometryList Ogre::InstancedGeometry::mOptimisedSubMeshGeometryList [protected]
 

List of geometry which has been optimised for SubMesh use This is the primary storage used for cleaning up later.

Definition at line 534 of file OgreInstancedGeometry.h.

Vector3 Ogre::InstancedGeometry::mOrigin [protected]
 

Definition at line 513 of file OgreInstancedGeometry.h.

SceneManager* Ogre::InstancedGeometry::mOwner [protected]
 

Definition at line 505 of file OgreInstancedGeometry.h.

QueuedSubMeshList Ogre::InstancedGeometry::mQueuedSubMeshes [protected]
 

Definition at line 521 of file OgreInstancedGeometry.h.

RenderOperationVector Ogre::InstancedGeometry::mRenderOps [protected]
 

This vector stores all the renderOperation used in the batch.

See the type definition for more details.

Definition at line 547 of file OgreInstancedGeometry.h.

uint8 Ogre::InstancedGeometry::mRenderQueueID [protected]
 

The render queue to use when rendering this object.

Definition at line 516 of file OgreInstancedGeometry.h.

bool Ogre::InstancedGeometry::mRenderQueueIDSet [protected]
 

Flags whether the RenderQueue's default should be used.

Definition at line 518 of file OgreInstancedGeometry.h.

SkeletonInstance* Ogre::InstancedGeometry::mSkeletonInstance [protected]
 

Definition at line 527 of file OgreInstancedGeometry.h.

Real Ogre::InstancedGeometry::mSquaredUpperDistance [protected]
 

Definition at line 509 of file OgreInstancedGeometry.h.

SubMeshGeometryLookup Ogre::InstancedGeometry::mSubMeshGeometryLookup [protected]
 

Cached links from SubMeshes to (potentially optimised) geometry This is not used for deletion since the lookup may reference original vertex data.

Definition at line 540 of file OgreInstancedGeometry.h.

Real Ogre::InstancedGeometry::mUpperDistance [protected]
 

Definition at line 508 of file OgreInstancedGeometry.h.

bool Ogre::InstancedGeometry::mVisible [protected]
 

Definition at line 514 of file OgreInstancedGeometry.h.


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

Copyright © 2000-2005 by The OGRE Team
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Thu Dec 27 15:19:57 2007