OGRE  1.9.0
OgreEntity.h
Go to the documentation of this file.
1/*
2-----------------------------------------------------------------------------
3This source file is part of OGRE
4(Object-oriented Graphics Rendering Engine)
5For the latest info, see http://www.ogre3d.org
6
7Copyright (c) 2000-2014 Torus Knot Software Ltd
8
9Permission is hereby granted, free of charge, to any person obtaining a copy
10of this software and associated documentation files (the "Software"), to deal
11in the Software without restriction, including without limitation the rights
12to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13copies of the Software, and to permit persons to whom the Software is
14furnished to do so, subject to the following conditions:
15
16The above copyright notice and this permission notice shall be included in
17all copies or substantial portions of the Software.
18
19THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25THE SOFTWARE.
26-----------------------------------------------------------------------------
27*/
28#ifndef __Entity_H__
29#define __Entity_H__
30
31#include "OgrePrerequisites.h"
32#include "OgreCommon.h"
33
34#include "OgreString.h"
35#include "OgreMovableObject.h"
36#include "OgreQuaternion.h"
37#include "OgreVector3.h"
39#include "OgreMesh.h"
40#include "OgreRenderable.h"
42#include "OgreHeaderPrefix.h"
43
44namespace Ogre {
83 {
84 // Allow EntityFactory full access
85 friend class EntityFactory;
86 friend class SubEntity;
87 public:
88
91
92 protected:
93
99 Entity( const String& name, const MeshPtr& mesh);
100
104
109
110
113
114
131
140
155 void restoreBuffersForUnusedAnimation(bool hardwareAnimation);
156
165 VertexData* destData);
166
170 void initialisePoseVertexData(const VertexData* srcData, VertexData* destData,
171 bool animateNormals);
172
176 void finalisePoseNormals(const VertexData* srcData, VertexData* destData);
177
182 unsigned short mNumBoneMatrices;
185
187 void updateAnimation(void);
188
193
199
205
212
215
228
229
232
239
248
256
260
263
266
269
272
274 void attachObjectImpl(MovableObject *pMovable, TagPoint *pAttachingPoint);
275
278
281
284
292
294 void applyVertexAnimation(bool hardwareAnimation, bool stencilShadows);
296 ushort initHardwareAnimationElements(VertexData* vdata, ushort numberOfElements, bool animateNormals);
300 bool tempSkelAnimBuffersBound(bool requestNormals) const;
301
302 public:
305 protected:
307
308
311
313
350 public:
354
357 const MeshPtr& getMesh(void) const;
358
361 SubEntity* getSubEntity(unsigned int index) const;
362
367 SubEntity* getSubEntity( const String& name ) const;
368
371 unsigned int getNumSubEntities(void) const;
372
382 Entity* clone( const String& newName ) const;
383
393
394
403 void setMaterial(const MaterialPtr& material);
404
408
411
414
417 const AxisAlignedBox& getBoundingBox(void) const;
418
421
425
427 const String& getMovableType(void) const;
428
437 bool hasAnimationState(const String& name) const;
448
451 void setDisplaySkeleton(bool display);
452
455 bool getDisplaySkeleton(void) const;
456
457
463 Entity* getManualLodLevel(size_t index) const;
464
470 size_t getNumManualLodLevels(void) const;
471
475
505 void setMeshLodBias(Real factor, ushort maxDetailIndex = 0, ushort minDetailIndex = 99);
506
536 void setMaterialLodBias(Real factor, ushort maxDetailIndex = 0, ushort minDetailIndex = 99);
537
541 void setPolygonModeOverrideable(bool PolygonModeOverrideable);
562 MovableObject *pMovable,
563 const Quaternion &offsetOrientation = Quaternion::IDENTITY,
564 const Vector3 &offsetPosition = Vector3::ZERO);
565
572
580
583
589
591 const AxisAlignedBox& getWorldBoundingBox(bool derive = false) const;
593 const Sphere& getWorldBoundingSphere(bool derive = false) const;
594
598 bool hasEdgeList(void);
601 ShadowTechnique shadowTechnique, const Light* light,
602 HardwareIndexBufferSharedPtr* indexBuffer, size_t* indexBufferUsedSize,
603 bool extrudeVertices, Real extrusionDistance, unsigned long flags = 0 );
604
606 const Matrix4* _getBoneMatrices(void) const { return mBoneMatrices;}
608 unsigned short _getNumBoneMatrices(void) const { return mNumBoneMatrices; }
610 bool hasSkeleton(void) const { return mSkeletonInstance != 0; }
629
631 void _notifyAttached(Node* parent, bool isTagPoint = false);
667 void addSoftwareAnimationRequest(bool normalsAlso);
676 void removeSoftwareAnimationRequest(bool normalsAlso);
677
683
686 bool hasVertexAnimation(void) const;
687
688
692
693
696 inline bool sharesSkeletonInstance() const { return mSharedSkeletonEntities != NULL; }
697
702
714
723
729 bool _isAnimated(void) const;
730
733 bool _isSkeletonAnimated(void) const;
734
768 uint32 getTypeFlags(void) const;
771
780
782
788
797 bool isInitialised(void) const { return mInitialised; }
798
810 void _initialise(bool forceReinitialise = false);
812 void _deinitialise(void);
813
818
821 bool debugRenderables = false);
822
825
831 }
832
838 }
839
844 void setAlwaysUpdateMainSkeleton(bool update) {
846 }
847
855
856
857 };
858
861 {
862 protected:
864 public:
867
869
870 const String& getType(void) const;
872
873 };
874
876
877} // namespace Ogre
878
879#include "OgreHeaderSuffix.h"
880
881#endif // __Entity_H__
#define _OgreExport
Class encapsulating a set of AnimationState objects.
Represents the state of an animation and the weight of its influence.
A 3D box aligned with the x/y/z axes.
A viewpoint from which the scene will be rendered.
Definition OgreCamera.h:87
This class contains the information required to describe the edge connectivity of a given set of vert...
static String FACTORY_TYPE_NAME
Definition OgreEntity.h:868
void destroyInstance(MovableObject *obj)
Destroy an instance of the object.
MovableObject * createInstanceImpl(const String &name, const NameValuePairList *params)
Internal implementation of create method - must be overridden.
const String & getType(void) const
Get the type of the object to be created.
void rebindPositionBuffer(const VertexData *vertexData, bool force)
Rebind the source positions (for temp buffer users).
void _createSeparateLightCap()
Create the separate light cap if it doesn't already exists.
EntityShadowRenderable(Entity *parent, HardwareIndexBufferSharedPtr *indexBuffer, const VertexData *vertexData, bool createSeparateLightCap, SubEntity *subent, bool isLightCap=false)
HardwareVertexBufferSharedPtr getPositionBuffer(void)
Definition OgreEntity.h:341
HardwareVertexBufferSharedPtr mWBuffer
Shared link to w-coord buffer (optional).
Definition OgreEntity.h:322
HardwareVertexBufferSharedPtr getWBuffer(void)
Definition OgreEntity.h:342
unsigned short mOriginalPosBufferBinding
Original position buffer source binding.
Definition OgreEntity.h:326
virtual void rebindIndexBuffer(const HardwareIndexBufferSharedPtr &indexBuffer)
This function informs the shadow renderable that the global index buffer from the SceneManager has be...
bool isVisible(void) const
Should this ShadowRenderable be treated as visible?
const VertexData * mCurrentVertexData
Link to current vertex data used to bind (maybe changes).
Definition OgreEntity.h:324
HardwareVertexBufferSharedPtr mPositionBuffer
Shared link to position buffer.
Definition OgreEntity.h:320
SubEntity * mSubEntity
Link to SubEntity, only present if SubEntity has it's own geometry.
Definition OgreEntity.h:328
void getWorldTransforms(Matrix4 *xform) const
Gets the world transform matrix / matrices for this renderable object.
EdgeData * getEdgeList(void)
Returns details of the edges which might be used to determine a silhouette.
Real getBoundingRadius(void) const
Retrieves the radius of the origin-centered bounding sphere for this object.
VertexData * cloneVertexDataRemoveBlendInfo(const VertexData *source)
Internal method to clone vertex data definitions but to remove blend buffers.
vector< SubEntity * >::type SubEntityList
List of SubEntities (point to SubMeshes).
Definition OgreEntity.h:107
bool hasSkeleton(void) const
Returns whether or not this entity is skeletally animated.
Definition OgreEntity.h:610
bool mVertexAnimationAppliedThisFrame
Have we applied any vertex animation to shared geometry?
Definition OgreEntity.h:128
void setSkipAnimationStateUpdate(bool skip)
Entity's skeleton's AnimationState will not be automatically updated when set to true.
Definition OgreEntity.h:829
AnimationState * getAnimationState(const String &name) const
For entities based on animated meshes, gets the AnimationState object for a single animation.
bool tempVertexAnimBuffersBound(void) const
Are software vertex animation temp buffers bound?
bool getDisplaySkeleton(void) const
Returns whether or not the entity is currently displaying its skeleton.
ushort mMaxMaterialLodIndex
Index of maximum detail LOD (NB lower index is higher detail).
Definition OgreEntity.h:247
AxisAlignedBox getChildObjectsBoundingBox(void) const
Merge all the child object Bounds a return it.
map< String, MovableObject * >::type ChildObjectList
Contains the child objects (attached to bones) indexed by name.
Definition OgreEntity.h:304
bool mAlwaysUpdateMainSkeleton
Flag indicating whether to update the main entity skeleton even when an LOD is displayed.
Definition OgreEntity.h:227
VertexData * _getHardwareVertexAnimVertexData(void) const
Advanced method to get the hardware morph vertex information.
bool sharesSkeletonInstance() const
Returns whether this entity shares it's SkeltonInstance with other entity instances.
Definition OgreEntity.h:696
void extractTempBufferInfo(VertexData *sourceData, TempBlendedBufferInfo *info)
Internal method for extracting metadata out of source vertex data for fast assignment of temporary bu...
map< unsignedshort, bool >::type SchemeHardwareAnimMap
Definition OgreEntity.h:90
void initialisePoseVertexData(const VertexData *srcData, VertexData *destData, bool animateNormals)
When performing software pose animation, initialise software copy of vertex data.
void setRenderQueueGroupAndPriority(uint8 queueID, ushort priority)
Sets the render queue group and group priority this entity will be rendered through.
VertexDataBindChoice
Identify which vertex data we should be sending to the renderer.
Definition OgreEntity.h:774
@ BIND_SOFTWARE_SKELETAL
Definition OgreEntity.h:776
const AxisAlignedBox & getWorldBoundingBox(bool derive=false) const
Retrieves the axis-aligned bounding box for this object in world coordinates.
void backgroundLoadingComplete(Resource *res)
Resource::Listener hook to notify Entity that a delay-loaded Mesh is complete.
void _updateRenderQueue(RenderQueue *queue)
Internal method by which the movable object must add Renderable subclass instances to the rendering q...
void addSoftwareAnimationRequest(bool normalsAlso)
Add a request for software animation.
VertexData * mHardwareVertexAnimVertexData
Vertex data details for hardware vertex anim of shared geometry.
Definition OgreEntity.h:126
bool isInitialised(void) const
Has this Entity been initialised yet?
Definition OgreEntity.h:797
bool _isAnimated(void) const
Tests if any animation applied to this entity.
void detachObjectImpl(MovableObject *pObject)
Internal implementation of detaching a 'child' object of this entity and clear the parent node of the...
void _markBuffersUsedForAnimation(void)
Mark just this vertex data as animated.
MapIterator< ChildObjectList > ChildObjectListIterator
Definition OgreEntity.h:584
bool _isSkeletonAnimated(void) const
Tests if skeleton was animated.
int getSoftwareAnimationRequests(void) const
Returns the number of requests that have been made for software animation.
Definition OgreEntity.h:639
void prepareTempBlendBuffers(void)
Internal method for preparing this Entity for use in animation.
bool mDisplaySkeleton
Flag determines whether or not to display skeleton.
Definition OgreEntity.h:207
void restoreBuffersForUnusedAnimation(bool hardwareAnimation)
Internal method to restore original vertex data where we didn't perform any vertex animation this fra...
Entity()
Private constructor (instances cannot be created directly).
bool mPreparedForShadowVolumes
Have the temp buffers already had their geometry prepared for use in rendering shadow volumes?
Definition OgreEntity.h:130
VertexData * _getSoftwareVertexAnimVertexData(void) const
Advanced method to get the temporarily blended software vertex animation information.
const VertexData * findBlendedVertexData(const VertexData *orig)
Internal method - given vertex data which could be from the Mesh or any submesh, finds the temporary ...
Real _getMeshLodFactorTransformed() const
Get the LOD strategy transformation of the mesh LOD factor.
ushort initHardwareAnimationElements(VertexData *vdata, ushort numberOfElements, bool animateNormals)
Initialise the hardware animation elements for given vertex data.
bool mCurrentHWAnimationState
Current state of the hardware animation as represented by the entities parameters.
Definition OgreEntity.h:214
TempBlendedBufferInfo * _getVertexAnimTempBufferInfo(void)
Advanced method to get the temp buffer information for software morph animation.
friend class SubEntity
Definition OgreEntity.h:86
void _initialise(bool forceReinitialise=false)
Try to initialise the Entity from the underlying resources.
ushort mMeshLodIndex
The LOD number of the mesh to use, calculated by _notifyCurrentCamera.
Definition OgreEntity.h:231
SkeletonInstance * getSkeleton(void) const
Get this Entity's personal skeleton instance.
Definition OgreEntity.h:612
unsigned long * mFrameBonesLastUpdated
Records the last frame in which the bones was updated.
Definition OgreEntity.h:192
void detachAllObjectsFromBone(void)
Detach all MovableObjects previously attached using attachObjectToBone.
void shareSkeletonInstanceWith(Entity *entity)
Shares the SkeletonInstance with the supplied entity.
MeshPtr mMesh
The Mesh that this Entity is based on.
Definition OgreEntity.h:103
VertexDataBindChoice chooseVertexDataForBinding(bool hasVertexAnim)
Choose which vertex data to bind to the renderer.
~Entity()
Default destructor.
TagPoint * attachObjectToBone(const String &boneName, MovableObject *pMovable, const Quaternion &offsetOrientation=Quaternion::IDENTITY, const Vector3 &offsetPosition=Vector3::ZERO)
Attaches another object to a certain bone of the skeleton which this entity uses.
ShadowRenderableList mShadowRenderables
Definition OgreEntity.h:312
VertexData * _getSkelAnimVertexData(void) const
Advanced method to get the temporarily blended skeletal vertex information for entities which are sof...
SubEntity * findSubEntityForVertexData(const VertexData *orig)
Internal method - given vertex data which could be from the Mesh or any SubMesh, finds the correspond...
void attachObjectImpl(MovableObject *pMovable, TagPoint *pAttachingPoint)
Internal implementation of attaching a 'child' object to this entity and assign the parent node to th...
void _deinitialise(void)
Tear down the internal structures of this Entity, rendering it uninitialised.
ushort mMinMeshLodIndex
Index of minimum detail LOD (NB higher index is lower detail).
Definition OgreEntity.h:236
unsigned long mFrameAnimationLastUpdated
Records the last frame in which animation was updated.
Definition OgreEntity.h:184
friend class EntityFactory
Definition OgreEntity.h:85
ushort mHardwarePoseCount
Number of hardware poses supported by materials.
Definition OgreEntity.h:217
MovableObject * detachObjectFromBone(const String &movableName)
Detach a MovableObject previously attached using attachObjectToBone.
AxisAlignedBox mFullBoundingBox
Bounding box that 'contains' all the mesh of each child entity.
Definition OgreEntity.h:310
const Matrix4 * _getBoneMatrices(void) const
Internal method for retrieving bone matrix information.
Definition OgreEntity.h:606
bool mVertexProgramInUse
Flag indicating whether we have a vertex program in use on any of our subentities.
Definition OgreEntity.h:219
void bindMissingHardwarePoseBuffers(const VertexData *srcData, VertexData *destData)
Ensure that any unbound pose animation buffers are bound to a safe default.
set< Entity * >::type EntitySet
Definition OgreEntity.h:89
uint32 getTypeFlags(void) const
Override to return specific type flag.
void setRenderQueueGroup(uint8 queueID)
Sets the render queue group this entity will be rendered through.
ChildObjectListIterator getAttachedObjectIterator(void)
Gets an iterator to the list of objects attached to bones on this entity.
VertexData * getVertexDataForBinding(void)
Retrieve the VertexData which should be used for GPU binding.
void _notifyCurrentCamera(Camera *cam)
Internal method to notify the object of the camera to be used for the next rendering operation.
void stopSharingSkeletonInstance()
Stops sharing the SkeletonInstance with other entities.
void visitRenderables(Renderable::Visitor *visitor, bool debugRenderables=false)
Method to allow a caller to abstractly iterate over the Renderable instances that this MovableObject ...
AnimationStateSet * mAnimationState
State of animation for animable meshes.
Definition OgreEntity.h:112
Real mMaterialLodFactor
LOD bias factor, not transformed.
Definition OgreEntity.h:241
void buildSubEntityList(MeshPtr &mesh, SubEntityList *sublist)
Builds a list of SubEntities based on the SubMeshes contained in the Mesh.
Entity * clone(const String &newName) const
Clones this entity and returns a pointer to the clone.
void setMaterial(const MaterialPtr &material)
Sets the material to use for the whole of this entity.
bool isHardwareAnimationEnabled(void)
Returns whether or not hardware animation is enabled.
bool hasVertexAnimation(void) const
Returns whether or not this entity is either morph or pose animated.
Entity * getManualLodLevel(size_t index) const
Gets a pointer to the entity representing the numbered manual level of detail.
void detachObjectFromBone(MovableObject *obj)
Detaches an object by pointer.
void updateAnimation(void)
Perform all the updates required for an animated entity.
bool mInitialised
Has this entity been initialised yet?
Definition OgreEntity.h:262
ushort getCurrentLodIndex()
Returns the current LOD used to render.
Definition OgreEntity.h:474
bool _getBuffersMarkedForAnimation(void) const
Are buffers already marked as vertex animated?
Definition OgreEntity.h:784
void _notifyAttached(Node *parent, bool isTagPoint=false)
Internal method called to notify the object that it has been attached to a node.
const MeshPtr & getMesh(void) const
Gets the Mesh that this Entity is based on.
ShadowRenderableListIterator getShadowVolumeRenderableIterator(ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, size_t *indexBufferUsedSize, bool extrudeVertices, Real extrusionDistance, unsigned long flags=0)
Gets an iterator over the renderables required to render the shadow volume.
vector< Entity * >::type LODEntityList
List of LOD Entity instances (for manual LODs).
Definition OgreEntity.h:254
const Sphere & getWorldBoundingSphere(bool derive=false) const
Retrieves the worldspace bounding sphere for this object.
bool mSkipAnimStateUpdates
Flag indicating whether to skip automatic updating of the Skeleton's AnimationState.
Definition OgreEntity.h:225
unsigned short _getNumBoneMatrices(void) const
Internal method for retrieving bone matrix information.
Definition OgreEntity.h:608
const EntitySet * getSkeletonInstanceSharingSet() const
Returns a pointer to the set of entities which share a SkeletonInstance.
Definition OgreEntity.h:701
SubEntity * getSubEntity(unsigned int index) const
Gets a pointer to a SubEntity, ie a part of an Entity.
void _updateAnimation(void)
Advanced method to perform all the updates required for an animated entity.
int getSoftwareAnimationNormalsRequests(void) const
Returns the number of requests that have been made for software animation of normals.
Definition OgreEntity.h:651
bool calcVertexProcessing(void)
Calculates the kind of vertex processing in use.
Real mMeshLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted LOD value.
Definition OgreEntity.h:234
size_t mMeshStateCount
Mesh state count, used to detect differences.
Definition OgreEntity.h:268
void removeSoftwareAnimationRequest(bool normalsAlso)
Removes a request for software animation.
SubEntity * getSubEntity(const String &name) const
Gets a pointer to a SubEntity by name.
Matrix4 * mBoneMatrices
Cached bone matrices in skeleton local space, might shares with other entity instances.
Definition OgreEntity.h:181
void reevaluateVertexProcessing(void)
Ensures reevaluation of the vertex processing usage.
bool getSkipAnimationStateUpdate() const
Entity's skeleton's AnimationState will not be automatically updated when set to true.
Definition OgreEntity.h:836
VertexData * mSkelAnimVertexData
Vertex data details for software skeletal anim of shared geometry.
Definition OgreEntity.h:118
void detachAllObjectsImpl(void)
Internal implementation of detaching all 'child' objects of this entity.
SubEntityList mSubEntityList
Definition OgreEntity.h:108
VertexData * mSoftwareVertexAnimVertexData
Vertex data details for software vertex anim of shared geometry.
Definition OgreEntity.h:122
bool cacheBoneMatrices(void)
Private method to cache bone matrices from skeleton.
void setMeshLodBias(Real factor, ushort maxDetailIndex=0, ushort minDetailIndex=99)
Sets a level-of-detail bias for the mesh detail of this entity.
size_t getNumManualLodLevels(void) const
Returns the number of manual levels of detail that this entity supports.
Matrix4 mLastParentXform
Last parent transform.
Definition OgreEntity.h:265
Matrix4 * mBoneWorldMatrices
Cached bone matrices, including any world transform.
Definition OgreEntity.h:179
LODEntityList mLodEntityList
Definition OgreEntity.h:255
ushort mMaxMeshLodIndex
Index of maximum detail LOD (NB lower index is higher detail).
Definition OgreEntity.h:238
EntitySet * mSharedSkeletonEntities
A set of all the entities which shares a single SkeletonInstance.
Definition OgreEntity.h:198
void setDisplaySkeleton(bool display)
Tells the Entity whether or not it should display it's skeleton, if it has one.
void setMaterialLodBias(Real factor, ushort maxDetailIndex=0, ushort minDetailIndex=99)
Sets a level-of-detail bias for the material detail of this entity.
void refreshAvailableAnimationState(void)
Updates the internal animation state set to include the latest available animations from the attached...
int mSoftwareAnimationRequests
Counter indicating number of requests for software animation.
Definition OgreEntity.h:221
Real mMaterialLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted LOD value.
Definition OgreEntity.h:243
ushort mMinMaterialLodIndex
Index of minimum detail LOD (NB higher index is lower detail).
Definition OgreEntity.h:245
TempBlendedBufferInfo * _getSkelAnimTempBufferInfo(void)
Advanced method to get the temp buffer information for software skeletal animation.
SchemeHardwareAnimMap mSchemeHardwareAnim
Flag indicating whether hardware animation is supported by this entities materials data is saved per ...
Definition OgreEntity.h:211
ChildObjectList mChildObjectList
Definition OgreEntity.h:306
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
bool tempSkelAnimBuffersBound(bool requestNormals) const
Are software skeleton animation temp buffers bound?
AnimationStateSet * getAllAnimationStates(void) const
For entities based on animated meshes, gets the AnimationState objects for all animations.
SkeletonInstance * mSkeletonInstance
This Entity's personal copy of the skeleton, if skeletally animated.
Definition OgreEntity.h:259
void markBuffersUnusedForAnimation(void)
Mark all vertex data as so far unanimated.
void setPolygonModeOverrideable(bool PolygonModeOverrideable)
Sets whether the polygon mode of this entire entity may be overridden by the camera detail settings.
TempBlendedBufferInfo mTempSkelAnimInfo
Temp buffer details for software skeletal anim of shared geometry.
Definition OgreEntity.h:116
Entity(const String &name, const MeshPtr &mesh)
Private constructor - specify name (the usual constructor used).
unsigned int getNumSubEntities(void) const
Retrieves the number of SubEntity objects making up this entity.
void finalisePoseNormals(const VertexData *srcData, VertexData *destData)
When animating normals for pose animation, finalise normals by filling in with the reference mesh nor...
void applyVertexAnimation(bool hardwareAnimation, bool stencilShadows)
Apply vertex animation.
TempBlendedBufferInfo mTempVertexAnimInfo
Temp buffer details for software vertex anim of shared geometry.
Definition OgreEntity.h:120
bool hasEdgeList(void)
Returns whether the object has a valid edge list.
const String & getMovableType(void) const
Returns the type name of this object.
void setMaterialName(const String &name, const String &groupName=ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME)
Sets the material to use for the whole of this entity.
bool hasAnimationState(const String &name) const
Returns whether the AnimationState with the given name exists.
unsigned short mNumBoneMatrices
Definition OgreEntity.h:182
const AxisAlignedBox & getBoundingBox(void) const
Retrieves the local axis-aligned bounding box for this object.
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
int mSoftwareAnimationNormalsRequests
Counter indicating number of requests for software blended normals.
Definition OgreEntity.h:223
Shared pointer implementation used to share index buffers.
Shared pointer implementation used to share vertex buffers.
Representation of a dynamic light source in the scene.
Definition OgreLight.h:74
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Class encapsulating a standard 4x4 homogeneous matrix.
Definition OgreMatrix4.h:79
Abstract class defining a movable object in a scene.
MovableObject()
Constructor.
Class representing a general-purpose node an articulated scene graph.
Definition OgreNode.h:65
Implementation of a Quaternion, i.e.
static const Quaternion IDENTITY
Class to manage the scene object rendering queue.
Visitor object that can be used to iterate over a collection of Renderable instances abstractly.
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
Abstract class representing a loadable resource (e.g.
VectorIterator< ShadowRenderableList > ShadowRenderableListIterator
static void extrudeVertices(const HardwareVertexBufferSharedPtr &vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist)
Utility method for extruding vertices based on a light.
vector< ShadowRenderable * >::type ShadowRenderableList
ShadowRenderable()
Used only if isLightCapSeparate == true.
A SkeletonInstance is a single instance of a Skeleton used by a world object.
A sphere primitive, mostly used for bounds checking.
Definition OgreSphere.h:52
A tagged point on a skeleton, which can be used to attach entities to on specific other entities.
Structure for recording the use of temporary blend buffers.
Standard 3-dimensional vector.
Definition OgreVector3.h:52
static const Vector3 ZERO
Summary class collecting together vertex source information.
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
Definition OgreCommon.h:550
ShadowTechnique
An enumeration of broad shadow techniques.
Definition OgreCommon.h:191
unsigned char uint8
SharedPtr< Material > MaterialPtr
SharedPtr< Mesh > MeshPtr
float Real
Software floating point type.
unsigned int uint32
_StringBase String
unsigned short ushort
std::map< K, V, P, A > type
std::set< T, P, A > type
std::vector< T, A > type