Skip to content

Commit

Permalink
Create one multi plot per cross plot
Browse files Browse the repository at this point in the history
  • Loading branch information
magnesj committed Sep 25, 2023
1 parent 0fbcccd commit ed5f49b
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions ApplicationLibCode/ProjectDataModel/RimMainPlotCollection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -196,35 +196,31 @@ void RimMainPlotCollection::initAfterRead()

// Move cross plots into summary plot collection
auto crossPlots = m_summaryCrossPlotCollection_OBSOLETE->plots();
if ( !crossPlots.empty() )
for ( auto crossPlot : crossPlots )
{
m_summaryCrossPlotCollection_OBSOLETE->removePlot( crossPlot );

auto* summaryMultiPlot = new RimSummaryMultiPlot;
summaryMultiPlot->setMultiPlotTitle( QString( "Multi Plot %1" ).arg( m_summaryMultiPlotCollection->multiPlots().size() + 1 ) );
summaryMultiPlot->setAsPlotMdiWindow();
m_summaryMultiPlotCollection->addSummaryMultiPlot( summaryMultiPlot );

for ( auto crossPlot : crossPlots )
{
m_summaryCrossPlotCollection_OBSOLETE->removePlot( crossPlot );
summaryMultiPlot->addPlot( crossPlot );

// We want to convert RimSummaryCrossPlot into a RimSummaryPlot. The cross plot is derived from RimSummaryPlot, but we need to
// create a new RimSummaryPlot to be able to store the PDM object as a RimSummaryPlot instead of RimSummaryCrossPlot
auto summaryPlot = new RimSummaryPlot;
summaryMultiPlot->addPlot( summaryPlot );

for ( auto curve : crossPlot->allCurves( RimSummaryDataSourceStepping::Axis::Y_AXIS ) )
{
crossPlot->removeCurve( curve );
// We want to convert RimSummaryCrossPlot into a RimSummaryPlot. The cross plot is derived from RimSummaryPlot, but we need to
// create a new RimSummaryPlot to be able to store the PDM object as a RimSummaryPlot instead of RimSummaryCrossPlot
auto summaryPlot = new RimSummaryPlot;
summaryMultiPlot->addPlot( summaryPlot );

if ( curve->summaryCaseX() != nullptr ) curve->setAxisTypeX( RiaDefines::HorizontalAxisType::SUMMARY_VECTOR );
for ( auto curve : crossPlot->allCurves( RimSummaryDataSourceStepping::Axis::Y_AXIS ) )
{
crossPlot->removeCurve( curve );

summaryPlot->insertCurve( curve, std::numeric_limits<size_t>::max() );
summaryPlot->findOrAssignPlotAxisX( curve );
}
if ( curve->summaryCaseX() != nullptr ) curve->setAxisTypeX( RiaDefines::HorizontalAxisType::SUMMARY_VECTOR );

delete crossPlot;
summaryPlot->insertCurve( curve, std::numeric_limits<size_t>::max() );
summaryPlot->findOrAssignPlotAxisX( curve );
}

delete crossPlot;
}
}

Expand Down

0 comments on commit ed5f49b

Please sign in to comment.