Recreate a special case for IntersectionVisitor on QuadTreeWorld

pull/593/head
Andrei Kortunov 4 years ago
parent 340801e08b
commit 54c8375672

@ -143,7 +143,7 @@ ViewData *ViewDataMap::getViewData(osg::Object *viewer, const osg::Vec3f& viewPo
if (!vd->suitableToUse(activeGrid) || (vd->getViewPoint()-viewPoint).length2() >= mReuseDistance*mReuseDistance || vd->getWorldUpdateRevision() < mWorldUpdateRevision) if (!vd->suitableToUse(activeGrid) || (vd->getViewPoint()-viewPoint).length2() >= mReuseDistance*mReuseDistance || vd->getWorldUpdateRevision() < mWorldUpdateRevision)
{ {
float shortestDist = mReuseDistance*mReuseDistance; float shortestDist = viewer ? mReuseDistance*mReuseDistance : std::numeric_limits<float>::max();
const ViewData* mostSuitableView = nullptr; const ViewData* mostSuitableView = nullptr;
for (const ViewData* other : mUsedViews) for (const ViewData* other : mUsedViews)
{ {
@ -157,12 +157,12 @@ ViewData *ViewDataMap::getViewData(osg::Object *viewer, const osg::Vec3f& viewPo
} }
} }
} }
if (mostSuitableView) if (mostSuitableView && mostSuitableView != vd)
{ {
vd->copyFrom(*mostSuitableView); vd->copyFrom(*mostSuitableView);
return vd; return vd;
} }
else else if (!mostSuitableView)
{ {
vd->setViewPoint(viewPoint); vd->setViewPoint(viewPoint);
needsUpdate = true; needsUpdate = true;

Loading…
Cancel
Save