#4012 Add assert to the well path element intersections

This commit is contained in:
Gaute Lindkvist
2019-02-01 07:50:52 +01:00
parent e689b7ceaf
commit b4231775ef
2 changed files with 14 additions and 2 deletions

View File

@@ -108,7 +108,7 @@ bool RicCreateWellTargetsPickEventHandler::handlePickEvent(const Ric3DPickEvent&
doSetAzimuthAndInclination = calculateAzimuthAndInclinationAtMd(
md, wellPathSourceInfo->wellPath()->wellPathGeometry(), &azimuth, &inclination);
}
else
else if (isGridSourceObject(firstPickItem.sourceInfo()))
{
targetPointInDomain = intersectionPointInDomain;
doSetAzimuthAndInclination = false;
@@ -118,6 +118,7 @@ bool RicCreateWellTargetsPickEventHandler::handlePickEvent(const Ric3DPickEvent&
cvf::Vec3d domainRayEnd = targetPointInDomain + (targetPointInDomain - domainRayOrigin);
cvf::Vec3d hexElementIntersection = findHexElementIntersection(rimView, firstPickItem, domainRayOrigin, domainRayEnd);
CVF_TIGHT_ASSERT(!hexElementIntersection.isUndefined());
if (!hexElementIntersection.isUndefined())
{
targetPointInDomain = hexElementIntersection;
@@ -221,6 +222,16 @@ bool RicCreateWellTargetsPickEventHandler::calculateAzimuthAndInclinationAtMd(do
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RicCreateWellTargetsPickEventHandler::isGridSourceObject(const cvf::Object* object)
{
auto sourceInfo = dynamic_cast<const RivSourceInfo*>(object);
auto femSourceInfo = dynamic_cast<const RivFemPickSourceInfo*>(object);
return sourceInfo || femSourceInfo;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -285,7 +296,7 @@ cvf::Vec3d RicCreateWellTargetsPickEventHandler::findHexElementIntersection(Rim3
return (lhs.m_intersectionPoint - domainRayOrigin).lengthSquared() < (rhs.m_intersectionPoint - domainRayOrigin).lengthSquared();
}
);
const double eps = 1.0e-3;
const double eps = 1.0e-2;
cvf::Vec3d intersectionRay = intersectionInfo.back().m_intersectionPoint - intersectionInfo.front().m_intersectionPoint;
cvf::Vec3d newPoint = intersectionInfo.front().m_intersectionPoint + intersectionRay * eps;
CVF_ASSERT(RigHexIntersectionTools::isPointInCell(newPoint, cornerVertices.data()));