CloudyDay
 All Classes Functions Variables Enumerations
SkydomeMie.h
1 #pragma once
2 #include "Skydome.h"
3 
4 namespace osgCloudyDay
5 {
10  {
11  public:
15  SkydomeMie(void);
16 
20  ~SkydomeMie(void);
21 
26  float GetInnerRadius();
27  /*
28  * Sets the inner radius of the skydome
29  * @param pos new inner radius of the skydome
30  */
31  void SetInnerRadius(float pos);
32 
37  float GetOtherRadius();
42  void SetOtherRadius(float pos);
43 
48  float GetKr();
49  /*
50  * Sets the kr parameter
51  * @param kr kr parameter
52  */
53  void SetKr(float kr);
54 
59  float GetKm();
60  /*
61  * Sets the km parameter
62  * @param km km parameter
63  */
64  void SetKm(float km);
65 
70  float GetESun();
75  void SetESun(float ESun);
76 
81  float GetG();
82  /*
83  * Sets the g parameter
84  * @param g g parameter
85  */
86  void SetG(float g);
87 
92  float GetRayleighScaleDepth();
97  void SetRayleighScaleDepth(float pos);
98 
103  osg::Vec3 GetInverseWaveLength();
108  void SetInverseWaveLength(osg::Vec3 view);
109 
114  osg::Vec3 CalculateSunColor(osg::Matrixd view);
115 
120  virtual void SetupUniform(osg::StateSet* states);
121 
122 
123  private:
124  osg::Vec3 m_invWaveLength;
125  float m_km;
126  float m_kr;
127  float m_ESun;
128  float m_g;
129  float m_innerR;
130  float m_otherR;
131  float m_RayleighScaleDepth;
132  };
133 }