// What should we do when we have nothing else to do? Let's get ready
// for the next move and update the display?
static void fgMainLoop( void ) {
-
+
+ static SGConstPropertyNode_ptr longitude
+ = fgGetNode("/position/longitude-deg");
+ static SGConstPropertyNode_ptr latitude
+ = fgGetNode("/position/latitude-deg");
+ static SGConstPropertyNode_ptr altitude
+ = fgGetNode("/position/altitude-ft");
+ static SGConstPropertyNode_ptr vn_fps
+ = fgGetNode("/velocities/speed-north-fps");
+ static SGConstPropertyNode_ptr ve_fps
+ = fgGetNode("/velocities/speed-east-fps");
+ static SGConstPropertyNode_ptr vd_fps
+ = fgGetNode("/velocities/speed-down-fps");
+
static SGPropertyNode_ptr frame_signal
= fgGetNode("/sim/signals/frame", true);
timeMgr->computeTimeDeltas(sim_dt, real_dt);
// update magvar model
- globals->get_mag()->update( globals->get_aircraft_position(),
+ globals->get_mag()->update( longitude->getDoubleValue()
+ * SGD_DEGREES_TO_RADIANS,
+ latitude->getDoubleValue()
+ * SGD_DEGREES_TO_RADIANS,
+ altitude->getDoubleValue() * SG_FEET_TO_METER,
globals->get_time_params()->getJD() );
// Run ATC subsystem
globals->set_mag( magvar );
- // kludge to initialize mag compass
- // (should only be done for in-flight
- // startup)
+ // kludge to initialize mag compass
+ // (should only be done for in-flight
+ // startup)
// update magvar model
- globals->get_mag()->update( globals->get_aircraft_position(),
+ globals->get_mag()->update( fgGetDouble("/position/longitude-deg")
+ * SGD_DEGREES_TO_RADIANS,
+ fgGetDouble("/position/latitude-deg")
+ * SGD_DEGREES_TO_RADIANS,
+ fgGetDouble("/position/altitude-ft")
+ * SG_FEET_TO_METER,
globals->get_time_params()->getJD() );
double var = globals->get_mag()->get_magvar() * SGD_RADIANS_TO_DEGREES;
fgSetDouble("/instrumentation/heading-indicator/offset-deg", -var);