Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 4, 2007, 11:48:28 PM (18 years ago)
Author:
landauf
Message:

copied changed files from objecthierarchy-branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/FICN/src/orxonox/core/OrxonoxClass.h

    r258 r384  
     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
    19#ifndef _OrxonoxClass_H__
    210#define _OrxonoxClass_H__
     
    917namespace orxonox
    1018{
     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    */
    1124    class OrxonoxClass
    1225    {
     
    1427            OrxonoxClass();
    1528            virtual ~OrxonoxClass();
     29
     30            /** @returns the Identifier of the object */
    1631            inline Identifier* getIdentifier() const { return this->identifier_; }
     32
     33            /** @brief Sets the Identifier of the object. Used by the RegisterObject-macro. */
    1734            inline void setIdentifier(Identifier* identifier) { this->identifier_ = identifier; }
     35
     36            /** @returns the list of all parents of the object */
    1837            inline IdentifierList* getParents() const { return this->parents_; }
     38
     39            /** @brief Sets the Parents of the object. Used by the RegisterObject-macro. */
    1940            inline void setParents(IdentifierList* parents) { this->parents_ = parents; }
    20             inline MetaObjectList* getMetaList() { return this->metaList_; }
     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            inline bool isA(const Identifier* identifier)
     46                { return this->getIdentifier()->isA(identifier); }
     47            inline bool isDirectlyA(const Identifier* identifier)
     48                { return this->getIdentifier()->isDirectlyA(identifier); }
     49            inline bool isChildOf(const Identifier* identifier)
     50                { return this->getIdentifier()->isChildOf(identifier); }
     51            inline bool isParentOf(const Identifier* identifier)
     52                { return this->getIdentifier()->isParentOf(identifier); }
     53
     54            inline bool isA(const SubclassIdentifier<class B>* identifier)
     55                { return this->getIdentifier()->isA(identifier->getIdentifier()); }
     56            inline bool isDirectlyA(const SubclassIdentifier<class B>* identifier)
     57                { return this->getIdentifier()->isDirectlyA(identifier->getIdentifier()); }
     58            inline bool isChildOf(const SubclassIdentifier<class B>* identifier)
     59                { return this->getIdentifier()->isChildOf(identifier->getIdentifier()); }
     60            inline bool isParentOf(const SubclassIdentifier<class B>* identifier)
     61                { return this->getIdentifier()->isParentOf(identifier->getIdentifier()); }
     62
     63            inline bool isA(const SubclassIdentifier<class B> identifier)
     64                { return this->getIdentifier()->isA(identifier.getIdentifier()); }
     65            inline bool isDirectlyA(const SubclassIdentifier<class B> identifier)
     66                { return this->getIdentifier()->isDirectlyA(identifier.getIdentifier()); }
     67            inline bool isChildOf(const SubclassIdentifier<class B> identifier)
     68                { return this->getIdentifier()->isChildOf(identifier.getIdentifier()); }
     69            inline bool isParentOf(const SubclassIdentifier<class B> identifier)
     70                { return this->getIdentifier()->isParentOf(identifier.getIdentifier()); }
     71
     72            inline bool isA(const OrxonoxClass* object)
     73                { return this->getIdentifier()->isA(object->getIdentifier()); }
     74            inline bool isDirectlyA(const OrxonoxClass* object)
     75                { return this->getIdentifier()->isDirectlyA(object->getIdentifier()); }
     76            inline bool isChildOf(const OrxonoxClass* object)
     77                { return this->getIdentifier()->isChildOf(object->getIdentifier()); }
     78            inline bool isParentOf(const OrxonoxClass* object)
     79                { return this->getIdentifier()->isParentOf(object->getIdentifier()); }
     80
     81
     82            inline void setName(const std::string& name) { this->name_ = name; }
     83            inline const std::string& getName() const { return this->name_; }
     84
     85            inline void setActive(bool bActive) { this->bActive_ = bActive; }
     86            inline const bool isActive() const { return this->bActive_; }
     87
     88            inline void setVisible(bool bVisible) { this->bVisible_ = bVisible; }
     89            inline const bool isVisible() const { return this->bVisible_; }
    2190
    2291        private:
    23             Identifier* identifier_;
    24             IdentifierList* parents_;
    25             MetaObjectList* metaList_;
     92            Identifier* identifier_;        //!< The Identifier of the object
     93            IdentifierList* parents_;       //!< List of all parents of the object
     94            MetaObjectList metaList_;       //!< MetaObjectList, containing all ObjectLists and ObjectListElements the object is registered in
     95
     96            std::string name_;
     97            bool bActive_;
     98            bool bVisible_;
    2699    };
    27100}
Note: See TracChangeset for help on using the changeset viewer.