From ff91dbfd7b024dcee8755db52e20a7fde4639fdf Mon Sep 17 00:00:00 2001 From: curt Date: Tue, 24 Jul 2001 23:51:47 +0000 Subject: [PATCH] - catch sg_exception instead of sg_io_exception - use guiErrorMessage - added new properties /sim/view/pilot/x-offset-m, /sim/view/pilot/y-offset-m, and /sim/view/pilot/z-offset-m to control pilot-position offset from CG --- src/Main/fg_props.cxx | 82 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 16 deletions(-) diff --git a/src/Main/fg_props.cxx b/src/Main/fg_props.cxx index c8c5db331..e2fd5fc9f 100644 --- a/src/Main/fg_props.cxx +++ b/src/Main/fg_props.cxx @@ -43,7 +43,7 @@ #include "fgfs.hxx" #include "fg_props.hxx" -#include "viewer.hxx" +#include "viewmgr.hxx" #if !defined(SG_HAVE_NATIVE_SGI_COMPILERS) SG_USING_STD(istream); @@ -206,6 +206,58 @@ setGoalViewOffset (double offset) } +/** + * Pilot position offset from CG. + */ +static float +getPilotPositionXOffset () +{ + FGViewer * pilot_view = globals->get_viewmgr()->get_view(0); + float * offset = pilot_view->get_pilot_offset(); + return offset[0]; +} + +static void +setPilotPositionXOffset (float x) +{ + FGViewer * pilot_view = globals->get_viewmgr()->get_view(0); + float * offset = pilot_view->get_pilot_offset(); + pilot_view->set_pilot_offset(x, offset[1], offset[2]); +} + +static float +getPilotPositionYOffset () +{ + FGViewer * pilot_view = globals->get_viewmgr()->get_view(0); + float * offset = pilot_view->get_pilot_offset(); + return offset[1]; +} + +static void +setPilotPositionYOffset (float y) +{ + FGViewer * pilot_view = globals->get_viewmgr()->get_view(0); + float * offset = pilot_view->get_pilot_offset(); + pilot_view->set_pilot_offset(offset[0], y, offset[2]); +} + +static float +getPilotPositionZOffset () +{ + FGViewer * pilot_view = globals->get_viewmgr()->get_view(0); + float * offset = pilot_view->get_pilot_offset(); + return offset[2]; +} + +static void +setPilotPositionZOffset (float z) +{ + FGViewer * pilot_view = globals->get_viewmgr()->get_view(0); + float * offset = pilot_view->get_pilot_offset(); + pilot_view->set_pilot_offset(offset[0], offset[1], z); +} + + /** * Return the current Zulu time. */ @@ -922,7 +974,6 @@ setFDMDataLogging (bool state) } } - //////////////////////////////////////////////////////////////////////// // Tie the properties. @@ -938,6 +989,15 @@ fgInitProps () fgSetArchivable("/sim/view/offset-deg"); fgTie("/sim/view/goal-offset-deg", getGoalViewOffset, setGoalViewOffset); fgSetArchivable("/sim/view/goal-offset-deg"); + fgTie("/sim/view/pilot/x-offset-m", + getPilotPositionXOffset, setPilotPositionXOffset); + fgSetArchivable("/sim/view/pilot/x-offset-m"); + fgTie("/sim/view/pilot/y-offset-m", + getPilotPositionYOffset, setPilotPositionYOffset); + fgSetArchivable("/sim/view/pilot/y-offset-m"); + fgTie("/sim/view/pilot/z-offset-m", + getPilotPositionZOffset, setPilotPositionZOffset); + fgSetArchivable("/sim/view/pilot/z-offset-m"); fgTie("/sim/time/gmt", getDateString, setDateString); fgSetArchivable("/sim/time/gmt"); fgTie("/sim/time/gmt-string", getGMTString); @@ -1044,13 +1104,8 @@ fgSaveFlight (ostream &output) { try { writeProperties(output, globals->get_props()); - } catch (const sg_io_exception &e) { - string message = "Error saving flight: "; - message += e.getMessage(); - message += "\n at "; - message += e.getLocation().asString(); - SG_LOG(SG_INPUT, SG_ALERT, message); - mkDialog(message.c_str()); + } catch (const sg_exception &e) { + guiErrorMessage("Error saving flight: ", e); return false; } return true; @@ -1066,13 +1121,8 @@ fgLoadFlight (istream &input) SGPropertyNode props; try { readProperties(input, &props); - } catch (const sg_io_exception &e) { - string message = "Error reading saved flight: "; - message += e.getMessage(); - message += "\n at "; - message += e.getLocation().asString(); - SG_LOG(SG_INPUT, SG_ALERT, message); - mkDialog(message.c_str()); + } catch (const sg_exception &e) { + guiErrorMessage("Error reading saved flight: ", e); return false; } copyProperties(&props, globals->get_props()); -- 2.39.5