X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fenvironment_mgr.hxx;h=04758c97df8d1b36ea6ec013e0747d4c78bdf63f;hb=474789269b7656509f62339c17e62a55b6157d43;hp=4caf6e22ec7b24b7c43a56b00515eec88e059635;hpb=b091433cf609866f23d835de12c8f344d7de58df;p=flightgear.git diff --git a/src/Environment/environment_mgr.hxx b/src/Environment/environment_mgr.hxx index 4caf6e22e..04758c97d 100644 --- a/src/Environment/environment_mgr.hxx +++ b/src/Environment/environment_mgr.hxx @@ -16,16 +16,16 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // -// $Id$ #ifndef _ENVIRONMENT_MGR_HXX #define _ENVIRONMENT_MGR_HXX #include - -#include
+#include +#include +#include "tiedpropertylist.hxx" #ifdef SG_HAVE_STD_INCLUDES # include @@ -34,21 +34,28 @@ #endif class FGEnvironment; -class FGEnvironmentCtrl; - +class FGMetarCtrl; +class FGMetarFetcher; +class FGClouds; +class FGPrecipitationMgr; /** * Manage environment information. */ -class FGEnvironmentMgr : public FGSubsystem +class FGEnvironmentMgr : public SGSubsystemGroup { public: + enum { + MAX_CLOUD_LAYERS = 5 + }; + FGEnvironmentMgr (); virtual ~FGEnvironmentMgr (); virtual void init (); + virtual void reinit (); virtual void bind (); virtual void unbind (); virtual void update (double dt); @@ -65,10 +72,9 @@ public: virtual FGEnvironment getEnvironment (double lat, double lon, double alt) const; + virtual FGEnvironment getEnvironment(const SGGeod& aPos) const; private: - void _update_fdm () const; - double get_cloud_layer_span_m (int index) const; void set_cloud_layer_span_m (int index, double span_m); double get_cloud_layer_elevation_ft (int index) const; @@ -77,12 +83,16 @@ private: void set_cloud_layer_thickness_ft (int index, double thickness_ft); double get_cloud_layer_transition_ft (int index) const; void set_cloud_layer_transition_ft (int index, double transition_ft); - const char * get_cloud_layer_type (int index) const; - void set_cloud_layer_type (int index, const char * type); + const char * get_cloud_layer_coverage (int index) const; + void set_cloud_layer_coverage (int index, const char * coverage); + int get_cloud_layer_coverage_type (int index) const; + void set_cloud_layer_coverage_type (int index, int type ); FGEnvironment * _environment; // always the same, for now - FGEnvironmentCtrl * _controller; // always the same, for now - + FGClouds *fgClouds; + SGPropertyNode_ptr _altitudeNode; + bool _cloudLayersDirty; + TiedPropertyList _tiedProperties; }; #endif // _ENVIRONMENT_MGR_HXX