pioneerspacesim/pioneer — pull request #1686 by Ae-2222 (2012-11-05 14:53:57+00:00)
Title: Multi-constituent-atmospheres+aerosols+atmosphere restructure

**The goal of this pull request is to add infrastructure for:**
* Multiple models of atmosphere used to support different rendering techniques at once
* Old shaders/fixed function mode can be supported
* Atmosphere properties needed for advanced scattering to generate pretty atmospheric effects can be developed before scattering is implemented
* Aerosols (colours on otherwise colourless atmospheres)
* Multiple constituent atmospheres
* Current single constituent property calculation is treated as a special case of multiple constituent
* Class object based extensible definition of gasses and aerosols
* Some work on substances with and properties for atmospheres , and mineral resources on planets
* Rendering and physics calculations are brought together

I also added a discussion of class boundaries which will be updated as this is reviewed. This is so others can extend/restructure this, or work on surrounding areas, in future, without having to know/learn everything about all the neighbouring systems/issues to get an overview.

**Further work (copied from comments):**
* Add rayleigh and mie coefficients for various gasses
* Expose gas/aerosol consituents in atmospheres to Lua
* Expose values such as isothermal scale height and adiabatic limit (useful for player/autopilot)
* Translations of strings
* Absorption coefficients for aerosol?
* Split content into more files

* Enable chemical compositions:
* Add chemical formula names
* Add elements and enable substances
* Add chemical compositions to gasses, and maybe aerosols
* Expose presence of compounds containing hydrogen and oxygen to lua so properly equipped ships can extract them

* Advanced atmosphere structure:
* Multiple scale heights? there could be a few aerosol layers with their own scale height

**New files:** /src/Atmosphere.cpp and /src/Atmosphere.h