-
-
-// Update internal time dependent calculations (i.e. flight model)
-// FIXME: this distinction is obsolete; all subsystems now get delta
-// time on update.
-void fgUpdateTimeDepCalcs() {
- static bool inited = false;
-
- static const SGPropertyNode *replay_state
- = fgGetNode( "/sim/freeze/replay-state", true );
- static SGPropertyNode *replay_time
- = fgGetNode( "/sim/replay/time", true );
- // static const SGPropertyNode *replay_end_time
- // = fgGetNode( "/sim/replay/end-time", true );
-
- //SG_LOG(SG_FLIGHT,SG_INFO, "Updating time dep calcs()");
-
- // Initialize the FDM here if it hasn't been and if we have a
- // scenery elevation hit.
-
- // cout << "cur_fdm_state->get_inited() = " << cur_fdm_state->get_inited()
- // << " cur_elev = " << scenery.get_cur_elev() << endl;
-
- if (!cur_fdm_state->get_inited()) {
- // Check for scenery around the aircraft.
- double lon = fgGetDouble("/sim/presets/longitude-deg");
- double lat = fgGetDouble("/sim/presets/latitude-deg");
- // We require just to have 50 meter scenery availabe around
- // the aircraft.
- double range = 50.0;
- if (globals->get_tile_mgr()->scenery_available(lat, lon, range)) {
- SG_LOG(SG_FLIGHT,SG_INFO, "Finally initializing fdm");
- cur_fdm_state->init();
- if ( cur_fdm_state->get_bound() ) {
- cur_fdm_state->unbind();
- }
- cur_fdm_state->bind();
- }
- }
-
- // conceptually, the following block could be done for each fdm
- // instance ...
- if ( cur_fdm_state->get_inited() ) {
- // we have been inited, and we are good to go ...
-
- if ( !inited ) {
- inited = true;
- }
-
- if ( replay_state->getIntValue() == 0 ) {
- // replay off, run fdm
- cur_fdm_state->update( delta_time_sec );
- } else {
- FGReplay *r = (FGReplay *)(globals->get_subsystem( "replay" ));
- r->replay( replay_time->getDoubleValue() );
- if ( replay_state->getIntValue() == 1 ) {
- // normal playback
- replay_time->setDoubleValue( replay_time->getDoubleValue()
- + ( delta_time_sec
- * fgGetInt("/sim/speed-up") ) );
- } else if ( replay_state->getIntValue() == 2 ) {
- // paused playback (don't advance replay time)
- }
- }
- } else {
- // do nothing, fdm isn't inited yet
- }
-
- globals->get_model_mgr()->update(delta_time_sec);
- globals->get_aircraft_model()->update(delta_time_sec);
-
- // update the view angle
- globals->get_viewmgr()->update(delta_time_sec);
-
- // Update solar system
- globals->get_ephem()->update( globals->get_time_params()->getMjd(),
- globals->get_time_params()->getLst(),
- cur_fdm_state->get_Latitude() );
-
-}
-
-
-void fgInitTimeDepCalcs( void ) {
- // noop for now
-}
-
-
-static const double alt_adjust_ft = 3.758099;
-static const double alt_adjust_m = alt_adjust_ft * SG_FEET_TO_METER;
-
-