mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4012 Add assert to the well path element intersections
This commit is contained in:
parent
e689b7ceaf
commit
b4231775ef
@ -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()));
|
||||
|
@ -44,6 +44,7 @@ private:
|
||||
double* azimuth,
|
||||
double* inclination) const;
|
||||
|
||||
static bool isGridSourceObject(const cvf::Object* object);
|
||||
static cvf::Vec3d findHexElementIntersection(Rim3dView* view, const RiuPickItemInfo& pickItem, const cvf::Vec3d& domainRayOrigin, const cvf::Vec3d& domainRayEnd);
|
||||
private:
|
||||
caf::PdmPointer<RimWellPathGeometryDef> m_geometryToAddTargetsTo;
|
||||
|
Loading…
Reference in New Issue
Block a user