X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2Fflight.cxx;h=b0969c3f68f851086ffc8d927ea7aac617b6068c;hb=7b3c6c0ff76db9326a020ccdddbfb3361dd5dc95;hp=cd4e4fddb9a8196a0b2d171f6ecda640d6ea8353;hpb=cb8b72744c17d1edae1a9be91278e02ef1ff65c5;p=flightgear.git diff --git a/src/FDM/flight.cxx b/src/FDM/flight.cxx index cd4e4fddb..b0969c3f6 100644 --- a/src/FDM/flight.cxx +++ b/src/FDM/flight.cxx @@ -28,15 +28,13 @@ #include #include #include +#include #include #include #include #include
#include
-#include
-#include -#include #include "flight.hxx" @@ -163,7 +161,6 @@ FGInterface::_setup () sin_latitude=cos_latitude=0; sin_longitude=cos_longitude=0; altitude_agl=0; - _acmodel = 0; } void @@ -187,12 +184,6 @@ FGInterface::common_init () // stamp(); // set_remainder( 0 ); - // linking in FGAircraft instance... - // FIXME: when using multiple instances, then there will be more than - // one model so get_aircraft_model will have to be indexed to the correct - // model. - _acmodel = globals->get_aircraft_model(); - // Set initial position SG_LOG( SG_FLIGHT, SG_INFO, "...initializing position..." ); set_Longitude( fgGetDouble("/sim/presets/longitude-deg") @@ -201,14 +192,15 @@ FGInterface::common_init () * SGD_DEGREES_TO_RADIANS ); double ground_elev_m = globals->get_scenery()->get_cur_elev(); double ground_elev_ft = ground_elev_m * SG_METER_TO_FEET; - _acmodel->get3DModel()->getFGLocation()->set_cur_elev_m( ground_elev_m ); + fgSetDouble("/position/ground-elev-m", ground_elev_m); _set_Runway_altitude ( ground_elev_ft ); if ( fgGetBool("/sim/presets/onground") || fgGetDouble("/sim/presets/altitude-ft") < ground_elev_ft ) { - fgSetDouble("/sim/presets/altitude-ft", ground_elev_ft); fgSetDouble("/position/altitude-ft", ground_elev_ft); + set_Altitude( ground_elev_ft ); + } else { + set_Altitude( fgGetDouble("/sim/presets/altitude-ft") ); } - set_Altitude( fgGetDouble("/sim/presets/altitude-ft") ); // Set ground elevation SG_LOG( SG_FLIGHT, SG_INFO, @@ -219,12 +211,12 @@ FGInterface::common_init () SG_LOG( SG_FLIGHT, SG_INFO, "...initializing sea-level radius..." ); SG_LOG( SG_FLIGHT, SG_INFO, " lat = " << fgGetDouble("/sim/presets/latitude-deg") - << " alt = " << fgGetDouble("/sim/presets/altitude-ft") ); + << " alt = " << get_Altitude() ); double sea_level_radius_meters; double lat_geoc; sgGeodToGeoc( fgGetDouble("/sim/presets/latitude-deg") * SGD_DEGREES_TO_RADIANS, - fgGetDouble("/sim/presets/altitude-ft") * SG_FEET_TO_METER, + get_Altitude() * SG_FEET_TO_METER, &sea_level_radius_meters, &lat_geoc ); _set_Sea_level_radius( sea_level_radius_meters * SG_METER_TO_FEET ); @@ -436,10 +428,10 @@ FGInterface::unbind () { bound = false; - fgUntie("/fdm/time/delta_t"); - fgUntie("/fdm/time/elapsed"); - fgUntie("/fdm/time/remainder"); - fgUntie("/fdm/time/multi_loop"); + // fgUntie("/fdm/time/delta_t"); + // fgUntie("/fdm/time/elapsed"); + // fgUntie("/fdm/time/remainder"); + // fgUntie("/fdm/time/multi_loop"); fgUntie("/position/latitude-deg"); fgUntie("/position/longitude-deg"); fgUntie("/position/altitude-ft"); @@ -447,7 +439,14 @@ FGInterface::unbind () fgUntie("/orientation/roll-deg"); fgUntie("/orientation/pitch-deg"); fgUntie("/orientation/heading-deg"); + fgUntie("/orientation/roll-rate-degps"); + fgUntie("/orientation/pitch-rate-degps"); + fgUntie("/orientation/yaw-rate-degps"); + fgUntie("/orientation/side-slip-rad"); + fgUntie("/orientation/side-slip-deg"); + fgUntie("/orientation/alpha-deg"); fgUntie("/velocities/airspeed-kt"); + fgUntie("/velocities/mach"); fgUntie("/velocities/speed-north-fps"); fgUntie("/velocities/speed-east-fps"); fgUntie("/velocities/speed-down-fps"); @@ -456,13 +455,13 @@ FGInterface::unbind () fgUntie("/velocities/wBody-fps"); fgUntie("/velocities/vertical-speed-fps"); fgUntie("/velocities/glideslope"); - fgUntie("/velocities/side-slip-rad"); - fgUntie("/velocities/side-slip-deg"); - fgUntie("/velocities/alpha-deg"); fgUntie("/accelerations/nlf"); fgUntie("/accelerations/pilot/x-accel-fps_sec"); fgUntie("/accelerations/pilot/y-accel-fps_sec"); fgUntie("/accelerations/pilot/z-accel-fps_sec"); + fgUntie("/accelerations/ned/north-accel-fps_sec"); + fgUntie("/accelerations/ned/east-accel-fps_sec"); + fgUntie("/accelerations/ned/down-accel-fps_sec"); } /** @@ -496,9 +495,7 @@ void FGInterface::_updateGeodeticPosition( double lat, double lon, double alt ) _set_Geodetic_Position( lat, lon, alt ); _set_Sea_level_radius( sl_radius * SG_METER_TO_FEET ); - if ( getACModel() != NULL ) { - _set_Runway_altitude( getACModel()->get3DModel()->getFGLocation()->get_cur_elev_m() * SG_METER_TO_FEET ); - } + _set_Runway_altitude( fgGetDouble("/position/ground-elev-m") * SG_METER_TO_FEET ); _set_sin_lat_geocentric( lat_geoc ); _set_cos_lat_geocentric( lat_geoc ); @@ -554,7 +551,7 @@ void FGInterface::_updateGeocentricPosition( double lat_geoc, double lon, _set_Geodetic_Position( lat_geod, lon, alt ); _set_Sea_level_radius( sl_radius2 * SG_METER_TO_FEET ); - _set_Runway_altitude( getACModel()->get3DModel()->getFGLocation()->get_cur_elev_m() * SG_METER_TO_FEET ); + _set_Runway_altitude( fgGetDouble("/position/ground-elev-m") * SG_METER_TO_FEET ); _set_sin_lat_geocentric( lat_geoc ); _set_cos_lat_geocentric( lat_geoc );