48 double elevation_m = 0.0;
49 double temperature = -99999.0;
50 double temperature_mean = -99999.0;
51 double temperature_water = -99999.0;
52 double relative_humidity = -99999.0;
53 double precipitation_annual = -99999.0;
54 double precipitation = -99999.0;
55 bool has_autumn =
false;
57 double dewpoint = -99999.0;
58 double pressure = 0.0;
61 using ClimateTile =
struct _ground_tile;
71 void update(
double dt)
override;;
111 inline void _set(
double& prev,
double val) {
112 prev = (prev < -1000.0) ? val : 0.99*prev + 0.01*val;
116 double daytime(
double val,
double offset = 0.0);
117 double season(
double val,
double offset = 0.0);
119 double linear(
double val,
double min,
double max);
120 double triangular(
double val,
double min,
double max);
121 double sinusoidal(
double val,
double min,
double max);
122 double even(
double val,
double min,
double max);
123 double long_low(
double val,
double min,
double max);
124 double long_high(
double val,
double min,
double max);
125 double monsoonal(
double val,
double min,
double max);
130 void set_temperate();
131 void set_continetal();
133 void set_environment();
135 void update_daylight();
136 void update_day_factor();
137 void update_season_factor();
138 void update_pressure();
141 SGPropertyNode_ptr _rootNode;
142 simgear::TiedPropertyList _tiedProperties;
144 SGPropertyNode_ptr _monthNode;
145 SGPropertyNode_ptr _gravityNode;
146 SGPropertyNode_ptr _metarSnowLevelNode;
147 SGPropertyNode_ptr _positionLatitudeNode;
148 SGPropertyNode_ptr _positionLongitudeNode;
150 osg::ref_ptr<osg::Image> image;
151 double _image_width = 0;
152 double _image_height = 0;
154 double _epsilon = 1.0;
155 double _prev_lat = -99999.0;
156 double _prev_lon = -99999.0;
158 double _sun_latitude_deg = 0.0;
159 double _sun_longitude_deg = 0.0;
161 double _adj_latitude_deg = 0.0;
162 double _adj_longitude_deg = 0.0;
163 double _elevation_m = 0.0;
165 double _daytime = 0.0;
166 double _day_noon = 1.0;
167 double _day_light = 1.0;
168 double _season_summer = 1.0;
169 double _season_transistional = 0.0;
170 double _seasons_year = 0.0;
171 double _is_autumn = -99999.0;
173 const double _max_visibility_m = 35000.0;
174 double _visibility_m = _max_visibility_m;
177 ClimateTile _tiles[3][3];
180 bool _environment_adjust =
false;
181 bool _inland_ice_cover =
false;
182 double _snow_level = -99999.0;
183 double _snow_thickness = -99999.0;
184 double _ice_cover = -99999.0;
185 double _dust_cover = -99999.0;
186 double _wetness = -99999.0;
187 double _lichen_cover = -99999.0;
192 double _aerosol_density = 1.0e16;
199 bool _weather_update =
false;
200 double _wind_speed = 0.0;
201 double _wind_direction = -99999.0;
203 char _metar[256] =
"";