Create Curve Set: Use FOPT if no default vector is specified in Preferences

This commit is contained in:
Magne Sjaastad
2025-04-04 13:37:53 +02:00
parent 9ac0b887ed
commit 132fc1baa2
2 changed files with 38 additions and 20 deletions
@@ -77,26 +77,7 @@ std::vector<RimEnsembleCurveSet*> RicNewSummaryEnsembleCurveSetFeature::addDefau
{
if ( addr.isUiTextMatchingFilterText( filter ) )
{
RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet();
// Use same counting as RicNewSummaryCurveFeature::onActionTriggered
auto colorIndex = plot->singleColorCurveCount();
curveSet->setColor(
RimSummaryCurveAppearanceCalculator::computeTintedCurveColorForAddress( addr, static_cast<int>( colorIndex ) ) );
curveSet->legendConfig()->setColorLegend( RimRegularLegendConfig::mapToColorLegend(
RimEnsembleCurveSetColorManager::cycledEnsembleColorRange( static_cast<int>( colorIndex ) ) ) );
curveSet->setSummaryEnsemble( ensemble );
curveSet->setSummaryAddressYAndStatisticsFlag( addr );
curveSet->setDefaultTimeRange();
auto filter = curveSet->filterCollection()->addFilter();
filter->setSummaryAddresses( { addr } );
filter->setActive( false );
plot->ensembleCurveSetCollection()->addCurveSet( curveSet );
curveSets.push_back( curveSet );
curveSets.push_back( addCurveSet( plot, ensemble, addr ) );
}
}
}
@@ -104,6 +85,36 @@ std::vector<RimEnsembleCurveSet*> RicNewSummaryEnsembleCurveSetFeature::addDefau
return curveSets;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEnsembleCurveSet* RicNewSummaryEnsembleCurveSetFeature::addCurveSet( RimSummaryPlot* plot,
RimSummaryEnsemble* ensemble,
const RifEclipseSummaryAddress& address )
{
if ( !plot || !ensemble ) return nullptr;
RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet();
// Use same counting as RicNewSummaryCurveFeature::onActionTriggered
auto colorIndex = plot->singleColorCurveCount();
curveSet->setColor( RimSummaryCurveAppearanceCalculator::computeTintedCurveColorForAddress( address, static_cast<int>( colorIndex ) ) );
curveSet->legendConfig()->setColorLegend( RimRegularLegendConfig::mapToColorLegend(
RimEnsembleCurveSetColorManager::cycledEnsembleColorRange( static_cast<int>( colorIndex ) ) ) );
curveSet->setSummaryEnsemble( ensemble );
curveSet->setSummaryAddressYAndStatisticsFlag( address );
curveSet->setDefaultTimeRange();
auto filter = curveSet->filterCollection()->addFilter();
filter->setSummaryAddresses( { address } );
filter->setActive( false );
plot->ensembleCurveSetCollection()->addCurveSet( curveSet );
return curveSet;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -178,6 +189,11 @@ void RicNewSummaryEnsembleCurveSetFeature::onActionTriggered( bool isChecked )
auto curveSets = RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSets( plot, ensemble );
if ( !curveSets.empty() ) firstCurveSet = curveSets.front();
}
else
{
auto address = RifEclipseSummaryAddress::fromEclipseTextAddress( "FOPT" );
firstCurveSet = RicNewSummaryEnsembleCurveSetFeature::addCurveSet( plot, ensemble, address );
}
plot->loadDataAndUpdate();
plot->updateAllRequiredEditors();
@@ -25,6 +25,7 @@
class RimSummaryPlot;
class RimEnsembleCurveSet;
class RimSummaryEnsemble;
class RifEclipseSummaryAddress;
//==================================================================================================
///
@@ -36,6 +37,7 @@ class RicNewSummaryEnsembleCurveSetFeature : public caf::CmdFeature
public:
static RimSummaryPlot* createPlotForCurveSetsAndUpdate( std::vector<RimSummaryEnsemble*> ensembles );
static std::vector<RimEnsembleCurveSet*> addDefaultCurveSets( RimSummaryPlot* plot, RimSummaryEnsemble* ensemble );
static RimEnsembleCurveSet* addCurveSet( RimSummaryPlot* plot, RimSummaryEnsemble* ensemble, const RifEclipseSummaryAddress& address );
protected:
bool isCommandEnabled() const override;