#2091 Cross Plot : Rename to using X or Y as postfix to interface

This commit is contained in:
Magne Sjaastad
2017-11-15 11:36:33 +01:00
parent c0d26a1d4e
commit 3b31c4800f
18 changed files with 145 additions and 93 deletions

View File

@@ -155,7 +155,7 @@ RimSummaryCurve::~RimSummaryCurve()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::setSummaryCase(RimSummaryCase* sumCase)
void RimSummaryCurve::setSummaryCaseY(RimSummaryCase* sumCase)
{
m_yValuesSummaryCase = sumCase;
}
@@ -163,7 +163,7 @@ void RimSummaryCurve::setSummaryCase(RimSummaryCase* sumCase)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimSummaryCase* RimSummaryCurve::summaryCase() const
RimSummaryCase* RimSummaryCurve::summaryCaseY() const
{
return m_yValuesSummaryCase();
}
@@ -171,7 +171,15 @@ RimSummaryCase* RimSummaryCurve::summaryCase() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifEclipseSummaryAddress RimSummaryCurve::summaryAddress()
RifEclipseSummaryAddress RimSummaryCurve::summaryAddressX() const
{
return m_xValuesCurveVariable->address();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifEclipseSummaryAddress RimSummaryCurve::summaryAddressY() const
{
return m_yValuesCurveVariable->address();
}
@@ -179,7 +187,7 @@ RifEclipseSummaryAddress RimSummaryCurve::summaryAddress()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::setSummaryAddress(const RifEclipseSummaryAddress& address)
void RimSummaryCurve::setSummaryAddressY(const RifEclipseSummaryAddress& address)
{
m_yValuesCurveVariable->setAddress(address);
@@ -191,10 +199,10 @@ void RimSummaryCurve::setSummaryAddress(const RifEclipseSummaryAddress& address)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::string RimSummaryCurve::unitName()
std::string RimSummaryCurve::unitNameY() const
{
RifSummaryReaderInterface* reader = yValuesSummaryReader();
if (reader) return reader->unitName(this->summaryAddress());
RifSummaryReaderInterface* reader = valuesSummaryReaderY();
if (reader) return reader->unitName(this->summaryAddressY());
return "";
}
@@ -202,11 +210,22 @@ std::string RimSummaryCurve::unitName()
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<double> RimSummaryCurve::yValues() const
std::string RimSummaryCurve::unitNameX() const
{
RifSummaryReaderInterface* reader = valuesSummaryReaderX();
if (reader) return reader->unitName(this->summaryAddressX());
return "";
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<double> RimSummaryCurve::valuesY() const
{
std::vector<double> values;
RifSummaryReaderInterface* reader = yValuesSummaryReader();
RifSummaryReaderInterface* reader = valuesSummaryReaderY();
if ( !reader ) return values;
@@ -219,7 +238,7 @@ std::vector<double> RimSummaryCurve::yValues() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<double> RimSummaryCurve::xValues() const
std::vector<double> RimSummaryCurve::valuesX() const
{
std::vector<double> values;
@@ -240,7 +259,7 @@ std::vector<double> RimSummaryCurve::xValues() const
const std::vector<time_t>& RimSummaryCurve::timeSteps() const
{
static std::vector<time_t> emptyVector;
RifSummaryReaderInterface* reader = yValuesSummaryReader();
RifSummaryReaderInterface* reader = valuesSummaryReaderY();
if ( !reader ) return emptyVector;
@@ -252,7 +271,7 @@ const std::vector<time_t>& RimSummaryCurve::timeSteps() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimSummaryCurve::setYAxis(RiaDefines::PlotAxis plotAxis)
void RimSummaryCurve::setLeftOrRightAxisY(RiaDefines::PlotAxis plotAxis)
{
m_plotAxis = plotAxis;
}
@@ -260,7 +279,7 @@ void RimSummaryCurve::setYAxis(RiaDefines::PlotAxis plotAxis)
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RiaDefines::PlotAxis RimSummaryCurve::yAxis() const
RiaDefines::PlotAxis RimSummaryCurve::axisY() const
{
return m_plotAxis();
}
@@ -310,7 +329,16 @@ QList<caf::PdmOptionItemInfo> RimSummaryCurve::calculateValueOptions(const caf::
//--------------------------------------------------------------------------------------------------
QString RimSummaryCurve::createCurveAutoName()
{
return m_curveNameConfig->curveName(m_yValuesCurveVariable->address());
QString name = m_curveNameConfig->curveName(m_yValuesCurveVariable->address());
if (isCrossPlotCurve())
{
QString xCurveName = m_curveNameConfig->curveName(m_xValuesCurveVariable->address());
name += " | " + xCurveName;
}
return name;
}
//--------------------------------------------------------------------------------------------------
@@ -341,17 +369,17 @@ void RimSummaryCurve::onLoadDataAndUpdate(bool updateParentPlot)
if (isCurveVisible())
{
std::vector<double> yValues = this->yValues();
std::vector<double> yValues = this->valuesY();
RimSummaryPlot* plot = nullptr;
firstAncestorOrThisOfType(plot);
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->yAxis());
bool isLogCurve = plot->isLogarithmicScaleEnabled(this->axisY());
bool shouldPopulateViewWithEmptyData = false;
if (isCrossPlotCurve())
{
std::vector<double> xValues = this->xValues();
std::vector<double> xValues = this->valuesX();
if (!yValues.empty() && yValues.size() == xValues.size())
{
@@ -509,7 +537,7 @@ void RimSummaryCurve::updateQwtPlotAxis()
{
if (m_qwtPlotCurve)
{
if (this->yAxis() == RiaDefines::PLOT_AXIS_LEFT)
if (this->axisY() == RiaDefines::PLOT_AXIS_LEFT)
{
m_qwtPlotCurve->setYAxis(QwtPlot::yLeft);
}
@@ -577,7 +605,17 @@ void RimSummaryCurve::fieldChangedByUi(const caf::PdmFieldHandle* changedField,
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifSummaryReaderInterface* RimSummaryCurve::yValuesSummaryReader() const
RifSummaryReaderInterface* RimSummaryCurve::valuesSummaryReaderX() const
{
if (!m_xValuesSummaryCase()) return nullptr;
return m_xValuesSummaryCase()->summaryReader();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RifSummaryReaderInterface* RimSummaryCurve::valuesSummaryReaderY() const
{
if (!m_yValuesSummaryCase()) return nullptr;

View File

@@ -51,21 +51,24 @@ public:
RimSummaryCurve();
virtual ~RimSummaryCurve();
void setSummaryCase(RimSummaryCase* sumCase);
RimSummaryCase* summaryCase() const;
// Y Axis functions
void setSummaryCaseY(RimSummaryCase* sumCase);
RimSummaryCase* summaryCaseY() const;
void setSummaryAddressY(const RifEclipseSummaryAddress& address);
RifEclipseSummaryAddress summaryAddressY() const;
std::string unitNameY() const;
std::vector<double> valuesY() const;
void setLeftOrRightAxisY(RiaDefines::PlotAxis plotAxis);
RiaDefines::PlotAxis axisY() const;
RifEclipseSummaryAddress summaryAddress();
void setSummaryAddress(const RifEclipseSummaryAddress& address);
std::string unitName();
// X Axis functions
RifEclipseSummaryAddress summaryAddressX() const;
std::string unitNameX() const;
std::vector<double> valuesX() const;
std::vector<double> yValues() const;
std::vector<double> xValues() const;
// Other
const std::vector<time_t>& timeSteps() const;
void setYAxis(RiaDefines::PlotAxis plotAxis);
RiaDefines::PlotAxis yAxis() const;
void updateQwtPlotAxis();
void applyCurveAutoNameSettings(const RimSummaryCurveAutoName& autoNameSettings);
protected:
@@ -76,7 +79,8 @@ protected:
virtual void onLoadDataAndUpdate(bool updateParentPlot) override;
private:
RifSummaryReaderInterface* yValuesSummaryReader() const;
RifSummaryReaderInterface* valuesSummaryReaderX() const;
RifSummaryReaderInterface* valuesSummaryReaderY() const;
void calculateCurveInterpolationFromAddress();

View File

@@ -283,16 +283,16 @@ void RimSummaryCurveAppearanceCalculator::setupCurveLook(RimSummaryCurve* curve)
m_currentCurveBaseColor = cvf::Color3f(0, 0, 0);
m_currentCurveGradient = 0.0f;
int caseAppearanceIdx = m_caseToAppearanceIdxMap[curve->summaryCase()];
int varAppearanceIdx = m_varToAppearanceIdxMap[curve->summaryAddress().quantityName()];
int welAppearanceIdx = m_welToAppearanceIdxMap[curve->summaryAddress().wellName()];
int grpAppearanceIdx = m_grpToAppearanceIdxMap[curve->summaryAddress().wellGroupName()];
int regAppearanceIdx = m_regToAppearanceIdxMap[curve->summaryAddress().regionNumber()];
int caseAppearanceIdx = m_caseToAppearanceIdxMap[curve->summaryCaseY()];
int varAppearanceIdx = m_varToAppearanceIdxMap[curve->summaryAddressY().quantityName()];
int welAppearanceIdx = m_welToAppearanceIdxMap[curve->summaryAddressY().wellName()];
int grpAppearanceIdx = m_grpToAppearanceIdxMap[curve->summaryAddressY().wellGroupName()];
int regAppearanceIdx = m_regToAppearanceIdxMap[curve->summaryAddressY().regionNumber()];
// Remove index for curves without value at the specific dimension
if(curve->summaryAddress().wellName().empty()) welAppearanceIdx = -1;
if(curve->summaryAddress().wellGroupName().empty()) grpAppearanceIdx = -1;
if(curve->summaryAddress().regionNumber() < 0) regAppearanceIdx = -1;
if(curve->summaryAddressY().wellName().empty()) welAppearanceIdx = -1;
if(curve->summaryAddressY().wellGroupName().empty()) grpAppearanceIdx = -1;
if(curve->summaryAddressY().regionNumber() < 0) regAppearanceIdx = -1;
setOneCurveAppearance(m_caseAppearanceType, m_caseCount, caseAppearanceIdx, curve);
setOneCurveAppearance(m_wellAppearanceType, m_wellCount, welAppearanceIdx, curve);
@@ -303,7 +303,7 @@ void RimSummaryCurveAppearanceCalculator::setupCurveLook(RimSummaryCurve* curve)
{
int subColorIndex = -1;
char secondChar = 0;
std::string varname = curve->summaryAddress().quantityName();
std::string varname = curve->summaryAddressY().quantityName();
if (varname.size() > 1) secondChar = varname[1];
subColorIndex = m_secondCharToVarToAppearanceIdxMap[secondChar][varname];
@@ -340,7 +340,7 @@ void RimSummaryCurveAppearanceCalculator::setupCurveLook(RimSummaryCurve* curve)
curve->setColor(gradeColor(m_currentCurveBaseColor, m_currentCurveGradient));
if ( curve->summaryCase()->isObservedData() )
if ( curve->summaryCaseY()->isObservedData() )
{
curve->setLineStyle(RimPlotCurve::STYLE_NONE);

View File

@@ -65,7 +65,7 @@ QString RimSummaryCurveAutoName::curveName(const RifEclipseSummaryAddress& summa
if (m_unit && summaryCurve)
{
text += "[" + summaryCurve->unitName() + "]";
text += "[" + summaryCurve->unitNameY() + "]";
}
}
@@ -179,10 +179,10 @@ QString RimSummaryCurveAutoName::curveName(const RifEclipseSummaryAddress& summa
{
if (m_caseName)
{
if (summaryCurve && summaryCurve->summaryCase())
if (summaryCurve && summaryCurve->summaryCaseY())
{
if (text.size() > 0) text += ", ";
text += summaryCurve->summaryCase()->caseName().toStdString();
text += summaryCurve->summaryCaseY()->caseName().toStdString();
}
}
}

View File

@@ -175,9 +175,9 @@ void RimSummaryCurveCollection::deleteCurvesAssosiatedWithCase(RimSummaryCase* s
for (RimSummaryCurve* summaryCurve : m_curves)
{
if (!summaryCurve) continue;
if (!summaryCurve->summaryCase()) continue;
if (!summaryCurve->summaryCaseY()) continue;
if (summaryCurve->summaryCase() == summaryCase)
if (summaryCurve->summaryCaseY() == summaryCase)
{
summaryCurvesToDelete.push_back(summaryCurve);
}

View File

@@ -394,8 +394,8 @@ void RimSummaryCurveFilter::syncUiSelectionFromCurves()
// Populate the existingCurveDefinitions from the existing curves
for(RimSummaryCurve* curve: m_curves)
{
existingCurveDefinitions.insert(curve->summaryAddress());
referredCases.insert(curve->summaryCase());
existingCurveDefinitions.insert(curve->summaryAddressY());
referredCases.insert(curve->summaryCaseY());
}
if (m_curves.size()) // Only sync the selected cases if we actually have some curves. To avoid user getting an empty variable list accidentally
@@ -440,7 +440,7 @@ void RimSummaryCurveFilter::updatePlotAxisForCurves()
{
for (RimSummaryCurve* curve : m_curves)
{
curve->setYAxis(m_plotAxis());
curve->setLeftOrRightAxisY(m_plotAxis());
curve->updateQwtPlotAxis();
}
@@ -473,7 +473,7 @@ std::set<std::string> RimSummaryCurveFilter::unitNames()
std::set<std::string> unitNames;
for(RimSummaryCurve* curve: m_curves)
{
if (curve->isCurveVisible()) unitNames.insert( curve->unitName());
if (curve->isCurveVisible()) unitNames.insert( curve->unitNameY());
}
return unitNames;
}
@@ -503,9 +503,9 @@ void RimSummaryCurveFilter::removeCurvesAssosiatedWithCase(RimSummaryCase* summa
for (RimSummaryCurve* summaryCurve : m_curves)
{
if (!summaryCurve) continue;
if (!summaryCurve->summaryCase()) continue;
if (!summaryCurve->summaryCaseY()) continue;
if (summaryCurve->summaryCase() == summaryCase)
if (summaryCurve->summaryCaseY() == summaryCase)
{
summaryCurvesToDelete.push_back(summaryCurve);
}
@@ -587,9 +587,9 @@ void RimSummaryCurveFilter::createCurvesFromCurveDefinitions(const std::set<RiaS
RimSummaryCurve* curve = new RimSummaryCurve();
curve->setParentQwtPlotNoReplot(m_parentQwtPlot);
curve->setSummaryCase(currentCase);
curve->setSummaryAddress(caseAddrPair.summaryAddress());
curve->setYAxis(m_plotAxis());
curve->setSummaryCaseY(currentCase);
curve->setSummaryAddressY(caseAddrPair.summaryAddress());
curve->setLeftOrRightAxisY(m_plotAxis());
curve->applyCurveAutoNameSettings(*m_curveNameConfig());
m_curves.push_back(curve);

View File

@@ -195,11 +195,21 @@ QString RimSummaryPlotYAxisFormatter::autoAxisTitle() const
{
std::map<std::string, std::set<std::string> > unitToQuantityNameMap;
for ( RimSummaryCurve* rimCurve : m_summaryCurves )
if (m_axisProperties->plotAxisType() == RiaDefines::PLOT_AXIS_BOTTOM)
{
if ( rimCurve->yAxis() == this->m_axisProperties->plotAxisType() )
for (RimSummaryCurve* rimCurve : m_summaryCurves)
{
unitToQuantityNameMap[rimCurve->unitName()].insert(rimCurve->summaryAddress().quantityName());
unitToQuantityNameMap[rimCurve->unitNameX()].insert(rimCurve->summaryAddressX().quantityName());
}
}
else
{
for ( RimSummaryCurve* rimCurve : m_summaryCurves )
{
if ( rimCurve->axisY() == this->m_axisProperties->plotAxisType() )
{
unitToQuantityNameMap[rimCurve->unitNameY()].insert(rimCurve->summaryAddressY().quantityName());
}
}
}

View File

@@ -266,7 +266,7 @@ QString RimSummaryPlot::asciiDataForPlotExport() const
for (RimSummaryCurve* curve : curves)
{
if (!curve->isCurveVisible()) continue;
QString curveCaseName = curve->summaryCase()->caseName();
QString curveCaseName = curve->summaryCaseY()->caseName();
size_t casePosInList = cvf::UNDEFINED_SIZE_T;
for (size_t i = 0; i < caseNames.size(); i++)
@@ -282,7 +282,7 @@ QString RimSummaryPlot::asciiDataForPlotExport() const
timeSteps.push_back(curveTimeSteps);
std::vector<std::vector<double> > curveDataForCase;
std::vector<double> curveYData = curve->yValues();
std::vector<double> curveYData = curve->valuesY();
curveDataForCase.push_back(curveYData);
allCurveData.push_back(curveDataForCase);
@@ -292,7 +292,7 @@ QString RimSummaryPlot::asciiDataForPlotExport() const
}
else
{
std::vector<double> curveYData = curve->yValues();
std::vector<double> curveYData = curve->valuesY();
allCurveData[casePosInList].push_back(curveYData);
QString curveName = curve->curveName();
@@ -552,7 +552,7 @@ void RimSummaryPlot::updateZoomForAxis(RiaDefines::PlotAxis plotAxis)
for (RimSummaryCurve* c : visibleSummaryCurvesForAxis(plotAxis))
{
std::vector<double> curveValues = c->yValues();
std::vector<double> curveValues = c->valuesY();
yValues.insert(yValues.end(), curveValues.begin(), curveValues.end());
plotCurves.push_back(c->qwtPlotCurve());
}
@@ -607,7 +607,7 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::visibleSummaryCurvesForAxis(RiaDef
{
for (RimSummaryCurve* curve : m_summaryCurves_OBSOLETE)
{
if (curve->isCurveVisible() && curve->yAxis() == plotAxis)
if (curve->isCurveVisible() && curve->axisY() == plotAxis)
{
curves.push_back(curve);
}
@@ -619,7 +619,7 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::visibleSummaryCurvesForAxis(RiaDef
{
for (RimSummaryCurve* curve : curveFilter->curves())
{
if (curve->isCurveVisible() && curve->yAxis() == plotAxis)
if (curve->isCurveVisible() && curve->axisY() == plotAxis)
{
curves.push_back(curve);
}
@@ -631,7 +631,7 @@ std::vector<RimSummaryCurve*> RimSummaryPlot::visibleSummaryCurvesForAxis(RiaDef
{
for (RimSummaryCurve* curve : m_summaryCurveCollection->curves())
{
if (curve->isCurveVisible() && curve->yAxis() == plotAxis)
if (curve->isCurveVisible() && curve->axisY() == plotAxis)
{
curves.push_back(curve);
}
@@ -962,9 +962,9 @@ void RimSummaryPlot::deleteCurvesAssosiatedWithCase(RimSummaryCase* summaryCase)
for (RimSummaryCurve* summaryCurve : m_summaryCurves_OBSOLETE)
{
if (!summaryCurve) continue;
if (!summaryCurve->summaryCase()) continue;
if (!summaryCurve->summaryCaseY()) continue;
if (summaryCurve->summaryCase() == summaryCase)
if (summaryCurve->summaryCaseY() == summaryCase)
{
summaryCurvesToDelete.push_back(summaryCurve);
}