Sector export: Add refinement regions

Promote sector-export refinement from inline wizard fields to first-class
PDM objects so users can create, edit, and preview refinement regions in
the 3D view before opening the export dialog.
This commit is contained in:
Kristian Bendiksen committed 2026-04-29 13:14:49 +02:00
1 parent e936ce24a6
commit 9d04f0b122
19 files changed
+1637 -312

No files matched your search

@@ -77,6 +77,8 @@
#include "RimMultipleEclipseResults.h"
#include "RimOilField.h"
#include "RimProject.h"
#include "RimRefinementRegion.h"
#include "RimRefinementRegionCollection.h"
#include "RimRegularLegendConfig.h"
#include "RimReservoirCellResultsStorage.h"
#include "RimSeismicSection.h"
@@ -101,6 +103,7 @@
#include "RiuTools.h"
#include "RiuViewer.h"
#include "RivRefinementRegionPartMgr.h"
#include "RivReservoirSimWellsPartMgr.h"
#include "RivReservoirViewPartMgr.h"
#include "RivSingleCellPartGenerator.h"
@@ -215,10 +218,11 @@ RimEclipseView::RimEclipseView()
faultResultSettings()->setReservoirView( this );
m_reservoirGridPartManager = new RivReservoirViewPartMgr( this );
m_simWellsPartManager = new RivReservoirSimWellsPartMgr( this );
m_streamlinesPartManager = new RivStreamlinesPartMgr( this );
m_eclipseCase = nullptr;
m_reservoirGridPartManager = new RivReservoirViewPartMgr( this );
m_simWellsPartManager = new RivReservoirSimWellsPartMgr( this );
m_streamlinesPartManager = new RivStreamlinesPartMgr( this );
m_refinementRegionPartManager = new RivRefinementRegionPartMgr;
m_eclipseCase = nullptr;
nameConfig()->setCustomName( "3D View" );
nameConfig()->hideCaseNameField( false );
@@ -234,12 +238,18 @@ RimEclipseView::RimEclipseView()
CAF_PDM_InitFieldNoDefault( &m_cameraPositions, "CameraPositions", "Camera Positions for Cases" );
CAF_PDM_InitFieldNoDefault( &m_refinementRegions, "RefinementRegions", "Refinement Regions" );
m_refinementRegions = new RimRefinementRegionCollection();
setDeletable( true );
updateAnimations.connect( this, &RimEclipseView::onAnimationsUpdate );
m_faultReactVizModel = new cvf::ModelBasicList;
m_faultReactVizModel->setName( "FaultReactModel" );
m_refinementRegionsVizModel = new cvf::ModelBasicList;
m_refinementRegionsVizModel->setName( "RefinementRegionsModel" );
}
//--------------------------------------------------------------------------------------------------
@@ -334,6 +344,14 @@ RimFaultReactivationModelCollection* RimEclipseView::faultReactivationModelColle
return m_faultReactivationModelCollection;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimRefinementRegionCollection* RimEclipseView::refinementRegionCollection() const
{
return m_refinementRegions();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
@@ -742,6 +760,14 @@ void RimEclipseView::onCreateDisplayModel()
m_faultReactivationModelCollection->appendPartsToModel( this, m_faultReactVizModel.p(), transform.p(), ownerCase()->allCellsBoundingBox() );
nativeOrOverrideViewer()->addStaticModelOnce( m_faultReactVizModel.p(), isUsingOverrideViewer() );
// Refinement region preview boxes
m_refinementRegionsVizModel->removeAllParts();
m_refinementRegionPartManager->buildGeometry( refinementRegionCollection(), eclipseCase(), transform.p() );
m_refinementRegionPartManager->appendStaticPartsToModel( m_refinementRegionsVizModel.p() );
m_refinementRegionPartManager->updateCellResultColor( m_currentTimeStep, cellResult() );
m_refinementRegionsVizModel->updateBoundingBoxesRecursive();
nativeOrOverrideViewer()->addStaticModelOnce( m_refinementRegionsVizModel.p(), isUsingOverrideViewer() );
// Surfaces
m_surfaceVizModel->removeAllParts();
if ( surfaceInViewCollection() )
@@ -892,6 +918,8 @@ void RimEclipseView::onUpdateDisplayModelForCurrentTimeStep()
updateVisibleCellColors();
m_refinementRegionPartManager->updateCellResultColor( m_currentTimeStep, cellResult() );
wellCollection()->scaleWellDisks();
appendWellsAndFracturesToModel();
@@ -1250,6 +1278,11 @@ void RimEclipseView::initAfterRead()
cellResult()->setReservoirView( this );
cellEdgeResult()->setReservoirView( this );
if ( !m_refinementRegions() )
{
m_refinementRegions = new RimRefinementRegionCollection();
}
updateUiIconFromToggleField();
}
@@ -2030,6 +2063,7 @@ void RimEclipseView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
{
uiTreeOrdering.add( m_overlayInfoConfig() );
uiTreeOrdering.add( m_gridCollection() );
if ( m_refinementRegions() ) uiTreeOrdering.add( m_refinementRegions() );
uiTreeOrdering.add( cellResult() );
uiTreeOrdering.add( cellEdgeResult() );
uiTreeOrdering.add( cellFilterCollection() );