OgreInstancedGeometry.h
Go to the documentation of this file.
/*
-----------------------------------------------------------------------------
This source file is part of OGRE
(Object-oriented Graphics Rendering Engine)
For the latest info, see http://www.ogre3d.org/
Copyright (c) 2000-2013 Torus Knot Software Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/
#ifndef __InstancedGeometry_H__
#define __InstancedGeometry_H__
#include "OgrePrerequisites.h"
#include "OgreMovableObject.h"
#include "OgreSimpleRenderable.h"
#include "OgreSkeleton.h"
#include "OgreSkeletonInstance.h"
#include "OgreAnimationTrack.h"
#include "OgreBone.h"
#include "OgreIteratorWrappers.h"
#include "OgreMesh.h"
#include "OgreHeaderPrefix.h"
namespace Ogre {
class _OgreExport InstancedGeometry : public BatchedGeometryAlloc
{
public:
class _OgrePrivate OptimisedSubMeshGeometry : public BatchedGeometryAlloc
{
public:
OptimisedSubMeshGeometry() :vertexData(0), indexData(0) {}
~OptimisedSubMeshGeometry()
{
delete vertexData;
delete indexData;
}
VertexData *vertexData;
IndexData *indexData;
};
typedef list<OptimisedSubMeshGeometry*>::type OptimisedSubMeshGeometryList;
struct SubMeshLodGeometryLink
{
VertexData* vertexData;
IndexData* indexData;
};
typedef vector<SubMeshLodGeometryLink>::type SubMeshLodGeometryLinkList;
typedef map<SubMesh*, SubMeshLodGeometryLinkList*>::type SubMeshGeometryLookup;
struct QueuedSubMesh : public BatchedGeometryAlloc
{
SubMesh* submesh;
SubMeshLodGeometryLinkList* geometryLodList;
String materialName;
Vector3 position;
Quaternion orientation;
Vector3 scale;
AxisAlignedBox worldBounds;
unsigned int ID;
};
typedef vector<QueuedSubMesh*>::type QueuedSubMeshList;
typedef vector<String>::type QueuedSubMeshOriginList;
struct QueuedGeometry : public BatchedGeometryAlloc
{
SubMeshLodGeometryLink* geometry;
Vector3 position;
Quaternion orientation;
Vector3 scale;
unsigned int ID;
};
typedef vector<QueuedGeometry*>::type QueuedGeometryList;
// forward declarations
class LODBucket;
class MaterialBucket;
class BatchInstance;
class InstancedObject;
class _OgreExport GeometryBucket : public SimpleRenderable
{
protected:
QueuedGeometryList mQueuedGeometry;
InstancedGeometry*mBatch;
MaterialBucket* mParent;
String mFormatString;
VertexData* mVertexData;
IndexData* mIndexData;
HardwareIndexBuffer::IndexType mIndexType;
size_t mMaxVertexIndex;
unsigned short mTexCoordIndex;
AxisAlignedBox mAABB;
template<typename T>
void copyIndexes(const T* src, T* dst, size_t count, size_t indexOffset)
{
if (indexOffset == 0)
{
memcpy(dst, src, sizeof(T) * count);
}
else
{
while(count--)
{
*dst++ = static_cast<T>(*src++ + indexOffset);
}
}
}
void _initGeometryBucket(const VertexData* vData, const IndexData* iData);
void _initGeometryBucket(GeometryBucket* bucket);
public:
GeometryBucket(MaterialBucket* parent, const String& formatString,
const VertexData* vData, const IndexData* iData);
GeometryBucket(const String& name, MaterialBucket* parent, const String& formatString,
const VertexData* vData, const IndexData* iData);
GeometryBucket(MaterialBucket* parent,const String& formatString,GeometryBucket*bucket);
GeometryBucket(const String& name, MaterialBucket* parent,const String& formatString,GeometryBucket*bucket);
virtual ~GeometryBucket();
MaterialBucket* getParent(void) { return mParent; }
Real getBoundingRadius(void) const;
const VertexData* getVertexData(void) const { return mVertexData; }
const IndexData* getIndexData(void) const { return mIndexData; }
const MaterialPtr& getMaterial(void) const;
Technique* getTechnique(void) const;
void getWorldTransforms(Matrix4* xform) const;
virtual unsigned short getNumWorldTransforms(void) const ;
Real getSquaredViewDepth(const Camera* cam) const;
const LightList& getLights(void) const;
bool getCastsShadows(void) const;
String getFormatString(void) const;
bool assign(QueuedGeometry* qsm);
void build();
void dump(std::ofstream& of) const;
AxisAlignedBox & getAABB(void){return mAABB;}
void visitRenderables(Renderable::Visitor* visitor, bool debugRenderables);
};
class _OgreExport InstancedObject : public BatchedGeometryAlloc
{
friend class GeometryBucket;
public:
enum TransformSpace
{
TS_LOCAL,
TS_PARENT,
TS_WORLD
};
typedef vector<GeometryBucket*>::type GeometryBucketList;
protected:
GeometryBucketList mGeometryBucketList;
unsigned short mIndex;
Matrix4 mTransformation;
Quaternion mOrientation;
Vector3 mScale;
Vector3 mPosition;
SkeletonInstance* mSkeletonInstance;
Matrix4 *mBoneWorldMatrices;
Matrix4 *mBoneMatrices;
AnimationStateSet* mAnimationState;
unsigned short mNumBoneMatrices;
unsigned long mFrameAnimationLastUpdated;
public:
InstancedObject(unsigned short index);
InstancedObject(unsigned short index,SkeletonInstance *skeleton,AnimationStateSet*animations);
~InstancedObject();
void setPosition( Vector3 position);
const Vector3& getPosition(void) const;
void yaw(const Radian& angle);
void pitch(const Radian& angle);
void roll(const Radian& angle);
void rotate(const Quaternion& q);
void setScale(const Vector3& scale);
const Vector3& getScale() const;
void setOrientation(const Quaternion& q);
void setPositionAndOrientation(Vector3 p, const Quaternion& q);
Quaternion & getOrientation(void);
void addBucketToList(GeometryBucket* bucket);
void needUpdate();
GeometryBucketList&getGeometryBucketList(void){return mGeometryBucketList;}
void translate(const Matrix3& axes, const Vector3& move);
void translate(const Vector3& d);
Matrix3 getLocalAxes(void) const;
void updateAnimation(void);
AnimationState* getAnimationState(const String& name) const;
SkeletonInstance*getSkeletonInstance(void){return mSkeletonInstance;}
};
class _OgreExport MaterialBucket : public BatchedGeometryAlloc
{
public:
typedef vector<GeometryBucket*>::type GeometryBucketList;
protected:
LODBucket* mParent;
String mMaterialName;
MaterialPtr mMaterial;
Technique* mTechnique;
int mLastIndex;
GeometryBucketList mGeometryBucketList;
// index to current Geometry Buckets for a given geometry format
typedef map<String, GeometryBucket*>::type CurrentGeometryMap;
CurrentGeometryMap mCurrentGeometryMap;
String getGeometryFormatString(SubMeshLodGeometryLink* geom);
public:
MaterialBucket(LODBucket* parent, const String& materialName);
virtual ~MaterialBucket();
LODBucket* getParent(void) { return mParent; }
const String& getMaterialName(void) const { return mMaterialName; }
void assign(QueuedGeometry* qsm);
void build();
void addRenderables(RenderQueue* queue, uint8 group,
Real lodValue);
const MaterialPtr& getMaterial(void) const { return mMaterial; }
typedef VectorIterator<GeometryBucketList> GeometryIterator;
GeometryIterator getGeometryIterator(void);
Technique* getCurrentTechnique(void) const { return mTechnique; }
void dump(std::ofstream& of) const;
MaterialBucket::CurrentGeometryMap* getMaterialBucketMap(void) const;
MaterialBucket::GeometryBucketList*getGeometryBucketList(void) const;
void updateContainers(GeometryBucket* bucket, const String &format);
void setLastIndex(int index){mLastIndex=index;}
int getLastIndex(){return mLastIndex;}
void setMaterial(const String & name);
void visitRenderables(Renderable::Visitor* visitor, bool debugRenderables);
};
class _OgreExport LODBucket : public BatchedGeometryAlloc
{
public:
typedef map<String, MaterialBucket*>::type MaterialBucketMap;
protected:
BatchInstance* mParent;
unsigned short mLod;
Real mLodValue;
MaterialBucketMap mMaterialBucketMap;
QueuedGeometryList mQueuedGeometryList;
public:
LODBucket(BatchInstance* parent, unsigned short lod, Real lodValue);
virtual ~LODBucket();
BatchInstance* getParent(void) { return mParent; }
ushort getLod(void) const { return mLod; }
Real getLodValue(void) const { return mLodValue; }
void assign(QueuedSubMesh* qsm, ushort atLod);
void build();
void addRenderables(RenderQueue* queue, uint8 group,
Real lodValue);
typedef MapIterator<MaterialBucketMap> MaterialIterator;
MaterialIterator getMaterialIterator(void);
void dump(std::ofstream& of) const;
void updateContainers(MaterialBucket* bucket, String& name );
void visitRenderables(Renderable::Visitor* visitor, bool debugRenderables);
};
class _OgreExport BatchInstance : public MovableObject
{
friend class MaterialBucket;
public:
typedef vector<LODBucket*>::type LODBucketList;
typedef map<unsigned short, InstancedObject*>::type ObjectsMap;
typedef MapIterator<ObjectsMap> InstancedObjectIterator;
protected:
InstancedGeometry* mParent;
SceneManager* mSceneMgr;
SceneNode* mNode;
QueuedSubMeshList mQueuedSubMeshes;
uint32 mBatchInstanceID;
ObjectsMap mInstancesMap;
public:
Mesh::LodValueList mLodValues;
AxisAlignedBox mAABB;
Real mBoundingRadius;
ushort mCurrentLod;
Real mLodValue;
Camera *mCamera;
Real mSquaredViewDepth;
protected:
LODBucketList mLodBucketList;
const LodStrategy *mLodStrategy;
public:
BatchInstance(InstancedGeometry* parent, const String& name, SceneManager* mgr,
uint32 BatchInstanceID);
virtual ~BatchInstance();
// more fields can be added in subclasses
InstancedGeometry* getParent(void) const { return mParent;}
void assign(QueuedSubMesh* qmesh);
void build();
uint32 getID(void) const { return mBatchInstanceID; }
// const Vector3& getCentre(void) const { return mCentre; }
const String& getMovableType(void) const;
void _notifyCurrentCamera(Camera* cam);
const AxisAlignedBox& getBoundingBox(void) const;
void setBoundingBox(AxisAlignedBox& box);
Real getBoundingRadius(void) const;
void _updateRenderQueue(RenderQueue* queue);
bool isVisible(void) const;
void visitRenderables(Renderable::Visitor* visitor,
bool debugRenderables = false);
// uint32 getTypeFlags(void) const;
typedef VectorIterator<LODBucketList> LODIterator;
LODIterator getLODIterator(void);
const LightList& getLights(void) const;
void updateBoundingBox();
void dump(std::ofstream& of) const;
void updateContainers(LODBucket* bucket );
void attachToScene();
void addInstancedObject(unsigned short index, InstancedObject* object);
InstancedObject* isInstancedObjectPresent(unsigned short index);
InstancedObjectIterator getObjectIterator();
SceneNode*getSceneNode(void){return mNode;}
ObjectsMap& getInstancesMap(void){return mInstancesMap;}
};
typedef map<uint32, BatchInstance*>::type BatchInstanceMap;
typedef vector<RenderOperation*>::type RenderOperationVector;
protected:
// General state & settings
SceneManager* mOwner;
String mName;
bool mBuilt;
Real mUpperDistance;
Real mSquaredUpperDistance;
bool mCastShadows;
Vector3 mBatchInstanceDimensions;
Vector3 mHalfBatchInstanceDimensions;
Vector3 mOrigin;
bool mVisible;
bool mProvideWorldInverses;
uint8 mRenderQueueID;
bool mRenderQueueIDSet;
unsigned int mObjectCount;
QueuedSubMeshList mQueuedSubMeshes;
BatchInstance*mInstancedGeometryInstance;
SkeletonPtr mBaseSkeleton;
SkeletonInstance *mSkeletonInstance;
AnimationStateSet* mAnimationState;
OptimisedSubMeshGeometryList mOptimisedSubMeshGeometryList;
SubMeshGeometryLookup mSubMeshGeometryLookup;
BatchInstanceMap mBatchInstanceMap;
RenderOperationVector mRenderOps;
virtual BatchInstance* getBatchInstance(const AxisAlignedBox& bounds, bool autoCreate);
virtual BatchInstance* getBatchInstance(const Vector3& point, bool autoCreate);
virtual BatchInstance* getBatchInstance(ushort x, ushort y, ushort z, bool autoCreate);
virtual BatchInstance* getBatchInstance(uint32 index);
virtual void getBatchInstanceIndexes(const Vector3& point,
ushort& x, ushort& y, ushort& z);
virtual BatchInstance* getInstancedGeometryInstance(void);
virtual uint32 packIndex(ushort x, ushort y, ushort z);
virtual Real getVolumeIntersection(const AxisAlignedBox& box,
ushort x, ushort y, ushort z);
virtual AxisAlignedBox getBatchInstanceBounds(ushort x, ushort y, ushort z);
virtual Vector3 getBatchInstanceCentre(ushort x, ushort y, ushort z);
virtual AxisAlignedBox calculateBounds(VertexData* vertexData,
const Vector3& position, const Quaternion& orientation,
const Vector3& scale);
SubMeshLodGeometryLinkList* determineGeometry(SubMesh* sm);
void splitGeometry(VertexData* vd, IndexData* id,
SubMeshLodGeometryLink* targetGeomLink);
typedef map<size_t, size_t>::type IndexRemap;
template <typename T>
void buildIndexRemap(T* pBuffer, size_t numIndexes, IndexRemap& remap)
{
remap.clear();
for (size_t i = 0; i < numIndexes; ++i)
{
// use insert since duplicates are silently discarded
remap.insert(IndexRemap::value_type(*pBuffer++, remap.size()));
// this will have mapped oldindex -> new index IF oldindex
// wasn't already there
}
}
template <typename T>
void remapIndexes(T* src, T* dst, const IndexRemap& remap,
size_t numIndexes)
{
for (size_t i = 0; i < numIndexes; ++i)
{
// look up original and map to target
IndexRemap::const_iterator ix = remap.find(*src++);
assert(ix != remap.end());
*dst++ = static_cast<T>(ix->second);
}
}
public:
InstancedGeometry(SceneManager* owner, const String& name);
virtual ~InstancedGeometry();
const String& getName(void) const { return mName; }
virtual void addEntity(Entity* ent, const Vector3& position,
const Quaternion& orientation = Quaternion::IDENTITY,
const Vector3& scale = Vector3::UNIT_SCALE);
virtual void addSceneNode(const SceneNode* node);
virtual void build(void);
void addBatchInstance(void);
virtual void destroy(void);
virtual void reset(void);
virtual void setRenderingDistance(Real dist) {
mUpperDistance = dist;
mSquaredUpperDistance = mUpperDistance * mUpperDistance;
}
virtual Real getRenderingDistance(void) const { return mUpperDistance; }
virtual Real getSquaredRenderingDistance(void) const
{ return mSquaredUpperDistance; }
virtual void setVisible(bool visible);
virtual bool isVisible(void) const { return mVisible; }
virtual void setCastShadows(bool castShadows);
virtual bool getCastShadows(void) { return mCastShadows; }
virtual void setBatchInstanceDimensions(const Vector3& size) {
mBatchInstanceDimensions = size;
mHalfBatchInstanceDimensions = size * 0.5;
}
virtual const Vector3& getBatchInstanceDimensions(void) const { return mBatchInstanceDimensions; }
virtual void setOrigin(const Vector3& origin) { mOrigin = origin; }
virtual const Vector3& getOrigin(void) const { return mOrigin; }
virtual void setRenderQueueGroup(uint8 queueID);
virtual uint8 getRenderQueueGroup(void) const;
typedef MapIterator<BatchInstanceMap> BatchInstanceIterator;
BatchInstanceIterator getBatchInstanceIterator(void);
RenderOperationVector& getRenderOperationVector(){return mRenderOps;}
void visitRenderables(Renderable::Visitor* visitor,
bool debugRenderables = false);
virtual void dump(const String& filename) const;
SkeletonInstance *getBaseSkeletonInstance(void){return mSkeletonInstance;}
SkeletonPtr getBaseSkeleton(void){return mBaseSkeleton;}
AnimationStateSet* getBaseAnimationState(void){return mAnimationState;}
unsigned int getObjectCount(void){return mObjectCount;}
virtual void setProvideWorldInverses(bool flag);
virtual bool getProvideWorldInverses(void) const { return mProvideWorldInverses; }
};
}
#include "OgreHeaderSuffix.h"
#endif
Ogre::InstancedGeometry::MaterialBucket::GeometryBucketList
vector< GeometryBucket * >::type GeometryBucketList
list of Geometry Buckets in this BatchInstance
Definition: OgreInstancedGeometry.h:325
Ogre::InstancedGeometry::mOrigin
Vector3 mOrigin
Definition: OgreInstancedGeometry.h:549
Ogre::InstancedGeometry::getRenderOperationVector
RenderOperationVector & getRenderOperationVector()
get the mRenderOps vector.
Definition: OgreInstancedGeometry.h:840
Ogre::InstancedGeometry::LODBucket::MaterialIterator
MapIterator< MaterialBucketMap > MaterialIterator
Iterator over the materials in this LOD.
Definition: OgreInstancedGeometry.h:416
Ogre::InstancedGeometry::QueuedGeometryList
vector< QueuedGeometry * >::type QueuedGeometryList
Definition: OgreInstancedGeometry.h:167
OgreSkeleton.h
Ogre::InstancedGeometry::GeometryBucket::mAABB
AxisAlignedBox mAABB
Definition: OgreInstancedGeometry.h:203
Ogre::InstancedGeometry::GeometryBucket::mFormatString
String mFormatString
String identifying the vertex / index format.
Definition: OgreInstancedGeometry.h:190
Ogre::VectorIterator
Concrete IteratorWrapper for nonconst access to the underlying container.
Definition: OgreIteratorWrapper.h:186
Ogre::InstancedGeometry::InstancedObject::TS_LOCAL
Transform is relative to the local space.
Definition: OgreInstancedGeometry.h:268
Ogre::InstancedGeometry::MaterialBucket::getMaterial
const MaterialPtr & getMaterial(void) const
Get the material for this bucket.
Definition: OgreInstancedGeometry.h:358
Ogre::InstancedGeometry::getName
const String & getName(void) const
Get the name of this object.
Definition: OgreInstancedGeometry.h:664
Ogre::InstancedGeometry::SubMeshLodGeometryLink::indexData
IndexData * indexData
Definition: OgreInstancedGeometry.h:138
Ogre::InstancedGeometry::MaterialBucket::mTechnique
Technique * mTechnique
Active technique.
Definition: OgreInstancedGeometry.h:334
Ogre::InstancedGeometry::getObjectCount
unsigned int getObjectCount(void)
Definition: OgreInstancedGeometry.h:868
Ogre::InstancedGeometry::BatchInstance::mSquaredViewDepth
Real mSquaredViewDepth
Cached squared view depth value to avoid recalculation by GeometryBucket.
Definition: OgreInstancedGeometry.h:472
Ogre::InstancedGeometry::getBaseSkeletonInstance
SkeletonInstance * getBaseSkeletonInstance(void)
Definition: OgreInstancedGeometry.h:853
Ogre::InstancedGeometry::OptimisedSubMeshGeometryList
list< OptimisedSubMeshGeometry * >::type OptimisedSubMeshGeometryList
Definition: OgreInstancedGeometry.h:132
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::InstancedGeometry::BatchInstance::mBoundingRadius
Real mBoundingRadius
Local bounding radius.
Definition: OgreInstancedGeometry.h:464
Ogre::list
Definition: OgrePrerequisites.h:505
Ogre::InstancedGeometry::OptimisedSubMeshGeometry::OptimisedSubMeshGeometry
OptimisedSubMeshGeometry()
Definition: OgreInstancedGeometry.h:123
Ogre::InstancedGeometry::LODBucket::getLod
ushort getLod(void) const
Get the LOD index.
Definition: OgreInstancedGeometry.h:405
Ogre::MovableObject
Abstract class defining a movable object in a scene.
Definition: OgreMovableObject.h:60
OgreBone.h
Ogre::LodStrategy
Strategy for determining level of detail.
Definition: OgreLodStrategy.h:54
OgreSkeletonInstance.h
Ogre::InstancedGeometry::InstancedObject::mScale
Vector3 mScale
Definition: OgreInstancedGeometry.h:281
Ogre::InstancedGeometry::GeometryBucket::copyIndexes
void copyIndexes(const T *src, T *dst, size_t count, size_t indexOffset)
Definition: OgreInstancedGeometry.h:206
Ogre::InstancedGeometry::mAnimationState
AnimationStateSet * mAnimationState
This is the main animation state.
Definition: OgreInstancedGeometry.h:569
Ogre::InstancedGeometry::BatchInstance
The details of a topological BatchInstance which is the highest level of partitioning for this class...
Definition: OgreInstancedGeometry.h:434
Ogre::vector::type
std::vector< T, A > type
Definition: OgrePrerequisites.h:494
Ogre::InstancedGeometry::BatchInstance::mCamera
Camera * mCamera
Current camera, passed on to do material LOD later.
Definition: OgreInstancedGeometry.h:470
OgreMovableObject.h
Ogre::InstancedGeometry::mInstancedGeometryInstance
BatchInstance * mInstancedGeometryInstance
Definition: OgreInstancedGeometry.h:560
Ogre::VertexData
Summary class collecting together vertex source information.
Definition: OgreVertexIndexData.h:49
Ogre::Quaternion
Implementation of a Quaternion, i.e.
Definition: OgreQuaternion.h:57
Ogre::InstancedGeometry::BatchInstance::ObjectsMap
map< unsigned short, InstancedObject * >::type ObjectsMap
Definition: OgreInstancedGeometry.h:442
Ogre::InstancedGeometry::mSkeletonInstance
SkeletonInstance * mSkeletonInstance
Definition: OgreInstancedGeometry.h:565
Ogre::InstancedGeometry::IndexRemap
map< size_t, size_t >::type IndexRemap
Definition: OgreInstancedGeometry.h:626
OgreMesh.h
Ogre::MapIterator
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Definition: OgreIteratorWrapper.h:319
Ogre::Matrix3
A 3x3 matrix which can represent rotations around axes.
Definition: OgreMatrix3.h:68
Ogre::InstancedGeometry::QueuedSubMeshList
vector< QueuedSubMesh * >::type QueuedSubMeshList
Definition: OgreInstancedGeometry.h:156
Ogre::InstancedGeometry::mOwner
SceneManager * mOwner
Definition: OgreInstancedGeometry.h:541
Ogre::InstancedGeometry::InstancedObject::getGeometryBucketList
GeometryBucketList & getGeometryBucketList(void)
Definition: OgreInstancedGeometry.h:310
Ogre::InstancedGeometry::OptimisedSubMeshGeometry::indexData
IndexData * indexData
Definition: OgreInstancedGeometry.h:130
Ogre::InstancedGeometry::QueuedSubMesh::worldBounds
AxisAlignedBox worldBounds
Pre-transformed world AABB.
Definition: OgreInstancedGeometry.h:153
Ogre::Real
float Real
Software floating point type.
Definition: OgrePrerequisites.h:70
Ogre::InstancedGeometry::setBatchInstanceDimensions
virtual void setBatchInstanceDimensions(const Vector3 &size)
Sets the size of a single BatchInstance of geometry.
Definition: OgreInstancedGeometry.h:799
Ogre::InstancedGeometry::isVisible
virtual bool isVisible(void) const
Are the batches visible?
Definition: OgreInstancedGeometry.h:766
Ogre::InstancedGeometry::MaterialBucket::CurrentGeometryMap
map< String, GeometryBucket * >::type CurrentGeometryMap
Definition: OgreInstancedGeometry.h:339
Ogre::InstancedGeometry::QueuedSubMesh::ID
unsigned int ID
Definition: OgreInstancedGeometry.h:154
Ogre::InstancedGeometry::OptimisedSubMeshGeometry::~OptimisedSubMeshGeometry
~OptimisedSubMeshGeometry()
Definition: OgreInstancedGeometry.h:124
Ogre::RenderQueue
Class to manage the scene object rendering queue.
Definition: OgreRenderQueue.h:92
Ogre::InstancedGeometry::MaterialBucket::getLastIndex
int getLastIndex()
Definition: OgreInstancedGeometry.h:374
Ogre::IndexData
Summary class collecting together index data source information.
Definition: OgreVertexIndexData.h:242
Ogre::InstancedGeometry::BatchInstanceIterator
MapIterator< BatchInstanceMap > BatchInstanceIterator
Iterator for iterating over contained BatchInstances.
Definition: OgreInstancedGeometry.h:836
Ogre::InstancedGeometry::QueuedSubMesh::orientation
Quaternion orientation
Definition: OgreInstancedGeometry.h:150
Ogre::InstancedGeometry::getCastShadows
virtual bool getCastShadows(void)
Will the geometry from this object cast shadows?
Definition: OgreInstancedGeometry.h:787
OgreSimpleRenderable.h
Ogre::InstancedGeometry::BatchInstance::mLodStrategy
const LodStrategy * mLodStrategy
LOD strategy reference.
Definition: OgreInstancedGeometry.h:477
Ogre::InstancedGeometry::InstancedObject::mBoneMatrices
Matrix4 * mBoneMatrices
Cached bone matrices in skeleton local space.
Definition: OgreInstancedGeometry.h:287
Ogre::InstancedGeometry::mHalfBatchInstanceDimensions
Vector3 mHalfBatchInstanceDimensions
Definition: OgreInstancedGeometry.h:548
Ogre::InstancedGeometry::QueuedGeometry::orientation
Quaternion orientation
Definition: OgreInstancedGeometry.h:163
Ogre::InstancedGeometry::GeometryBucket::mVertexData
VertexData * mVertexData
Vertex information, includes current number of vertices committed to be a part of this bucket...
Definition: OgreInstancedGeometry.h:193
Ogre::SceneNode
Class representing a node in the scene graph.
Definition: OgreSceneNode.h:58
Ogre::InstancedGeometry::mQueuedSubMeshes
QueuedSubMeshList mQueuedSubMeshes
Definition: OgreInstancedGeometry.h:559
Ogre::InstancedGeometry::QueuedGeometry::ID
unsigned int ID
Definition: OgreInstancedGeometry.h:165
Ogre::InstancedGeometry::BatchInstance::mLodValues
Mesh::LodValueList mLodValues
LOD values as built up - use the max at each level.
Definition: OgreInstancedGeometry.h:460
Ogre::InstancedGeometry::LODBucket
A LODBucket is a collection of smaller buckets with the same LOD.
Definition: OgreInstancedGeometry.h:384
Ogre::InstancedGeometry::getSquaredRenderingDistance
virtual Real getSquaredRenderingDistance(void) const
Gets the squared distance at which batches are no longer rendered.
Definition: OgreInstancedGeometry.h:759
OgreAnimationTrack.h
Ogre::InstancedGeometry::MaterialBucket::mGeometryBucketList
GeometryBucketList mGeometryBucketList
list of Geometry Buckets in this BatchInstance
Definition: OgreInstancedGeometry.h:337
Ogre::InstancedGeometry::MaterialBucket::setLastIndex
void setLastIndex(int index)
Definition: OgreInstancedGeometry.h:373
Ogre::InstancedGeometry::BatchInstance::mAABB
AxisAlignedBox mAABB
Local AABB relative to BatchInstance centre.
Definition: OgreInstancedGeometry.h:462
Ogre::InstancedGeometry::BatchInstance::mCurrentLod
ushort mCurrentLod
The current LOD level, as determined from the last camera.
Definition: OgreInstancedGeometry.h:466
Ogre::SubMesh
Defines a part of a complete mesh.
Definition: OgreSubMesh.h:62
Ogre::InstancedGeometry::mRenderQueueID
uint8 mRenderQueueID
The render queue to use when rendering this object.
Definition: OgreInstancedGeometry.h:554
Ogre::InstancedGeometry::InstancedObject::mSkeletonInstance
SkeletonInstance * mSkeletonInstance
Definition: OgreInstancedGeometry.h:283
Ogre::InstancedGeometry::InstancedObject::mGeometryBucketList
GeometryBucketList mGeometryBucketList
Definition: OgreInstancedGeometry.h:277
Ogre::InstancedGeometry::setRenderingDistance
virtual void setRenderingDistance(Real dist)
Sets the distance at which batches are no longer rendered.
Definition: OgreInstancedGeometry.h:750
Ogre::AnimationStateSet
Class encapsulating a set of AnimationState objects.
Definition: OgreAnimationState.h:196
Ogre::InstancedGeometry::mProvideWorldInverses
bool mProvideWorldInverses
Flags to indicate whether the World Transform Inverse matrices are passed to the shaders.
Definition: OgreInstancedGeometry.h:552
Ogre::InstancedGeometry::InstancedObject::GeometryBucketList
vector< GeometryBucket * >::type GeometryBucketList
list of Geometry Buckets that contains the instanced object
Definition: OgreInstancedGeometry.h:275
Ogre::InstancedGeometry::getProvideWorldInverses
virtual bool getProvideWorldInverses(void) const
Definition: OgreInstancedGeometry.h:883
Ogre::InstancedGeometry::setOrigin
virtual void setOrigin(const Vector3 &origin)
Sets the origin of the geometry.
Definition: OgreInstancedGeometry.h:816
Ogre::InstancedGeometry::InstancedObject::mNumBoneMatrices
unsigned short mNumBoneMatrices
Definition: OgreInstancedGeometry.h:290
Ogre::InstancedGeometry::QueuedSubMesh::scale
Vector3 scale
Definition: OgreInstancedGeometry.h:151
Ogre::Matrix4
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: OgreMatrix4.h:78
Ogre::InstancedGeometry::QueuedSubMesh::geometryLodList
SubMeshLodGeometryLinkList * geometryLodList
Link to LOD list of geometry, potentially optimised.
Definition: OgreInstancedGeometry.h:147
Ogre::Vector3
Standard 3-dimensional vector.
Definition: OgreVector3.h:51
Ogre::InstancedGeometry::InstancedObject::mAnimationState
AnimationStateSet * mAnimationState
State of animation for animable meshes.
Definition: OgreInstancedGeometry.h:289
Ogre::InstancedGeometry::LODBucket::MaterialBucketMap
map< String, MaterialBucket * >::type MaterialBucketMap
Lookup of Material Buckets in this BatchInstance.
Definition: OgreInstancedGeometry.h:388
Ogre::InstancedGeometry::MaterialBucket::mLastIndex
int mLastIndex
Definition: OgreInstancedGeometry.h:335
Ogre::InstancedGeometry::GeometryBucket::getIndexData
const IndexData * getIndexData(void) const
Get the index data for this geometry.
Definition: OgreInstancedGeometry.h:237
Ogre::InstancedGeometry
Pre-transforms and batches up meshes for efficient use as instanced geometry in a scene...
Definition: OgreInstancedGeometry.h:105
Ogre::InstancedGeometry::GeometryBucket::mIndexType
HardwareIndexBuffer::IndexType mIndexType
Size of indexes.
Definition: OgreInstancedGeometry.h:198
Ogre::InstancedGeometry::mOptimisedSubMeshGeometryList
OptimisedSubMeshGeometryList mOptimisedSubMeshGeometryList
List of geometry which has been optimised for SubMesh use This is the primary storage used for cleani...
Definition: OgreInstancedGeometry.h:572
Ogre::InstancedGeometry::MaterialBucket
A MaterialBucket is a collection of smaller buckets with the same Material (and implicitly the same L...
Definition: OgreInstancedGeometry.h:321
OgrePrerequisites.h
Ogre::map::type
std::map< K, V, P, A > type
Definition: OgrePrerequisites.h:536
Ogre::SkeletonInstance
A SkeletonInstance is a single instance of a Skeleton used by a world object.
Definition: OgreSkeletonInstance.h:53
Ogre::InstancedGeometry::QueuedSubMesh::position
Vector3 position
Definition: OgreInstancedGeometry.h:149
_OgrePrivate
#define _OgrePrivate
Definition: OgrePlatform.h:258
Ogre::InstancedGeometry::InstancedObject::mOrientation
Quaternion mOrientation
Definition: OgreInstancedGeometry.h:280
Ogre::HashedVector
A hashed vector.
Definition: OgreCommon.h:332
Ogre::Renderable::Visitor
Visitor object that can be used to iterate over a collection of Renderable instances abstractly...
Definition: OgreRenderable.h:377
Ogre::InstancedGeometry::LODBucket::getParent
BatchInstance * getParent(void)
Definition: OgreInstancedGeometry.h:403
Ogre::InstancedGeometry::mRenderOps
RenderOperationVector mRenderOps
This vector stores all the renderOperation used in the batch.
Definition: OgreInstancedGeometry.h:585
Ogre::Mesh::LodValueList
vector< Real >::type LodValueList
Definition: OgreMesh.h:102
Ogre::InstancedGeometry::GeometryBucket::getParent
MaterialBucket * getParent(void)
Definition: OgreInstancedGeometry.h:232
Ogre::uint8
unsigned char uint8
Definition: OgrePlatform.h:361
Ogre::InstancedGeometry::QueuedGeometry::geometry
SubMeshLodGeometryLink * geometry
Definition: OgreInstancedGeometry.h:161
Ogre::InstancedGeometry::MaterialBucket::mMaterial
MaterialPtr mMaterial
Pointer to material being used.
Definition: OgreInstancedGeometry.h:332
Ogre::InstancedGeometry::getBaseSkeleton
SkeletonPtr getBaseSkeleton(void)
Definition: OgreInstancedGeometry.h:858
Ogre::InstancedGeometry::GeometryBucket::mIndexData
IndexData * mIndexData
Index information, includes index type which limits the max number of vertices which are allowed in o...
Definition: OgreInstancedGeometry.h:196
Ogre::InstancedGeometry::QueuedGeometry::position
Vector3 position
Definition: OgreInstancedGeometry.h:162
Ogre::InstancedGeometry::InstancedObject::getSkeletonInstance
SkeletonInstance * getSkeletonInstance(void)
Definition: OgreInstancedGeometry.h:316
Ogre::InstancedGeometry::MaterialBucket::mMaterialName
String mMaterialName
Material being used.
Definition: OgreInstancedGeometry.h:330
Ogre::InstancedGeometry::QueuedSubMesh
Structure recording a queued submesh for the build.
Definition: OgreInstancedGeometry.h:143
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::InstancedGeometry::MaterialBucket::GeometryIterator
VectorIterator< GeometryBucketList > GeometryIterator
Iterator over geometry.
Definition: OgreInstancedGeometry.h:360
Ogre::InstancedGeometry::SubMeshLodGeometryLink::vertexData
VertexData * vertexData
Definition: OgreInstancedGeometry.h:137
Ogre::InstancedGeometry::BatchInstance::mSceneMgr
SceneManager * mSceneMgr
Scene manager link.
Definition: OgreInstancedGeometry.h:449
Ogre::Vector3::UNIT_SCALE
static const Vector3 UNIT_SCALE
Definition: OgreVector3.h:807
Ogre::InstancedGeometry::OptimisedSubMeshGeometry
Struct holding geometry optimised per SubMesh / LOD level, ready for copying to instances.
Definition: OgreInstancedGeometry.h:120
Ogre::InstancedGeometry::MaterialBucket::getParent
LODBucket * getParent(void)
Definition: OgreInstancedGeometry.h:347
Ogre::InstancedGeometry::QueuedSubMesh::submesh
SubMesh * submesh
Definition: OgreInstancedGeometry.h:145
Ogre::InstancedGeometry::InstancedObject::TS_PARENT
Transform is relative to the space of the parent node.
Definition: OgreInstancedGeometry.h:270
Ogre::InstancedGeometry::BatchInstanceMap
map< uint32, BatchInstance * >::type BatchInstanceMap
Indexed BatchInstance map based on packed x/y/z BatchInstance index, 10 bits for each axis...
Definition: OgreInstancedGeometry.h:532
Ogre::InstancedGeometry::OptimisedSubMeshGeometry::vertexData
VertexData * vertexData
Definition: OgreInstancedGeometry.h:129
Ogre::InstancedGeometry::InstancedObject::mFrameAnimationLastUpdated
unsigned long mFrameAnimationLastUpdated
Records the last frame in which animation was updated.
Definition: OgreInstancedGeometry.h:292
Ogre::InstancedGeometry::GeometryBucket
A GeometryBucket is a the lowest level bucket where geometry with the same vertex & index format is s...
Definition: OgreInstancedGeometry.h:179
Ogre::HardwareIndexBuffer::IndexType
IndexType
Definition: OgreHardwareIndexBuffer.h:49
Ogre::InstancedGeometry::remapIndexes
void remapIndexes(T *src, T *dst, const IndexRemap &remap, size_t numIndexes)
Method for altering indexes based on a remap.
Definition: OgreInstancedGeometry.h:645
Ogre::InstancedGeometry::mRenderQueueIDSet
bool mRenderQueueIDSet
Flags whether the RenderQueue&#39;s default should be used.
Definition: OgreInstancedGeometry.h:556
Ogre::InstancedGeometry::MaterialBucket::mParent
LODBucket * mParent
Pointer to parent LODBucket.
Definition: OgreInstancedGeometry.h:328
Ogre::Camera
A viewpoint from which the scene will be rendered.
Definition: OgreCamera.h:86
Ogre::InstancedGeometry::BatchInstance::mLodValue
Real mLodValue
Current LOD value, passed on to do material LOD later.
Definition: OgreInstancedGeometry.h:468
OgreHeaderSuffix.h
Ogre::InstancedGeometry::LODBucket::getLodValue
Real getLodValue(void) const
Get the LOD value.
Definition: OgreInstancedGeometry.h:407
Ogre::InstancedGeometry::BatchInstance::mBatchInstanceID
uint32 mBatchInstanceID
Unique identifier for the BatchInstance.
Definition: OgreInstancedGeometry.h:455
Ogre::InstancedGeometry::LODBucket::mParent
BatchInstance * mParent
Pointer to parent BatchInstance.
Definition: OgreInstancedGeometry.h:391
Ogre::InstancedGeometry::InstancedObject
Definition: OgreInstancedGeometry.h:261
Ogre::InstancedGeometry::SubMeshLodGeometryLinkList
vector< SubMeshLodGeometryLink >::type SubMeshLodGeometryLinkList
Definition: OgreInstancedGeometry.h:140
Ogre::InstancedGeometry::getRenderingDistance
virtual Real getRenderingDistance(void) const
Gets the distance at which batches are no longer rendered.
Definition: OgreInstancedGeometry.h:756
Ogre::uint32
unsigned int uint32
Definition: OgrePlatform.h:359
Ogre::InstancedGeometry::mBatchInstanceMap
BatchInstanceMap mBatchInstanceMap
Map of BatchInstances.
Definition: OgreInstancedGeometry.h:581
OgreIteratorWrappers.h
Ogre::InstancedGeometry::mObjectCount
unsigned int mObjectCount
number of objects in the batch
Definition: OgreInstancedGeometry.h:558
Ogre::InstancedGeometry::SubMeshLodGeometryLink
Saved link between SubMesh at a LOD and vertex/index data May point to original or optimised geometry...
Definition: OgreInstancedGeometry.h:135
Ogre::InstancedGeometry::GeometryBucket::getAABB
AxisAlignedBox & getAABB(void)
Return the BoundingBox information. Useful when cloning the batch instance.
Definition: OgreInstancedGeometry.h:256
Ogre::InstancedGeometry::mBaseSkeleton
SkeletonPtr mBaseSkeleton
this is just a pointer to the base skeleton that will be used for each animated object in the batches...
Definition: OgreInstancedGeometry.h:564
Ogre::InstancedGeometry::mName
String mName
Definition: OgreInstancedGeometry.h:542
Ogre::InstancedGeometry::BatchInstance::mLodBucketList
LODBucketList mLodBucketList
List of LOD buckets.
Definition: OgreInstancedGeometry.h:475
Ogre::InstancedGeometry::getOrigin
virtual const Vector3 & getOrigin(void) const
Gets the origin of this geometry.
Definition: OgreInstancedGeometry.h:818
Ogre::InstancedGeometry::RenderOperationVector
vector< RenderOperation * >::type RenderOperationVector
Simple vectors where are stored all the render operations of the Batch.
Definition: OgreInstancedGeometry.h:538
Ogre::InstancedGeometry::QueuedGeometry
Structure recording a queued geometry for low level builds.
Definition: OgreInstancedGeometry.h:159
Ogre::InstancedGeometry::BatchInstance::mNode
SceneNode * mNode
Scene node.
Definition: OgreInstancedGeometry.h:451
Ogre
Definition: OgreAndroidLogListener.h:34
Ogre::InstancedGeometry::getBaseAnimationState
AnimationStateSet * getBaseAnimationState(void)
Definition: OgreInstancedGeometry.h:863
Ogre::InstancedGeometry::GeometryBucket::mMaxVertexIndex
size_t mMaxVertexIndex
Maximum vertex indexable.
Definition: OgreInstancedGeometry.h:200
Ogre::InstancedGeometry::LODBucket::mLod
unsigned short mLod
LOD level (0 == full LOD)
Definition: OgreInstancedGeometry.h:393
Ogre::InstancedGeometry::LODBucket::mLodValue
Real mLodValue
LOD value at which this LOD starts to apply (squared)
Definition: OgreInstancedGeometry.h:395
Ogre::InstancedGeometry::InstancedObject::mIndex
unsigned short mIndex
Definition: OgreInstancedGeometry.h:278
Ogre::InstancedGeometry::GeometryBucket::mQueuedGeometry
QueuedGeometryList mQueuedGeometry
Geometry which has been queued up pre-build (not for deallocation)
Definition: OgreInstancedGeometry.h:184
Ogre::InstancedGeometry::MaterialBucket::mCurrentGeometryMap
CurrentGeometryMap mCurrentGeometryMap
Definition: OgreInstancedGeometry.h:340
Ogre::InstancedGeometry::BatchInstance::getSceneNode
SceneNode * getSceneNode(void)
Definition: OgreInstancedGeometry.h:524
Ogre::SharedPtr< Material >
Ogre::vector
Definition: OgrePrerequisites.h:491
Ogre::InstancedGeometry::mVisible
bool mVisible
Definition: OgreInstancedGeometry.h:550
OgreHeaderPrefix.h
Ogre::InstancedGeometry::BatchInstance::getID
uint32 getID(void) const
Get the BatchInstance ID of this BatchInstance.
Definition: OgreInstancedGeometry.h:490
Ogre::InstancedGeometry::BatchInstance::LODIterator
VectorIterator< LODBucketList > LODIterator
Definition: OgreInstancedGeometry.h:506
Ogre::InstancedGeometry::InstancedObject::TransformSpace
TransformSpace
Definition: OgreInstancedGeometry.h:265
Ogre::InstancedGeometry::mSubMeshGeometryLookup
SubMeshGeometryLookup mSubMeshGeometryLookup
Cached links from SubMeshes to (potentially optimised) geometry This is not used for deletion since t...
Definition: OgreInstancedGeometry.h:578
Ogre::InstancedGeometry::GeometryBucket::mParent
MaterialBucket * mParent
Pointer to parent bucket.
Definition: OgreInstancedGeometry.h:188
Ogre::InstancedGeometry::BatchInstance::mInstancesMap
ObjectsMap mInstancesMap
Definition: OgreInstancedGeometry.h:457
Ogre::Technique
Class representing an approach to rendering this particular Material.
Definition: OgreTechnique.h:53
Ogre::Entity
Defines an instance of a discrete, movable object based on a Mesh.
Definition: OgreEntity.h:82
Ogre::InstancedGeometry::LODBucket::mQueuedGeometryList
QueuedGeometryList mQueuedGeometryList
Geometry queued for a single LOD (deallocated here)
Definition: OgreInstancedGeometry.h:399
Ogre::InstancedGeometry::MaterialBucket::getMaterialName
const String & getMaterialName(void) const
Get the material name.
Definition: OgreInstancedGeometry.h:349
Ogre::map
Definition: OgrePrerequisites.h:533
Ogre::AnimationState
Represents the state of an animation and the weight of its influence.
Definition: OgreAnimationState.h:54
Ogre::ushort
unsigned short ushort
Definition: OgrePrerequisites.h:113
Ogre::Quaternion::IDENTITY
static const Quaternion IDENTITY
Definition: OgreQuaternion.h:301
Ogre::InstancedGeometry::mSquaredUpperDistance
Real mSquaredUpperDistance
Definition: OgreInstancedGeometry.h:545
Ogre::InstancedGeometry::SubMeshGeometryLookup
map< SubMesh *, SubMeshLodGeometryLinkList * >::type SubMeshGeometryLookup
Definition: OgreInstancedGeometry.h:141
Ogre::InstancedGeometry::BatchInstance::LODBucketList
vector< LODBucket * >::type LODBucketList
list of LOD Buckets in this BatchInstance
Definition: OgreInstancedGeometry.h:441
Ogre::InstancedGeometry::BatchInstance::getInstancesMap
ObjectsMap & getInstancesMap(void)
Definition: OgreInstancedGeometry.h:525
Ogre::InstancedGeometry::LODBucket::mMaterialBucketMap
MaterialBucketMap mMaterialBucketMap
Lookup of Material Buckets in this BatchInstance.
Definition: OgreInstancedGeometry.h:397
Ogre::AxisAlignedBox
A 3D box aligned with the x/y/z axes.
Definition: OgreAxisAlignedBox.h:54
Ogre::SceneManager
Manages the organisation and rendering of a &#39;scene&#39; i.e.
Definition: OgreSceneManager.h:143
Ogre::InstancedGeometry::InstancedObject::mTransformation
Matrix4 mTransformation
Definition: OgreInstancedGeometry.h:279
Ogre::InstancedGeometry::mBuilt
bool mBuilt
Definition: OgreInstancedGeometry.h:543
Ogre::InstancedGeometry::GeometryBucket::mTexCoordIndex
unsigned short mTexCoordIndex
Index of the Texcoord where the index is stored.
Definition: OgreInstancedGeometry.h:202
Ogre::InstancedGeometry::QueuedSubMeshOriginList
vector< String >::type QueuedSubMeshOriginList
Definition: OgreInstancedGeometry.h:157
Ogre::InstancedGeometry::GeometryBucket::getVertexData
const VertexData * getVertexData(void) const
Get the vertex data for this geometry.
Definition: OgreInstancedGeometry.h:235
Ogre::InstancedGeometry::mCastShadows
bool mCastShadows
Definition: OgreInstancedGeometry.h:546
Ogre::InstancedGeometry::BatchInstance::InstancedObjectIterator
MapIterator< ObjectsMap > InstancedObjectIterator
Definition: OgreInstancedGeometry.h:443
Ogre::InstancedGeometry::BatchInstance::mParent
InstancedGeometry * mParent
Parent static geometry.
Definition: OgreInstancedGeometry.h:447
Ogre::InstancedGeometry::MaterialBucket::getCurrentTechnique
Technique * getCurrentTechnique(void) const
Get the current Technique.
Definition: OgreInstancedGeometry.h:364
Ogre::SimpleRenderable
Simple implementation of MovableObject and Renderable for single-part custom objects.
Definition: OgreSimpleRenderable.h:50
Ogre::InstancedGeometry::BatchInstance::mQueuedSubMeshes
QueuedSubMeshList mQueuedSubMeshes
Local list of queued meshes (not used for deallocation)
Definition: OgreInstancedGeometry.h:453
Ogre::InstancedGeometry::QueuedGeometry::scale
Vector3 scale
Definition: OgreInstancedGeometry.h:164
Ogre::InstancedGeometry::InstancedObject::mPosition
Vector3 mPosition
Definition: OgreInstancedGeometry.h:282
Ogre::InstancedGeometry::mUpperDistance
Real mUpperDistance
Definition: OgreInstancedGeometry.h:544
Ogre::InstancedGeometry::GeometryBucket::mBatch
InstancedGeometry * mBatch
Pointer to the Batch.
Definition: OgreInstancedGeometry.h:186
Ogre::AllocatedObject
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Definition: OgreMemoryAllocatedObject.h:58
Ogre::InstancedGeometry::getBatchInstanceDimensions
virtual const Vector3 & getBatchInstanceDimensions(void) const
Gets the size of a single batch of geometry.
Definition: OgreInstancedGeometry.h:804
Ogre::InstancedGeometry::buildIndexRemap
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...
Definition: OgreInstancedGeometry.h:632
Ogre::InstancedGeometry::mBatchInstanceDimensions
Vector3 mBatchInstanceDimensions
Definition: OgreInstancedGeometry.h:547
Ogre::InstancedGeometry::BatchInstance::getParent
InstancedGeometry * getParent(void) const
Definition: OgreInstancedGeometry.h:484
Ogre::InstancedGeometry::InstancedObject::mBoneWorldMatrices
Matrix4 * mBoneWorldMatrices
Cached bone matrices, including any world transform.
Definition: OgreInstancedGeometry.h:285
Ogre::Radian
Wrapper class which indicates a given angle value is in Radians.
Definition: OgreMath.h:47
Ogre::InstancedGeometry::QueuedSubMesh::materialName
String materialName
Definition: OgreInstancedGeometry.h:148

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