Sirikata
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
Sirikata::Graphics::Entity Class Reference

Base class for objects represented in Ogre as a mesh. More...

#include <Entity.hpp>

Inheritance diagram for Sirikata::Graphics::Entity:
Collaboration diagram for Sirikata::Graphics::Entity:

List of all members.

Public Types

typedef std::map< int,
std::pair< String,
Ogre::MaterialPtr > > 
ReplacedMaterialMap

Public Member Functions

 Entity (OgreRenderer *scene, const String &name)
virtual ~Entity ()
virtual BoundingSphere3f bounds ()=0
virtual void tick (const Time &t, const Duration &deltaTime)
virtual bool isDynamic () const
virtual bool isMobile () const =0
void removeFromScene (bool *mobileVal=NULL)
void addToScene (Ogre::SceneNode *newParent=NULL)
OgreRenderergetScene () const
Ogre::SceneNode * getSceneNode ()
Ogre::Entity * getOgreEntity ()
Ogre::BillboardSet * getOgreBillboard () const
void setOgrePosition (const Vector3d &pos)
void setOgreOrientation (const Quaternion &orient)
Vector3d getOgrePosition ()
Quaternion getOgreOrientation ()
float getRadius ()
void setSelected (bool selected)
std::string ogreMovableName () const
const String & id () const
void setVisible (bool vis)
void setAnimation (const String &name, bool *checkVisible=NULL)
const std::vector< String > getAnimationList ()
void bindTexture (const std::string &textureName, const String &objId)
void unbindTexture (const std::string &textureName)
void loadEmpty ()
 'Load' an empty mesh, i.e.
void loadMesh (Mesh::MeshdataPtr meshdata, const String &meshname, const std::set< String > &animations)
 Load the mesh and use it for this entity.
void loadBillboard (Mesh::BillboardPtr bboard, const String &bbtexname)
 Load the billboard and use it for this entity.
void loadFailed ()
 Notify this entity (and it's listeners in turn) that loading of the asset it depends on has failed.
void unload ()

Static Public Member Functions

static EntityfromMovableObject (Ogre::MovableObject *obj)
static std::string ogreMeshName (const String &name)

Protected Types

typedef std::vector
< Ogre::Light * > 
LightList

Protected Member Functions

void fixTextures ()
void init (Ogre::MovableObject *obj)
void beginLoad ()
void unloadMesh ()
void unloadBillboard ()
void setDynamic (bool isStatic)
void checkDynamic ()
void updateScale (float scale)
void updateVisibility ()
void setIsAggregate (bool isAgg)

Protected Attributes

OgreRenderer *const mScene
String mName
Ogre::MovableObject * mOgreObject
Ogre::SceneNode * mSceneNode
std::list< Entity * >::iterator mMovingIter
ReplacedMaterialMap mReplacedMaterials
TextureBindingsMap mTextureBindings
LightList mLights
bool mVisible
bool mIsAggregate
float mAggregateRadius
Vector3d mAggregateOffset
Ogre::AnimationState * mCurrentAnimation
String mInitialAnimationName
String mMeshName
std::set< String > mAnimationList
bool mMeshLoaded

Detailed Description

Base class for objects represented in Ogre as a mesh.


Member Typedef Documentation

typedef std::vector<Ogre::Light*> Sirikata::Graphics::Entity::LightList [protected]
typedef std::map<int, std::pair<String, Ogre::MaterialPtr> > Sirikata::Graphics::Entity::ReplacedMaterialMap

Constructor & Destructor Documentation

Sirikata::Graphics::Entity::Entity ( OgreRenderer scene,
const String &  name 
)
Sirikata::Graphics::Entity::~Entity ( ) [virtual]

Member Function Documentation

void Sirikata::Graphics::Entity::addToScene ( Ogre::SceneNode *  newParent = NULL)
void Sirikata::Graphics::Entity::beginLoad ( ) [protected]
void Sirikata::Graphics::Entity::bindTexture ( const std::string &  textureName,
const String &  objId 
)

References fixTextures(), and mTextureBindings.

virtual BoundingSphere3f Sirikata::Graphics::Entity::bounds ( ) [pure virtual]
void Sirikata::Graphics::Entity::checkDynamic ( ) [protected]
void Sirikata::Graphics::Entity::fixTextures ( ) [protected]
Entity * Sirikata::Graphics::Entity::fromMovableObject ( Ogre::MovableObject *  obj) [static]
const std::vector< String > Sirikata::Graphics::Entity::getAnimationList ( )
Ogre::BillboardSet * Sirikata::Graphics::Entity::getOgreBillboard ( ) const

References mOgreObject.

Referenced by unload(), and unloadBillboard().

Ogre::Entity * Sirikata::Graphics::Entity::getOgreEntity ( )
Quaternion Sirikata::Graphics::Entity::getOgreOrientation ( )
Vector3d Sirikata::Graphics::Entity::getOgrePosition ( )
float Sirikata::Graphics::Entity::getRadius ( )

References bounds(), and mAggregateRadius.

Referenced by init(), and setSelected().

OgreRenderer* Sirikata::Graphics::Entity::getScene ( ) const [inline]
Ogre::SceneNode* Sirikata::Graphics::Entity::getSceneNode ( ) [inline]
const String& Sirikata::Graphics::Entity::id ( ) const [inline]
void Sirikata::Graphics::Entity::init ( Ogre::MovableObject *  obj) [protected]
bool Sirikata::Graphics::Entity::isDynamic ( ) const [virtual]

Reimplemented in Sirikata::Graphics::ProxyEntity.

References mCurrentAnimation.

Referenced by checkDynamic().

virtual bool Sirikata::Graphics::Entity::isMobile ( ) const [pure virtual]

Implemented in Sirikata::Graphics::ProxyEntity.

Referenced by beginLoad(), and setAnimation().

void Sirikata::Graphics::Entity::loadBillboard ( Mesh::BillboardPtr  bboard,
const String &  bbtexname 
)
void Sirikata::Graphics::Entity::loadEmpty ( )

'Load' an empty mesh, i.e.

hide the object because it has no mesh.

References beginLoad(), and mMeshLoaded.

Referenced by Sirikata::Graphics::PriorityDownloadPlanner::requestAssetForObject().

void Sirikata::Graphics::Entity::loadFailed ( )

Notify this entity (and it's listeners in turn) that loading of the asset it depends on has failed.

References Sirikata::Graphics::EntityListener::entityLoaded(), and Sirikata::Provider< EntityListener * >::notify().

Referenced by Sirikata::Graphics::PriorityDownloadPlanner::finishLoadAsset().

void Sirikata::Graphics::Entity::loadMesh ( Mesh::MeshdataPtr  meshdata,
const String &  meshname,
const std::set< String > &  animations 
)
std::string Sirikata::Graphics::Entity::ogreMeshName ( const String &  name) [static]

References name().

Referenced by ogreMovableName().

std::string Sirikata::Graphics::Entity::ogreMovableName ( ) const

References ogreMeshName().

Referenced by loadBillboard(), and loadMesh().

void Sirikata::Graphics::Entity::removeFromScene ( bool *  mobileVal = NULL)
void Sirikata::Graphics::Entity::setAnimation ( const String &  name,
bool *  checkVisible = NULL 
)
void Sirikata::Graphics::Entity::setDynamic ( bool  isStatic) [protected]
void Sirikata::Graphics::Entity::setIsAggregate ( bool  isAgg) [protected]
void Sirikata::Graphics::Entity::setOgreOrientation ( const Quaternion orient)
void Sirikata::Graphics::Entity::setOgrePosition ( const Vector3d &  pos)
void Sirikata::Graphics::Entity::setSelected ( bool  selected)
void Sirikata::Graphics::Entity::setVisible ( bool  vis)
void Sirikata::Graphics::Entity::tick ( const Time t,
const Duration deltaTime 
) [virtual]
void Sirikata::Graphics::Entity::unbindTexture ( const std::string &  textureName)

References fixTextures(), and mTextureBindings.

void Sirikata::Graphics::Entity::unload ( )
void Sirikata::Graphics::Entity::unloadBillboard ( ) [protected]
void Sirikata::Graphics::Entity::unloadMesh ( ) [protected]
void Sirikata::Graphics::Entity::updateScale ( float  scale) [protected]
void Sirikata::Graphics::Entity::updateVisibility ( ) [protected]

References mSceneNode, and mVisible.

Referenced by init(), and setVisible().


Member Data Documentation

Referenced by loadMesh(), and setOgrePosition().

Referenced by getRadius(), and loadMesh().

std::set<String> Sirikata::Graphics::Entity::mAnimationList [protected]
Ogre::AnimationState* Sirikata::Graphics::Entity::mCurrentAnimation [protected]

Referenced by loadMesh(), and setAnimation().

Referenced by loadMesh(), and setIsAggregate().

Referenced by loadMesh(), and setSelected().

std::list<Entity*>::iterator Sirikata::Graphics::Entity::mMovingIter [protected]

Referenced by setDynamic(), and ~Entity().

Referenced by Entity(), and ~Entity().

Ogre::MovableObject* Sirikata::Graphics::Entity::mOgreObject [protected]
Ogre::SceneNode* Sirikata::Graphics::Entity::mSceneNode [protected]

Referenced by setVisible(), and updateVisibility().


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