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]
Collaboration diagram for Ogre::SubEntity:

Collaboration 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.

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

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.


Private Methods

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

virtual ~SubEntity ()
 Private destructor.


Private Attributes

EntitymParentEntity
 Pointer to parent.

String mMaterialName
 Name of Material in use by this SubEntity.

MaterialmpMaterial
 Cached pointer to material.

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


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 51 of file OgreSubEntity.h.


Constructor & Destructor Documentation

Ogre::SubEntity::SubEntity   [private]
 

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

Definition at line 37 of file OgreSubEntity.cpp.

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

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

Private destructor.

Definition at line 63 of file OgreSubEntity.h.


Member Function Documentation

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

@copydoc Renderable::getLights

Implements Ogre::Renderable.

Definition at line 142 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 77 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 49 of file OgreSubEntity.cpp.

References mMaterialName.

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

Overridden - see Renderable.

Reimplemented from Ogre::Renderable.

Definition at line 137 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 122 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 127 of file OgreSubEntity.h.

References Ogre::SceneDetailLevel.

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

Overridden - see Renderable.

Implements Ogre::Renderable.

Definition at line 87 of file OgreSubEntity.cpp.

References Ogre::SubMesh::_getRenderOperation(), Ogre::Entity::mMeshLodIndex, mParentEntity, and mSubMesh.

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

Overridden, see Renderable.

Implements Ogre::Renderable.

Definition at line 130 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 44 of file OgreSubEntity.cpp.

References mSubMesh.

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

Overridden - see Renderable.

Reimplemented from Ogre::Renderable.

Definition at line 82 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 111 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 116 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 93 of file OgreSubEntity.cpp.

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

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 54 of file OgreSubEntity.cpp.

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

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 125 of file OgreSubEntity.h.

References Ogre::SceneDetailLevel.

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, and Ogre::BorderRenderable.

Definition at line 108 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, and Ogre::BorderRenderable.

Definition at line 118 of file OgreRenderable.h.

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


Friends And Related Function Documentation

friend class Entity [friend]
 

Definition at line 54 of file OgreSubEntity.h.

friend class SceneManager [friend]
 

Definition at line 55 of file OgreSubEntity.h.


Member Data Documentation

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

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

Definition at line 79 of file OgreSubEntity.h.

Referenced by getTechnique(), and SubEntity().

String Ogre::SubEntity::mMaterialName [private]
 

Name of Material in use by this SubEntity.

Definition at line 69 of file OgreSubEntity.h.

Referenced by getMaterialName(), and setMaterialName().

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

Pointer to parent.

Definition at line 66 of file OgreSubEntity.h.

Referenced by Ogre::Entity::buildSubEntityList(), getLights(), getNormaliseNormals(), getNumWorldTransforms(), getRenderOperation(), getSquaredViewDepth(), getWorldOrientation(), getWorldPosition(), getWorldTransforms(), and setMaterialName().

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

Cached pointer to material.

Definition at line 72 of file OgreSubEntity.h.

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

SceneDetailLevel Ogre::SubEntity::mRenderDetail [private]
 

Definition at line 77 of file OgreSubEntity.h.

Referenced by SubEntity().

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

Definition at line 75 of file OgreSubEntity.h.

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


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

Copyright © 2002-2003 by The OGRE Team
Last modified Wed Jan 21 00:20:52 2004