= Mount Points =
[[ArchivePage]]
== Author ==
Patrick Boenzli
== Tickets ==
* #63
== Resources ==
* [http://www.fileformat.info/format/wavefrontobj/ fileformat] (short)
* [http://www.robthebloke.org/source/obj.html fileformat] (short)
* [http://www.martinreddy.net/gfx/3d/OBJ.spec fileformat] (everything) from alias itself
* [http://www.csit.fsu.edu/~burkardt/data/obj/obj.html programming resources]
== Goal ==
This project's goal is to add a possibility to the .obj model to make mount-points. These points allow a modler to mark certain points on a model, these points can then be used to connect other objects. The mapping between mount points and objects is defined in a seperate file: the object-information-file (.oif).
== Timetable ==
(Thx to [FabianLandau x3n] for the nice progross'o'meter images :D )
|| Date || Topic || Progress ||
|| 22. Nov || || ||
|| 29. Nov || || ||
|| 6. Dec || Reading in the .obj file specification and find a way to mark objects, Implement the object parser || [[Image(https://dev.orxonox.net/attachment/wiki/SpaceStationInterior/70percent.gif?format=raw)]] ||
|| 13. Dec || Implement the .oif file format and integrate it to orxonox || [[Image(https://dev.orxonox.net/attachment/wiki/SpaceStationInterior/70percent.gif?format=raw)]] ||
|| 20. Dec || Adapt [wiki:archive/WorldEntity WorldEntity] to integrate this new model features || [[Image(https://dev.orxonox.net/attachment/wiki/SpaceStationInterior/70percent.gif?format=raw)]] ||
|| 3. Jan || Test and debug || [[Image(https://dev.orxonox.net/attachment/wiki/SpaceStationInterior/0percent.gif?format=raw)]] ||
|| 10. Jan || Project finish || [[Image(https://dev.orxonox.net/attachment/wiki/SpaceStationInterior/0percent.gif?format=raw)]] ||
|| 17. Jan || ||
|| 24. Jan || ||
|| 31. Jan || ||
[[br]]
[[br]]
== UML Diagram ==
{{{
#!html
Click for larger image
}}}
[[br]]
[[br]]
== User Reference Alpha ==
You are able to define !MountPoints that can be connected to any object you like. You will do this by:
* adding mount-point-models of any size to the object. Each point '''must''' be in its own group
* '''naming''' these cubes MP.. (replace by a two digit number you like to refere to and by an arbitrary name). For example: MP.00.Turret or MP.01.Engine1
* the mount-point-models must be at the position where you want the objects to be added.
* orient the mount-point-models as you like it (shortest axis marks up-vector, 2nd shortest axis marks left, longest axis marks forward)
Now the mounting points are set. You will need to define the properties of these mounting points in a seperate information file: !ObjectInformationFile (.oif).
An oif file could look like this:
{{{
Turret slots
DamnBigGun
Front Gun
some model path
Engine slots for the space craft
Engine
}}}
In order for the oif file to be loaded, it must be specified in the tags of the [wiki:archive/WorldEntity WorldEntity] in the world xml file, eg:
{{{
...
...
models/ships/default.oif
...
...
}}}
For each mount point defined in the model there needs to be an entry in the .oif file with the same name (e.g. MP.00.Turret). Each mount point can define further properties:[[br]]
* {{{OrxClass}}} - defines the Orxonox class to create an object from and replace the mounting point with it ('''required'''). the class needs to be a fabricateable class.
* {{{Description}}} - a string describing this mount point (optional)
* {{{Details}}} - this opens a subsection: here you can add all the xml properties usualy possible for the world entity you are adding