SG_LOG(SG_FLIGHT,SG_INFO,"FGJSBsim::set_Latitude: " << lat );
SG_LOG(SG_FLIGHT,SG_INFO," cur alt (ft) = " << alt );
- sgGeodToGeoc( lat, alt * SG_FEET_TO_METER,
- &sea_level_radius_meters, &lat_geoc );
+ if (needTrim)
+ fgic->SetGeodLatitudeRadIC( lat );
+ else {
+ sgGeodToGeoc( lat, alt * SG_FEET_TO_METER,
+ &sea_level_radius_meters, &lat_geoc );
- double sea_level_radius_ft = sea_level_radius_meters * SG_METER_TO_FEET;
- _set_Sea_level_radius( sea_level_radius_ft );
+ double sea_level_radius_ft = sea_level_radius_meters * SG_METER_TO_FEET;
+ _set_Sea_level_radius( sea_level_radius_ft );
- if (needTrim)
- fgic->SetLatitudeRadIC( lat_geoc );
- else
Propagate->SetLatitude(lat_geoc);
+ }
FGInterface::set_Latitude(lat);
}
{
SG_LOG(SG_FLIGHT,SG_INFO, "FGJSBsim::set_Altitude: " << alt );
- if (needTrim) {
- FGLocation position = fgic->GetPosition();
-
- position.SetPositionGeodetic(0.0, position.GetGeodLatitudeRad(), alt);
- fgic->SetAltitudeASLFtIC(position.GetAltitudeASL());
-// fgic->SetLatitudeRadIC(position.GetLatitude());
- }
+ if (needTrim)
+ fgic->SetAltitudeASLFtIC(alt);
else
Propagate->SetAltitudeASL(alt);