Files
ResInsight/ApplicationLibCode/ProjectDataModel/ContourMap/RimEclipseContourMapViewCollection.cpp
T
Magne Sjaastad c8023e8803 #1044 Contour maps in 3d views: wire the contour map collection into Eclipse and GeoMech 3d views
Give RimGridView a RimContourMapInViewCollection and let RimEclipseView and RimGeoMechView build their 3d model from it. A dedicated contour map view (RimEclipseContourMapView/RimStatisticsContourMapView) shows its own contour map and returns no collection of its own, so it is unaffected. Adjust RimSurfaceInViewCollection so surfaces and contour maps coexist in the same 3d view without z-fighting.
2026-09-07 09:32:04 +02:00

82 lines
3.2 KiB
C++

#include "RimEclipseContourMapViewCollection.h"
#include "ContourMap/RimContourMapInViewCollection.h"
#include "Rim3dView.h"
#include "RimEclipseCase.h"
#include "RimEclipseContourMapView.h"
#include "RimProject.h"
CAF_PDM_SOURCE_INIT( RimEclipseContourMapViewCollection, "Eclipse2dViewCollection" );
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseContourMapViewCollection::RimEclipseContourMapViewCollection()
{
CAF_PDM_InitObject( "Contour Maps", ":/2DMaps16x16.png" );
CAF_PDM_InitFieldNoDefault( &m_items, "EclipseViews", "Contour Maps", ":/CrossSection16x16.png" );
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimEclipseContourMapViewCollection::~RimEclipseContourMapViewCollection()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::vector<RimEclipseContourMapView*> RimEclipseContourMapViewCollection::views()
{
return items();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseContourMapViewCollection::addView( RimEclipseContourMapView* contourMap )
{
addItem( contourMap );
RimContourMapInViewCollection::updateViewTreeItemsInAllViews();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseContourMapViewCollection::onChildDeleted( caf::PdmChildArrayFieldHandle* childArray,
std::vector<caf::PdmObjectHandle*>& referringObjects )
{
auto eclipseCase = firstAncestorOrThisOfType<RimEclipseCase>();
if ( eclipseCase ) eclipseCase->updateConnectedEditors();
RimContourMapInViewCollection::updateViewTreeItemsInAllViews();
// A deleted contour map may have been visible in a 3d view
if ( RimProject* project = RimProject::current() )
{
for ( Rim3dView* view : project->allViews() )
{
if ( view ) view->scheduleCreateDisplayModelAndRedraw();
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseContourMapViewCollection::clearWithoutDelete()
{
m_items.clearWithoutDelete();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimEclipseContourMapViewCollection::removeChild( RimEclipseContourMapView* contourMap )
{
m_items.removeChild( contourMap );
}