]> git.mxchange.org Git - flightgear.git/blobdiff - src/Viewer/viewer.cxx
commradio: improvements for atis speech
[flightgear.git] / src / Viewer / viewer.cxx
index d26b282b526bbdff094c66e2e3f31d2b66cae67c..a18c51b239beb2bcaeaf821f4cb804a7118e8f8a 100644 (file)
@@ -27,6 +27,8 @@
 #  include "config.h"
 #endif
 
+#include "viewer.hxx"
+
 #include <simgear/compiler.h>
 #include <cassert>
 
 
 #include <Main/fg_props.hxx>
 #include <Main/globals.hxx>
-#include <Scenery/scenery.hxx>
-#include <Model/acmodel.hxx>
-
-#include "viewer.hxx"
-
 #include "CameraGroup.hxx"
 
 using namespace flightgear;
@@ -64,6 +61,9 @@ FGViewer::FGViewer( fgViewType Type, bool from_model, int from_model_index,
     _roll_deg(0),
     _pitch_deg(0),
     _heading_deg(0),
+    _target_roll_deg(0),
+    _target_pitch_deg(0),
+    _target_heading_deg(0),
     _scaling_type(FG_SCALING_MAX),
     _cameraGroup(CameraGroup::getDefault())
 {
@@ -370,12 +370,8 @@ FGViewer::recalcLookFrom ()
 {
   // Update location data ...
   if ( _from_model ) {
-    SGModelPlacement* placement = globals->get_aircraft_model()->get3DModel();
-    _position = placement->getPosition();
-  
-    _heading_deg = placement->getHeadingDeg();
-    _pitch_deg = placement->getPitchDeg();
-    _roll_deg = placement->getRollDeg();
+    _position = globals->get_aircraft_position();
+    globals->get_aircraft_orientation(_heading_deg, _pitch_deg, _roll_deg);
   }
 
   double head = _heading_deg;
@@ -419,11 +415,10 @@ FGViewer::recalcLookAt ()
 {
   // The geodetic position of our target to look at
   if ( _at_model ) {
-    SGModelPlacement* placement = globals->get_aircraft_model()->get3DModel();
-    _target = placement->getPosition();
-    _target_heading_deg = placement->getHeadingDeg();
-    _target_pitch_deg = placement->getPitchDeg();
-    _target_roll_deg = placement->getRollDeg();
+    _target = globals->get_aircraft_position();
+    globals->get_aircraft_orientation(_target_heading_deg,
+                                      _target_pitch_deg,
+                                      _target_roll_deg);
   } else {
     // if not model then calculate our own target position...
     setDampTarget(_target_roll_deg, _target_pitch_deg, _target_heading_deg);
@@ -437,11 +432,8 @@ FGViewer::recalcLookAt ()
 
 
   if ( _from_model ) {
-    SGModelPlacement* placement = globals->get_aircraft_model()->get3DModel();
-    _position = placement->getPosition();
-    _heading_deg = placement->getHeadingDeg();
-    _pitch_deg = placement->getPitchDeg();
-    _roll_deg = placement->getRollDeg();
+    _position = globals->get_aircraft_position();
+    globals->get_aircraft_orientation(_heading_deg, _pitch_deg, _roll_deg);
   } else {
     // update from our own data, just the rotation here...
     setDampTarget(_roll_deg, _pitch_deg, _heading_deg);
@@ -667,10 +659,9 @@ FGViewer::update (double dt)
     }
   }
   recalc();
-  if( fgGetBool( "/sim/rendering/draw-otw", true ) ) {
-    _cameraGroup->update(toOsg(_absolute_view_pos), toOsg(mViewOrientation));
-    _cameraGroup->setCameraParameters(get_v_fov(), get_aspect_ratio());
-  }
+  
+  _cameraGroup->update(toOsg(_absolute_view_pos), toOsg(mViewOrientation));
+  _cameraGroup->setCameraParameters(get_v_fov(), get_aspect_ratio());
 }
 
 double FGViewer::get_aspect_ratio() const