Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/util/object_manager.h @ 6602

Last change on this file since 6602 was 6142, checked in by bensch, 19 years ago

orxonox/trunk: merge the ObjectManager to the trunk
merged with command:
svn merge -r6082:HEAD objectmanager/ ../trunk/

conflicts resolution was easy this time :)
but specially merged the world to network_world

File size: 2.2 KB
RevLine 
[4838]1/*!
[5629]2 * @file object_manager.h
[6142]3 * @brief Definition of the ObjectManager.
4 */
[3655]5
[5629]6#ifndef _OBJECT_MANAGER_H
7#define _OBJECT_MANAGER_H
[3655]8
9#include "base_object.h"
[5682]10#include <list>
[6142]11#include <vector>
[3655]12
[6142]13/// Enumerator for Managed Object Lists
14typedef enum {
15  OM_NULL             =  0,
16  OM_DEAD,
17  OM_DEAD_TICK,
18  OM_ENVIRON_NOTICK,
19  OM_ENVIRON,
20  OM_COMMON,
[3655]21
[6142]22  OM_GROUP_00,
23  OM_GROUP_00_PROJ,
24  OM_GROUP_01,
25  OM_GROUP_01_PROJ,
26  OM_GROUP_02,
27  OM_GROUP_02_PROJ,
28  OM_GROUP_03,
29  OM_GROUP_03_PROJ,
30  OM_GROUP_04,
31  OM_GROUP_04_PROJ,
32  OM_GROUP_05,
33  OM_GROUP_05_PROJ,
34  OM_GROUP_06,
35  OM_GROUP_06_PROJ,
36  OM_GROUP_07,
37  OM_GROUP_07_PROJ,
38  OM_GROUP_08,
39  OM_GROUP_08_PROJ,
40  OM_GROUP_09,
41  OM_GROUP_09_PROJ,
42  OM_GROUP_10,
43  OM_GROUP_10_PROJ,
44  OM_GROUP_11,
45  OM_GROUP_11_PROJ,
46  OM_GROUP_12,
47  OM_GROUP_12_PROJ,
48  OM_GROUP_13,
49  OM_GROUP_13_PROJ,
50  OM_GROUP_14,
51  OM_GROUP_14_PROJ,
52  OM_GROUP_15,
53  OM_GROUP_15_PROJ,
[5682]54
[6142]55  OM_SIZE,
[5682]56
57
[6142]58  OM_INIT             = -1, //!< DO NOT USE THIS. (WorldEntity Internal).
59} OM_LIST;
[5682]60
[6142]61#define OM_DEFAULT_LIST  OM_NULL
[5682]62
[6142]63
64// FORWARD DECLARATION
65class PNode;
66class WorldEntity;
67
68//! A powerfull handler for the Object (WorldEntities) in the World.
[5629]69class ObjectManager : public BaseObject {
[3655]70
71 public:
[6142]72   ObjectManager();
73   virtual ~ObjectManager();
[3655]74
[6142]75  void flush();
[5682]76
[6142]77  void toList (WorldEntity* entity, OM_LIST omList = OM_DEFAULT_LIST);
78  void toList (WorldEntity* entity, const char* omList);
79
80
81  std::list<WorldEntity*>& getObjectList(OM_LIST listNumber) { return this->objectLists[listNumber]; }
82  const std::list<WorldEntity*>& getObjectList(OM_LIST listNumber) const { return this->objectLists[listNumber]; }
83
[5795]84  static std::list<WorldEntity*>* distanceFromObject(const PNode& center, float radius, ClassID classID);
85
[6142]86  void debug(OM_LIST omList, unsigned int level = 0) const;
87  void debug(const char* listName = NULL, unsigned int level = 0);
[5682]88
[6142]89  static OM_LIST StringToOMList(const char* listName);
90  static const char* OMListToString(OM_LIST omList);
91
[3655]92 private:
[6142]93  const std::list<BaseObject>*            pNodeList;
[5682]94
95
[6142]96  std::list<WorldEntity*>                 objectLists[OM_SIZE];
[5682]97
[6142]98  static const char*                      objectManagerListNames[]; //!< Names of all the lists
[3655]99};
100
[5629]101#endif /* _OBJECT_MANAGER_H */
Note: See TracBrowser for help on using the repository browser.