From: ehofman Date: Mon, 23 Feb 2004 09:37:28 +0000 (+0000) Subject: Move fgSetupWind() from options.cxx to util.cxx X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=5822e0b0e858037b9122fd81fbd0b3a407003c15;p=flightgear.git Move fgSetupWind() from options.cxx to util.cxx --- diff --git a/src/Main/options.cxx b/src/Main/options.cxx index 17611685d..dfd6abea6 100644 --- a/src/Main/options.cxx +++ b/src/Main/options.cxx @@ -535,67 +535,6 @@ add_channel( const string& type, const string& channel_str ) { } -void -fgSetupWind (double min_hdg, double max_hdg, double speed, double gust) -{ - // Initialize to a reasonable state - fgDefaultWeatherValue("wind-from-heading-deg", min_hdg); - fgDefaultWeatherValue("wind-speed-kt", speed); - - SG_LOG(SG_GENERAL, SG_INFO, "WIND: " << min_hdg << '@' << - speed << " knots" << endl); - - // Now, add some variety to the layers - min_hdg += 10; - if (min_hdg > 360) - min_hdg -= 360; - speed *= 1.1; - fgSetDouble("/environment/config/boundary/entry[1]/wind-from-heading-deg", - min_hdg); - fgSetDouble("/environment/config/boundary/entry[1]/wind-speed-kt", - speed); - - min_hdg += 20; - if (min_hdg > 360) - min_hdg -= 360; - speed *= 1.1; - fgSetDouble("/environment/config/aloft/entry[0]/wind-from-heading-deg", - min_hdg); - fgSetDouble("/environment/config/aloft/entry[0]/wind-speed-kt", - speed); - - min_hdg += 10; - if (min_hdg > 360) - min_hdg -= 360; - speed *= 1.1; - fgSetDouble("/environment/config/aloft/entry[1]/wind-from-heading-deg", - min_hdg); - fgSetDouble("/environment/config/aloft/entry[1]/wind-speed-kt", - speed); - - min_hdg += 10; - if (min_hdg > 360) - min_hdg -= 360; - speed *= 1.1; - fgSetDouble("/environment/config/aloft/entry[2]/wind-from-heading-deg", - min_hdg); - fgSetDouble("/environment/config/aloft/entry[2]/wind-speed-kt", - speed); - -#ifdef FG_WEATHERCM - // convert to fps - speed *= SG_NM_TO_METER * SG_METER_TO_FEET * (1.0/3600); - while (min_hdg > 360) - min_hdg -= 360; - while (min_hdg <= 0) - min_hdg += 360; - min_hdg *= SGD_DEGREES_TO_RADIANS; - fgSetDouble("/environment/wind-from-north-fps", speed * cos(dir)); - fgSetDouble("/environment/wind-from-east-fps", speed * sin(dir)); -#endif // FG_WEATHERCM -} - - // Parse --wp=ID[@alt] static bool parse_wp( const string& arg ) { diff --git a/src/Main/util.cxx b/src/Main/util.cxx index 308ac756a..9525f1d58 100644 --- a/src/Main/util.cxx +++ b/src/Main/util.cxx @@ -52,6 +52,67 @@ fgDefaultWeatherValue (const char * propname, double value) } +void +fgSetupWind (double min_hdg, double max_hdg, double speed, double gust) +{ + // Initialize to a reasonable state + fgDefaultWeatherValue("wind-from-heading-deg", min_hdg); + fgDefaultWeatherValue("wind-speed-kt", speed); + + SG_LOG(SG_GENERAL, SG_INFO, "WIND: " << min_hdg << '@' << + speed << " knots" << endl); + + // Now, add some variety to the layers + min_hdg += 10; + if (min_hdg > 360) + min_hdg -= 360; + speed *= 1.1; + fgSetDouble("/environment/config/boundary/entry[1]/wind-from-heading-deg", + min_hdg); + fgSetDouble("/environment/config/boundary/entry[1]/wind-speed-kt", + speed); + + min_hdg += 20; + if (min_hdg > 360) + min_hdg -= 360; + speed *= 1.1; + fgSetDouble("/environment/config/aloft/entry[0]/wind-from-heading-deg", + min_hdg); + fgSetDouble("/environment/config/aloft/entry[0]/wind-speed-kt", + speed); + + min_hdg += 10; + if (min_hdg > 360) + min_hdg -= 360; + speed *= 1.1; + fgSetDouble("/environment/config/aloft/entry[1]/wind-from-heading-deg", + min_hdg); + fgSetDouble("/environment/config/aloft/entry[1]/wind-speed-kt", + speed); + + min_hdg += 10; + if (min_hdg > 360) + min_hdg -= 360; + speed *= 1.1; + fgSetDouble("/environment/config/aloft/entry[2]/wind-from-heading-deg", + min_hdg); + fgSetDouble("/environment/config/aloft/entry[2]/wind-speed-kt", + speed); + +#ifdef FG_WEATHERCM + // convert to fps + speed *= SG_NM_TO_METER * SG_METER_TO_FEET * (1.0/3600); + while (min_hdg > 360) + min_hdg -= 360; + while (min_hdg <= 0) + min_hdg += 360; + min_hdg *= SGD_DEGREES_TO_RADIANS; + fgSetDouble("/environment/wind-from-north-fps", speed * cos(dir)); + fgSetDouble("/environment/wind-from-east-fps", speed * sin(dir)); +#endif // FG_WEATHERCM +} + + void fgExit (int status) { diff --git a/src/Main/util.hxx b/src/Main/util.hxx index 093e7d69e..773a8c517 100644 --- a/src/Main/util.hxx +++ b/src/Main/util.hxx @@ -37,6 +37,18 @@ extern void fgDefaultWeatherValue (const char * propname, double value); +/** + * Set up a plausible wind layout, boundary and aloft, + * based on just a few parameters. + * + * @param min_hdg Minimal wind heading + * @param max_hdg Maximal wind heading + * @param speed Windspeed in knots + * @param gust Wind gust variation in knots + */ +extern void fgSetupWind (double min_hdg, double max_hdg, + double speed, double gust); + /** * Clean up and exit FlightGear. *