]> git.mxchange.org Git - flightgear.git/commitdiff
Oops, fixing the ghosts of bugs past. :-) Good thing I remembered how I
authorcurt <curt>
Sun, 17 Mar 2002 00:36:39 +0000 (00:36 +0000)
committercurt <curt>
Sun, 17 Mar 2002 00:36:39 +0000 (00:36 +0000)
fixed this when I made the mistake the first time.
The view code wasn't properly handling the transition across tile
boundaries so we'd get a 'flash' of the scene wrongly transformed for
one frame at every tile boundary crossing.  This is what
scenery.get_next_center() is for.

src/Main/viewer.cxx

index e1e7782fbd99e0ffc649b1be1f0ef77a2554159c..2628efc8feef10f63271dfae799ef2fd35ce59bd 100644 (file)
@@ -107,7 +107,7 @@ FGViewPoint::recalc () const
   Point3D p = Point3D(_lon_deg * SG_DEGREES_TO_RADIANS,
                      lat_geoc_rad,
                      sea_level_radius_m);
-  Point3D tmp = sgPolarToCart3d(p) - scenery.get_center();
+  Point3D tmp = sgPolarToCart3d(p) - scenery.get_next_center();
   sgSetVec3(_zero_elev_view_pos, tmp[0], tmp[1], tmp[2]);
 
                                // Calculate the absolute view position
@@ -120,9 +120,9 @@ FGViewPoint::recalc () const
                                // from the scenery center.
   sgdVec3 scenery_center;
   sgdSetVec3(scenery_center,
-            scenery.get_center().x(),
-            scenery.get_center().y(),
-            scenery.get_center().z());
+            scenery.get_next_center().x(),
+            scenery.get_next_center().y(),
+            scenery.get_next_center().z());
   sgdVec3 view_pos;
   sgdSubVec3(view_pos, _absolute_view_pos, scenery_center);
   sgSetVec3(_relative_view_pos, view_pos);