#1947 RFT/PLT Plot: Add QWT curve

This commit is contained in:
Unknown 2017-10-05 10:49:26 +02:00
parent 3ce1acb29f
commit e3c330d612
2 changed files with 44 additions and 6 deletions

View File

@ -19,8 +19,18 @@
#include "RimWellLogRftCurve.h" #include "RimWellLogRftCurve.h"
#include "RiaEclipseUnitTools.h"
#include "RimEclipseCase.h"
#include "RimEclipseResultCase.h" #include "RimEclipseResultCase.h"
#include "RimTools.h" #include "RimTools.h"
#include "RimWellLogFile.h"
#include "RimWellLogPlot.h"
#include "RigEclipseCaseData.h"
#include "RigWellLogCurveData.h"
#include "RiuLineSegmentQwtPlotCurve.h"
#include "RifReaderEclipseRft.h" #include "RifReaderEclipseRft.h"
@ -59,7 +69,6 @@ RimWellLogRftCurve::~RimWellLogRftCurve()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimWellLogRftCurve::wellName() const QString RimWellLogRftCurve::wellName() const
{ {
//return QString(m_eclipseRftAddress->wellName().c_str());
return m_wellName; return m_wellName;
} }
@ -68,14 +77,13 @@ QString RimWellLogRftCurve::wellName() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RimWellLogRftCurve::wellLogChannelName() const QString RimWellLogRftCurve::wellLogChannelName() const
{ {
//return QString(m_eclipseRftAddress->wellLogChannelName().c_str());
return m_wellLogChannelName; return m_wellLogChannelName;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<double> RimWellLogRftCurve::yValues() std::vector<double> RimWellLogRftCurve::xValues()
{ {
RifReaderEclipseRft* reader = rftReader(); RifReaderEclipseRft* reader = rftReader();
std::vector<double> values; std::vector<double> values;
@ -92,7 +100,7 @@ std::vector<double> RimWellLogRftCurve::yValues()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
std::vector<double> RimWellLogRftCurve::xValues() std::vector<double> RimWellLogRftCurve::depthValues()
{ {
RifReaderEclipseRft* reader = rftReader(); RifReaderEclipseRft* reader = rftReader();
std::vector<double> values; std::vector<double> values;
@ -146,7 +154,35 @@ QString RimWellLogRftCurve::createCurveAutoName()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimWellLogRftCurve::onLoadDataAndUpdate(bool updateParentPlot) void RimWellLogRftCurve::onLoadDataAndUpdate(bool updateParentPlot)
{ {
RimWellLogCurve::updateCurvePresentation();
if (isCurveVisible())
{
m_curveData = new RigWellLogCurveData;
RimWellLogPlot* wellLogPlot;
firstAncestorOrThisOfType(wellLogPlot);
CVF_ASSERT(wellLogPlot);
std::vector<double> values = xValues();
std::vector<double> 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<int>(m_curveData->xPlotValues().size()));
m_qwtPlotCurve->setLineSegmentStartStopIndices(m_curveData->polylineStartStopIndices());
updateZoomInParentPlot();
}
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -29,7 +29,7 @@
class RimEclipseResultCase; class RimEclipseResultCase;
class RifReaderEclipseRft; class RifReaderEclipseRft;
class RiuLineSegmentQwtPlotCurve;
//================================================================================================== //==================================================================================================
/// ///
/// ///
@ -45,8 +45,8 @@ public:
virtual QString wellName() const override; virtual QString wellName() const override;
virtual QString wellLogChannelName() const override; virtual QString wellLogChannelName() const override;
std::vector<double> yValues();
std::vector<double> xValues(); std::vector<double> xValues();
std::vector<double> depthValues();
int currentTimeStep() const; int currentTimeStep() const;
@ -64,6 +64,8 @@ private:
RifReaderEclipseRft* rftReader() const; RifReaderEclipseRft* rftReader() const;
private: private:
RiuLineSegmentQwtPlotCurve* m_qwtPlotCurve;
caf::PdmPtrField<RimEclipseResultCase*> m_eclipseResultCase; caf::PdmPtrField<RimEclipseResultCase*> m_eclipseResultCase;
caf::PdmField<time_t> m_timeStep; caf::PdmField<time_t> m_timeStep;
caf::PdmField<QString> m_wellName; caf::PdmField<QString> m_wellName;