= !BaseObject = == Description == In Orxonox, there are some classes refered to be "objects". In this context an object is not an instance of a class, but a class beeing relevant to the game-logic. Examples of objects are: A ship (but not the model), a particle effect (but not the particles themselfes), a trigger (which might be totally abstract like "finish the game after 20 minutes"), a HUD (but not the graphpics). Examples of classes not beeing objects are: Interfaces (but objects might inherit from them), graphical components (meshes, textures, sprites, billboards, ...), helper classes ([wiki:Timer], ...), classes in external libraries ([wiki:Coding/networking network], audio, [wiki:Core core], ...). To differ objects from other classes, they derive from BaseObject. They might have other parents like interfaces or listeners, but they '''must''' inherit from BaseObject. The other way round you can cast every object to BaseObject, even if the only thing you know is it's a derivative of an interface like [wiki:Tickable] or [wiki:Synchronisable]. The BaseObject itself inherits from OrxonoxClass. == Functions == The BaseObject provides several functions and states: ---to come--- == Illustration == In this illustration of a class-tree (Test.h), the classes A1, A2 and A3 (and all derivatives) are "objects", because they inherit from BaseObject. As you can see, there are some Interfaces. Interfaces aren't connected with the BaseObject, they're on the same level. But they all inherit from OrxonoxClass, but this isn't relevant to the game-logic. [[Image(Core:testclass_interface_orxonoxclass_tree.gif)]]