mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-27 07:30:20 -05:00
Extends the existing single-curve auto axis assignment (unit and summary vector matching, then alternating left/right) to also cover RimEnsembleCurveSet. Previously ensemble curve sets were always placed on the default left axis, so e.g. FOPT and FOPR ensembles ended up on the same axis despite differing units. - Add RimEnsembleCurveSet::unitNameY(), looked up from the first available summary case reader in the ensemble. - Move X and Y axis assignment from RimSummaryPlot to new RimSummaryPlotTools. Y-axis assignment takes a RiaSummaryAddressModifier::CurveAddressProvider, and compares against both curves and curve sets in the plot. - RimEnsembleCurveSetCollection::addCurveSet gains an autoAssignPlotAxis flag (default true, matching addCurveAndUpdate for single curves). Also fixes a bug in the summary plot editor where ensemble curve sets manually assigned to different Y-axes collapsed onto the same axis when clicking OK. The PdmPtrField axis reference does not resolve across the cloned preview and target plots. Add RimEnsembleCurveSet::findOrAssignLeftOrRightAxisY() to capture and re-apply the axis explicitly. Add RimSummaryPlot-Test.cpp with unit tests for axis auto-assignment of curves and ensemble curve sets. Fixes #14728
42 lines
1.7 KiB
C++
42 lines
1.7 KiB
C++
/////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (C) 2026- Equinor ASA
|
|
//
|
|
// ResInsight is free software: you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
// FITNESS FOR A PARTICULAR PURPOSE.
|
|
//
|
|
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
|
|
// for more details.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include "RiaPlotDefines.h"
|
|
#include "Summary/RiaSummaryAddressModifier.h"
|
|
|
|
#include <vector>
|
|
|
|
class RimPlotAxisPropertiesInterface;
|
|
class RimSummaryCurve;
|
|
class RimSummaryPlot;
|
|
|
|
namespace RimSummaryPlotTools
|
|
{
|
|
// Assign a Y-axis based on matching unit or summary vector of the other curves and curve sets in the plot. Creates a new
|
|
// axis if required.
|
|
void assignYPlotAxis( RimSummaryPlot* plot,
|
|
const std::vector<RimPlotAxisPropertiesInterface*>& axisProperties,
|
|
const RiaSummaryAddressModifier::CurveAddressProvider& curveProvider );
|
|
|
|
// Assign an X-axis for curves using a summary vector as X-axis, based on matching unit or summary vector of the other curves in
|
|
// the plot. Creates a new axis if required.
|
|
void assignXPlotAxis( RimSummaryPlot* plot, const std::vector<RimPlotAxisPropertiesInterface*>& axisProperties, RimSummaryCurve* curve );
|
|
} // namespace RimSummaryPlotTools
|