SimGear
2.0.0
Simulation, Visualization, and Game development libraries.
SimGear is a collection of libraries which provide a variety of functionality useful for building simulations, visualizations, and even games. All the SimGear code is designed to be portable across a wide variety of platforms and compilers. It has primarily been developed in support of the FlightGear project, but as development moves forward, we are generalizing the code to make more of it useful for other types of applications.
Some of the functionality provide includes
- Compiler and platform abstractions for many tricky differences. (compiler.h)
- A whole earth tiling/indexing scheme. (SGBucket)
- A console debugging output scheme that tracks severity and category that can be completely compiled out for a final build release. (logstream.hxx)
- Code to calculate accurate positions of sun, moon, stars, and planets for a given time, date, season, earth location, etc. (SGEphemeris)
- Code to render a realistic sky dome, cloud layers, sun, moon, stars, and planets all with realistic day/night/sunset/sunrise effects. Includes things like correct moon phase, textured moon, sun halo, etc. (SGSky is built on top of SGCloudLayer ...)
- Code to calculate magnetic variation. (SGMagVar)
- An abstraction to hide platform dependent path naming schemes. (SGPath)
- A C++ streams wrapper to handle compress input/output streams. (sg_gzifstream)
- An optimized "property manager" which associates ascii property names with their corresponding value. This can be a great way to build loose linkages between modules, or build linkages/connections that can be determined from config files or at runtime. (SGPropertyNode) Also included is a set of functions to dump the property tree into a standard xml file and subsequently read/parse a standard xml file and rebuild the associated property tree. (props_io.hxx)
- Scene management and drawing routines:
- material property management
- object management
- terrain tile management and paging
- sky dome rendering (with ephemeral objects)
- Code to handle screen dumps (screen-dump.hxx) and ultra-hires tile rendered screen dumps (tr.h)
- A sound effects manager. (SGSoundMgr, SGSimpleSound, SGSound)
- A simple but highly functional XML parser that interfaces nicely with the property manager. (easyxml.hxx)
SimGear has been built on the following platforms:
- Linux (x86)
- Windows (MSVC, Cygwin, Mingwin)
- SGI (native compilers)
- Mac OS X
- FreeBSD
SimGear depends on several other open source packages. These must be installed before SimGear can be installed:
- glut and opengl
- plib (http://plib.sf.net)
- metakit
- zlib
- libjpeg (optional)
- pthread (optional)
SimGear is licensed under the terms of the LGPL