Go to the documentation of this file.
148 void prepareTempBlendBuffers(
void);
151 void markBuffersUnusedForAnimation(
void);
155 void restoreBuffersForUnusedAnimation(
bool hardwareAnimation);
164 void bindMissingHardwarePoseBuffers(
const VertexData* srcData,
171 bool animateNormals);
187 void updateAnimation(
void);
204 bool cacheBoneMatrices(
void);
280 void detachAllObjectsImpl(
void);
283 void reevaluateVertexProcessing(
void);
291 bool calcVertexProcessing(
void);
294 void applyVertexAnimation(
bool hardwareAnimation,
bool stencilShadows);
298 bool tempVertexAnimBuffersBound(
void)
const;
300 bool tempSkelAnimBuffersBound(
bool requestNormals)
const;
334 bool createSeparateLightCap,
SubEntity* subent,
bool isLightCap =
false);
338 void _createSeparateLightCap();
340 void getWorldTransforms(
Matrix4* xform)
const;
344 void rebindPositionBuffer(
const VertexData* vertexData,
bool force);
346 bool isVisible(
void)
const;
357 const MeshPtr& getMesh(
void)
const;
361 SubEntity* getSubEntity(
unsigned int index)
const;
371 unsigned int getNumSubEntities(
void)
const;
407 void _notifyCurrentCamera(
Camera* cam);
410 void setRenderQueueGroup(
uint8 queueID);
413 void setRenderQueueGroupAndPriority(
uint8 queueID,
ushort priority);
427 const String& getMovableType(
void)
const;
437 bool hasAnimationState(
const String& name)
const;
451 void setDisplaySkeleton(
bool display);
455 bool getDisplaySkeleton(
void)
const;
463 Entity* getManualLodLevel(
size_t index)
const;
470 size_t getNumManualLodLevels(
void)
const;
505 void setMeshLodBias(
Real factor,
ushort maxDetailIndex = 0,
ushort minDetailIndex = 99);
536 void setMaterialLodBias(
Real factor,
ushort maxDetailIndex = 0,
ushort minDetailIndex = 99);
541 void setPolygonModeOverrideable(
bool PolygonModeOverrideable);
582 void detachAllObjectsFromBone(
void);
588 Real getBoundingRadius(
void)
const;
591 const AxisAlignedBox& getWorldBoundingBox(
bool derive =
false)
const;
593 const Sphere& getWorldBoundingSphere(
bool derive =
false)
const;
598 bool hasEdgeList(
void);
603 bool extrudeVertices,
Real extrusionDistance,
unsigned long flags = 0 );
628 bool isHardwareAnimationEnabled(
void);
631 void _notifyAttached(
Node* parent,
bool isTagPoint =
false);
667 void addSoftwareAnimationRequest(
bool normalsAlso);
676 void removeSoftwareAnimationRequest(
bool normalsAlso);
682 void shareSkeletonInstanceWith(
Entity* entity);
686 bool hasVertexAnimation(
void)
const;
691 void stopSharingSkeletonInstance();
713 void refreshAvailableAnimationState(
void);
722 void _updateAnimation(
void);
729 bool _isAnimated(
void)
const;
733 bool _isSkeletonAnimated(
void)
const;
744 VertexData* _getSkelAnimVertexData(
void)
const;
753 VertexData* _getSoftwareVertexAnimVertexData(
void)
const;
758 VertexData* _getHardwareVertexAnimVertexData(
void)
const;
768 uint32 getTypeFlags(
void)
const;
781 VertexDataBindChoice chooseVertexDataForBinding(
bool hasVertexAnim);
787 void _markBuffersUsedForAnimation(
void);
810 void _initialise(
bool forceReinitialise =
false);
812 void _deinitialise(
void);
817 void backgroundLoadingComplete(
Resource* res);
821 bool debugRenderables =
false);
824 Real _getMeshLodFactorTransformed()
const;
830 mSkipAnimStateUpdates = skip;
837 return mSkipAnimStateUpdates;
845 mAlwaysUpdateMainSkeleton = update;
853 return mAlwaysUpdateMainSkeleton;
870 const String& getType(
void)
const;
881 #endif // __Entity_H__
static String FACTORY_TYPE_NAME
ushort mMinMeshLodIndex
Index of minimum detail LOD (NB higher index is lower detail).
AxisAlignedBox mFullBoundingBox
Bounding box that 'contains' all the mesh of each child entity.
VertexData * mHardwareVertexAnimVertexData
Vertex data details for hardware vertex anim of shared geometry.
bool hasSkeleton(void) const
Returns whether or not this entity is skeletally animated.
ChildObjectList mChildObjectList
static const Vector3 ZERO
Factory object for creating Entity instances.
unsigned short mOriginalPosBufferBinding
Original position buffer source binding.
int mSoftwareAnimationRequests
Counter indicating number of requests for software animation.
ushort mMinMaterialLodIndex
Index of minimum detail LOD (NB higher index is lower detail).
A viewpoint from which the scene will be rendered.
Utility class which defines the sub-parts of an Entity.
SchemeHardwareAnimMap mSchemeHardwareAnim
Flag indicating whether hardware animation is supported by this entities materials data is saved per ...
VertexData * mSkelAnimVertexData
Vertex data details for software skeletal anim of shared geometry.
void setSkipAnimationStateUpdate(bool skip)
Entity's skeleton's AnimationState will not be automatically updated when set to true.
bool getAlwaysUpdateMainSkeleton() const
The skeleton of the main entity will be updated even if the an LOD entity is being displayed.
Class which represents the renderable aspects of a set of shadow volume faces.
A tagged point on a skeleton, which can be used to attach entities to on specific other entities.
void setAlwaysUpdateMainSkeleton(bool update)
The skeleton of the main entity will be updated even if the an LOD entity is being displayed.
bool mVertexProgramInUse
Flag indicating whether we have a vertex program in use on any of our subentities.
TempBlendedBufferInfo mTempSkelAnimInfo
Temp buffer details for software skeletal anim of shared geometry.
ShadowTechnique
An enumeration of broad shadow techniques.
Concrete IteratorWrapper for nonconst access to the underlying container.
Representation of a dynamic light source in the scene.
Matrix4 mLastParentXform
Last parent transform.
bool mSkipAnimStateUpdates
Flag indicating whether to skip automatic updating of the Skeleton's AnimationState.
VertexData * mSoftwareVertexAnimVertexData
Vertex data details for software vertex anim of shared geometry.
bool getSkipAnimationStateUpdate() const
Entity's skeleton's AnimationState will not be automatically updated when set to true.
bool mPreparedForShadowVolumes
Have the temp buffers already had their geometry prepared for use in rendering shadow volumes?
const EntitySet * getSkeletonInstanceSharingSet() const
Returns a pointer to the set of entities which share a SkeletonInstance.
map< unsigned short, bool >::type SchemeHardwareAnimMap
Abstract class defining a movable object in a scene.
Shared pointer implementation used to share index buffers.
static String AUTODETECT_RESOURCE_GROUP_NAME
Special resource group name which causes resource group to be automatically determined based on searc...
Interface definition for a factory class which produces a certain kind of MovableObject,...
int getSoftwareAnimationNormalsRequests(void) const
Returns the number of requests that have been made for software animation of normals.
Real mMeshLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted LOD value.
map< String, String >::type NameValuePairList
Name / value parameter pair (first = name, second = value)
Defines an instance of a discrete, movable object based on a Mesh.
Represents the state of an animation and the weight of its influence.
unsigned short mNumBoneMatrices
SubEntity * mSubEntity
Link to SubEntity, only present if SubEntity has it's own geometry.
Matrix4 * mBoneWorldMatrices
Cached bone matrices, including any world transform.
int mSoftwareAnimationNormalsRequests
Counter indicating number of requests for software blended normals.
Summary class collecting together vertex source information.
Implementation of a Quaternion, i.e.
VertexDataBindChoice
Identify which vertex data we should be sending to the renderer.
const VertexData * mCurrentVertexData
Link to current vertex data used to bind (maybe changes).
ushort getCurrentLodIndex()
Returns the current LOD used to render.
Class encapsulating a standard 4x4 homogeneous matrix.
bool isInitialised(void) const
Has this Entity been initialised yet?
SkeletonInstance * mSkeletonInstance
This Entity's personal copy of the skeleton, if skeletally animated.
ushort mMaxMeshLodIndex
Index of maximum detail LOD (NB lower index is higher detail).
bool _getBuffersMarkedForAnimation(void) const
Are buffers already marked as vertex animated?
Shared pointer implementation used to share vertex buffers.
map< String, MovableObject * >::type ChildObjectList
Contains the child objects (attached to bones) indexed by name.
bool mVertexAnimationAppliedThisFrame
Have we applied any vertex animation to shared geometry?
SkeletonInstance * getSkeleton(void) const
Get this Entity's personal skeleton instance.
TempBlendedBufferInfo mTempVertexAnimInfo
Temp buffer details for software vertex anim of shared geometry.
ushort mHardwarePoseCount
Number of hardware poses supported by materials.
SubEntityList mSubEntityList
A 3D box aligned with the x/y/z axes.
Matrix4 * mBoneMatrices
Cached bone matrices in skeleton local space, might shares with other entity instances.
ushort mMaxMaterialLodIndex
Index of maximum detail LOD (NB lower index is higher detail).
Nested class to allow entity shadows.
unsigned long mFrameAnimationLastUpdated
Records the last frame in which animation was updated.
vector< SubEntity * >::type SubEntityList
List of SubEntities (point to SubMeshes).
AnimationStateSet * mAnimationState
State of animation for animable meshes.
EntitySet * mSharedSkeletonEntities
A set of all the entities which shares a single SkeletonInstance.
HardwareVertexBufferSharedPtr mWBuffer
Shared link to w-coord buffer (optional).
A sphere primitive, mostly used for bounds checking.
MapIterator< ChildObjectList > ChildObjectListIterator
Concrete IteratorWrapper for nonconst access to the underlying key-value container.
Class encapsulating a set of AnimationState objects.
Abstract class representing a loadable resource (e.g.
Real mMaterialLodFactor
LOD bias factor, not transformed.
A SkeletonInstance is a single instance of a Skeleton used by a world object.
Structure for recording the use of temporary blend buffers.
unsigned short _getNumBoneMatrices(void) const
Internal method for retrieving bone matrix information.
Visitor object that can be used to iterate over a collection of Renderable instances abstractly.
size_t mMeshStateCount
Mesh state count, used to detect differences.
ushort mMeshLodIndex
The LOD number of the mesh to use, calculated by _notifyCurrentCamera.
LODEntityList mLodEntityList
set< Entity * >::type EntitySet
bool mDisplaySkeleton
Flag determines whether or not to display skeleton.
ShadowRenderableList mShadowRenderables
static const Quaternion IDENTITY
Real mMaterialLodFactorTransformed
LOD bias factor, transformed for optimisation when calculating adjusted LOD value.
HardwareVertexBufferSharedPtr getPositionBuffer(void)
bool mAlwaysUpdateMainSkeleton
Flag indicating whether to update the main entity skeleton even when an LOD is displayed.
float Real
Software floating point type.
HardwareVertexBufferSharedPtr getWBuffer(void)
MeshPtr mMesh
The Mesh that this Entity is based on.
This class contains the information required to describe the edge connectivity of a given set of vert...
HardwareVertexBufferSharedPtr mPositionBuffer
Shared link to position buffer.
Class representing a general-purpose node an articulated scene graph.
vector< Entity * >::type LODEntityList
List of LOD Entity instances (for manual LODs).
const Matrix4 * _getBoneMatrices(void) const
Internal method for retrieving bone matrix information.
bool mCurrentHWAnimationState
Current state of the hardware animation as represented by the entities parameters.
unsigned long * mFrameBonesLastUpdated
Records the last frame in which the bones was updated.
int getSoftwareAnimationRequests(void) const
Returns the number of requests that have been made for software animation.
bool sharesSkeletonInstance() const
Returns whether this entity shares it's SkeltonInstance with other entity instances.
bool mInitialised
Has this entity been initialised yet?
Standard 3-dimensional vector.
Class to manage the scene object rendering queue.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Tue Apr 13 2021 08:53:15