#include <simgear/props/props.hxx>
#include <simgear/structure/subsystem_mgr.hxx>
+#include <simgear/props/tiedpropertylist.hxx>
#include <simgear/math/interpolater.hxx>
SGVec4f _scene_chrome;
// clear sky, fog and cloud color
+ SGVec4f _sun_color;
SGVec4f _sky_color;
SGVec4f _fog_color;
SGVec4f _cloud_color;
SGVec4f _adj_fog_color;
SGVec4f _adj_sky_color;
+ // input parameters affected by the weather system
+ float _saturation;
+ float _scattering;
+ float _overcast;
+
double _dt_total;
void update_sky_color ();
void update_adj_fog_color ();
+ void updateSunPos();
+
// properties for chrome light; not a tie because I want to fire
// property listeners when the values change.
SGPropertyNode_ptr _chromeProps[4];
+
+ SGPropertyNode_ptr _sunAngleRad;
+
+ SGPropertyNode_ptr _humidity;
+
+ simgear::TiedPropertyList _tiedProperties;
+
+ /**
+ * Tied-properties helper, record nodes which are tied for easy un-tie-ing
+ */
+ template <typename T>
+ void tie(SGPropertyNode* aNode, const char* aRelPath, const SGRawValue<T>& aRawValue)
+ {
+ _tiedProperties.Tie(aNode->getNode(aRelPath, true), aRawValue);
+ }
+
public:
FGLight ();
inline const SGVec4f& adj_fog_color () const { return _adj_fog_color; }
inline const SGVec4f& adj_sky_color () const { return _adj_sky_color; }
-
// Sun related functions
inline double get_sun_angle () const { return _sun_angle; }