Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/objecthierarchy/src/orxonox/core/OrxonoxClass.h @ 365

Last change on this file since 365 was 365, checked in by landauf, 16 years ago

added comments

File size: 2.1 KB
Line 
1/*!
2    @file OrxonoxClass.h
3    @brief Definition of the OrxonoxClass Class.
4
5    All objects and interfaces of the game-logic are derived from OrxonoxClass.
6    It stores the Identifier and the MetaObjectList and has all needed functions to create the class-hierarchy.
7*/
8
9#ifndef _OrxonoxClass_H__
10#define _OrxonoxClass_H__
11
12#include "Identifier.h"
13#include "IdentifierList.h"
14#include "ObjectList.h"
15#include "MetaObjectList.h"
16
17namespace orxonox
18{
19    //! The class all objects and interfaces of the game-logic are derived from.
20    /**
21        BaseObject and Interaces are derived with 'virtual public OrxonoxClass' from OrxonoxClass.
22        OrxonoxClass is needed to create the class-hierarchy at startup and to store the Identifier and the MetaObjectList.
23    */
24    class OrxonoxClass
25    {
26        public:
27            OrxonoxClass();
28            virtual ~OrxonoxClass();
29
30            /** @returns the Identifier of the object */
31            inline Identifier* getIdentifier() const { return this->identifier_; }
32
33            /** @brief Sets the Identifier of the object. Used by the RegisterObject-macro. */
34            inline void setIdentifier(Identifier* identifier) { this->identifier_ = identifier; }
35
36            /** @returns the list of all parents of the object */
37            inline IdentifierList* getParents() const { return this->parents_; }
38
39            /** @brief Sets the Parents of the object. Used by the RegisterObject-macro. */
40            inline void setParents(IdentifierList* parents) { this->parents_ = parents; }
41
42            /** @returns the MetaObjectList of the object, containing a link to all ObjectLists and ObjectListElements the object is registered in. */
43            inline MetaObjectList& getMetaList() { return this->metaList_; }
44
45        private:
46            Identifier* identifier_;        //!< The Identifier of the object
47            IdentifierList* parents_;       //!< List of all parents of the object
48            MetaObjectList metaList_;       //!< MetaObjectList, containing all ObjectLists and ObjectListElements the object is registered in
49    };
50}
51
52#endif
Note: See TracBrowser for help on using the repository browser.