diff --git a/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.cpp b/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.cpp index 77a8c9fa4d..ba8e8457fa 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.cpp +++ b/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.cpp @@ -19,8 +19,18 @@ #include "RimWellLogRftCurve.h" +#include "RiaEclipseUnitTools.h" + +#include "RimEclipseCase.h" #include "RimEclipseResultCase.h" #include "RimTools.h" +#include "RimWellLogFile.h" +#include "RimWellLogPlot.h" + +#include "RigEclipseCaseData.h" +#include "RigWellLogCurveData.h" + +#include "RiuLineSegmentQwtPlotCurve.h" #include "RifReaderEclipseRft.h" @@ -59,7 +69,6 @@ RimWellLogRftCurve::~RimWellLogRftCurve() //-------------------------------------------------------------------------------------------------- QString RimWellLogRftCurve::wellName() const { - //return QString(m_eclipseRftAddress->wellName().c_str()); return m_wellName; } @@ -68,14 +77,13 @@ QString RimWellLogRftCurve::wellName() const //-------------------------------------------------------------------------------------------------- QString RimWellLogRftCurve::wellLogChannelName() const { - //return QString(m_eclipseRftAddress->wellLogChannelName().c_str()); return m_wellLogChannelName; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::vector RimWellLogRftCurve::yValues() +std::vector RimWellLogRftCurve::xValues() { RifReaderEclipseRft* reader = rftReader(); std::vector values; @@ -92,7 +100,7 @@ std::vector RimWellLogRftCurve::yValues() //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- -std::vector RimWellLogRftCurve::xValues() +std::vector RimWellLogRftCurve::depthValues() { RifReaderEclipseRft* reader = rftReader(); std::vector values; @@ -146,7 +154,35 @@ QString RimWellLogRftCurve::createCurveAutoName() //-------------------------------------------------------------------------------------------------- void RimWellLogRftCurve::onLoadDataAndUpdate(bool updateParentPlot) { + RimWellLogCurve::updateCurvePresentation(); + if (isCurveVisible()) + { + m_curveData = new RigWellLogCurveData; + + RimWellLogPlot* wellLogPlot; + firstAncestorOrThisOfType(wellLogPlot); + CVF_ASSERT(wellLogPlot); + + std::vector values = xValues(); + std::vector depthVector = depthValues(); + + if (values.size() == depthVector.size()) + { + m_curveData->setValuesAndMD(values, depthVector, RiaEclipseUnitTools::depthUnit(m_eclipseResultCase->eclipseCaseData()->unitsType()), false); + } + + RiaDefines::DepthUnitType displayUnit = RiaDefines::UNIT_METER; + if (wellLogPlot) + { + displayUnit = wellLogPlot->depthUnit(); + } + + m_qwtPlotCurve->setSamples(m_curveData->xPlotValues().data(), m_curveData->measuredDepthPlotValues(displayUnit).data(), static_cast(m_curveData->xPlotValues().size())); + m_qwtPlotCurve->setLineSegmentStartStopIndices(m_curveData->polylineStartStopIndices()); + + updateZoomInParentPlot(); + } } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.h b/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.h index 3c68501ef1..e40fc69a15 100644 --- a/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.h +++ b/ApplicationCode/ProjectDataModel/RimWellLogRftCurve.h @@ -29,7 +29,7 @@ class RimEclipseResultCase; class RifReaderEclipseRft; - +class RiuLineSegmentQwtPlotCurve; //================================================================================================== /// /// @@ -45,8 +45,8 @@ public: virtual QString wellName() const override; virtual QString wellLogChannelName() const override; - std::vector yValues(); std::vector xValues(); + std::vector depthValues(); int currentTimeStep() const; @@ -64,6 +64,8 @@ private: RifReaderEclipseRft* rftReader() const; private: + RiuLineSegmentQwtPlotCurve* m_qwtPlotCurve; + caf::PdmPtrField m_eclipseResultCase; caf::PdmField m_timeStep; caf::PdmField m_wellName;