mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#1909 Fix assertation failure in RimSummaryCurveAppearanceCalculator
This commit is contained in:
parent
9eb16f22cd
commit
76f8b9ac90
@ -91,14 +91,7 @@ RimSummaryCurveAppearanceCalculator::RimSummaryCurveAppearanceCalculator(const s
|
||||
}
|
||||
}
|
||||
|
||||
m_caseCount = m_caseToAppearanceIdxMap.size();
|
||||
m_variableCount = m_varToAppearanceIdxMap .size();
|
||||
m_wellCount = m_welToAppearanceIdxMap .size();
|
||||
m_groupCount = m_grpToAppearanceIdxMap .size();
|
||||
m_regionCount = m_regToAppearanceIdxMap .size();
|
||||
|
||||
// Select the default appearance type for each data "dimension"
|
||||
|
||||
m_caseAppearanceType = NONE;
|
||||
m_varAppearanceType = NONE;
|
||||
m_wellAppearanceType = NONE;
|
||||
@ -114,11 +107,11 @@ RimSummaryCurveAppearanceCalculator::RimSummaryCurveAppearanceCalculator(const s
|
||||
m_currentCurveGradient = 0.0f;
|
||||
|
||||
m_dimensionCount = 0;
|
||||
if(m_variableCount > 1) { m_varAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_caseCount > 1) { m_caseAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_wellCount > 1) { m_wellAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_groupCount > 1) { m_groupAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_regionCount > 1) { m_regionAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_varToAppearanceIdxMap.size() > 1) { m_varAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_caseToAppearanceIdxMap.size() > 1) { m_caseAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_welToAppearanceIdxMap.size() > 1) { m_wellAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_grpToAppearanceIdxMap.size() > 1) { m_groupAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
if(m_regToAppearanceIdxMap.size() > 1) { m_regionAppearanceType = *(unusedAppearTypes.begin()); unusedAppearTypes.erase(unusedAppearTypes.begin()); m_dimensionCount++; }
|
||||
|
||||
if (m_dimensionCount == 0) m_varAppearanceType = COLOR; // basically one curve
|
||||
|
||||
@ -291,7 +284,9 @@ void RimSummaryCurveAppearanceCalculator::getDimensions(CurveAppearanceType* cas
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSummaryCurveAppearanceCalculator::setupCurveLook(RimSummaryCurve* curve)
|
||||
{
|
||||
m_currentCurveBaseColor = cvf::Color3f(0, 0, 0);
|
||||
// The gradient is from negative to positive.
|
||||
// Choose default base color as the midpoint between black and white.
|
||||
m_currentCurveBaseColor = cvf::Color3f(0.5f, 0.5f, 0.5f);
|
||||
m_currentCurveGradient = 0.0f;
|
||||
|
||||
int caseAppearanceIdx = m_caseToAppearanceIdxMap[curve->summaryCaseY()];
|
||||
@ -305,10 +300,10 @@ void RimSummaryCurveAppearanceCalculator::setupCurveLook(RimSummaryCurve* curve)
|
||||
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);
|
||||
setOneCurveAppearance(m_groupAppearanceType, m_groupCount, grpAppearanceIdx, curve);
|
||||
setOneCurveAppearance(m_regionAppearanceType, m_regionCount, regAppearanceIdx, curve);
|
||||
setOneCurveAppearance(m_caseAppearanceType, m_allSummaryCaseNames.size(), caseAppearanceIdx, curve);
|
||||
setOneCurveAppearance(m_wellAppearanceType, m_allSummaryWellNames.size(), welAppearanceIdx, curve);
|
||||
setOneCurveAppearance(m_groupAppearanceType, m_grpToAppearanceIdxMap.size(), grpAppearanceIdx, curve);
|
||||
setOneCurveAppearance(m_regionAppearanceType, m_regToAppearanceIdxMap.size(), regAppearanceIdx, curve);
|
||||
|
||||
if (m_varAppearanceType == COLOR && m_secondCharToVarToAppearanceIdxMap.size() > 1)
|
||||
{
|
||||
@ -353,7 +348,7 @@ void RimSummaryCurveAppearanceCalculator::setupCurveLook(RimSummaryCurve* curve)
|
||||
}
|
||||
else
|
||||
{
|
||||
setOneCurveAppearance(m_varAppearanceType, m_variableCount, varAppearanceIdx, curve);
|
||||
setOneCurveAppearance(m_varAppearanceType, m_varToAppearanceIdxMap.size(), varAppearanceIdx, curve);
|
||||
}
|
||||
|
||||
curve->setColor(gradeColor(m_currentCurveBaseColor, m_currentCurveGradient));
|
||||
|
@ -67,6 +67,8 @@ public:
|
||||
static RimPlotCurve::PointSymbolEnum cycledSymbol(int index);
|
||||
|
||||
private:
|
||||
template<typename S>
|
||||
int findMaxApperanceIndexInMap(const std::map<S, int>& mapToSearch) const;
|
||||
void setOneCurveAppearance(CurveAppearanceType appeaType, size_t totalCount, int appeaIdx, RimSummaryCurve* curve);
|
||||
void updateApperanceIndices();
|
||||
std::map<std::string, size_t> mapNameToAppearanceIndex(CurveAppearanceType & appearance, const std::set<std::string>& names);
|
||||
@ -81,11 +83,6 @@ private:
|
||||
cvf::Color3f m_currentCurveBaseColor;
|
||||
float m_currentCurveGradient;
|
||||
|
||||
size_t m_caseCount;
|
||||
size_t m_variableCount;
|
||||
size_t m_wellCount;
|
||||
size_t m_groupCount;
|
||||
size_t m_regionCount;
|
||||
int m_dimensionCount;
|
||||
|
||||
CurveAppearanceType m_caseAppearanceType;
|
||||
|
Loading…
Reference in New Issue
Block a user