Elaztek Developer Hub
Blamite Game Engine - blam!  00398.09.22.23.2015.blamite
The core library for the Blamite Game Engine.
GameEntity.h
Go to the documentation of this file.
1 
2 #ifndef _Demo_GameEntity_H_
3 #define _Demo_GameEntity_H_
4 
5 #include "OGRE/OgreVector3.h"
6 #include "OGRE/OgreQuaternion.h"
7 #include "OGRE/OgreStringVector.h"
8 
9 namespace Demo
10 {
11  #define NUM_GAME_ENTITY_BUFFERS 4
12 
14  {
18  };
19 
21  {
24  Ogre::StringVector submeshMaterials;
26  };
27 
29  {
30  Ogre::Vector3 vPos;
31  Ogre::Quaternion qRot;
32  Ogre::Vector3 vScale;
33  };
34 
35  struct GameEntity
36  {
37  private:
38  Ogre::uint32 mId;
39 
40  public:
41  //----------------------------------------
42  // Only used by Graphics thread
43  //----------------------------------------
44  Ogre::SceneNode *mSceneNode;
45  Ogre::MovableObject *mMovableObject; //Could be Entity, InstancedEntity, Item.
46 
47  //Your custom pointers go here, i.e. physics representation.
48  //used only by Logic thread (hkpEntity, btRigidBody, etc)
49 
50  //----------------------------------------
51  // Used by both Logic and Graphics threads
52  //----------------------------------------
54  Ogre::SceneMemoryMgrTypes mType;
55 
56  //----------------------------------------
57  // Read-only
58  //----------------------------------------
61 
62  GameEntity( Ogre::uint32 id, const MovableObjectDefinition *moDefinition,
63  Ogre::SceneMemoryMgrTypes type ) :
64  mId( id ),
65  mSceneNode( 0 ),
66  mMovableObject( 0 ),
67  mType( type ),
68  mMoDefinition( moDefinition ),
70  {
71  for( int i=0; i<NUM_GAME_ENTITY_BUFFERS; ++i )
72  mTransform[i] = 0;
73  }
74 
75  Ogre::uint32 getId(void) const { return mId; }
76 
77  bool operator < ( const GameEntity *_r ) const
78  {
79  return mId < _r->mId;
80  }
81 
82  static bool OrderById( const GameEntity *_l, const GameEntity *_r )
83  {
84  return _l->mId < _r->mId;
85  }
86  };
87 
88  typedef std::vector<GameEntity*> GameEntityVec;
89 }
90 
91 #endif
Demo::MoTypeItem
@ MoTypeItem
Definition: GameEntity.h:15
Demo::GameEntity::operator<
bool operator<(const GameEntity *_r) const
Definition: GameEntity.h:77
Demo::MoTypeEntity
@ MoTypeEntity
Definition: GameEntity.h:16
Demo::GameEntity::mTransform
GameEntityTransform * mTransform[NUM_GAME_ENTITY_BUFFERS]
Definition: GameEntity.h:53
Demo::NumMovableObjectType
@ NumMovableObjectType
Definition: GameEntity.h:17
Demo::GameEntityTransform::qRot
Ogre::Quaternion qRot
Definition: GameEntity.h:31
Demo::GameEntity::mMovableObject
Ogre::MovableObject * mMovableObject
Definition: GameEntity.h:45
Demo::GameEntityTransform::vPos
Ogre::Vector3 vPos
Definition: GameEntity.h:30
Demo::GameEntityTransform
Definition: GameEntity.h:28
Demo::GameEntity::mSceneNode
Ogre::SceneNode * mSceneNode
Definition: GameEntity.h:44
Demo
Definition: BaseSystem.cpp:5
Demo::GameEntityTransform::vScale
Ogre::Vector3 vScale
Definition: GameEntity.h:32
Demo::GameEntity::OrderById
static bool OrderById(const GameEntity *_l, const GameEntity *_r)
Definition: GameEntity.h:82
Demo::GameEntity::getId
Ogre::uint32 getId(void) const
Definition: GameEntity.h:75
Demo::GameEntity::mType
Ogre::SceneMemoryMgrTypes mType
Definition: GameEntity.h:54
Blam::Globals::String
@ String
Represents a std::string.
Definition: globals.h:48
Demo::GameEntity::mMoDefinition
const MovableObjectDefinition * mMoDefinition
Definition: GameEntity.h:59
Demo::MovableObjectType
MovableObjectType
Definition: GameEntity.h:13
Demo::MovableObjectDefinition::moType
MovableObjectType moType
Definition: GameEntity.h:25
Demo::MovableObjectDefinition::resourceGroup
Ogre::String resourceGroup
Definition: GameEntity.h:23
Demo::GameEntity
Definition: GameEntity.h:35
Demo::MovableObjectDefinition
Definition: GameEntity.h:20
NUM_GAME_ENTITY_BUFFERS
#define NUM_GAME_ENTITY_BUFFERS
Definition: GameEntity.h:11
Demo::MovableObjectDefinition::submeshMaterials
Ogre::StringVector submeshMaterials
Definition: GameEntity.h:24
Demo::GameEntityVec
std::vector< GameEntity * > GameEntityVec
Definition: GameEntity.h:88
Demo::GameEntity::mTransformBufferIdx
size_t mTransformBufferIdx
Definition: GameEntity.h:60
Demo::GameEntity::GameEntity
GameEntity(Ogre::uint32 id, const MovableObjectDefinition *moDefinition, Ogre::SceneMemoryMgrTypes type)
Definition: GameEntity.h:62
Demo::MovableObjectDefinition::meshName
Ogre::String meshName
Definition: GameEntity.h:22