mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-11 07:56:08 -06:00
110 lines
3.7 KiB
C++
110 lines
3.7 KiB
C++
#include "RimWellPathTarget.h"
|
|
|
|
CAF_PDM_SOURCE_INIT(RimWellPathTarget, "WellPathTarget");
|
|
|
|
namespace caf
|
|
{
|
|
template<>
|
|
void caf::AppEnum< RimWellPathTarget::TargetTypeEnum >::setUp()
|
|
{
|
|
addItem(RimWellPathTarget::POINT_AND_TANGENT, "POINT_AND_TANGENT", "Point and Tangent");
|
|
addItem(RimWellPathTarget::POINT, "POINT", "Point");
|
|
setDefault(RimWellPathTarget::POINT_AND_TANGENT);
|
|
}
|
|
}
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
RimWellPathTarget::RimWellPathTarget()
|
|
: m_targetType(POINT_AND_TANGENT)
|
|
, m_targetPoint(cvf::Vec3d::ZERO)
|
|
, m_azimuth(0.0)
|
|
, m_inclination(0.0)
|
|
{
|
|
|
|
CAF_PDM_InitField(&m_isEnabled, "IsEnabled", true, "", "", "", "");
|
|
CAF_PDM_InitFieldNoDefault(&m_targetType, "TargetType", "Type", "", "", "");
|
|
m_targetType.uiCapability()->setUiHidden(true);
|
|
CAF_PDM_InitFieldNoDefault(&m_targetPoint, "TargetPoint", "Point", "", "", "");
|
|
CAF_PDM_InitField(&m_azimuth, "Azimuth", 0.0, "Azi", "", "", "");
|
|
CAF_PDM_InitField(&m_inclination, "Inclination", 0.0, "Inc", "", "", "");
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
RimWellPathTarget::~RimWellPathTarget()
|
|
{
|
|
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimWellPathTarget::setAsPointTarget(const cvf::Vec3d& point)
|
|
{
|
|
m_targetType = POINT;
|
|
m_targetPoint = point;
|
|
m_azimuth = 0.0;
|
|
m_inclination = 0.0;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
void RimWellPathTarget::setAsPointAndTangentTarget(const cvf::Vec3d& point,
|
|
double azimuth,
|
|
double inclination)
|
|
{
|
|
m_targetType = POINT_AND_TANGENT;
|
|
m_targetPoint = point;
|
|
m_azimuth = azimuth;
|
|
m_inclination = inclination;
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
RimWellPathTarget::TargetTypeEnum RimWellPathTarget::targetType()
|
|
{
|
|
return m_targetType();
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
cvf::Vec3d RimWellPathTarget::targetPoint()
|
|
{
|
|
return m_targetPoint();
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
double RimWellPathTarget::azimuth()
|
|
{
|
|
if ( m_targetType() == POINT_AND_TANGENT )
|
|
{
|
|
return m_azimuth;
|
|
}
|
|
else
|
|
{
|
|
return std::numeric_limits<double>::infinity();
|
|
}
|
|
}
|
|
|
|
//--------------------------------------------------------------------------------------------------
|
|
///
|
|
//--------------------------------------------------------------------------------------------------
|
|
double RimWellPathTarget::inclination()
|
|
{
|
|
if ( m_targetType() == POINT_AND_TANGENT )
|
|
{
|
|
return m_inclination;
|
|
}
|
|
else
|
|
{
|
|
return std::numeric_limits<double>::infinity();
|
|
}
|
|
}
|