GlobeEngine
AtmosphereComposition.h
Go to the documentation of this file.
1 
8 #ifndef AtmosphereEngine_AtmosphereComposition_h
9 #define AtmosphereEngine_AtmosphereComposition_h
10 
15 #include <stdio.h>
16 #include <stdarg.h>
17 #include <vector>
18 #include <sstream>
19 
20 namespace at {
22  {
23  public:
31  void setParticleNumberDensity(double number_);
32  double getParticleNumberDensity();
34  void normalizePercentages();
35  void saveState(bool includeSubNumberIndex_);
36 
37  void setColorComponent(std::string color_);
38  vmml::Vector3d getColorComponent();
39 
40  std::string getChemicalString();
41  void setChemicalString(std::string cStr_);
42 
43  void cleanComposition();
44 
45  void createElements(std::vector<std::string> signs_, std::vector<double> percentages_);
46  void createMolecules(std::vector<std::string> signs_, std::vector<double> percentages_);
47  void createAerosols(std::vector<std::string> signs_, std::vector<double> percentages_);
48 
49  void createCustomElements(std::vector<std::string> names_, std::vector<double> refIndexes_, std::vector<double> percentages_);
50  void createCustomMolecules(std::vector<std::string> names_, std::vector<double> refIndexes_, std::vector<double> percentages_);
51  void createCustomAerosols(std::vector<std::string> names_, std::vector<double> refIndexes_, std::vector<double> percentages_);
52  protected:
53  vmml::Vector2f RayleighMieRelation;
54  std::string toString(double value);
55  std::vector<at::AtmosphereCompositionElement*> elements; //ex. Oxygen (O), Nitrogen (N),
56  std::vector<at::AtmosphereCompositionAerosol*> aerosols; //ex. Dust, Smoke, Aerosol-Sprays, Volcanic Aerosols
57  std::vector<at::AtmosphereCompositionMoleculeVapor*> molecules; //ex. H2O Vapor
61  };
62 }
63 #endif
void setParticleNumberDensity(double number_)
Definition: AtmosphereComposition.cpp:125
double particleRefractiveIndex
Definition: AtmosphereComposition.h:60
vmml::Vector3d getColorComponent()
Definition: AtmosphereComposition.cpp:356
double getParticleNumberDensity()
Definition: AtmosphereComposition.cpp:33
float getRayleighScatteringPercentage()
Definition: AtmosphereComposition.cpp:27
vmml::Vector2f RayleighMieRelation
Definition: AtmosphereComposition.h:53
std::vector< at::AtmosphereCompositionAerosol * > aerosols
Definition: AtmosphereComposition.h:56
void setChemicalString(std::string cStr_)
Definition: AtmosphereComposition.cpp:251
std::string getChemicalString()
Definition: AtmosphereComposition.cpp:221
void addElement(at::AtmosphereCompositionElement *e)
Definition: AtmosphereComposition.cpp:18
Definition: AtmosphereCompositionColorComponent.h:16
void addMolecule(at::AtmosphereCompositionMoleculeVapor *m)
Definition: AtmosphereComposition.cpp:24
AtmosphereComposition()
Definition: AtmosphereComposition.cpp:10
double particleNumberDensity
Definition: AtmosphereComposition.h:59
~AtmosphereComposition()
Definition: AtmosphereComposition.cpp:16
std::vector< at::AtmosphereCompositionMoleculeVapor * > molecules
Definition: AtmosphereComposition.h:57
void createElements(std::vector< std::string > signs_, std::vector< double > percentages_)
Definition: AtmosphereComposition.cpp:129
float getMieScatteringPercentage()
Definition: AtmosphereComposition.cpp:30
void cleanComposition()
Definition: AtmosphereComposition.cpp:344
void createCustomAerosols(std::vector< std::string > names_, std::vector< double > refIndexes_, std::vector< double > percentages_)
Definition: AtmosphereComposition.cpp:207
void normalizePercentages()
Definition: AtmosphereComposition.cpp:42
at::AtmosphereCompositionColorComponent * colorComponent
Definition: AtmosphereComposition.h:58
void saveState(bool includeSubNumberIndex_)
Definition: AtmosphereComposition.cpp:70
Definition: AtmosphereCompositionElement.h:14
void setColorComponent(std::string color_)
Definition: AtmosphereComposition.cpp:350
Definition: AtmosphereCompositionMoleculeVapor.h:14
Definition: AtmosphereCompositionAerosol.h:14
Definition: AtmosphereComposition.h:21
double getParticleRefractiveIndex()
Definition: AtmosphereComposition.cpp:39
void addAerosol(at::AtmosphereCompositionAerosol *a)
Definition: AtmosphereComposition.cpp:21
std::vector< at::AtmosphereCompositionElement * > elements
Definition: AtmosphereComposition.h:55
Definition: AtmosphereComposition.h:20
std::string toString(double value)
Definition: AtmosphereComposition.cpp:339
void createMolecules(std::vector< std::string > signs_, std::vector< double > percentages_)
Definition: AtmosphereComposition.cpp:146
void createAerosols(std::vector< std::string > signs_, std::vector< double > percentages_)
Definition: AtmosphereComposition.cpp:163
void createCustomMolecules(std::vector< std::string > names_, std::vector< double > refIndexes_, std::vector< double > percentages_)
Definition: AtmosphereComposition.cpp:194
void createCustomElements(std::vector< std::string > names_, std::vector< double > refIndexes_, std::vector< double > percentages_)
Definition: AtmosphereComposition.cpp:181