From 86d11cffce589d2d7d75d54727a9392077b7482e Mon Sep 17 00:00:00 2001 From: torsten Date: Thu, 11 Jun 2009 08:52:34 +0000 Subject: [PATCH] - fill in probe[0] before using - add a note about the mixing of SGGeoc and SGGeod --- src/Environment/ridge_lift.cxx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Environment/ridge_lift.cxx b/src/Environment/ridge_lift.cxx index 821a2ca9a..9e291d3a1 100644 --- a/src/Environment/ridge_lift.cxx +++ b/src/Environment/ridge_lift.cxx @@ -163,14 +163,18 @@ void FGRidgeLift::update(double dt) { timer -= dt; if (timer <= 0.0 ) { - SGGeoc myPosition = SGGeoc::fromDegM( probe_lon_deg[0], probe_lat_deg[0], 20000.0 ); - double ground_wind_from_rad = _surface_wind_from_deg_node->getDoubleValue() * SG_DEGREES_TO_RADIANS + SG_PI; + // NOTE: this mixes geocentric and geodetic calculations which give mathematically incorrect results + // probably this is acceptable for calculating the ridge lift, converting from + // geodetic to geocentric coordinates is somewhat expensive // probe0 is current position probe_lat_deg[0] = _user_latitude_node->getDoubleValue(); probe_lon_deg[0] = _user_longitude_node->getDoubleValue(); probe_elev_m[0] = _ground_elev_node->getDoubleValue() * SG_FEET_TO_METER; + SGGeoc myPosition = SGGeoc::fromDegM( probe_lon_deg[0], probe_lat_deg[0], 20000.0 ); + double ground_wind_from_rad = _surface_wind_from_deg_node->getDoubleValue() * SG_DEGREES_TO_RADIANS + SG_PI; + // compute the remaining probes for (int i = 1; i < sizeof(probe_lat_deg)/sizeof(probe_lat_deg[0]); i++) { SGGeoc probe = myPosition.advanceRadM( ground_wind_from_rad, dist_probe_m[i] ); -- 2.39.5