diff --git a/src/FDM/JSBSim.cxx b/src/FDM/JSBSim.cxx index 934645318..62289168a 100644 --- a/src/FDM/JSBSim.cxx +++ b/src/FDM/JSBSim.cxx @@ -54,7 +54,7 @@ FGFDMExec FDMExec; // Initialize the JSBsim flight model, dt is the time increment for // each subsequent iteration through the EOM -int fgJSBsimInit(double dt) { +int fgJSBsimInit(double dt, FGInterface& f) { FG_LOG( FG_FLIGHT, FG_INFO, "Starting initializing JSBsim" ); FG_LOG( FG_FLIGHT, FG_INFO, " created FDMExec" ); @@ -69,7 +69,27 @@ int fgJSBsimInit(double dt) { engine_path.str(), "X15"); FG_LOG( FG_FLIGHT, FG_INFO, " loaded aircraft" ); - FDMExec.GetState()->Reset(aircraft_path.str(), "Reset00"); +// FDMExec.GetState()->Reset(aircraft_path.str(), "Reset00"); + + FDMExec.GetState()->Initialize( + current_options.get_uBody(), + current_options.get_vBody(), + current_options.get_wBody(), + f.get_Phi(), + f.get_Theta(), + f.get_Psi(), + f.get_Latitude() * RAD_TO_DEG, + f.get_Longitude() * RAD_TO_DEG, + f.get_Altitude() + ); + +// FDMExec.GetState()->Setlatitude(f.get_Latitude()); +// FDMExec.GetState()->Setlongitude(f.get_Longitude()); +// FDMExec.GetState()->Seth(f.get_Altitude()); +// FDMExec.GetRotation()->Setphi(f.get_Phi()); +// FDMExec.GetRotation()->Settht(f.get_Theta()); +// FDMExec.GetRotation()->Setpsi(f.get_Psi()); + FG_LOG( FG_FLIGHT, FG_INFO, " loaded initial conditions" ); FDMExec.GetState()->Setdt(dt); diff --git a/src/FDM/JSBSim.hxx b/src/FDM/JSBSim.hxx index ac2dd051a..8f416abaf 100644 --- a/src/FDM/JSBSim.hxx +++ b/src/FDM/JSBSim.hxx @@ -31,7 +31,7 @@ // reset flight params to a specific position -int fgJSBsimInit(double dt); +int fgJSBsimInit(double dt, FGInterface& f); // update position based on inputs, positions, velocities, etc. int fgJSBsimUpdate(FGInterface& f, int multiloop); diff --git a/src/FDM/flight.cxx b/src/FDM/flight.cxx index 530b7ae6e..ccc3f908c 100644 --- a/src/FDM/flight.cxx +++ b/src/FDM/flight.cxx @@ -86,7 +86,7 @@ int fgFDMInit(int model, FGInterface& f, double dt) { // fgSlewInit(dt); #ifndef __MWERKS__ // -dw- 04/22/99 JSB sim not ported yet } else if ( model == FGInterface::FG_JSBSIM ) { - fgJSBsimInit(dt); + fgJSBsimInit(dt, f); fgJSBsim_2_FGInterface(base_fdm_state); #endif } else if ( model == FGInterface::FG_LARCSIM ) {