X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fenvironment_mgr.hxx;h=ffd75346345067f9d22c353614bea1f1694e8a8e;hb=11d15b451347674fba77648700d23c5aaec3c6c2;hp=63d3f725a9b551d59e7fd0923fa534cdd2fe1b9e;hpb=5a849b66e855a643c600ad4cfcce1f82e0fcdeb3;p=flightgear.git diff --git a/src/Environment/environment_mgr.hxx b/src/Environment/environment_mgr.hxx index 63d3f725a..ffd753463 100644 --- a/src/Environment/environment_mgr.hxx +++ b/src/Environment/environment_mgr.hxx @@ -16,7 +16,7 @@ // // 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$ @@ -24,8 +24,8 @@ #define _ENVIRONMENT_MGR_HXX #include - -#include
+#include +#include #ifdef SG_HAVE_STD_INCLUDES # include @@ -35,20 +35,28 @@ 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); @@ -56,20 +64,38 @@ public: /** * Get the environment information for the plane's current position. */ - virtual const FGEnvironment * getEnvironment () const; + virtual FGEnvironment getEnvironment () const; /** * Get the environment information for another location. */ - virtual const FGEnvironment * getEnvironment (double lat, double lon, - double alt) const; + 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; + void set_cloud_layer_elevation_ft (int index, double elevation_ft); + double get_cloud_layer_thickness_ft (int index) const; + 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_coverage (int index) const; + void set_cloud_layer_coverage (int index, const char * coverage); + FGEnvironment * _environment; // always the same, for now FGEnvironmentCtrl * _controller; // always the same, for now + FGMetarCtrl * _metarcontroller; + FGMetarFetcher * _metarfetcher; + FGPrecipitationMgr* _precipitationManager; + FGClouds *fgClouds; }; #endif // _ENVIRONMENT_MGR_HXX