145 void prepareTempBlendBuffers(
void);
148 void markBuffersUnusedForAnimation(
void);
152 void restoreBuffersForUnusedAnimation(
bool hardwareAnimation);
159 void bindMissingHardwarePoseBuffers(
const VertexData* srcData,
166 bool animateNormals);
182 void updateAnimation(
void);
201 bool cacheBoneMatrices(
void);
278 void detachAllObjectsImpl(
void);
281 void reevaluateVertexProcessing(
void);
289 bool calcVertexProcessing(
void);
292 void applyVertexAnimation(
bool hardwareAnimation,
bool stencilShadows);
295 ushort numberOfElements,
bool animateNormals);
297 bool tempVertexAnimBuffersBound(
void)
const;
299 bool tempSkelAnimBuffersBound(
bool requestNormals)
const;
333 bool createSeparateLightCap,
SubEntity* subent,
bool isLightCap =
false);
337 void _createSeparateLightCap();
339 void getWorldTransforms(
Matrix4* xform)
const;
343 void rebindPositionBuffer(
const VertexData* vertexData,
bool force);
345 bool isVisible(
void)
const;
356 const MeshPtr& getMesh(
void)
const;
360 SubEntity* getSubEntity(
unsigned int index)
const;
369 unsigned int getNumSubEntities(
void)
const;
405 void _notifyCurrentCamera(
Camera* cam);
408 void setRenderQueueGroup(
uint8 queueID);
411 void setRenderQueueGroupAndPriority(
uint8 queueID,
ushort priority);
425 const String& getMovableType(
void)
const;
435 bool hasAnimationState(
const String& name)
const;
449 void setDisplaySkeleton(
bool display);
453 bool getDisplaySkeleton(
void)
const;
461 Entity* getManualLodLevel(
size_t index)
const;
468 size_t getNumManualLodLevels(
void)
const;
500 void setMeshLodBias(
Real factor,
ushort maxDetailIndex = 0,
ushort minDetailIndex = 99);
528 void setMaterialLodBias(
Real factor,
ushort maxDetailIndex = 0,
ushort minDetailIndex = 99);
533 void setPolygonModeOverrideable(
bool PolygonModeOverrideable);
568 void detachAllObjectsFromBone(
void);
574 Real getBoundingRadius(
void)
const;
577 const AxisAlignedBox& getWorldBoundingBox(
bool derive =
false)
const;
579 const Sphere& getWorldBoundingSphere(
bool derive =
false)
const;
584 bool hasEdgeList(
void);
589 bool extrudeVertices,
Real extrusionDistance,
unsigned long flags = 0 );
614 bool isHardwareAnimationEnabled(
void);
617 void _notifyAttached(
Node* parent,
bool isTagPoint =
false);
653 void addSoftwareAnimationRequest(
bool normalsAlso);
662 void removeSoftwareAnimationRequest(
bool normalsAlso);
668 void shareSkeletonInstanceWith(
Entity* entity);
672 bool hasVertexAnimation(
void)
const;
677 void stopSharingSkeletonInstance();
701 void refreshAvailableAnimationState(
void);
710 void _updateAnimation(
void);
717 bool _isAnimated(
void)
const;
721 bool _isSkeletonAnimated(
void)
const;
732 VertexData* _getSkelAnimVertexData(
void)
const;
741 VertexData* _getSoftwareVertexAnimVertexData(
void)
const;
746 VertexData* _getHardwareVertexAnimVertexData(
void)
const;
756 uint32 getTypeFlags(
void)
const;
769 VertexDataBindChoice chooseVertexDataForBinding(
bool hasVertexAnim);
775 void _markBuffersUsedForAnimation(
void);
797 void _initialise(
bool forceReinitialise =
false);
799 void _deinitialise(
void);
804 void backgroundLoadingComplete(
Resource* res);
808 bool debugRenderables =
false);
811 Real _getMeshLodFactorTransformed()
const;
817 mSkipAnimStateUpdates = skip;
824 return mSkipAnimStateUpdates;
833 mAlwaysUpdateMainSkeleton = update;
841 return mAlwaysUpdateMainSkeleton;
858 const String& getType(
void)
const;
Class encapsulating a set of AnimationState objects.
HardwareVertexBufferSharedPtr getPositionBuffer(void)
A viewpoint from which the scene will be rendered.
vector< SubEntity * >::type SubEntityList
List of SubEntities (point to SubMeshes).
LODEntityList mLodEntityList
Class encapsulating a standard 4x4 homogeneous matrix.
float Real
Software floating point type.
const EntitySet * getSkeletonInstanceSharingSet() const
Returns a pointer to the set of entities which share a SkeletonInstance.
ushort getCurrentLodIndex()
Returns the current LOD used to render.
int mSoftwareAnimationNormalsRequests
Counter indicating number of requests for software blended normals.
ushort mMinMeshLodIndex
Index of minimum detail LOD (NB higher index is lower detail)
SkeletonInstance * getSkeleton(void) const
Get this Entity's personal skeleton instance.
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
bool mVertexAnimationAppliedThisFrame
Have we applied any vertex animation to shared geometry?
SubEntityList mSubEntityList
Structure for recording the use of temporary blend buffers.
bool mCurrentHWAnimationState
Current state of the hardware animation as represented by the entities parameters.
bool isInitialised(void) const
Has this Entity been initialised yet?
TempBlendedBufferInfo mTempVertexAnimInfo
Temp buffer details for software vertex anim of shared geometry.
int getSoftwareAnimationNormalsRequests(void) const
Returns the number of requests that have been made for software animation of normals.
VertexData * mHardwareVertexAnimVertexData
Vertex data details for hardware vertex anim of shared geometry.
Matrix4 mLastParentXform
Last parent transform.
HardwareVertexBufferSharedPtr getWBuffer(void)
bool mInitialised
Has this entity been initialised yet?
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
map< String, MovableObject * >::type ChildObjectList
Contains the child objects (attached to bones) indexed by name.
static const Vector3 ZERO
vector< Entity * >::type LODEntityList
List of LOD Entity instances (for manual LODs).
Shared pointer implementation used to share index buffers.
int mSoftwareAnimationRequests
Counter indicating number of requests for software animation.
A 3D box aligned with the x/y/z axes.
bool mAlwaysUpdateMainSkeleton
Flag indicating whether to update the main entity skeleton even when an LOD is displayed.
VertexDataBindChoice
Identify which vertex data we should be sending to the renderer.
Represents the state of an animation and the weight of its influence.
bool mVertexProgramInUse
Flag indicating whether we have a vertex program in use on any of our subentities.
bool _getBuffersMarkedForAnimation(void) const
Are buffers already marked as vertex animated?
ChildObjectList mChildObjectList
EntitySet * mSharedSkeletonEntities
A set of all the entities which shares a single SkeletonInstance.
int getSoftwareAnimationRequests(void) const
Returns the number of requests that have been made for software animation.
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.
SchemeHardwareAnimMap mSchemeHardwareAnim
Flag indicating whether hardware animation is supported by this entities materials data is saved per ...
size_t mMeshStateCount
Mesh state count, used to detect differences.
Abstract class defining a movable object in a scene.
MapIterator< ChildObjectList > ChildObjectListIterator
bool mPreparedForShadowVolumes
Have the temp buffers already had their geometry prepared for use in rendering shadow volumes...
Implementation of a Quaternion, i.e.
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
unsigned short mOriginalPosBufferBinding
Original position buffer source binding.
bool sharesSkeletonInstance() const
Returns whether this entity shares it's SkeltonInstance with other entity instances.
void setAlwaysUpdateMainSkeleton(bool update)
The skeleton of the main entity will be updated even if the an LOD entity is being displayed...
Shared pointer implementation used to share index buffers.
Representation of a dynamic light source in the scene.
VertexData * mSkelAnimVertexData
Vertex data details for software skeletal anim of shared geometry.
static const Quaternion IDENTITY
ShadowTechnique
An enumeration of broad shadow techniques.
map< unsigned short, bool >::type SchemeHardwareAnimMap
bool mSkipAnimStateUpdates
Flag indicating whether to skip automatic updating of the Skeleton's AnimationState.
Real mMeshLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted lod value.
static String FACTORY_TYPE_NAME
Utility class which defines the sub-parts of an Entity.
MeshPtr mMesh
The Mesh that this Entity is based on.
const VertexData * mCurrentVertexData
Link to current vertex data used to bind (maybe changes)
AxisAlignedBox mFullBoundingBox
Bounding box that 'contains' all the mesh of each child entity.
ushort mMaxMaterialLodIndex
Index of maximum detail LOD (NB lower index is higher detail)
Class which represents the renderable aspects of a set of shadow volume faces.
A sphere primitive, mostly used for bounds checking.
Defines an instance of a discrete, movable object based on a Mesh.
Nested class to allow entity shadows.
A tagged point on a skeleton, which can be used to attach entities to on specific other entities...
Visitor object that can be used to iterate over a collection of Renderable instances abstractly...
Real mMaterialLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted lod value.
ushort mHardwarePoseCount
Number of hardware poses supported by materials.
const Matrix4 * _getBoneMatrices(void) const
Internal method for retrieving bone matrix information.
unsigned long * mFrameBonesLastUpdated
Records the last frame in which the bones was updated It's a pointer because it can be shared between...
Standard 3-dimensional vector.
Abstract class representing a loadable resource (e.g.
bool getSkipAnimationStateUpdate() const
Entity's skeleton's AnimationState will not be automatically updated when set to true.
ushort mMaxMeshLodIndex
Index of maximum detail LOD (NB lower index is higher detail)
Summary class collecting together vertex source information.
TempBlendedBufferInfo mTempSkelAnimInfo
Temp buffer details for software skeletal anim of shared geometry.
bool getAlwaysUpdateMainSkeleton() const
The skeleton of the main entity will be updated even if the an LOD entity is being displayed...
Matrix4 * mBoneMatrices
Cached bone matrices in skeleton local space, might shares with other entity instances.
Matrix4 * mBoneWorldMatrices
Cached bone matrices, including any world transform.
Real mMaterialLodFactor
LOD bias factor, not transformed.
ShadowRenderableList mShadowRenderables
Factory object for creating Entity instances.
Class to manage the scene object rendering queue.
bool mDisplaySkeleton
Flag determines whether or not to display skeleton.
This class contains the information required to describe the edge connectivity of a given set of vert...
HardwareVertexBufferSharedPtr mPositionBuffer
Shared link to position buffer.
VertexData * mSoftwareVertexAnimVertexData
Vertex data details for software vertex anim of shared geometry.
ushort mMeshLodIndex
The LOD number of the mesh to use, calculated by _notifyCurrentCamera.
void setSkipAnimationStateUpdate(bool skip)
Entity's skeleton's AnimationState will not be automatically updated when set to true.
AnimationStateSet * mAnimationState
State of animation for animable meshes.
SkeletonInstance * mSkeletonInstance
This Entity's personal copy of the skeleton, if skeletally animated.
Specialisation of SharedPtr to allow SharedPtr to be assigned to MaterialPtr.
unsigned long mFrameAnimationLastUpdated
Records the last frame in which animation was updated.
Concrete IteratorWrapper for nonconst access to the underlying container.
Specialisation of SharedPtr to allow SharedPtr to be assigned to MeshPtr.
SubEntity * mSubEntity
Link to SubEntity, only present if SubEntity has it's own geometry.
bool hasSkeleton(void) const
Returns whether or not this entity is skeletally animated.
Class representing a general-purpose node an articulated scene graph.
unsigned short _getNumBoneMatrices(void) const
Internal method for retrieving bone matrix information.
A SkeletonInstance is a single instance of a Skeleton used by a world object.
ushort mMinMaterialLodIndex
Index of minimum detail LOD (NB higher index is lower detail)
HardwareVertexBufferSharedPtr mWBuffer
Shared link to w-coord buffer (optional)
set< Entity * >::type EntitySet
vector< ShadowRenderable * >::type ShadowRenderableList
unsigned short mNumBoneMatrices