Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Ogre::SubEntity Class Reference

Utility class which defines the sub-parts of an Entity. More...

#include <OgreSubEntity.h>

Inheritance diagram for Ogre::SubEntity:

Inheritance graph
[legend]
List of all members.

Public Methods

const StringgetMaterialName () const
 Gets the name of the Material in use by this instance.

void setMaterialName (const String &name)
 Sets the name of the Material to be used.

virtual void setVisible (bool visible)
 Tells this SubEntity whether to be visible or not.

virtual bool isVisible (void) const
 Returns whether or not this SubEntity is supposed to be visible.

SubMeshgetSubMesh (void)
 Accessor method to read mesh data.

MaterialgetMaterial (void) const
 Overridden - see Renderable.

TechniquegetTechnique (void) const
 Overridden - see Renderable.

void getRenderOperation (RenderOperation &op)
 Overridden - see Renderable.

void getWorldTransforms (Matrix4 *xform) const
 Overridden - see Renderable.

const QuaterniongetWorldOrientation (void) const
 @copydoc Renderable::getWorldOrientation

const Vector3getWorldPosition (void) const
 @copydoc Renderable::getWorldPosition

bool getNormaliseNormals (void) const
 Overridden - see Renderable.

unsigned short getNumWorldTransforms (void) const
 Overridden - see Renderable.

Real getSquaredViewDepth (const Camera *cam) const
 Overridden, see Renderable.

void setRenderDetail (SceneDetailLevel renderDetail)
 Sets the rendering level (solid, wireframe) of this SubEntity.

SceneDetailLevel getRenderDetail () const
 Overridden, see Renderable.

const LightListgetLights (void) const
 @copydoc Renderable::getLights

const VertexDatagetBlendedVertexData (void)
 Get the temporary blended vertex data for this subentity.

bool getCastsShadows (void) const
 @copydoc Renderable::getCastsShadows

virtual bool useIdentityProjection (void) const
 Returns whether or not to use an 'identity' projection.

virtual bool useIdentityView (void) const
 Returns whether or not to use an 'identity' projection.

virtual const PlaneListgetClipPlanes () const

Protected Methods

 SubEntity (Entity *parent, SubMesh *subMeshBasis)
 Private constructor - don't allow creation by anybody else.

virtual ~SubEntity ()
 Private destructor.

void prepareTempBlendBuffers (void)
 Internal method for preparing this Entity for use in animation.


Protected Attributes

EntitymParentEntity
 Pointer to parent.

String mMaterialName
 Name of Material in use by this SubEntity.

MaterialmpMaterial
 Cached pointer to material.

SubMeshmSubMesh
bool mVisible
 Is this SubEntity visible?

SceneDetailLevel mRenderDetail
unsigned short mMaterialLodIndex
 The LOD number of the material to use, calculated by Entity::_notifyCurrentCamera.

VertexDatamBlendedVertexData
 blend buffer details for dedicated geometry

TempBlendedBufferInfo mTempBlendedBuffer
 Quick lookup of buffers.


Friends

class Entity
class SceneManager

Detailed Description

Utility class which defines the sub-parts of an Entity.

Remarks:
Just as meshes are split into submeshes, an Entity is made up of potentially multiple SubMeshes. These are mainly here to provide the link between the Material which the SubEntity uses (which may be the default Material for the SubMesh or may have been changed for this object) and the SubMesh data.

The SubEntity also allows the application some flexibility in the material properties for this section of a particular instance of this Mesh, e.g. tinting the windows on a car model.

SubEntity instances are never created manually. They are created at the same time as their parent Entity by the SceneManager method createEntity.

Definition at line 52 of file OgreSubEntity.h.


Constructor & Destructor Documentation

Ogre::SubEntity::SubEntity Entity   parent,
SubMesh   subMeshBasis
[protected]
 

Private constructor - don't allow creation by anybody else.

Definition at line 38 of file OgreSubEntity.cpp.

References mBlendedVertexData, mMaterialLodIndex, mpMaterial, mRenderDetail, mVisible, and Ogre::SDL_SOLID.

Ogre::SubEntity::~SubEntity   [protected, virtual]
 

Private destructor.

Definition at line 52 of file OgreSubEntity.cpp.

References mBlendedVertexData.


Member Function Documentation

const VertexData* Ogre::SubEntity::getBlendedVertexData void   
 

Get the temporary blended vertex data for this subentity.

Definition at line 149 of file OgreSubEntity.h.

Referenced by Ogre::Entity::findBlendedVertexData().

bool Ogre::SubEntity::getCastsShadows void    const [virtual]
 

@copydoc Renderable::getCastsShadows

Reimplemented from Ogre::Renderable.

Definition at line 197 of file OgreSubEntity.cpp.

References Ogre::MovableObject::getCastShadows(), and mParentEntity.

virtual const PlaneList& Ogre::Renderable::getClipPlanes   const [virtual, inherited]
 

Definition at line 142 of file OgreRenderable.h.

References Ogre::PlaneList.

Referenced by Ogre::SceneManager::renderSingleObject().

const LightList & Ogre::SubEntity::getLights void    const [virtual]
 

@copydoc Renderable::getLights

Implements Ogre::Renderable.

Definition at line 166 of file OgreSubEntity.cpp.

References Ogre::Node::getLights(), Ogre::MovableObject::getParentNode(), Ogre::LightList, and mParentEntity.

Material * Ogre::SubEntity::getMaterial void    const [virtual]
 

Overridden - see Renderable.

Implements Ogre::Renderable.

Definition at line 94 of file OgreSubEntity.cpp.

References mpMaterial.

const String & Ogre::SubEntity::getMaterialName   const
 

Gets the name of the Material in use by this instance.

Definition at line 63 of file OgreSubEntity.cpp.

References mMaterialName.

bool Ogre::SubEntity::getNormaliseNormals void    const [virtual]
 

Overridden - see Renderable.

Reimplemented from Ogre::Renderable.

Definition at line 161 of file OgreSubEntity.cpp.

References Ogre::Entity::mNormaliseNormals, and mParentEntity.

unsigned short Ogre::SubEntity::getNumWorldTransforms void    const [virtual]
 

Overridden - see Renderable.

Reimplemented from Ogre::Renderable.

Definition at line 146 of file OgreSubEntity.cpp.

References Ogre::Entity::mNumBoneMatrices, and mParentEntity.

SceneDetailLevel Ogre::SubEntity::getRenderDetail   const [virtual]
 

Overridden, see Renderable.

Reimplemented from Ogre::Renderable.

Definition at line 145 of file OgreSubEntity.h.

References Ogre::SceneDetailLevel.

void Ogre::SubEntity::getRenderOperation RenderOperation   op [virtual]
 

Overridden - see Renderable.

Implements Ogre::Renderable.

Definition at line 104 of file OgreSubEntity.cpp.

References Ogre::SubMesh::_getRenderOperation(), Ogre::Entity::hasSkeleton(), mBlendedVertexData, Ogre::Entity::mHardwareSkinning, Ogre::Entity::mMeshLodIndex, mParentEntity, Ogre::Entity::mSharedBlendedVertexData, mSubMesh, Ogre::SubMesh::useSharedVertices, and Ogre::RenderOperation::vertexData.

Real Ogre::SubEntity::getSquaredViewDepth const Camera   cam const [virtual]
 

Overridden, see Renderable.

Implements Ogre::Renderable.

Definition at line 154 of file OgreSubEntity.cpp.

References Ogre::MovableObject::getParentNode(), Ogre::Node::getSquaredViewDepth(), mParentEntity, and Ogre::Real.

SubMesh * Ogre::SubEntity::getSubMesh void   
 

Accessor method to read mesh data.

Definition at line 58 of file OgreSubEntity.cpp.

References mSubMesh.

Referenced by Ogre::Entity::findBlendedVertexData(), and Ogre::Entity::findSubEntityForVertexData().

Technique * Ogre::SubEntity::getTechnique void    const [virtual]
 

Overridden - see Renderable.

Reimplemented from Ogre::Renderable.

Definition at line 99 of file OgreSubEntity.cpp.

References Ogre::Material::getBestTechnique(), mMaterialLodIndex, and mpMaterial.

const Quaternion & Ogre::SubEntity::getWorldOrientation void    const [virtual]
 

@copydoc Renderable::getWorldOrientation

Implements Ogre::Renderable.

Definition at line 135 of file OgreSubEntity.cpp.

References Ogre::Node::_getDerivedOrientation(), mParentEntity, and Ogre::MovableObject::mParentNode.

const Vector3 & Ogre::SubEntity::getWorldPosition void    const [virtual]
 

@copydoc Renderable::getWorldPosition

Implements Ogre::Renderable.

Definition at line 140 of file OgreSubEntity.cpp.

References Ogre::Node::_getDerivedPosition(), mParentEntity, and Ogre::MovableObject::mParentNode.

void Ogre::SubEntity::getWorldTransforms Matrix4   xform const [virtual]
 

Overridden - see Renderable.

Implements Ogre::Renderable.

Definition at line 117 of file OgreSubEntity.cpp.

References Ogre::MovableObject::_getParentNodeFullTransform(), Ogre::Entity::mBoneMatrices, Ogre::Entity::mNumBoneMatrices, and mParentEntity.

bool Ogre::SubEntity::isVisible void    const [virtual]
 

Returns whether or not this SubEntity is supposed to be visible.

Definition at line 178 of file OgreSubEntity.cpp.

References mVisible.

Referenced by Ogre::Entity::EntityShadowRenderable::isVisible(), and Ogre::Entity::updateAnimation().

void Ogre::SubEntity::prepareTempBlendBuffers void    [protected]
 

Internal method for preparing this Entity for use in animation.

Definition at line 184 of file OgreSubEntity.cpp.

References Ogre::Entity::cloneVertexDataRemoveBlendInfo(), Ogre::Entity::extractTempBufferInfo(), mBlendedVertexData, mParentEntity, mSubMesh, mTempBlendedBuffer, and Ogre::SubMesh::vertexData.

Referenced by Ogre::Entity::prepareTempBlendBuffers().

void Ogre::SubEntity::setMaterialName const String   name
 

Sets the name of the Material to be used.

Remarks:
By default a SubEntity uses the default Material that the SubMesh uses. This call can alter that so that the Material is different for this instance.

Definition at line 68 of file OgreSubEntity.cpp.

References Ogre::Entity::getName(), Ogre::Material::load(), mMaterialName, mParentEntity, mpMaterial, and Ogre::Entity::reevaluateVertexProcessing().

Referenced by Ogre::Entity::buildSubEntityList(), and Ogre::Entity::clone().

void Ogre::SubEntity::setRenderDetail SceneDetailLevel    renderDetail
 

Sets the rendering level (solid, wireframe) of this SubEntity.

Definition at line 143 of file OgreSubEntity.h.

References Ogre::SceneDetailLevel.

void Ogre::SubEntity::setVisible bool    visible [virtual]
 

Tells this SubEntity whether to be visible or not.

Definition at line 173 of file OgreSubEntity.cpp.

References mVisible.

virtual bool Ogre::Renderable::useIdentityProjection void    const [virtual, inherited]
 

Returns whether or not to use an 'identity' projection.

Remarks:
Usually Renderable objects will use a projection matrix as determined by the active camera. However, if they want they can cancel this out and use an identity projection, which effectively projects in 2D using a {-1, 1} view space. Useful for overlay rendering. Normal renderables need not override this.

Reimplemented in Ogre::GuiElement, Ogre::Rectangle2D, and Ogre::BorderRenderable.

Definition at line 110 of file OgreRenderable.h.

Referenced by Ogre::SceneManager::useRenderableViewProjMode().

virtual bool Ogre::Renderable::useIdentityView void    const [virtual, inherited]
 

Returns whether or not to use an 'identity' projection.

Remarks:
Usually Renderable objects will use a view matrix as determined by the active camera. However, if they want they can cancel this out and use an identity matrix, which means all geometry is assumed to be relative to camera space already. Useful for overlay rendering. Normal renderables need not override this.

Reimplemented in Ogre::GuiElement, Ogre::Rectangle2D, and Ogre::BorderRenderable.

Definition at line 120 of file OgreRenderable.h.

Referenced by Ogre::SceneManager::useRenderableViewProjMode().


Friends And Related Function Documentation

friend class Entity [friend]
 

Definition at line 55 of file OgreSubEntity.h.

friend class SceneManager [friend]
 

Definition at line 56 of file OgreSubEntity.h.


Member Data Documentation

VertexData* Ogre::SubEntity::mBlendedVertexData [protected]
 

blend buffer details for dedicated geometry

Definition at line 86 of file OgreSubEntity.h.

Referenced by getRenderOperation(), prepareTempBlendBuffers(), SubEntity(), Ogre::Entity::updateAnimation(), and ~SubEntity().

unsigned short Ogre::SubEntity::mMaterialLodIndex [protected]
 

The LOD number of the material to use, calculated by Entity::_notifyCurrentCamera.

Definition at line 83 of file OgreSubEntity.h.

Referenced by getTechnique(), and SubEntity().

String Ogre::SubEntity::mMaterialName [protected]
 

Name of Material in use by this SubEntity.

Definition at line 70 of file OgreSubEntity.h.

Referenced by getMaterialName(), and setMaterialName().

Entity* Ogre::SubEntity::mParentEntity [protected]
 

Pointer to parent.

Definition at line 67 of file OgreSubEntity.h.

Referenced by getCastsShadows(), getLights(), getNormaliseNormals(), getNumWorldTransforms(), getRenderOperation(), getSquaredViewDepth(), getWorldOrientation(), getWorldPosition(), getWorldTransforms(), prepareTempBlendBuffers(), and setMaterialName().

Material* Ogre::SubEntity::mpMaterial [protected]
 

Cached pointer to material.

Definition at line 73 of file OgreSubEntity.h.

Referenced by getMaterial(), getTechnique(), setMaterialName(), and SubEntity().

SceneDetailLevel Ogre::SubEntity::mRenderDetail [protected]
 

Definition at line 81 of file OgreSubEntity.h.

Referenced by SubEntity().

SubMesh* Ogre::SubEntity::mSubMesh [protected]
 

Definition at line 76 of file OgreSubEntity.h.

Referenced by getRenderOperation(), getSubMesh(), prepareTempBlendBuffers(), and Ogre::Entity::updateAnimation().

TempBlendedBufferInfo Ogre::SubEntity::mTempBlendedBuffer [protected]
 

Quick lookup of buffers.

Definition at line 88 of file OgreSubEntity.h.

Referenced by prepareTempBlendBuffers(), and Ogre::Entity::updateAnimation().

bool Ogre::SubEntity::mVisible [protected]
 

Is this SubEntity visible?

Definition at line 79 of file OgreSubEntity.h.

Referenced by isVisible(), setVisible(), and SubEntity().


The documentation for this class was generated from the following files:

Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:27:21 2004