]> git.mxchange.org Git - flightgear.git/commitdiff
Modified Files:
authorfrohlich <frohlich>
Sat, 26 May 2007 13:51:23 +0000 (13:51 +0000)
committerfrohlich <frohlich>
Sat, 26 May 2007 13:51:23 +0000 (13:51 +0000)
src/Scenery/tileentry.cxx: Jonathan Wagner:
Removes black dots by accounting for radius of nodes
when calculating visible nodes for traversal without removing the
optimization.  Confirmed fix with a few people on IRC.

src/Scenery/tileentry.cxx

index 1f256459781b877821cbbc102c792c2dd14bf187..0b7ea455dbed3c53419fdbed83914ca3e6630894 100644 (file)
@@ -66,6 +66,7 @@
 
 SG_USING_STD(string);
 
+// FIXME: investigate what huge update flood is clamped away here ...
 class FGTileUpdateCallback : public osg::NodeCallback {
 public:
   virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
@@ -74,9 +75,9 @@ public:
     SGUpdateVisitor* updateVisitor = static_cast<SGUpdateVisitor*>(nv);
 
     osg::Vec3 center = node->getBound().center();
-    double dist2 = distSqr(updateVisitor->getGlobalEyePos(),
+    double distance = dist(updateVisitor->getGlobalEyePos(),
                            SGVec3d(center[0], center[1], center[2]));
-    if (updateVisitor->getSqrVisibility() < dist2)
+    if (updateVisitor->getVisibility() + node->getBound().radius() < distance)
       return;
 
     traverse(node, nv);