= !OrxonoxClass = [[TracNav(TracNav/TOC_Development)]] == Description == OrxonoxClass is the base class of all objects and interfaces having [wiki:Identifier Identifiers]. Therefore OrxonoxClass is the direct parent of BaseObject and several interfaces like [wiki:Tickable] or [wiki:Synchronisable]. OrxonoxClass itself isn't of any use to the game-logic. All functions and variables are only there to create a common base for [wiki:Identifier Identifiers]. Some functions are used in macros (see CoreIncludes). == Inheriting from !OrxonoxClass == Classes inheriting from OrxonoxClass '''must''' use '''virtual public''' derivation to avoid problems in the class-tree (diamond shape): {{{ #!cpp class MyInterface : virtual public OrxonoxClass { ... }; }}} == Functions == * '''Identifier''': * getIdentifier(): Returns the [wiki:Identifier] of an object * setIdentifier(...): Sets the [wiki:Identifier] of the class (used by a macro, see [wiki:CoreIncludes] * '''Parents''': * getParents() and createParents() are functions used by macros (see [wiki:CoreIncludes]) to create the class-tree * '''Comparison''': see [wiki:Identifier] for more information * isA(...) * isExactlyA(...) * isChildOf(...) * isDirectChildOf(...) * isParentOf(...) * isDirectParentOf(...) == Illustration == As you can see, OrxonoxClass is on the top of the class-tree. Every other object or interface is a derivative. [[Image(Core:testclass_interface_orxonoxclass_tree.gif)]]