From f423c7660f033ab9c0883224df757b32deb4a44a Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 15 Jun 2007 13:12:46 +0000 Subject: [PATCH] Fixed handling of cases when no matrix is attached to intersections --- src/osgSim/HeightAboveTerrain.cpp | 3 ++- src/osgSim/LineOfSight.cpp | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/osgSim/HeightAboveTerrain.cpp b/src/osgSim/HeightAboveTerrain.cpp index 967cbbd41..588bf37b3 100644 --- a/src/osgSim/HeightAboveTerrain.cpp +++ b/src/osgSim/HeightAboveTerrain.cpp @@ -100,7 +100,8 @@ void HeightAboveTerrain::computeIntersections(osg::Node* scene, osg::Node::NodeM if (!intersections.empty()) { const osgUtil::LineSegmentIntersector::Intersection& intersection = *intersections.begin(); - osg::Vec3d intersectionPoint = intersection.localIntersectionPoint * (*intersection.matrix); + osg::Vec3d intersectionPoint = intersection.matrix.valid() ? intersection.localIntersectionPoint * (*intersection.matrix) : + intersection.localIntersectionPoint; _HATList[index]._hat = (_HATList[index]._point - intersectionPoint).length(); } } diff --git a/src/osgSim/LineOfSight.cpp b/src/osgSim/LineOfSight.cpp index 62efc4de2..423e97b75 100644 --- a/src/osgSim/LineOfSight.cpp +++ b/src/osgSim/LineOfSight.cpp @@ -141,7 +141,8 @@ void LineOfSight::computeIntersections(osg::Node* scene, osg::Node::NodeMask tra ++itr) { const osgUtil::LineSegmentIntersector::Intersection& intersection = *itr; - intersectionsLOS.push_back( intersection.localIntersectionPoint * (*intersection.matrix) ); + if (intersection.matrix.valid()) intersectionsLOS.push_back( intersection.localIntersectionPoint * (*intersection.matrix) ); + else intersectionsLOS.push_back( intersection.localIntersectionPoint ); } } }