1
0
Fork 0

Modified Files:

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.
This commit is contained in:
frohlich 2007-05-26 13:51:23 +00:00
parent 0b44409fca
commit 4317dbf729

View file

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