#3393 Continous sensible tangent calculation for targets wo tangent constraint.

Using abs(90 -inclination) and inverse distance as weights.
Moved well path calculations into a separate class
This commit is contained in:
Jacob Støren
2018-09-28 14:06:56 +02:00
parent 71c36208c3
commit f4761b55ab
8 changed files with 415 additions and 13 deletions

View File

@@ -89,6 +89,23 @@ void RimWellPathTarget::setDerivedTangent(double azimuth, double inclination)
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaLineArcWellPathCalculator::WellTarget RimWellPathTarget::wellTargetData()
{
RiaLineArcWellPathCalculator::WellTarget targetData;
targetData.targetPointXYZ = targetPointXYZ();
targetData.isTangentConstrained = (targetType() == POINT_AND_TANGENT);
targetData.azimuth = azimuth();
targetData.inclination = inclination();
targetData.radius1 = radius1();
targetData.radius2 = radius2();
return targetData;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -159,6 +176,8 @@ double RimWellPathTarget::radius1() const
// Degrees pr 10m
// Degrees pr 30m
if (fabs(m_dogleg1) < 1e-6) return std::numeric_limits<double>::infinity();
return 30.0/cvf::Math::toRadians(m_dogleg1);
}
@@ -172,6 +191,9 @@ double RimWellPathTarget::radius2() const
// Degrees pr 10m
// Degrees pr 30m
if (fabs(m_dogleg2) < 1e-6) return std::numeric_limits<double>::infinity();
return 30.0/cvf::Math::toRadians(m_dogleg2);
}