From: curt Date: Sun, 12 Jul 1998 03:08:27 +0000 (+0000) Subject: Added fgFlightModelSetAltitude() to force the altitude to something X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=0d2c200db4bee955b61c528b002e11c41cc20d59;p=flightgear.git Added fgFlightModelSetAltitude() to force the altitude to something other than the current altitude. LaRCsim doesn't let you do this by just changing FG_Altitude. --- diff --git a/FDM/flight.c b/FDM/flight.c index 7290f2a74..8263dbff0 100644 --- a/FDM/flight.c +++ b/FDM/flight.c @@ -28,6 +28,8 @@ #include #include #include +#include +#include fgFLIGHT cur_flight_params; @@ -58,6 +60,8 @@ int fgFlightModelInit(int model, fgFLIGHT *f, double dt) { int fgFlightModelUpdate(int model, fgFLIGHT *f, int multiloop) { int result; + // printf("Altitude = %.2f\n", FG_Altitude * 0.3048); + if ( model == FG_LARCSIM ) { fgLaRCsimUpdate(f, multiloop); } else { @@ -70,10 +74,37 @@ int fgFlightModelUpdate(int model, fgFLIGHT *f, int multiloop) { } +/* Set the altitude (force) */ +int fgFlightModelSetAltitude(int model, fgFLIGHT *f, double alt_meters) { + double sea_level_radius_meters; + double lat_geoc; + // Set the FG variables first + fgGeodToGeoc( FG_Latitude, alt_meters, + &sea_level_radius_meters, &lat_geoc); + + FG_Altitude = alt_meters * METER_TO_FEET; + FG_Radius_to_vehicle = FG_Altitude + + (sea_level_radius_meters * METER_TO_FEET); + + if ( model == FG_LARCSIM ) { + ls_ForceAltitude(FG_Altitude); + } else { + fgPrintf( FG_FLIGHT, FG_WARN, + "Unimplemented flight model == %d\n", model ); + } + +} + + /* $Log$ -/* Revision 1.13 1998/04/25 22:06:28 curt -/* Edited cvs log messages in source files ... bad bad bad! +/* Revision 1.14 1998/07/12 03:08:27 curt +/* Added fgFlightModelSetAltitude() to force the altitude to something +/* other than the current altitude. LaRCsim doesn't let you do this by just +/* changing FG_Altitude. /* + * Revision 1.13 1998/04/25 22:06:28 curt + * Edited cvs log messages in source files ... bad bad bad! + * * Revision 1.12 1998/04/21 16:59:33 curt * Integrated autopilot. * Prepairing for C++ integration. diff --git a/FDM/flight.h b/FDM/flight.h index 04087fb17..8848fb5d2 100644 --- a/FDM/flight.h +++ b/FDM/flight.h @@ -400,6 +400,9 @@ int fgFlightModelInit(int model, fgFLIGHT *f, double dt); /* Run multiloop iterations of the flight model */ int fgFlightModelUpdate(int model, fgFLIGHT *f, int multiloop); +/* Set the altitude (force) */ +int fgFlightModelSetAltitude(int model, fgFLIGHT *f, double alt_meters); + #ifdef __cplusplus } @@ -410,9 +413,14 @@ int fgFlightModelUpdate(int model, fgFLIGHT *f, int multiloop); /* $Log$ -/* Revision 1.16 1998/04/22 13:26:20 curt -/* C++ - ifing the code a bit. +/* Revision 1.17 1998/07/12 03:08:28 curt +/* Added fgFlightModelSetAltitude() to force the altitude to something +/* other than the current altitude. LaRCsim doesn't let you do this by just +/* changing FG_Altitude. /* + * Revision 1.16 1998/04/22 13:26:20 curt + * C++ - ifing the code a bit. + * * Revision 1.15 1998/04/21 16:59:33 curt * Integrated autopilot. * Prepairing for C++ integration.