]> git.mxchange.org Git - flightgear.git/commitdiff
Fix viewer issue with Tower and Chase View.
authorThorstenB <brehmt@gmail.com>
Sun, 30 Jan 2011 16:35:07 +0000 (17:35 +0100)
committerThorstenB <brehmt@gmail.com>
Sun, 30 Jan 2011 16:35:07 +0000 (17:35 +0100)
When looking _at_ a model with an x,y offset of 0,
then the view heading has no effect. So, force heading offset property
to 0 to keep other property consumers from running incorrect calculations.
=> Trying to rotate the heading offset in Tower/Chase view no longer
rotates the blue sky around the aircraft, though the viewer itself
isn't rotating anything.

src/Main/viewer.cxx

index 05816f8bc6c407434dfef501a1b519dbf835d854..a61198d666c409d5e72c85e110b834e85bea2cb6 100644 (file)
@@ -289,7 +289,14 @@ void
 FGViewer::setHeadingOffset_deg (double heading_offset_deg)
 {
   _dirty = true;
-  _heading_offset_deg = heading_offset_deg;
+  if (_at_model && (_offset_m.x() == 0.0)&&(_offset_m.y() == 0.0))
+  {
+      /* avoid optical effects (e.g. rotating sky) when looking at something
+       * with heading offsets x==y==0 (view heading cannot change). */
+      _heading_offset_deg = 0.0;
+  }
+  else
+      _heading_offset_deg = heading_offset_deg;
 }
 
 void
@@ -317,6 +324,14 @@ void
 FGViewer::setGoalHeadingOffset_deg (double goal_heading_offset_deg)
 {
   _dirty = true;
+  if (_at_model && (_offset_m.x() == 0.0)&&(_offset_m.y() == 0.0))
+  {
+      /* avoid optical effects (e.g. rotating sky) when looking at something
+       * with heading offsets x==y==0 (view heading cannot change). */
+      _goal_heading_offset_deg = 0.0;
+      return;
+  }
+  
   _goal_heading_offset_deg = goal_heading_offset_deg;
   while ( _goal_heading_offset_deg < 0.0 ) {
     _goal_heading_offset_deg += 360;