From adf95c8261a3f03611092c0ca4e4a84fbb2e7055 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 28 May 2007 15:27:21 +0000 Subject: [PATCH] Fixed handle on non ellipsoid models --- src/osgSim/OverlayNode.cpp | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/osgSim/OverlayNode.cpp b/src/osgSim/OverlayNode.cpp index c8d786fe9..f5739536d 100644 --- a/src/osgSim/OverlayNode.cpp +++ b/src/osgSim/OverlayNode.cpp @@ -1174,7 +1174,7 @@ void OverlayNode::traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeVis CustomPolytope::Vertices corners; - //overlayPolytope.cut(frustum); + overlayPolytope.cut(frustum); overlayPolytope.getPoints(corners); if (overlayData._geode.valid()) @@ -1191,7 +1191,6 @@ void OverlayNode::traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeVis osg::Vec3d center = _overlaySubgraph->getBound().center(); osg::Vec3d frustum_axis = cv->getLookVectorLocal(); - osg::Vec3d lookVector(0.0,0.0,-1.0); if (em) { @@ -1199,15 +1198,14 @@ void OverlayNode::traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeVis lookVector.normalize(); } -#if 1 osg::Vec3d sideVector = lookVector ^ frustum_axis; -#else - osg::Vec3d sideVector = lookVector ^ osg::Vec3d(0.0,0.0,1.0); -#endif sideVector.normalize(); osg::Vec3d upVector = sideVector ^ lookVector; upVector.normalize(); + + osg::Vec3d overlayLookVector = upVector ^ sideVector; + overlayLookVector.normalize(); // osg::notify(osg::NOTICE)<<" lookVector ="<max_up) max_up = distance_up; } - // osg::notify(osg::NOTICE)<<" upVector ="<