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