#4038 2D plot Source data stepping re-set curve interpolation

This commit is contained in:
Magne Sjaastad 2019-02-07 08:30:55 +01:00
parent 1717a5bf30
commit f4e0a154ee
7 changed files with 26 additions and 16 deletions

View File

@ -72,7 +72,7 @@ void RiaSummaryTools::notifyCalculatedCurveNameHasChanged(const QString& previou
if (adr.quantityName() == previousCurveName.toStdString()) if (adr.quantityName() == previousCurveName.toStdString())
{ {
RifEclipseSummaryAddress updatedAdr = RifEclipseSummaryAddress::calculatedAddress(currentCurveName.toStdString()); RifEclipseSummaryAddress updatedAdr = RifEclipseSummaryAddress::calculatedAddress(currentCurveName.toStdString());
curve->setSummaryAddressY(updatedAdr); curve->setSummaryAddressYAndApplyInterpolation(updatedAdr);
} }
} }
} }

View File

@ -292,7 +292,7 @@ RimSummaryCurve* RicPlotProductionRateFeature::addSummaryCurve( RimSummaryPlot*
plot->addCurveAndUpdate(newCurve); plot->addCurveAndUpdate(newCurve);
newCurve->setSummaryCaseY(gridSummaryCase); newCurve->setSummaryCaseY(gridSummaryCase);
newCurve->setSummaryAddressY(addr); newCurve->setSummaryAddressYAndApplyInterpolation(addr);
newCurve->setColor(color); newCurve->setColor(color);
newCurve->setLeftOrRightAxisY(plotAxis); newCurve->setLeftOrRightAxisY(plotAxis);
newCurve->loadDataAndUpdate(true); newCurve->loadDataAndUpdate(true);

View File

@ -61,7 +61,7 @@ RimSummaryCurve* RicNewSummaryCurveFeature::addCurveToPlot(RimSummaryPlot* plot,
newCurve->setSummaryCaseY(summaryCase); newCurve->setSummaryCaseY(summaryCase);
} }
newCurve->setSummaryAddressY(RifEclipseSummaryAddress::fieldAddress("FOPT")); newCurve->setSummaryAddressYAndApplyInterpolation(RifEclipseSummaryAddress::fieldAddress("FOPT"));
newCurve->loadDataAndUpdate(true); newCurve->loadDataAndUpdate(true);

View File

@ -463,7 +463,7 @@ void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions(
RimSummaryCase* currentCase = curveDef.summaryCase(); RimSummaryCase* currentCase = curveDef.summaryCase();
RimSummaryCurve* curve = new RimSummaryCurve(); RimSummaryCurve* curve = new RimSummaryCurve();
curve->setSummaryCaseY(currentCase); curve->setSummaryCaseY(currentCase);
curve->setSummaryAddressY(curveDef.summaryAddress()); curve->setSummaryAddressYAndApplyInterpolation(curveDef.summaryAddress());
curve->applyCurveAutoNameSettings(*m_curveNameConfig()); curve->applyCurveAutoNameSettings(*m_curveNameConfig());
if (currentCase->isObservedData()) curve->setSymbolSkipDistance(0); if (currentCase->isObservedData()) curve->setSymbolSkipDistance(0);

View File

@ -977,7 +977,7 @@ void RimEnsembleCurveSet::updateEnsembleCurves(const std::vector<RimSummaryCase*
{ {
RimSummaryCurve* curve = new RimSummaryCurve(); RimSummaryCurve* curve = new RimSummaryCurve();
curve->setSummaryCaseY(sumCase); curve->setSummaryCaseY(sumCase);
curve->setSummaryAddressY(addr->address()); curve->setSummaryAddressYAndApplyInterpolation(addr->address());
curve->setLeftOrRightAxisY(m_plotAxis()); curve->setLeftOrRightAxisY(m_plotAxis());
addCurve(curve); addCurve(curve);
@ -1069,7 +1069,7 @@ void RimEnsembleCurveSet::updateStatisticsCurves(const std::vector<RimSummaryCas
} }
curve->setLineStyle(RiuQwtPlotCurve::STYLE_SOLID); curve->setLineStyle(RiuQwtPlotCurve::STYLE_SOLID);
curve->setSummaryCaseY(m_ensembleStatCase.get()); curve->setSummaryCaseY(m_ensembleStatCase.get());
curve->setSummaryAddressY(address); curve->setSummaryAddressYAndApplyInterpolation(address);
curve->setLeftOrRightAxisY(m_plotAxis()); curve->setLeftOrRightAxisY(m_plotAxis());
curve->updateCurveVisibility(false); curve->updateCurveVisibility(false);

View File

@ -203,6 +203,16 @@ RifEclipseSummaryAddress RimSummaryCurve::summaryAddressY() const
return m_yValuesCurveVariable->address(); return m_yValuesCurveVariable->address();
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::setSummaryAddressYAndApplyInterpolation(const RifEclipseSummaryAddress& address)
{
setSummaryAddressY(address);
calculateCurveInterpolationFromAddress();
}
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -216,8 +226,6 @@ void RimSummaryCurve::setSummaryAddressY(const RifEclipseSummaryAddress& address
m_yValuesCurveVariable->setAddress(address); m_yValuesCurveVariable->setAddress(address);
m_yValuesSummaryFilter->updateFromAddress(address); m_yValuesSummaryFilter->updateFromAddress(address);
calculateCurveInterpolationFromAddress();
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -54,7 +54,9 @@ public:
// Y Axis functions // Y Axis functions
void setSummaryCaseY(RimSummaryCase* sumCase); void setSummaryCaseY(RimSummaryCase* sumCase);
RimSummaryCase* summaryCaseY() const; RimSummaryCase* summaryCaseY() const;
void setSummaryAddressYAndApplyInterpolation(const RifEclipseSummaryAddress& address);
void setSummaryAddressY(const RifEclipseSummaryAddress& address); void setSummaryAddressY(const RifEclipseSummaryAddress& address);
RifEclipseSummaryAddress summaryAddressY() const; RifEclipseSummaryAddress summaryAddressY() const;
std::string unitNameY() const; std::string unitNameY() const;
std::vector<double> valuesY() const; std::vector<double> valuesY() const;
@ -76,7 +78,7 @@ public:
void updateQwtPlotAxis(); void updateQwtPlotAxis();
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings); void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
QString curveExportDescription(const RifEclipseSummaryAddress& address = RifEclipseSummaryAddress()) const override; QString curveExportDescription(const RifEclipseSummaryAddress& address = RifEclipseSummaryAddress()) const override;
void forceUpdateCurveAppearanceFromCaseType(); void forceUpdateCurveAppearanceFromCaseType();
void markCachedDataForPurge(); void markCachedDataForPurge();
@ -97,11 +99,11 @@ protected:
void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override; void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "") override;
private: private:
RifSummaryReaderInterface* valuesSummaryReaderX() const; RifSummaryReaderInterface* valuesSummaryReaderX() const;
RifSummaryReaderInterface* valuesSummaryReaderY() const; RifSummaryReaderInterface* valuesSummaryReaderY() const;
const std::vector<time_t>& timeStepsX() const; const std::vector<time_t>& timeStepsX() const;
void calculateCurveInterpolationFromAddress(); void calculateCurveInterpolationFromAddress();
// Overridden PDM methods // Overridden PDM methods
void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override; void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue) override;
@ -109,9 +111,9 @@ private:
void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override; void defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& uiOrdering) override;
void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override; void defineEditorAttribute(const caf::PdmFieldHandle* field, QString uiConfigName, caf::PdmUiEditorAttribute* attribute) override;
static void appendOptionItemsForSummaryAddresses(QList<caf::PdmOptionItemInfo>* options, static void appendOptionItemsForSummaryAddresses(QList<caf::PdmOptionItemInfo>* options,
RimSummaryCase* summaryCase, RimSummaryCase* summaryCase,
RimSummaryFilter* summaryFilter); RimSummaryFilter* summaryFilter);
private: private:
// Y values // Y values