1
0
Fork 0

- fill in probe[0] before using

- add a note about the mixing of SGGeoc and SGGeod
This commit is contained in:
torsten 2009-06-11 08:52:34 +00:00 committed by Tim Moore
parent 93cc7e0e5b
commit 86d11cffce

View file

@ -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] );