OgreEntity.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 __Entity_H__
#define __Entity_H__
#include "OgrePrerequisites.h"
#include "OgreCommon.h"
#include "OgreString.h"
#include "OgreMovableObject.h"
#include "OgreQuaternion.h"
#include "OgreVector3.h"
#include "OgreHardwareBufferManager.h"
#include "OgreMesh.h"
#include "OgreRenderable.h"
#include "OgreResourceGroupManager.h"
#include "OgreHeaderPrefix.h"
namespace Ogre {
class _OgreExport Entity: public MovableObject, public Resource::Listener
{
// Allow EntityFactory full access
friend class EntityFactory;
friend class SubEntity;
public:
typedef set<Entity*>::type EntitySet;
typedef map<unsigned short, bool>::type SchemeHardwareAnimMap;
protected:
Entity();
Entity( const String& name, const MeshPtr& mesh);
MeshPtr mMesh;
typedef vector<SubEntity*>::type SubEntityList;
SubEntityList mSubEntityList;
AnimationStateSet* mAnimationState;
TempBlendedBufferInfo mTempSkelAnimInfo;
VertexData* mSkelAnimVertexData;
TempBlendedBufferInfo mTempVertexAnimInfo;
VertexData* mSoftwareVertexAnimVertexData;
VertexData* mHardwareVertexAnimVertexData;
bool mVertexAnimationAppliedThisFrame;
bool mPreparedForShadowVolumes;
const VertexData* findBlendedVertexData(const VertexData* orig);
SubEntity* findSubEntityForVertexData(const VertexData* orig);
void extractTempBufferInfo(VertexData* sourceData, TempBlendedBufferInfo* info);
VertexData* cloneVertexDataRemoveBlendInfo(const VertexData* source);
void prepareTempBlendBuffers(void);
void markBuffersUnusedForAnimation(void);
void restoreBuffersForUnusedAnimation(bool hardwareAnimation);
void bindMissingHardwarePoseBuffers(const VertexData* srcData,
VertexData* destData);
void initialisePoseVertexData(const VertexData* srcData, VertexData* destData,
bool animateNormals);
void finalisePoseNormals(const VertexData* srcData, VertexData* destData);
Matrix4 *mBoneWorldMatrices;
Matrix4 *mBoneMatrices;
unsigned short mNumBoneMatrices;
unsigned long mFrameAnimationLastUpdated;
void updateAnimation(void);
unsigned long *mFrameBonesLastUpdated;
EntitySet* mSharedSkeletonEntities;
bool cacheBoneMatrices(void);
bool mDisplaySkeleton;
SchemeHardwareAnimMap mSchemeHardwareAnim;
bool mCurrentHWAnimationState;
ushort mHardwarePoseCount;
bool mVertexProgramInUse;
int mSoftwareAnimationRequests;
int mSoftwareAnimationNormalsRequests;
bool mSkipAnimStateUpdates;
bool mAlwaysUpdateMainSkeleton;
ushort mMeshLodIndex;
Real mMeshLodFactorTransformed;
ushort mMinMeshLodIndex;
ushort mMaxMeshLodIndex;
Real mMaterialLodFactor;
Real mMaterialLodFactorTransformed;
ushort mMinMaterialLodIndex;
ushort mMaxMaterialLodIndex;
typedef vector<Entity*>::type LODEntityList;
LODEntityList mLodEntityList;
SkeletonInstance* mSkeletonInstance;
bool mInitialised;
Matrix4 mLastParentXform;
size_t mMeshStateCount;
void buildSubEntityList(MeshPtr& mesh, SubEntityList* sublist);
void attachObjectImpl(MovableObject *pMovable, TagPoint *pAttachingPoint);
void detachObjectImpl(MovableObject* pObject);
void detachAllObjectsImpl(void);
void reevaluateVertexProcessing(void);
bool calcVertexProcessing(void);
void applyVertexAnimation(bool hardwareAnimation, bool stencilShadows);
ushort initHardwareAnimationElements(VertexData* vdata, ushort numberOfElements, bool animateNormals);
bool tempVertexAnimBuffersBound(void) const;
bool tempSkelAnimBuffersBound(bool requestNormals) const;
public:
typedef map<String, MovableObject*>::type ChildObjectList;
protected:
ChildObjectList mChildObjectList;
mutable AxisAlignedBox mFullBoundingBox;
ShadowRenderableList mShadowRenderables;
class _OgreExport EntityShadowRenderable : public ShadowRenderable
{
protected:
Entity* mParent;
HardwareVertexBufferSharedPtr mPositionBuffer;
HardwareVertexBufferSharedPtr mWBuffer;
const VertexData* mCurrentVertexData;
unsigned short mOriginalPosBufferBinding;
SubEntity* mSubEntity;
public:
EntityShadowRenderable(Entity* parent,
HardwareIndexBufferSharedPtr* indexBuffer, const VertexData* vertexData,
bool createSeparateLightCap, SubEntity* subent, bool isLightCap = false);
~EntityShadowRenderable();
void _createSeparateLightCap();
void getWorldTransforms(Matrix4* xform) const;
HardwareVertexBufferSharedPtr getPositionBuffer(void) { return mPositionBuffer; }
HardwareVertexBufferSharedPtr getWBuffer(void) { return mWBuffer; }
void rebindPositionBuffer(const VertexData* vertexData, bool force);
bool isVisible(void) const;
virtual void rebindIndexBuffer(const HardwareIndexBufferSharedPtr& indexBuffer);
};
public:
~Entity();
const MeshPtr& getMesh(void) const;
SubEntity* getSubEntity(unsigned int index) const;
SubEntity* getSubEntity( const String& name ) const;
unsigned int getNumSubEntities(void) const;
Entity* clone( const String& newName ) const;
void setMaterialName( const String& name, const String& groupName = ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME );
void setMaterial(const MaterialPtr& material);
void _notifyCurrentCamera(Camera* cam);
void setRenderQueueGroup(uint8 queueID);
void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority);
const AxisAlignedBox& getBoundingBox(void) const;
AxisAlignedBox getChildObjectsBoundingBox(void) const;
void _updateRenderQueue(RenderQueue* queue);
const String& getMovableType(void) const;
AnimationState* getAnimationState(const String& name) const;
bool hasAnimationState(const String& name) const;
AnimationStateSet* getAllAnimationStates(void) const;
void setDisplaySkeleton(bool display);
bool getDisplaySkeleton(void) const;
Entity* getManualLodLevel(size_t index) const;
size_t getNumManualLodLevels(void) const;
ushort getCurrentLodIndex() { return mMeshLodIndex; }
void setMeshLodBias(Real factor, ushort maxDetailIndex = 0, ushort minDetailIndex = 99);
void setMaterialLodBias(Real factor, ushort maxDetailIndex = 0, ushort minDetailIndex = 99);
void setPolygonModeOverrideable(bool PolygonModeOverrideable);
TagPoint* attachObjectToBone(const String &boneName,
MovableObject *pMovable,
const Quaternion &offsetOrientation = Quaternion::IDENTITY,
const Vector3 &offsetPosition = Vector3::ZERO);
MovableObject* detachObjectFromBone(const String &movableName);
void detachObjectFromBone(MovableObject* obj);
void detachAllObjectsFromBone(void);
typedef MapIterator<ChildObjectList> ChildObjectListIterator;
ChildObjectListIterator getAttachedObjectIterator(void);
Real getBoundingRadius(void) const;
const AxisAlignedBox& getWorldBoundingBox(bool derive = false) const;
const Sphere& getWorldBoundingSphere(bool derive = false) const;
EdgeData* getEdgeList(void);
bool hasEdgeList(void);
ShadowRenderableListIterator getShadowVolumeRenderableIterator(
ShadowTechnique shadowTechnique, const Light* light,
HardwareIndexBufferSharedPtr* indexBuffer, size_t* indexBufferUsedSize,
bool extrudeVertices, Real extrusionDistance, unsigned long flags = 0 );
const Matrix4* _getBoneMatrices(void) const { return mBoneMatrices;}
unsigned short _getNumBoneMatrices(void) const { return mNumBoneMatrices; }
bool hasSkeleton(void) const { return mSkeletonInstance != 0; }
SkeletonInstance* getSkeleton(void) const { return mSkeletonInstance; }
bool isHardwareAnimationEnabled(void);
void _notifyAttached(Node* parent, bool isTagPoint = false);
int getSoftwareAnimationRequests(void) const { return mSoftwareAnimationRequests; }
int getSoftwareAnimationNormalsRequests(void) const { return mSoftwareAnimationNormalsRequests; }
void addSoftwareAnimationRequest(bool normalsAlso);
void removeSoftwareAnimationRequest(bool normalsAlso);
void shareSkeletonInstanceWith(Entity* entity);
bool hasVertexAnimation(void) const;
void stopSharingSkeletonInstance();
inline bool sharesSkeletonInstance() const { return mSharedSkeletonEntities != NULL; }
inline const EntitySet* getSkeletonInstanceSharingSet() const { return mSharedSkeletonEntities; }
void refreshAvailableAnimationState(void);
void _updateAnimation(void);
bool _isAnimated(void) const;
bool _isSkeletonAnimated(void) const;
VertexData* _getSkelAnimVertexData(void) const;
VertexData* _getSoftwareVertexAnimVertexData(void) const;
VertexData* _getHardwareVertexAnimVertexData(void) const;
TempBlendedBufferInfo* _getSkelAnimTempBufferInfo(void);
TempBlendedBufferInfo* _getVertexAnimTempBufferInfo(void);
uint32 getTypeFlags(void) const;
VertexData* getVertexDataForBinding(void);
enum VertexDataBindChoice
{
BIND_ORIGINAL,
BIND_SOFTWARE_SKELETAL,
BIND_SOFTWARE_MORPH,
BIND_HARDWARE_MORPH
};
VertexDataBindChoice chooseVertexDataForBinding(bool hasVertexAnim);
bool _getBuffersMarkedForAnimation(void) const { return mVertexAnimationAppliedThisFrame; }
void _markBuffersUsedForAnimation(void);
bool isInitialised(void) const { return mInitialised; }
void _initialise(bool forceReinitialise = false);
void _deinitialise(void);
void backgroundLoadingComplete(Resource* res);
void visitRenderables(Renderable::Visitor* visitor,
bool debugRenderables = false);
Real _getMeshLodFactorTransformed() const;
void setSkipAnimationStateUpdate(bool skip) {
mSkipAnimStateUpdates = skip;
}
bool getSkipAnimationStateUpdate() const {
return mSkipAnimStateUpdates;
}
void setAlwaysUpdateMainSkeleton(bool update) {
mAlwaysUpdateMainSkeleton = update;
}
bool getAlwaysUpdateMainSkeleton() const {
return mAlwaysUpdateMainSkeleton;
}
};
class _OgreExport EntityFactory : public MovableObjectFactory
{
protected:
MovableObject* createInstanceImpl( const String& name, const NameValuePairList* params);
public:
EntityFactory() {}
~EntityFactory() {}
static String FACTORY_TYPE_NAME;
const String& getType(void) const;
void destroyInstance( MovableObject* obj);
};
} // namespace Ogre
#include "OgreHeaderSuffix.h"
#endif // __Entity_H__
Ogre::ShadowRenderable
Class which represents the renderable aspects of a set of shadow volume faces.
Definition: OgreShadowCaster.h:52
Ogre::Entity::mHardwareVertexAnimVertexData
VertexData * mHardwareVertexAnimVertexData
Vertex data details for hardware vertex anim of shared geometry.
Definition: OgreEntity.h:126
Ogre::Entity::mHardwarePoseCount
ushort mHardwarePoseCount
Number of hardware poses supported by materials.
Definition: OgreEntity.h:217
Ogre::VectorIterator
Concrete IteratorWrapper for nonconst access to the underlying container.
Definition: OgreIteratorWrapper.h:186
Ogre::SubEntity
Utility class which defines the sub-parts of an Entity.
Definition: OgreSubEntity.h:63
Ogre::Entity::mSkipAnimStateUpdates
bool mSkipAnimStateUpdates
Flag indicating whether to skip automatic updating of the Skeleton&#39;s AnimationState.
Definition: OgreEntity.h:225
Ogre::Entity::setSkipAnimationStateUpdate
void setSkipAnimationStateUpdate(bool skip)
Entity&#39;s skeleton&#39;s AnimationState will not be automatically updated when set to true.
Definition: OgreEntity.h:829
Ogre::Entity::mTempVertexAnimInfo
TempBlendedBufferInfo mTempVertexAnimInfo
Temp buffer details for software vertex anim of shared geometry.
Definition: OgreEntity.h:120
Ogre::Entity::mSoftwareAnimationRequests
int mSoftwareAnimationRequests
Counter indicating number of requests for software animation.
Definition: OgreEntity.h:221
Ogre::Entity::mFullBoundingBox
AxisAlignedBox mFullBoundingBox
Bounding box that &#39;contains&#39; all the mesh of each child entity.
Definition: OgreEntity.h:310
Ogre::Entity::LODEntityList
vector< Entity * >::type LODEntityList
List of LOD Entity instances (for manual LODs).
Definition: OgreEntity.h:254
OgreQuaternion.h
OgreVector3.h
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::EntityFactory::~EntityFactory
~EntityFactory()
Definition: OgreEntity.h:866
Ogre::MovableObject
Abstract class defining a movable object in a scene.
Definition: OgreMovableObject.h:60
Ogre::HardwareIndexBufferSharedPtr
Shared pointer implementation used to share index buffers.
Definition: OgreHardwareIndexBuffer.h:79
Ogre::Entity::mMeshStateCount
size_t mMeshStateCount
Mesh state count, used to detect differences.
Definition: OgreEntity.h:268
Ogre::set::type
std::set< T, P, A > type
Definition: OgrePrerequisites.h:522
Ogre::Entity::mLastParentXform
Matrix4 mLastParentXform
Last parent transform.
Definition: OgreEntity.h:265
OgreRenderable.h
OgreMovableObject.h
Ogre::Entity::EntityShadowRenderable::mOriginalPosBufferBinding
unsigned short mOriginalPosBufferBinding
Original position buffer source binding.
Definition: OgreEntity.h:326
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::Sphere
A sphere primitive, mostly used for bounds checking.
Definition: OgreSphere.h:51
Ogre::Entity::mFrameAnimationLastUpdated
unsigned long mFrameAnimationLastUpdated
Records the last frame in which animation was updated.
Definition: OgreEntity.h:184
Ogre::ShadowCaster::ShadowRenderableList
vector< ShadowRenderable * >::type ShadowRenderableList
Definition: OgreShadowCaster.h:136
Ogre::Entity::mAnimationState
AnimationStateSet * mAnimationState
State of animation for animable meshes.
Definition: OgreEntity.h:112
OgreMesh.h
Ogre::MapIterator
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Definition: OgreIteratorWrapper.h:319
Ogre::Entity::mSchemeHardwareAnim
SchemeHardwareAnimMap mSchemeHardwareAnim
Flag indicating whether hardware animation is supported by this entities materials data is saved per ...
Definition: OgreEntity.h:211
Ogre::Entity::BIND_SOFTWARE_MORPH
Definition: OgreEntity.h:777
Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
Definition: OgreResourceGroupManager.h:270
Ogre::Entity::mMaterialLodFactor
Real mMaterialLodFactor
LOD bias factor, not transformed.
Definition: OgreEntity.h:241
Ogre::Real
float Real
Software floating point type.
Definition: OgrePrerequisites.h:70
Ogre::Entity::mSoftwareAnimationNormalsRequests
int mSoftwareAnimationNormalsRequests
Counter indicating number of requests for software blended normals.
Definition: OgreEntity.h:223
Ogre::RenderQueue
Class to manage the scene object rendering queue.
Definition: OgreRenderQueue.h:92
OgreString.h
Ogre::TempBlendedBufferInfo
Structure for recording the use of temporary blend buffers.
Definition: OgreHardwareBufferManager.h:71
Ogre::Entity::mSkelAnimVertexData
VertexData * mSkelAnimVertexData
Vertex data details for software skeletal anim of shared geometry.
Definition: OgreEntity.h:118
Ogre::Entity::getCurrentLodIndex
ushort getCurrentLodIndex()
Returns the current LOD used to render.
Definition: OgreEntity.h:474
Ogre::Resource
Abstract class representing a loadable resource (e.g.
Definition: OgreResource.h:79
Ogre::Entity::getSoftwareAnimationRequests
int getSoftwareAnimationRequests(void) const
Returns the number of requests that have been made for software animation.
Definition: OgreEntity.h:639
Ogre::Entity::EntityShadowRenderable::mParent
Entity * mParent
Definition: OgreEntity.h:318
Ogre::EntityFactory::EntityFactory
EntityFactory()
Definition: OgreEntity.h:865
Ogre::Entity::mPreparedForShadowVolumes
bool mPreparedForShadowVolumes
Have the temp buffers already had their geometry prepared for use in rendering shadow volumes...
Definition: OgreEntity.h:130
Ogre::Entity::_getBoneMatrices
const Matrix4 * _getBoneMatrices(void) const
Internal method for retrieving bone matrix information.
Definition: OgreEntity.h:606
Ogre::ShadowTechnique
ShadowTechnique
An enumeration of broad shadow techniques.
Definition: OgreCommon.h:190
Ogre::Entity::getSkeletonInstanceSharingSet
const EntitySet * getSkeletonInstanceSharingSet() const
Returns a pointer to the set of entities which share a SkeletonInstance.
Definition: OgreEntity.h:701
Ogre::EdgeData
This class contains the information required to describe the edge connectivity of a given set of vert...
Definition: OgreEdgeListBuilder.h:52
Ogre::Entity::mNumBoneMatrices
unsigned short mNumBoneMatrices
Definition: OgreEntity.h:182
Ogre::Entity::sharesSkeletonInstance
bool sharesSkeletonInstance() const
Returns whether this entity shares it&#39;s SkeltonInstance with other entity instances.
Definition: OgreEntity.h:696
OgreHardwareBufferManager.h
OgreCommon.h
Ogre::AnimationStateSet
Class encapsulating a set of AnimationState objects.
Definition: OgreAnimationState.h:196
Ogre::Resource::Listener
Definition: OgreResource.h:83
Ogre::Entity::mMeshLodFactorTransformed
Real mMeshLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted LOD value.
Definition: OgreEntity.h:234
Ogre::Entity::getSoftwareAnimationNormalsRequests
int getSoftwareAnimationNormalsRequests(void) const
Returns the number of requests that have been made for software animation of normals.
Definition: OgreEntity.h:651
Ogre::Matrix4
Class encapsulating a standard 4x4 homogeneous matrix.
Definition: OgreMatrix4.h:78
Ogre::Vector3
Standard 3-dimensional vector.
Definition: OgreVector3.h:51
Ogre::Entity::hasSkeleton
bool hasSkeleton(void) const
Returns whether or not this entity is skeletally animated.
Definition: OgreEntity.h:610
Ogre::HardwareVertexBufferSharedPtr
Shared pointer implementation used to share vertex buffers.
Definition: OgreHardwareVertexBuffer.h:86
Ogre::Entity::mChildObjectList
ChildObjectList mChildObjectList
Definition: OgreEntity.h:306
Ogre::Entity::mSharedSkeletonEntities
EntitySet * mSharedSkeletonEntities
A set of all the entities which shares a single SkeletonInstance.
Definition: OgreEntity.h:198
OgrePrerequisites.h
Ogre::Entity::mMesh
MeshPtr mMesh
The Mesh that this Entity is based on.
Definition: OgreEntity.h:103
Ogre::Entity::mDisplaySkeleton
bool mDisplaySkeleton
Flag determines whether or not to display skeleton.
Definition: OgreEntity.h:207
Ogre::SkeletonInstance
A SkeletonInstance is a single instance of a Skeleton used by a world object.
Definition: OgreSkeletonInstance.h:53
Ogre::Entity::SchemeHardwareAnimMap
map< unsigned short, bool >::type SchemeHardwareAnimMap
Definition: OgreEntity.h:90
Ogre::Entity::EntityShadowRenderable::mSubEntity
SubEntity * mSubEntity
Link to SubEntity, only present if SubEntity has it&#39;s own geometry.
Definition: OgreEntity.h:328
Ogre::Entity::mMaterialLodFactorTransformed
Real mMaterialLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted LOD value.
Definition: OgreEntity.h:243
Ogre::Entity::mMinMaterialLodIndex
ushort mMinMaterialLodIndex
Index of minimum detail LOD (NB higher index is lower detail).
Definition: OgreEntity.h:245
Ogre::Entity::mSubEntityList
SubEntityList mSubEntityList
Definition: OgreEntity.h:108
Ogre::Renderable::Visitor
Visitor object that can be used to iterate over a collection of Renderable instances abstractly...
Definition: OgreRenderable.h:377
Ogre::Node
Class representing a general-purpose node an articulated scene graph.
Definition: OgreNode.h:64
Ogre::Entity::mSkeletonInstance
SkeletonInstance * mSkeletonInstance
This Entity&#39;s personal copy of the skeleton, if skeletally animated.
Definition: OgreEntity.h:259
Ogre::uint8
unsigned char uint8
Definition: OgrePlatform.h:361
Ogre::Entity::EntityShadowRenderable::mCurrentVertexData
const VertexData * mCurrentVertexData
Link to current vertex data used to bind (maybe changes).
Definition: OgreEntity.h:324
Ogre::NameValuePairList
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
Definition: OgreCommon.h:550
Ogre::EntityFactory
Factory object for creating Entity instances.
Definition: OgreEntity.h:860
Ogre::Entity::ChildObjectList
map< String, MovableObject * >::type ChildObjectList
Contains the child objects (attached to bones) indexed by name.
Definition: OgreEntity.h:304
Ogre::Entity::ChildObjectListIterator
MapIterator< ChildObjectList > ChildObjectListIterator
Definition: OgreEntity.h:584
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::Entity::mMeshLodIndex
ushort mMeshLodIndex
The LOD number of the mesh to use, calculated by _notifyCurrentCamera.
Definition: OgreEntity.h:231
Ogre::Entity::getSkipAnimationStateUpdate
bool getSkipAnimationStateUpdate() const
Entity&#39;s skeleton&#39;s AnimationState will not be automatically updated when set to true.
Definition: OgreEntity.h:836
Ogre::Camera
A viewpoint from which the scene will be rendered.
Definition: OgreCamera.h:86
OgreHeaderSuffix.h
Ogre::Entity::BIND_SOFTWARE_SKELETAL
Definition: OgreEntity.h:776
Ogre::Entity::mTempSkelAnimInfo
TempBlendedBufferInfo mTempSkelAnimInfo
Temp buffer details for software skeletal anim of shared geometry.
Definition: OgreEntity.h:116
Ogre::Entity::_getNumBoneMatrices
unsigned short _getNumBoneMatrices(void) const
Internal method for retrieving bone matrix information.
Definition: OgreEntity.h:608
Ogre::Entity::EntityShadowRenderable::getWBuffer
HardwareVertexBufferSharedPtr getWBuffer(void)
Definition: OgreEntity.h:342
Ogre::uint32
unsigned int uint32
Definition: OgrePlatform.h:359
Ogre::Entity::EntityShadowRenderable::mWBuffer
HardwareVertexBufferSharedPtr mWBuffer
Shared link to w-coord buffer (optional).
Definition: OgreEntity.h:322
Ogre::Entity::mBoneMatrices
Matrix4 * mBoneMatrices
Cached bone matrices in skeleton local space, might shares with other entity instances.
Definition: OgreEntity.h:181
Ogre::EntityFactory::FACTORY_TYPE_NAME
static String FACTORY_TYPE_NAME
Definition: OgreEntity.h:868
Ogre::Entity::setAlwaysUpdateMainSkeleton
void setAlwaysUpdateMainSkeleton(bool update)
The skeleton of the main entity will be updated even if the an LOD entity is being displayed...
Definition: OgreEntity.h:844
Ogre::Entity::mAlwaysUpdateMainSkeleton
bool mAlwaysUpdateMainSkeleton
Flag indicating whether to update the main entity skeleton even when an LOD is displayed.
Definition: OgreEntity.h:227
Ogre::Entity::BIND_ORIGINAL
Definition: OgreEntity.h:775
Ogre::TagPoint
A tagged point on a skeleton, which can be used to attach entities to on specific other entities...
Definition: OgreTagPoint.h:60
Ogre::Entity::mLodEntityList
LODEntityList mLodEntityList
Definition: OgreEntity.h:255
Ogre
Definition: OgreAndroidLogListener.h:34
Ogre::Entity::mVertexProgramInUse
bool mVertexProgramInUse
Flag indicating whether we have a vertex program in use on any of our subentities.
Definition: OgreEntity.h:219
Ogre::SharedPtr< Mesh >
Ogre::Entity::EntityShadowRenderable::mPositionBuffer
HardwareVertexBufferSharedPtr mPositionBuffer
Shared link to position buffer.
Definition: OgreEntity.h:320
Ogre::vector
Definition: OgrePrerequisites.h:491
OgreHeaderPrefix.h
Ogre::Entity::mFrameBonesLastUpdated
unsigned long * mFrameBonesLastUpdated
Records the last frame in which the bones was updated.
Definition: OgreEntity.h:192
Ogre::Entity::SubEntityList
vector< SubEntity * >::type SubEntityList
List of SubEntities (point to SubMeshes).
Definition: OgreEntity.h:107
Ogre::Entity::getAlwaysUpdateMainSkeleton
bool getAlwaysUpdateMainSkeleton() const
The skeleton of the main entity will be updated even if the an LOD entity is being displayed...
Definition: OgreEntity.h:852
Ogre::Entity
Defines an instance of a discrete, movable object based on a Mesh.
Definition: OgreEntity.h:82
Ogre::Entity::VertexDataBindChoice
VertexDataBindChoice
Identify which vertex data we should be sending to the renderer.
Definition: OgreEntity.h:773
OgreResourceGroupManager.h
Ogre::map
Definition: OgrePrerequisites.h:533
Ogre::Entity::EntitySet
set< Entity * >::type EntitySet
Definition: OgreEntity.h:89
Ogre::MovableObjectFactory
Interface definition for a factory class which produces a certain kind of MovableObject, and can be registered with Root in order to allow all clients to produce new instances of this object, integrated with the standard Ogre processing.
Definition: OgreMovableObject.h:578
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::Entity::EntityShadowRenderable::getPositionBuffer
HardwareVertexBufferSharedPtr getPositionBuffer(void)
Definition: OgreEntity.h:341
Ogre::Quaternion::IDENTITY
static const Quaternion IDENTITY
Definition: OgreQuaternion.h:301
Ogre::Entity::mSoftwareVertexAnimVertexData
VertexData * mSoftwareVertexAnimVertexData
Vertex data details for software vertex anim of shared geometry.
Definition: OgreEntity.h:122
Ogre::Entity::isInitialised
bool isInitialised(void) const
Has this Entity been initialised yet?
Definition: OgreEntity.h:797
Ogre::AxisAlignedBox
A 3D box aligned with the x/y/z axes.
Definition: OgreAxisAlignedBox.h:54
Ogre::Entity::mVertexAnimationAppliedThisFrame
bool mVertexAnimationAppliedThisFrame
Have we applied any vertex animation to shared geometry?
Definition: OgreEntity.h:128
Ogre::Entity::mMinMeshLodIndex
ushort mMinMeshLodIndex
Index of minimum detail LOD (NB higher index is lower detail).
Definition: OgreEntity.h:236
Ogre::Entity::EntityShadowRenderable
Nested class to allow entity shadows.
Definition: OgreEntity.h:315
Ogre::Entity::mCurrentHWAnimationState
bool mCurrentHWAnimationState
Current state of the hardware animation as represented by the entities parameters.
Definition: OgreEntity.h:214
Ogre::Light
Representation of a dynamic light source in the scene.
Definition: OgreLight.h:73
Ogre::Entity::mMaxMaterialLodIndex
ushort mMaxMaterialLodIndex
Index of maximum detail LOD (NB lower index is higher detail).
Definition: OgreEntity.h:247
Ogre::Entity::mMaxMeshLodIndex
ushort mMaxMeshLodIndex
Index of maximum detail LOD (NB lower index is higher detail).
Definition: OgreEntity.h:238
Ogre::Entity::_getBuffersMarkedForAnimation
bool _getBuffersMarkedForAnimation(void) const
Are buffers already marked as vertex animated?
Definition: OgreEntity.h:784
Ogre::Entity::mInitialised
bool mInitialised
Has this entity been initialised yet?
Definition: OgreEntity.h:262
Ogre::Entity::getSkeleton
SkeletonInstance * getSkeleton(void) const
Get this Entity&#39;s personal skeleton instance.
Definition: OgreEntity.h:612
Ogre::Entity::mBoneWorldMatrices
Matrix4 * mBoneWorldMatrices
Cached bone matrices, including any world transform.
Definition: OgreEntity.h:179
Ogre::Entity::mShadowRenderables
ShadowRenderableList mShadowRenderables
Definition: OgreEntity.h:312
Ogre::Vector3::ZERO
static const Vector3 ZERO
Definition: OgreVector3.h:800

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