= !OrxonoxClass = [[TracNav(TracNav/TOC_Development)]] == Description == !OrxonoxClass is the base class of all objects and interfaces in the class hierarchy. Therefore !OrxonoxClass is the direct parent of [wiki:BaseObject] and several interfaces like [wiki:Tickable] or [wiki:network/Synchronisable Synchronisable]. !OrxonoxClass itself isn't of any use for the game-logic. All functions and variables are only there to create a common base for [wiki:Identifier Identifiers] and to create the class hierarchy. Some functions are used in macros (see [wiki: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('''''identifier''''')''': 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)]]