//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RimEnsembleCurveSet* RicNewSummaryEnsembleCurveSetFeature::addDefaultCurveSet(RimSummaryPlot* plot, RimSummaryCaseCollection* ensemble) { CVF_ASSERT(plot && ensemble); RimProject* project = RiaApplication::instance()->project(); CVF_ASSERT(project); RimEnsembleCurveSet* curveSet = new RimEnsembleCurveSet(); // Use same counting as RicNewSummaryCurveFeature::onActionTriggered auto colorIndex = plot->singleColorCurveCount(); curveSet->setColor(RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f(colorIndex)); curveSet->legendConfig()->setColorRange( RimEnsembleCurveSetColorManager::cycledEnsembleColorRange(static_cast<int>(colorIndex))); curveSet->setSummaryCaseCollection(ensemble); curveSet->setSummaryAddress(RifEclipseSummaryAddress::fieldAddress("FOPT")); plot->ensembleCurveSetCollection()->addCurveSet(curveSet); return curveSet; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicSummaryCurveCreator::updatePreviewCurvesFromCurveDefinitions( const std::set<RiaSummaryCurveDefinition>& allCurveDefsToDisplay, const std::set<RiaSummaryCurveDefinition>& curveDefsToAdd, const std::set<RimSummaryCurve*>& curvesToDelete) { static bool warningDisplayed = false; RimSummaryCase* prevCase = nullptr; std::set<RiaSummaryCurveDefinition> summaryCurveDefsToDisplay; // Ignore curve sets when assigning colors to singe summary curves for (const auto& def : allCurveDefsToDisplay) { if (!def.isEnsembleCurve()) summaryCurveDefsToDisplay.insert(def); } RimSummaryCurveAppearanceCalculator curveLookCalc( summaryCurveDefsToDisplay, getAllSummaryCaseNames(), getAllSummaryWellNames()); initCurveAppearanceCalculator(curveLookCalc); // Delete curves for (const auto& curve : curvesToDelete) { m_previewPlot->deleteCurve(curve); } size_t ensembleCurveCnt = ensembleCurveCount(allCurveDefsToDisplay); // Add new curves for (const auto& curveDef : curveDefsToAdd) { RimSummaryCase* currentCase = curveDef.summaryCase(); RimSummaryCurve* curve = new RimSummaryCurve(); curve->setSummaryCaseY(currentCase); curve->setSummaryAddressY(curveDef.summaryAddress()); curve->applyCurveAutoNameSettings(*m_curveNameConfig()); if (curveDef.isEnsembleCurve()) { // Find curveSet RimEnsembleCurveSet* curveSet = nullptr; for (const auto& cs : m_previewPlot->ensembleCurveSetCollection()->curveSets()) { if (cs->summaryCaseCollection() == curveDef.ensemble() && cs->summaryAddress() == curveDef.summaryAddress()) { curveSet = cs; break; } } if (!curveSet) { curveSet = new RimEnsembleCurveSet(); curveSet->setSummaryCaseCollection(curveDef.ensemble()); curveSet->setSummaryAddress(curveDef.summaryAddress()); m_previewPlot->ensembleCurveSetCollection()->addCurveSet(curveSet); // Set single curve set color size_t colorIndex = m_previewPlot->ensembleCurveSetCollection()->curveSetCount(); curveSet->setColor(RiaColorTables::summaryCurveDefaultPaletteColors().cycledColor3f(colorIndex)); if (m_previewPlot->ensembleCurveSetCollection()->curveSets().size() > 1 && ensembleCurveCnt > ENSEMBLE_CURVE_COUNT_THRESHOLD) { // Toggle off new curve set and display warning curveSet->showCurves(false); if (!warningDisplayed) { QMessageBox mbox; mbox.setIcon(QMessageBox::Icon::Warning); mbox.setInformativeText( "The new curve set is hidden. Too many visible curve sets may lead to poor performance"); mbox.exec(); warningDisplayed = true; } } } curveSet->addCurve(curve); } else { m_previewPlot->addCurveNoUpdate(curve); curveLookCalc.setupCurveLook(curve); } } m_previewPlot->loadDataAndUpdate(); m_previewPlot->zoomAll(); m_previewPlot->updateConnectedEditors(); m_previewPlot->summaryCurveCollection()->updateConnectedEditors(); }