From 91d001ff4ebf78205fd83b2342b1003fb3e35411 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sun, 30 Jan 2011 17:35:07 +0100 Subject: [PATCH] Fix viewer issue with Tower and Chase View. 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 | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/Main/viewer.cxx b/src/Main/viewer.cxx index 05816f8bc..a61198d66 100644 --- a/src/Main/viewer.cxx +++ b/src/Main/viewer.cxx @@ -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; -- 2.39.5