729
edits
(Page creation) |
(Traduction partielle) |
||
| Line 1: | Line 1: | ||
{{BeingTranslated}} | {{BeingTranslated}} | ||
{{note|Lorsque [[Building FlightGear|FlightGear est compilé depuis son code source]], il est très important d'avoir les versions de SimGear et de FlightGear en correspondance.|width=70%}} | |||
[[File:Flightgear uml associations class diagram.png|thumb|Un diagramme [[UML Diagrams|UML]] de classes divulguant les associations entre certaines classes du code source de FlightGear.|alt=]] | |||
'''SimGear''' | '''SimGear''' est un ensemble de bibliothèques logicielles open source exploitées par [[Fr/FlightGear|FlightGear]]. La version [[Fr/FlightGear history#Version 1.0 (2008)|1.0 de FlightGear]] est sortie avec en décembre 2007. Le projet est toujours en cours de développement mais l'objectif est d'être un ''noyau de simulation'' et d'être utilisé par d'autres projets hors FlightGear. Le projet a été lancé en l'an 2000. | ||
Tout comme FlightGear et [[Fr/TerraGear|TerraGear]], jusqu'à la version 1.0, Simgear nécessitait [[PLIB]] pour sa construction. Dans les versions ultérieures, PLIB a été remplacé par [[OpenSceneGraph|OSG]]. | |||
SimGear is a library of supporting code and a downstream dependancy if you plan on compiling FlightGear -- it is not needed to run precompiled binaries. For the api docs see http://api-docs.freeflightsim.org/simgear/ and legacy information see http://www.simgear.org/. | SimGear is a library of supporting code and a downstream dependancy if you plan on compiling FlightGear -- it is not needed to run precompiled binaries. For the api docs see http://api-docs.freeflightsim.org/simgear/ and legacy information see http://www.simgear.org/. | ||
| Line 12: | Line 13: | ||
[[FlightGear 1.9.0]] requires SimGear 1.9 if compiling from source. | [[FlightGear 1.9.0]] requires SimGear 1.9 if compiling from source. | ||
== Design & Dependencies == | ==Design & Dependencies== | ||
(This section is largely copied together from the devel list, see [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg22720.html]) | (This section is largely copied together from the devel list, see [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg22720.html]) | ||
Simgear and the property system are used in a variety of other projects, so whatever we do, we shouldn't make these low level libraries depend on OSG (which isn't available for instance on a little embedded UAV controller.) | Simgear and the property system are used in a variety of other projects, so whatever we do, we shouldn't make these low level libraries depend on OSG (which isn't available for instance on a little embedded UAV controller.) | ||
=== OSG data structures === | ===OSG data structures=== | ||
Sure we already rely on osg at many places. But if I build an aplication on simgear, I hope to have simgear classes there. SGProperties are simgear | Sure we already rely on osg at many places. But if I build an aplication on simgear, I hope to have simgear classes there. SGProperties are simgear | ||
classes, and if you use the property system you may not want to rely on osg. | classes, and if you use the property system you may not want to rely on osg. | ||
| Line 47: | Line 48: | ||
The rule of thumb when to use what is simple: | The rule of thumb when to use what is simple: | ||
* If you are in the scene graph most probably osg::... might be a good thing to use. | *If you are in the scene graph most probably osg::... might be a good thing to use. | ||
* If you are in the simulation, network, input system, property system, wherever | *If you are in the simulation, network, input system, property system, wherever | ||
not scene graph dependent, use simgears own classes. | not scene graph dependent, use simgears own classes. | ||
| Line 58: | Line 59: | ||
So I would not tell that a hard design goal. But If we can make that I believe that we will get a benefit in doing so in the mid/long term. | So I would not tell that a hard design goal. But If we can make that I believe that we will get a benefit in doing so in the mid/long term. | ||
=== SGReferenced vs. Boost === | ===SGReferenced vs. Boost=== | ||
When using std::tr1:shared_ptr you will need two allocations for a new object that is used with the the std::shared_ptr implementation - one for the object and one for the reference count. I like to use that SGReferenced stuff for many small lightweight objects that should not take to much time to create and should not take too much space. That kind of the solution is the most lightweight one I can think of. | When using std::tr1:shared_ptr you will need two allocations for a new object that is used with the the std::shared_ptr implementation - one for the object and one for the reference count. I like to use that SGReferenced stuff for many small lightweight objects that should not take to much time to create and should not take too much space. That kind of the solution is the most lightweight one I can think of. | ||
| Line 76: | Line 77: | ||
Not yet thought about that, but is there any chance to implement the weak_ptr semantics together with the intrusive_ptr? | Not yet thought about that, but is there any chance to implement the weak_ptr semantics together with the intrusive_ptr? | ||
== Compiling from source == | == Compiling from source== | ||
{{note|If you do not require GUI functionality, the flag <code>-DSIMGEAR_HEADLESS</code> can be set to avoid having to pull [[OpenSceneGraph]] in as a dependency}} | {{note|If you do not require GUI functionality, the flag <code>-DSIMGEAR_HEADLESS</code> can be set to avoid having to pull [[OpenSceneGraph]] in as a dependency}} | ||
| Line 88: | Line 89: | ||
make install | make install | ||
== External Links == | ==External Links== | ||
* Latest Docs - http://simgear.sourceforge.net/doxygen/ | *Latest Docs - http://simgear.sourceforge.net/doxygen/ | ||
* http://simgear.sourceforge.net/ | *http://simgear.sourceforge.net/ | ||
== See also == | ==See also== | ||
* [[Building FlightGear]] | *[[Building FlightGear]] | ||
* [[FlightGear related projects]] | *[[FlightGear related projects]] | ||
* [[TerraGear]] | *[[TerraGear]] | ||
[[Category:Software]] | [[Category:Software]] | ||
[[Category:GPL software]] | [[Category:GPL software]] | ||
[[en:SimGear]] | |||
edits