#include <OgreEntity.h>
Inheritance diagram for Ogre::Entity:
Public Types | |
typedef std::map< String, MovableObject * > | ChildObjectList |
Contains the child objects (attached to bones) indexed by name. | |
typedef MapIterator< ChildObjectList > | ChildObjectListIterator |
typedef std::vector< ShadowRenderable * > | ShadowRenderableList |
typedef VectorIterator< ShadowRenderableList > | ShadowRenderableListIterator |
Public Methods | |
~Entity () | |
Default destructor. | |
Mesh * | getMesh (void) |
Gets the Mesh that this Entity is based on. | |
SubEntity * | getSubEntity (unsigned int index) |
Gets a pointer to a SubEntity, ie a part of an Entity. | |
SubEntity * | getSubEntity (const String &name) |
Gets a pointer to a SubEntity by name. | |
unsigned int | getNumSubEntities (void) const |
Retrieves the number of SubEntity objects making up this entity. | |
Entity * | clone (const String &newName) |
Clones this entity and returns a pointer to the clone. | |
void | setMaterialName (const String &name) |
Sets the material to use for the whole of this entity. | |
void | _notifyCurrentCamera (Camera *cam) |
Overridden - see MovableObject. | |
const AxisAlignedBox & | getBoundingBox (void) const |
Overridden - see MovableObject. | |
AxisAlignedBox | getChildObjectsBoundingBox (void) const |
merge all the child object Bounds a return it | |
void | _updateRenderQueue (RenderQueue *queue) |
Overridden - see MovableObject. | |
const String & | getName (void) const |
Overridden from MovableObject. | |
const String & | getMovableType (void) const |
Overridden from MovableObject. | |
AnimationState * | getAnimationState (const String &name) |
For entities based on animated meshes, gets the AnimationState object for a single animation. | |
AnimationStateSet * | getAllAnimationStates (void) |
For entities based on animated meshes, gets the AnimationState objects for all animations. | |
void | setDisplaySkeleton (bool display) |
Tells the Entity whether or not it should display it's skeleton, if it has one. | |
void | setMeshLodBias (Real factor, ushort maxDetailIndex=0, ushort minDetailIndex=99) |
Sets a level-of-detail bias for the mesh detail of this entity. | |
void | setMaterialLodBias (Real factor, ushort maxDetailIndex=0, ushort minDetailIndex=99) |
Sets a level-of-detail bias for the material detail of this entity. | |
void | setRenderDetail (SceneDetailLevel renderDetail) |
Sets the rendering detail of this entire entity (solid, wireframe etc). | |
void | 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. | |
MovableObject * | detachObjectFromBone (const String &movableName) |
detach a MovableObject previously attached using attachObjectToBone | |
ChildObjectListIterator | getAttachedObjectIterator (void) |
Gets an iterator to the list of objects attached to bones on this entity. | |
Real | getBoundingRadius (void) const |
void | setNormaliseNormals (bool normalise) |
If set to true, this forces normals of this entity to be normalised dynamically by the hardware. | |
bool | getNormaliseNormals (void) const |
Returns true if this entity has auto-normalisation of normals set. | |
EdgeData * | getEdgeList (void) |
Overridden member from ShadowCaster. | |
ShadowRenderableListIterator | getShadowVolumeRenderableIterator (ShadowTechnique shadowTechnique, const Light *light, HardwareIndexBufferSharedPtr *indexBuffer, bool extrudeVertices, Real extrusionDistance, unsigned long flags=0) |
Overridden member from ShadowCaster. | |
const Matrix4 * | _getBoneMatrices (void) |
Internal method for retrieving bone matrix information. | |
unsigned short | _getNumBoneMatrices (void) |
Internal method for retrieving bone matrix information. | |
bool | hasSkeleton (void) |
Returns whether or not this entity is skeletally animated. | |
SkeletonInstance * | getSkeleton (void) |
Get this Entity's personal skeleton instance. | |
bool | isHardwareSkinningEnabled (void) |
Returns whether or not hardware skinning is enabled. | |
void | _notifyAttached (Node *parent, bool isTagPoint=false) |
Overridden from MovableObject. | |
virtual Node * | getParentNode (void) const |
Returns the node to which this object is attached. | |
virtual bool | isAttached (void) const |
Returns true if this object is attached to a SceneNode or TagPoint. | |
virtual const AxisAlignedBox & | getWorldBoundingBox (bool derive=false) const |
Retrieves the axis-aligned bounding box for this object in world coordinates. | |
virtual const Sphere & | getWorldBoundingSphere (bool derive=false) const |
Retrieves the worldspace bounding sphere for this object. | |
virtual void | setVisible (bool visible) |
Tells this object whether to be visible or not, if it has a renderable component. | |
virtual bool | isVisible (void) const |
Returns whether or not this object is supposed to be visible or not. | |
virtual void | setUserObject (UserDefinedObject *obj) |
Call this to associate your own custom user object instance with this MovableObject. | |
virtual UserDefinedObject * | getUserObject (void) |
Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject. | |
virtual void | setRenderQueueGroup (RenderQueueGroupID queueID) |
Sets the render queue group this entity will be rendered through. | |
virtual RenderQueueGroupID | getRenderQueueGroup (void) const |
Gets the queue group for this entity, see setRenderQueueGroup for full details. | |
virtual Matrix4 | _getParentNodeFullTransform (void) const |
return the full transformation of the parent sceneNode or the attachingPoint node | |
virtual void | setQueryFlags (unsigned long flags) |
Sets the query flags for this object. | |
virtual void | addQueryFlags (unsigned long flags) |
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object. | |
virtual void | removeQueryFlags (unsigned long flags) |
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object. | |
virtual unsigned long | getQueryFlags (void) const |
Returns the query flags relevant for this object. | |
const AxisAlignedBox & | getLightCapBounds (void) const |
Overridden member from ShadowCaster. | |
const AxisAlignedBox & | getDarkCapBounds (const Light &light, Real dirLightExtrusionDist) const |
Overridden member from ShadowCaster. | |
void | setCastShadows (bool enabled) |
Sets whether or not this object will cast shadows. | |
bool | getCastShadows (void) const |
Returns whether shadow casting is enabled for this object. | |
Real | getPointExtrusionDistance (const Light *l) const |
Get the distance to extrude for a point/spot light. | |
Static Public Methods | |
void | extrudeVertices (HardwareVertexBufferSharedPtr vertexBuffer, size_t originalVertexCount, const Vector4 &lightPos, Real extrudeDist) |
Utility method for extruding vertices based on a light. | |
Protected Types | |
typedef std::vector< SubEntity * > | SubEntityList |
List of SubEntities (point to SubMeshes). | |
typedef std::vector< Entity * > | LODEntityList |
List of LOD Entity instances (for manual LODs). | |
Protected Methods | |
Entity () | |
Private constructor (instances cannot be created directly). | |
Entity (const String &name, Mesh *mesh, SceneManager *creator) | |
Private constructor - specify name (the usual constructor used). | |
const VertexData * | findBlendedVertexData (const VertexData *orig) |
Internal method - given vertex data which could be from the Mesh or any submesh, finds the temporary blend copy. | |
SubEntity * | findSubEntityForVertexData (const VertexData *orig) |
Internal method - given vertex data which could be from the Mesh or any SubMesh, finds the corresponding SubEntity. | |
void | extractTempBufferInfo (VertexData *sourceData, TempBlendedBufferInfo *info) |
Internal method for extracting metadata out of source vertex data for fast assignment of temporary buffers later. | |
VertexData * | cloneVertexDataRemoveBlendInfo (const VertexData *source) |
Internal method to clone vertex data definitions but to remove blend buffers. | |
void | prepareTempBlendBuffers (void) |
Internal method for preparing this Entity for use in animation. | |
void | updateAnimation (void) |
Perform all the updates required for an animated entity. | |
void | cacheBoneMatrices (void) |
Private method to cache bone matrices from skeleton. | |
void | buildSubEntityList (Mesh *mesh, SubEntityList *sublist) |
Builds a list of SubEntities based on the SubMeshes contained in the Mesh. | |
void | attachObjectImpl (MovableObject *pMovable, TagPoint *pAttachingPoint) |
internal implementation of attaching a 'child' object to this entity and assign the parent node to the child entity | |
void | reevaluateVertexProcessing (void) |
Trigger reevaluation of the kind of vertex processing in use. | |
Real | getExtrusionDistance (const Vector3 &objectPos, const Light *light) const |
Helper moethod for calculating extrusion distance. | |
virtual void | updateEdgeListLightFacing (EdgeData *edgeData, const Vector4 &lightPos) |
Tells the caster to perform the tasks necessary to update the edge data's light listing. | |
virtual void | generateShadowVolume (EdgeData *edgeData, HardwareIndexBufferSharedPtr indexBuffer, const Light *light, ShadowRenderableList &shadowRenderables, unsigned long flags) |
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it. | |
virtual void | extrudeBounds (AxisAlignedBox &box, const Vector4 &lightPos, Real extrudeDist) const |
Utility method for extruding a bounding box. | |
Protected Attributes | |
String | mName |
Name of the entity; used for location in the scene. | |
Mesh * | mMesh |
The Mesh that this Entity is based on. | |
SubEntityList | mSubEntityList |
SceneManager * | mCreatorSceneManager |
Pointer back to the SceneManager that created this instance, for notification purposes. | |
AnimationStateSet | mAnimationState |
State of animation for animable meshes. | |
TempBlendedBufferInfo | mTempBlendedBuffer |
Temp blend buffer details for shared geometry. | |
VertexData * | mSharedBlendedVertexData |
Temp blend buffer details for shared geometry. | |
Matrix4 * | mBoneMatrices |
Cached bone matrices, including any world transform. | |
unsigned short | mNumBoneMatrices |
unsigned long | mFrameAnimationLastUpdated |
Records the last frame in which animation was updated. | |
bool | mDisplaySkeleton |
Flag determines whether or not to display skeleton. | |
bool | mHardwareSkinning |
Flag indicating whether hardware skinning is supported by this entities materials. | |
bool | mVertexProgramInUse |
Flag indicating whether we have a vertex program in use on any of our subentities. | |
ushort | mMeshLodIndex |
The LOD number of the mesh to use, calculated by _notifyCurrentCamera. | |
Real | mMeshLodFactorInv |
LOD bias factor, inverted for optimisation when calculating adjusted depth. | |
ushort | mMinMeshLodIndex |
Index of minimum detail LOD (NB higher index is lower detail). | |
ushort | mMaxMeshLodIndex |
Index of maximum detail LOD (NB lower index is higher detail). | |
Real | mMaterialLodFactorInv |
LOD bias factor, inverted for optimisation when calculating adjusted depth. | |
ushort | mMinMaterialLodIndex |
Index of minimum detail LOD (NB higher index is lower detail). | |
ushort | mMaxMaterialLodIndex |
Index of maximum detail LOD (NB lower index is higher detail). | |
bool | mUsingManualLOD |
Flag indicating that mesh uses manual LOD and so might have multiple SubEntity versions. | |
LODEntityList | mLodEntityList |
SkeletonInstance * | mSkeletonInstance |
This Entity's personal copy of the skeleton, if skeletally animated. | |
ChildObjectList | mChildObjectList |
AxisAlignedBox * | mFullBoundingBox |
Bounding box that 'contains' all the mesh of each child entity. | |
bool | mNormaliseNormals |
ShadowRenderableList | mShadowRenderables |
Node * | mParentNode |
node to which this object is attached | |
bool | mParentIsTagPoint |
bool | mVisible |
Is this object visible? | |
UserDefinedObject * | mUserObject |
User defined object which is linked to this object. | |
RenderQueueGroupID | mRenderQueueID |
The render queue to use when rendering this object. | |
unsigned long | mQueryFlags |
Flags determining whether this object is included / excluded from scene queries. | |
AxisAlignedBox | mWorldAABB |
Cached world AABB of this object. | |
Sphere | mWorldBoundingSphere |
AxisAlignedBox | mWorldDarkCapBounds |
World space AABB of this object's dark cap. | |
bool | mCastShadows |
Does this object cast shadows? | |
Static Protected Attributes | |
String | msMovableType = "Entity" |
Shared class-level name for Movable type. | |
Friends | |
class | SceneManager |
class | SubEntity |
The Mesh and SubMesh classes deal with the definition of the geometry used by discrete movable objects. Entities are actual instances of objects based on this geometry in the world. Therefore there is usually a single set Mesh for a car, but there may be multiple entities based on it in the world. Entities are able to override aspects of the Mesh it is defined by, such as changing material properties per instance (so you can have many cars using the same geometry but different textures for example). Because a Mesh is split into SubMeshes for this purpose, the Entity class is a grouping class (much like the Mesh class) and much of the detail regarding individual changes is kept in the SubEntity class. There is a 1:1 relationship between SubEntity instances and the SubMesh instances associated with the Mesh the Entity is based on.
Entity and SubEntity classes are never created directly. Use the createEntity method of the SceneManager (passing a model name) to create one.
Entities are included in the scene by associating them with a SceneNode, using the attachEntity method. See the SceneNode class for full information.
Definition at line 70 of file OgreEntity.h.
|
Contains the child objects (attached to bones) indexed by name.
Definition at line 192 of file OgreEntity.h. |
|
Definition at line 398 of file OgreEntity.h. Referenced by getAttachedObjectIterator(). |
|
List of LOD Entity instances (for manual LODs). We don't know when the mesh is using manual LODs whether one LOD to the next will have the same number of SubMeshes, therefore we have to allow a separate Entity list with each alternate one. Definition at line 174 of file OgreEntity.h. |
|
Definition at line 125 of file OgreShadowCaster.h. |
|
Definition at line 126 of file OgreShadowCaster.h. Referenced by getShadowVolumeRenderableIterator(). |
|
List of SubEntities (point to SubMeshes).
Definition at line 94 of file OgreEntity.h. Referenced by Entity(). |
|
Private constructor (instances cannot be created directly).
Definition at line 51 of file OgreEntity.cpp. References mFrameAnimationLastUpdated, mFullBoundingBox, mHardwareSkinning, mNormaliseNormals, and mSkeletonInstance. Referenced by Entity(). |
|
Private constructor - specify name (the usual constructor used).
Definition at line 60 of file OgreEntity.cpp. References Ogre::Mesh::_initAnimationState(), buildSubEntityList(), Entity(), Ogre::Mesh::getLodLevel(), Ogre::Skeleton::getNumBones(), Ogre::Mesh::getNumLodLevels(), Ogre::Mesh::getSkeleton(), hasSkeleton(), Ogre::Mesh::hasSkeleton(), Ogre::Mesh::isLodManual(), Ogre::SkeletonInstance::load(), mAnimationState, Ogre::Mesh::MeshLodUsage::manualMesh, mBoneMatrices, mCreatorSceneManager, mDisplaySkeleton, mFrameAnimationLastUpdated, mFullBoundingBox, mHardwareSkinning, mLodEntityList, mMaterialLodFactorInv, mMaxMaterialLodIndex, mMaxMeshLodIndex, mMesh, mMeshLodFactorInv, mMeshLodIndex, mMinMaterialLodIndex, mMinMeshLodIndex, mNumBoneMatrices, mSharedBlendedVertexData, mSkeletonInstance, mSubEntityList, prepareTempBlendBuffers(), reevaluateVertexProcessing(), SubEntityList, and Ogre::ushort. |
|
Default destructor.
Definition at line 133 of file OgreEntity.cpp. References mBoneMatrices, mFullBoundingBox, mLodEntityList, mShadowRenderables, mSkeletonInstance, and mSubEntityList. |
|
Internal method for retrieving bone matrix information.
Definition at line 427 of file OgreEntity.h. |
|
Internal method for retrieving bone matrix information.
Definition at line 429 of file OgreEntity.h. Referenced by Ogre::Entity::EntityShadowRenderable::getWorldTransforms(). |
|
return the full transformation of the parent sceneNode or the attachingPoint node
Definition at line 94 of file OgreMovableObject.cpp. References Ogre::Node::_getFullTransform(), and Ogre::MovableObject::mParentNode. Referenced by cacheBoneMatrices(), Ogre::TagPoint::getParentEntityTransform(), Ogre::MovableObject::getWorldBoundingBox(), Ogre::SubEntity::getWorldTransforms(), Ogre::Entity::EntityShadowRenderable::getWorldTransforms(), and Ogre::BillboardSet::getWorldTransforms(). |
|
Overridden from MovableObject.
Reimplemented from Ogre::MovableObject. Definition at line 964 of file OgreEntity.cpp. References mLodEntityList. |
|
Overridden - see MovableObject.
Implements Ogre::MovableObject. Definition at line 224 of file OgreEntity.cpp. References Ogre::Camera::_getLodBiasInverse(), Ogre::Mesh::getLodIndexSquaredDepth(), Ogre::Node::getSquaredViewDepth(), mChildObjectList, mMaterialLodFactorInv, mMaxMaterialLodIndex, mMaxMeshLodIndex, mMesh, mMeshLodFactorInv, mMeshLodIndex, mMinMaterialLodIndex, mMinMeshLodIndex, Ogre::MovableObject::mParentNode, mSubEntityList, and Ogre::Real. |
|
Overridden - see MovableObject.
Implements Ogre::MovableObject. Definition at line 305 of file OgreEntity.cpp. References Ogre::RenderQueue::addRenderable(), Ogre::Skeleton::getBone(), Ogre::Skeleton::getNumBones(), hasSkeleton(), Ogre::Mesh::isLodManual(), mChildObjectList, mDisplaySkeleton, mLodEntityList, mMesh, mMeshLodIndex, Ogre::MovableObject::mRenderQueueID, mSkeletonInstance, mSubEntityList, RENDERABLE_DEFAULT_PRIORITY, and updateAnimation(). |
|
As setQueryFlags, except the flags passed as parameters are appended to the existing flags on this object.
Definition at line 174 of file OgreMovableObject.h. |
|
internal implementation of attaching a 'child' object to this entity and assign the parent node to the child entity
Definition at line 571 of file OgreEntity.cpp. References Ogre::MovableObject::_notifyAttached(), Ogre::MovableObject::getName(), and mChildObjectList. Referenced by attachObjectToBone(). |
|
Attaches another object to a certain bone of the skeleton which this entity uses.
Definition at line 543 of file OgreEntity.cpp. References attachObjectImpl(), Ogre::SkeletonInstance::createTagPointOnBone(), Except, Ogre::Skeleton::getBone(), hasSkeleton(), Ogre::MovableObject::isAttached(), mSkeletonInstance, Ogre::TagPoint::setChildObject(), and Ogre::TagPoint::setParentEntity(). |
|
Builds a list of SubEntities based on the SubMeshes contained in the Mesh.
Definition at line 513 of file OgreEntity.cpp. References Ogre::SubMesh::getMaterialName(), Ogre::Mesh::getNumSubMeshes(), Ogre::Mesh::getSubMesh(), Ogre::SubMesh::isMatInitialised(), Ogre::SubEntity::setMaterialName(), and SubEntity. Referenced by Entity(). |
|
Private method to cache bone matrices from skeleton.
Definition at line 442 of file OgreEntity.cpp. References Ogre::Skeleton::_getBoneMatrices(), Ogre::MovableObject::_getParentNodeFullTransform(), Ogre::Mesh::getLodLevel(), Ogre::Skeleton::getNumBones(), Ogre::Mesh::hasSkeleton(), Ogre::Mesh::isLodManual(), mAnimationState, mBoneMatrices, mChildObjectList, mMesh, mMeshLodIndex, mNumBoneMatrices, mSkeletonInstance, and Ogre::Skeleton::setAnimationState(). Referenced by updateAnimation(). |
|
Clones this entity and returns a pointer to the clone.
Definition at line 198 of file OgreEntity.cpp. References Ogre::SceneManager::createEntity(), getMesh(), getName(), getSubEntity(), mAnimationState, mCreatorSceneManager, mSubEntityList, and Ogre::SubEntity::setMaterialName(). |
|
Internal method to clone vertex data definitions but to remove blend buffers.
Definition at line 678 of file OgreEntity.cpp. References Ogre::VertexData::clone(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexElement::getSource(), Ogre::VertexData::hardwareShadowVolWBuffer, Ogre::SharedPtr< HardwareVertexBuffer >::isNull(), Ogre::VertexDeclaration::removeElement(), Ogre::VertexBufferBinding::unsetBinding(), Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexDeclaration, Ogre::VES_BLEND_INDICES, and Ogre::VES_BLEND_WEIGHTS. Referenced by Ogre::SubEntity::prepareTempBlendBuffers(), and prepareTempBlendBuffers(). |
|
detach a MovableObject previously attached using attachObjectToBone
Definition at line 578 of file OgreEntity.cpp. References Except, and mChildObjectList. |
|
Internal method for extracting metadata out of source vertex data for fast assignment of temporary buffers later.
Definition at line 645 of file OgreEntity.cpp. References Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexBufferBinding::getBuffer(), Ogre::VertexElement::getSource(), Ogre::TempBlendedBufferInfo::normBindIndex, Ogre::TempBlendedBufferInfo::posBindIndex, Ogre::TempBlendedBufferInfo::posNormalShareBuffer, Ogre::SharedPtr< HardwareVertexBuffer >::release(), Ogre::TempBlendedBufferInfo::srcNormalBuffer, Ogre::TempBlendedBufferInfo::srcPositionBuffer, Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexDeclaration, Ogre::VES_NORMAL, and Ogre::VES_POSITION. Referenced by Ogre::SubEntity::prepareTempBlendBuffers(), and prepareTempBlendBuffers(). |
|
Utility method for extruding a bounding box.
Definition at line 274 of file OgreShadowCaster.cpp. References Ogre::AxisAlignedBox::getAllCorners(), Ogre::AxisAlignedBox::getMaximum(), Ogre::AxisAlignedBox::getMinimum(), Ogre::Vector3::makeCeil(), Ogre::Vector3::makeFloor(), Ogre::Vector3::normalise(), Ogre::Real, Ogre::AxisAlignedBox::setExtents(), Ogre::Vector4::w, Ogre::Vector4::x, Ogre::Vector3::x, Ogre::Vector4::y, Ogre::Vector3::y, Ogre::Vector4::z, and Ogre::Vector3::z. Referenced by Ogre::MovableObject::getDarkCapBounds(). |
|
Utility method for extruding vertices based on a light.
Definition at line 235 of file OgreShadowCaster.cpp. References Ogre::Vector3::normalise(), Ogre::Real, Ogre::Vector4::w, Ogre::Vector3::x, Ogre::Vector4::x, Ogre::Vector3::y, Ogre::Vector4::y, Ogre::Vector3::z, and Ogre::Vector4::z. Referenced by getShadowVolumeRenderableIterator(). |
|
Internal method - given vertex data which could be from the Mesh or any submesh, finds the temporary blend copy.
Definition at line 920 of file OgreEntity.cpp. References Except, Ogre::SubEntity::getBlendedVertexData(), Ogre::SubEntity::getSubMesh(), mMesh, mSharedBlendedVertexData, mSubEntityList, Ogre::Mesh::sharedVertexData, and Ogre::SubMesh::vertexData. Referenced by getShadowVolumeRenderableIterator(). |
|
Internal method - given vertex data which could be from the Mesh or any SubMesh, finds the corresponding SubEntity.
Definition at line 942 of file OgreEntity.cpp. References Ogre::SubEntity::getSubMesh(), mMesh, mSubEntityList, Ogre::Mesh::sharedVertexData, and Ogre::SubMesh::vertexData. Referenced by getShadowVolumeRenderableIterator(). |
|
Generates the indexes required to render a shadow volume into the index buffer which is passed in, and updates shadow renderables to use it.
Definition at line 37 of file OgreShadowCaster.cpp. References Ogre::EdgeData::Edge::degenerate, Ogre::EdgeData::edgeGroups, Ogre::EdgeData::EdgeGroup::edges, Ogre::ShadowRenderable::getLightCapRenderable(), Ogre::ShadowRenderable::getRenderOperationForUpdate(), Ogre::Light::getType(), Ogre::IndexData::indexCount, Ogre::RenderOperation::indexData, Ogre::IndexData::indexStart, Ogre::EdgeData::Triangle::lightFacing, Ogre::SRF_EXTRUDE_TO_INFINITY, Ogre::SRF_INCLUDE_DARK_CAP, Ogre::SRF_INCLUDE_LIGHT_CAP, Ogre::EdgeData::triangles, Ogre::EdgeData::Edge::triIndex, Ogre::VertexData::vertexCount, Ogre::EdgeData::EdgeGroup::vertexData, Ogre::EdgeData::EdgeGroup::vertexSet, Ogre::EdgeData::Triangle::vertexSet, Ogre::EdgeData::Triangle::vertIndex, and Ogre::EdgeData::Edge::vertIndex. Referenced by getShadowVolumeRenderableIterator(). |
|
For entities based on animated meshes, gets the AnimationState objects for all animations.
Definition at line 373 of file OgreEntity.cpp. References Ogre::AnimationStateSet, and mAnimationState. |
|
For entities based on animated meshes, gets the AnimationState object for a single animation.
Definition at line 360 of file OgreEntity.cpp. References Except, and mAnimationState. |
|
Gets an iterator to the list of objects attached to bones on this entity.
Definition at line 593 of file OgreEntity.cpp. References ChildObjectListIterator, and mChildObjectList. |
|
Overridden - see MovableObject.
Implements Ogre::MovableObject. Definition at line 273 of file OgreEntity.cpp. References Ogre::Mesh::getBounds(), getChildObjectsBoundingBox(), Ogre::AxisAlignedBox::merge(), mFullBoundingBox, and mMesh. |
|
Implements Ogre::MovableObject. Definition at line 598 of file OgreEntity.cpp. References Ogre::Node::_getDerivedScale(), Ogre::Mesh::getBoundingSphereRadius(), mMesh, Ogre::MovableObject::mParentNode, Ogre::Real, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z. |
|
Returns whether shadow casting is enabled for this object.
Implements Ogre::ShadowCaster. Definition at line 212 of file OgreMovableObject.h. Referenced by Ogre::OctreeNode::_addToRenderQueue(), Ogre::SubEntity::getCastsShadows(), Ogre::SceneManager::prepareShadowTextures(), Ogre::BspSceneManager::processVisibleLeaf(), Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(), Ogre::SceneManager::renderAdditiveStencilShadowedQueueGroupObjects(), Ogre::SceneManager::renderModulativeStencilShadowedQueueGroupObjects(), and Ogre::SceneManager::renderModulativeTextureShadowedQueueGroupObjects(). |
|
merge all the child object Bounds a return it
Definition at line 284 of file OgreEntity.cpp. References Ogre::TagPoint::_getFullLocalTransform(), mChildObjectList, Ogre::AxisAlignedBox::merge(), Ogre::AxisAlignedBox::setNull(), and Ogre::AxisAlignedBox::transform(). Referenced by getBoundingBox(). |
|
Overridden member from ShadowCaster.
Implements Ogre::ShadowCaster. Definition at line 135 of file OgreMovableObject.cpp. References Ogre::ShadowCaster::extrudeBounds(), Ogre::Light::getAs4DVector(), Ogre::MovableObject::getLightCapBounds(), Ogre::MovableObject::mWorldDarkCapBounds, and Ogre::Real. |
|
Overridden member from ShadowCaster.
Reimplemented from Ogre::MovableObject. Definition at line 710 of file OgreEntity.cpp. References Ogre::Mesh::getEdgeList(), mMesh, and mMeshLodIndex. Referenced by getShadowVolumeRenderableIterator(). |
|
Helper moethod for calculating extrusion distance.
Definition at line 320 of file OgreShadowCaster.cpp. References Ogre::Light::getAttenuationRange(), Ogre::Light::getDerivedPosition(), Ogre::Vector3::length(), and Ogre::Real. Referenced by Ogre::MovableObject::getPointExtrusionDistance(). |
|
Overridden member from ShadowCaster.
Implements Ogre::ShadowCaster. Definition at line 129 of file OgreMovableObject.cpp. References Ogre::MovableObject::getWorldBoundingBox(). Referenced by Ogre::MovableObject::getDarkCapBounds(). |
|
Gets the Mesh that this Entity is based on.
Definition at line 168 of file OgreEntity.cpp. References mMesh. Referenced by clone(). |
|
Overridden from MovableObject.
Implements Ogre::MovableObject. Definition at line 378 of file OgreEntity.cpp. References msMovableType. |
|
Overridden from MovableObject.
Implements Ogre::MovableObject. Definition at line 173 of file OgreEntity.cpp. References mName. Referenced by clone(), and Ogre::SubEntity::setMaterialName(). |
|
Returns true if this entity has auto-normalisation of normals set.
Definition at line 414 of file OgreEntity.h. |
|
Retrieves the number of SubEntity objects making up this entity.
Definition at line 193 of file OgreEntity.cpp. References mSubEntityList. |
|
Returns the node to which this object is attached.
Definition at line 62 of file OgreMovableObject.cpp. References Ogre::MovableObject::mParentNode. Referenced by Ogre::TagPoint::_updateFromParent(), Ogre::BspIntersectionSceneQuery::execute(), Ogre::TagPoint::getLights(), Ogre::SubEntity::getLights(), Ogre::SubEntity::getSquaredViewDepth(), Ogre::Entity::EntityShadowRenderable::getWorldOrientation(), Ogre::Entity::EntityShadowRenderable::getWorldPosition(), Ogre::TagPoint::needUpdate(), Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Get the distance to extrude for a point/spot light.
Implements Ogre::ShadowCaster. Definition at line 145 of file OgreMovableObject.cpp. References Ogre::Node::_getDerivedPosition(), Ogre::ShadowCaster::getExtrusionDistance(), Ogre::MovableObject::mParentNode, and Ogre::Real. |
|
Returns the query flags relevant for this object.
Definition at line 181 of file OgreMovableObject.h. Referenced by Ogre::BspIntersectionSceneQuery::execute(). |
|
Gets the queue group for this entity, see setRenderQueueGroup for full details.
Definition at line 89 of file OgreMovableObject.cpp. References Ogre::MovableObject::mRenderQueueID, and Ogre::RenderQueueGroupID. |
|
|
Get this Entity's personal skeleton instance.
Definition at line 433 of file OgreEntity.h. |
|
Gets a pointer to a SubEntity by name.
Definition at line 187 of file OgreEntity.cpp. References Ogre::Mesh::_getSubMeshIndex(), getSubEntity(), mMesh, and Ogre::ushort. |
|
Gets a pointer to a SubEntity, ie a part of an Entity.
Definition at line 178 of file OgreEntity.cpp. References Except, and mSubEntityList. Referenced by Ogre::SceneManager::_queueSkiesForRendering(), clone(), and getSubEntity(). |
|
Retrieves a pointer to a custom application object associated with this movable by an earlier call to setUserObject.
Definition at line 142 of file OgreMovableObject.h. |
|
Retrieves the axis-aligned bounding box for this object in world coordinates.
Implements Ogre::ShadowCaster. Definition at line 106 of file OgreMovableObject.cpp. References Ogre::MovableObject::_getParentNodeFullTransform(), Ogre::MovableObject::getBoundingBox(), Ogre::MovableObject::mWorldAABB, and Ogre::AxisAlignedBox::transform(). Referenced by Ogre::BspIntersectionSceneQuery::execute(), Ogre::MovableObject::getLightCapBounds(), Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Retrieves the worldspace bounding sphere for this object.
Definition at line 118 of file OgreMovableObject.cpp. References Ogre::Node::_getDerivedPosition(), Ogre::MovableObject::getBoundingRadius(), Ogre::MovableObject::mParentNode, Ogre::MovableObject::mWorldBoundingSphere, Ogre::Sphere::setCenter(), and Ogre::Sphere::setRadius(). Referenced by Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Returns whether or not this entity is skeletally animated.
Definition at line 431 of file OgreEntity.h. Referenced by _updateRenderQueue(), attachObjectToBone(), Entity(), Ogre::SubEntity::getRenderOperation(), getShadowVolumeRenderableIterator(), and prepareTempBlendBuffers(). |
|
Returns true if this object is attached to a SceneNode or TagPoint.
Definition at line 67 of file OgreMovableObject.cpp. References Ogre::MovableObject::mParentNode. Referenced by attachObjectToBone(). |
|
Returns whether or not hardware skinning is enabled.
Definition at line 443 of file OgreEntity.h. Referenced by updateAnimation(). |
|
Returns whether or not this object is supposed to be visible or not.
Definition at line 78 of file OgreMovableObject.cpp. References Ogre::MovableObject::mVisible. Referenced by Ogre::OctreeNode::_addToRenderQueue(), Ogre::SceneManager::_populateLightList(), Ogre::BspSceneManager::processVisibleLeaf(), and Ogre::SceneManager::ShadowCasterSceneQueryListener::queryResult(). |
|
Internal method for preparing this Entity for use in animation.
Definition at line 610 of file OgreEntity.cpp. References cloneVertexDataRemoveBlendInfo(), extractTempBufferInfo(), hasSkeleton(), mMesh, mSharedBlendedVertexData, mSubEntityList, mTempBlendedBuffer, Ogre::SubEntity::prepareTempBlendBuffers(), and Ogre::Mesh::sharedVertexData. Referenced by Entity(), and getShadowVolumeRenderableIterator(). |
|
Trigger reevaluation of the kind of vertex processing in use.
Definition at line 716 of file OgreEntity.cpp. References Ogre::Material::getBestTechnique(), Ogre::Technique::getPass(), Ogre::Pass::getVertexProgram(), Ogre::Pass::hasVertexProgram(), Ogre::GpuProgram::isSkeletalAnimationIncluded(), Ogre::Material::load(), mHardwareSkinning, mSubEntityList, and mVertexProgramInUse. Referenced by Entity(), and Ogre::SubEntity::setMaterialName(). |
|
As setQueryFlags, except the flags passed as parameters are removed from the existing flags on this object.
Definition at line 178 of file OgreMovableObject.h. |
|
Sets whether or not this object will cast shadows.
Definition at line 210 of file OgreMovableObject.h. Referenced by Ogre::SceneManager::setSkyBox(), Ogre::SceneManager::setSkyDome(), and Ogre::SceneManager::setSkyPlane(). |
|
Tells the Entity whether or not it should display it's skeleton, if it has one.
Definition at line 490 of file OgreEntity.cpp. References mDisplaySkeleton. |
|
Sets a level-of-detail bias for the material detail of this entity.
Definition at line 504 of file OgreEntity.cpp. References mMaterialLodFactorInv, mMaxMaterialLodIndex, mMinMaterialLodIndex, Ogre::Real, and Ogre::ushort. |
|
Sets the material to use for the whole of this entity.
Definition at line 213 of file OgreEntity.cpp. References mSubEntityList. Referenced by Ogre::SceneManager::setSkyBox(), Ogre::SceneManager::setSkyDome(), and Ogre::SceneManager::setSkyPlane(). |
|
Sets a level-of-detail bias for the mesh detail of this entity.
Definition at line 495 of file OgreEntity.cpp. References mMaxMeshLodIndex, mMeshLodFactorInv, mMinMeshLodIndex, Ogre::Real, and Ogre::ushort. |
|
If set to true, this forces normals of this entity to be normalised dynamically by the hardware.
Definition at line 411 of file OgreEntity.h. |
|
Sets the query flags for this object.
Definition at line 170 of file OgreMovableObject.h. |
|
Sets the rendering detail of this entire entity (solid, wireframe etc).
Definition at line 531 of file OgreEntity.cpp. References mSubEntityList, and Ogre::SceneDetailLevel. |
|
Sets the render queue group this entity will be rendered through.
Definition at line 84 of file OgreMovableObject.cpp. References Ogre::MovableObject::mRenderQueueID, and Ogre::RenderQueueGroupID. |
|
Call this to associate your own custom user object instance with this MovableObject.
Definition at line 138 of file OgreMovableObject.h. |
|
Tells this object whether to be visible or not, if it has a renderable component.
Reimplemented in Ogre::Light. Definition at line 73 of file OgreMovableObject.cpp. References Ogre::MovableObject::mVisible. |
|
Perform all the updates required for an animated entity.
Definition at line 383 of file OgreEntity.cpp. References Ogre::Root::_getCurrentSceneManager(), Ogre::TempBlendedBufferInfo::bindTempCopies(), cacheBoneMatrices(), Ogre::TempBlendedBufferInfo::checkoutTempCopies(), Ogre::Root::getCurrentFrameNumber(), Ogre::SceneManager::getShadowTechnique(), isHardwareSkinningEnabled(), Ogre::SubEntity::isVisible(), Ogre::SubEntity::mBlendedVertexData, mBoneMatrices, mChildObjectList, mFrameAnimationLastUpdated, mHardwareSkinning, mMesh, Ogre::MovableObject::mParentNode, mSharedBlendedVertexData, mSubEntityList, Ogre::SubEntity::mSubMesh, Ogre::SubEntity::mTempBlendedBuffer, mTempBlendedBuffer, Ogre::Node::needUpdate(), Ogre::SHADOWTYPE_STENCIL_ADDITIVE, Ogre::SHADOWTYPE_STENCIL_MODULATIVE, Ogre::Mesh::sharedVertexData, and Ogre::SubMesh::vertexData. Referenced by _updateRenderQueue(), and getShadowVolumeRenderableIterator(). |
|
Tells the caster to perform the tasks necessary to update the edge data's light listing. Can be overridden if the subclass needs to do additional things.
Definition at line 31 of file OgreShadowCaster.cpp. References Ogre::EdgeData::updateTriangleLightFacing(). Referenced by getShadowVolumeRenderableIterator(). |
|
Definition at line 73 of file OgreEntity.h. |
|
Definition at line 74 of file OgreEntity.h. Referenced by buildSubEntityList(). |
|
State of animation for animable meshes.
Definition at line 104 of file OgreEntity.h. Referenced by cacheBoneMatrices(), clone(), Entity(), getAllAnimationStates(), and getAnimationState(). |
|
Cached bone matrices, including any world transform.
Definition at line 131 of file OgreEntity.h. Referenced by cacheBoneMatrices(), Entity(), Ogre::SubEntity::getWorldTransforms(), updateAnimation(), and ~Entity(). |
|
Does this object cast shadows?
Definition at line 65 of file OgreMovableObject.h. Referenced by Ogre::BillboardSet::BillboardSet(), and Ogre::MovableObject::MovableObject(). |
|
Definition at line 194 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), _updateRenderQueue(), attachObjectImpl(), cacheBoneMatrices(), detachObjectFromBone(), getAttachedObjectIterator(), getChildObjectsBoundingBox(), and updateAnimation(). |
|
Pointer back to the SceneManager that created this instance, for notification purposes.
Definition at line 100 of file OgreEntity.h. |
|
Flag determines whether or not to display skeleton.
Definition at line 143 of file OgreEntity.h. Referenced by _updateRenderQueue(), Entity(), and setDisplaySkeleton(). |
|
Records the last frame in which animation was updated.
Definition at line 134 of file OgreEntity.h. Referenced by Entity(), getShadowVolumeRenderableIterator(), and updateAnimation(). |
|
Bounding box that 'contains' all the mesh of each child entity.
Definition at line 198 of file OgreEntity.h. Referenced by Entity(), getBoundingBox(), and ~Entity(). |
|
Flag indicating whether hardware skinning is supported by this entities materials.
Definition at line 145 of file OgreEntity.h. Referenced by Entity(), Ogre::SubEntity::getRenderOperation(), reevaluateVertexProcessing(), and updateAnimation(). |
|
Definition at line 175 of file OgreEntity.h. Referenced by _notifyAttached(), _updateRenderQueue(), Entity(), getShadowVolumeRenderableIterator(), and ~Entity(). |
|
LOD bias factor, inverted for optimisation when calculating adjusted depth.
Definition at line 161 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), Entity(), and setMaterialLodBias(). |
|
Index of maximum detail LOD (NB lower index is higher detail).
Definition at line 165 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), Entity(), and setMaterialLodBias(). |
|
Index of maximum detail LOD (NB lower index is higher detail).
Definition at line 158 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), Entity(), and setMeshLodBias(). |
|
The Mesh that this Entity is based on.
Definition at line 90 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), _updateRenderQueue(), cacheBoneMatrices(), Entity(), findBlendedVertexData(), findSubEntityForVertexData(), getBoundingBox(), getBoundingRadius(), getEdgeList(), getMesh(), getShadowVolumeRenderableIterator(), getSubEntity(), prepareTempBlendBuffers(), and updateAnimation(). |
|
LOD bias factor, inverted for optimisation when calculating adjusted depth.
Definition at line 154 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), Entity(), and setMeshLodBias(). |
|
The LOD number of the mesh to use, calculated by _notifyCurrentCamera.
Definition at line 151 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), _updateRenderQueue(), cacheBoneMatrices(), Entity(), getEdgeList(), Ogre::SubEntity::getRenderOperation(), and getShadowVolumeRenderableIterator(). |
|
Index of minimum detail LOD (NB higher index is lower detail).
Definition at line 163 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), Entity(), and setMaterialLodBias(). |
|
Index of minimum detail LOD (NB higher index is lower detail).
Definition at line 156 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), Entity(), and setMeshLodBias(). |
|
Name of the entity; used for location in the scene.
Definition at line 86 of file OgreEntity.h. Referenced by getName(). |
|
Definition at line 200 of file OgreEntity.h. Referenced by Entity(), and Ogre::SubEntity::getNormaliseNormals(). |
|
Definition at line 132 of file OgreEntity.h. Referenced by cacheBoneMatrices(), Entity(), Ogre::SubEntity::getNumWorldTransforms(), and Ogre::SubEntity::getWorldTransforms(). |
|
Definition at line 49 of file OgreMovableObject.h. Referenced by Ogre::MovableObject::_notifyAttached(), Ogre::MovableObject::MovableObject(), and Ogre::MovableObject::~MovableObject(). |
|
|
Flags determining whether this object is included / excluded from scene queries.
Definition at line 57 of file OgreMovableObject.h. Referenced by Ogre::MovableObject::MovableObject(). |
|
The render queue to use when rendering this object.
Definition at line 55 of file OgreMovableObject.h. Referenced by _updateRenderQueue(), Ogre::BillboardSet::_updateRenderQueue(), Ogre::MovableObject::getRenderQueueGroup(), Ogre::MovableObject::MovableObject(), and Ogre::MovableObject::setRenderQueueGroup(). |
|
Definition at line 202 of file OgreEntity.h. Referenced by getShadowVolumeRenderableIterator(), and ~Entity(). |
|
Temp blend buffer details for shared geometry.
Definition at line 113 of file OgreEntity.h. Referenced by Entity(), findBlendedVertexData(), Ogre::SubEntity::getRenderOperation(), prepareTempBlendBuffers(), and updateAnimation(). |
|
This Entity's personal copy of the skeleton, if skeletally animated.
Definition at line 179 of file OgreEntity.h. Referenced by _updateRenderQueue(), attachObjectToBone(), cacheBoneMatrices(), Entity(), and ~Entity(). |
|
Shared class-level name for Movable type.
Definition at line 49 of file OgreEntity.cpp. Referenced by getMovableType(). |
|
Definition at line 95 of file OgreEntity.h. Referenced by _notifyCurrentCamera(), _updateRenderQueue(), clone(), Entity(), findBlendedVertexData(), findSubEntityForVertexData(), getNumSubEntities(), getSubEntity(), prepareTempBlendBuffers(), reevaluateVertexProcessing(), setMaterialName(), setRenderDetail(), updateAnimation(), and ~Entity(). |
|
Temp blend buffer details for shared geometry.
Definition at line 111 of file OgreEntity.h. Referenced by prepareTempBlendBuffers(), and updateAnimation(). |
|
User defined object which is linked to this object.
Definition at line 53 of file OgreMovableObject.h. Referenced by Ogre::MovableObject::MovableObject(). |
|
Flag indicating that mesh uses manual LOD and so might have multiple SubEntity versions.
Definition at line 168 of file OgreEntity.h. |
|
Flag indicating whether we have a vertex program in use on any of our subentities.
Definition at line 147 of file OgreEntity.h. Referenced by getShadowVolumeRenderableIterator(), and reevaluateVertexProcessing(). |
|
Is this object visible?
Definition at line 51 of file OgreMovableObject.h. Referenced by Ogre::Camera::Camera(), Ogre::Frustum::Frustum(), Ogre::MovableObject::isVisible(), Ogre::MovableObject::MovableObject(), and Ogre::MovableObject::setVisible(). |
|
Cached world AABB of this object.
Definition at line 59 of file OgreMovableObject.h. Referenced by Ogre::MovableObject::getWorldBoundingBox(), and Ogre::MovableObject::MovableObject(). |
|
Definition at line 61 of file OgreMovableObject.h. Referenced by Ogre::MovableObject::getWorldBoundingSphere(). |
|
World space AABB of this object's dark cap.
Definition at line 63 of file OgreMovableObject.h. Referenced by Ogre::MovableObject::getDarkCapBounds(). |
Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:26:03 2004