Move rkbDiff calculation code to RigWellPath so it can be shared instead of copied.

This commit is contained in:
Gaute Lindkvist 2018-06-29 11:23:59 +02:00
parent c33ec790ed
commit 76f0126e59
4 changed files with 29 additions and 39 deletions

View File

@ -336,25 +336,7 @@ double Rim3dWellLogExtractionCurve::rkbDiff() const
if (wellPath && wellPath->wellPathGeometry())
{
RigWellPath* geo = wellPath->wellPathGeometry();
if (geo->hasDatumElevation())
{
return geo->datumElevation();
}
// If measured depth is zero, use the z-value of the well path points
if (geo->m_wellPathPoints.size() > 0 && geo->m_measuredDepths.size() > 0)
{
double epsilon = 1e-3;
if (cvf::Math::abs(geo->m_measuredDepths[0]) < epsilon)
{
double diff = geo->m_measuredDepths[0] - (-geo->wellPathPoints()[0].z());
return diff;
}
}
return wellPath->wellPathGeometry()->rkbDiff();
}
return HUGE_VAL;

View File

@ -858,27 +858,8 @@ double RimWellLogExtractionCurve::rkbDiff() const
{
if (m_wellPath && m_wellPath->wellPathGeometry())
{
RigWellPath* geo = m_wellPath->wellPathGeometry();
if (geo->hasDatumElevation())
{
return geo->datumElevation();
}
// If measured depth is zero, use the z-value of the well path points
if (geo->m_wellPathPoints.size() > 0 && geo->m_measuredDepths.size() > 0)
{
double epsilon = 1e-3;
if (cvf::Math::abs(geo->m_measuredDepths[0]) < epsilon)
{
double diff = geo->m_measuredDepths[0] - (-geo->m_wellPathPoints[0].z());
return diff;
}
}
return m_wellPath->wellPathGeometry()->rkbDiff();
}
return HUGE_VAL;
}

View File

@ -56,6 +56,32 @@ double RigWellPath::datumElevation() const
return m_datumElevation;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
double RigWellPath::rkbDiff() const
{
if (hasDatumElevation())
{
return datumElevation();
}
// If measured depth is zero, use the z-value of the well path points
if (m_wellPathPoints.size() > 0 && m_measuredDepths.size() > 0)
{
double epsilon = 1e-3;
if (cvf::Math::abs(m_measuredDepths[0]) < epsilon)
{
double diff = m_measuredDepths[0] - (-wellPathPoints()[0].z());
return diff;
}
}
return HUGE_VAL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -44,6 +44,7 @@ public:
void setDatumElevation(double value);
bool hasDatumElevation() const;
double datumElevation() const;
double rkbDiff() const;
cvf::Vec3d interpolatedVectorAlongWellPath(const std::vector<cvf::Vec3d>& vectors,
double measuredDepth,
double * horizontalLengthAlongWellToStartClipPoint = nullptr) const;