mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#5285 Surface Import command. SurfaceInView tree-items. Delete.
Ready to start on visualization code
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
|
||||
#include "RiaGuiApplication.h"
|
||||
|
||||
#include "Rim2dIntersectionViewCollection.h"
|
||||
#include "Rim3dView.h"
|
||||
#include "RimAnnotationCollection.h"
|
||||
#include "RimAnnotationInViewCollection.h"
|
||||
@@ -33,6 +34,7 @@
|
||||
#include "RimEnsembleCurveSet.h"
|
||||
#include "RimEnsembleCurveSetCollection.h"
|
||||
#include "RimFormationNamesCollection.h"
|
||||
#include "RimFractureTemplateCollection.h"
|
||||
#include "RimGeoMechPropertyFilterCollection.h"
|
||||
#include "RimIntersectionCollection.h"
|
||||
#include "RimIntersectionResultsDefinitionCollection.h"
|
||||
@@ -41,6 +43,7 @@
|
||||
#include "RimSummaryCrossPlotCollection.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimSurfaceCollection.h"
|
||||
#include "RimViewLinkerCollection.h"
|
||||
#include "RimWellLogPlot.h"
|
||||
#include "RimWellLogPlotCollection.h"
|
||||
@@ -50,9 +53,6 @@
|
||||
|
||||
#include "RiuPlotMainWindow.h"
|
||||
|
||||
#include "RimFractureTemplateCollection.h"
|
||||
|
||||
#include "Rim2dIntersectionViewCollection.h"
|
||||
#include "cafNotificationCenter.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmDocument.h"
|
||||
@@ -329,6 +329,15 @@ void RicDeleteItemExec::redo()
|
||||
annotationColl->onAnnotationDeleted();
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
RimSurfaceCollection* surfCollection;
|
||||
parentObj->firstAncestorOrThisOfType( surfCollection );
|
||||
if ( surfCollection )
|
||||
{
|
||||
surfCollection->updateViews();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -54,6 +54,7 @@
|
||||
#include "RimSummaryCurve.h"
|
||||
#include "RimSummaryCurveFilter.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSurface.h"
|
||||
#include "RimTextAnnotation.h"
|
||||
#include "RimViewController.h"
|
||||
#include "RimWellAllocationPlot.h"
|
||||
@@ -139,6 +140,7 @@ bool isDeletable( caf::PdmUiItem* uiItem )
|
||||
if ( dynamic_cast<RimReachCircleAnnotation*>( uiItem ) ) return true;
|
||||
if ( dynamic_cast<RimPolylinesAnnotation*>( uiItem ) ) return true;
|
||||
if ( dynamic_cast<RimIntersectionResultDefinition*>( uiItem ) ) return true;
|
||||
if ( dynamic_cast<RimSurface*>( uiItem ) ) return true;
|
||||
|
||||
if ( dynamic_cast<RimGridCrossPlot*>( uiItem ) )
|
||||
{
|
||||
|
@@ -57,7 +57,7 @@ void RicImportSurfacesFeature::onActionTriggered( bool isChecked )
|
||||
// Remember the path to next time
|
||||
app->setLastUsedDialogDirectory( "BINARY_GRID", QFileInfo( fileNames.last() ).absolutePath() );
|
||||
|
||||
// Find or create the AnnotationsCollection
|
||||
// Find or create the SurfaceCollection
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimSurfaceCollection* surfColl = proj->activeOilField()->surfaceCollection();
|
||||
@@ -66,20 +66,17 @@ void RicImportSurfacesFeature::onActionTriggered( bool isChecked )
|
||||
{
|
||||
surfColl = new RimSurfaceCollection();
|
||||
proj->activeOilField()->surfaceCollection = surfColl;
|
||||
proj->updateConnectedEditors();
|
||||
}
|
||||
|
||||
// For each file,
|
||||
|
||||
RimSurface* lastCreatedOrUpdated = surfColl->importSurfacesFromFiles( fileNames );
|
||||
|
||||
proj->updateConnectedEditors();
|
||||
|
||||
if ( lastCreatedOrUpdated )
|
||||
{
|
||||
Riu3DMainWindowTools::selectAsCurrentItem( lastCreatedOrUpdated );
|
||||
}
|
||||
|
||||
// surfColl->scheduleRedrawOfRelevantViews();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@@ -102,6 +102,8 @@
|
||||
#include "RimSummaryCurveCollection.h"
|
||||
#include "RimSummaryPlot.h"
|
||||
#include "RimSummaryPlotCollection.h"
|
||||
#include "RimSurface.h"
|
||||
#include "RimSurfaceCollection.h"
|
||||
#include "RimValveTemplate.h"
|
||||
#include "RimValveTemplateCollection.h"
|
||||
#include "RimViewController.h"
|
||||
@@ -799,6 +801,10 @@ caf::CmdFeatureMenuBuilder RimContextCommandBuilder::commandsFromSelection()
|
||||
menuBuilder << "Separator";
|
||||
menuBuilder << "RicConvertFractureTemplateUnitFeature";
|
||||
}
|
||||
else if ( dynamic_cast<RimSurfaceCollection*>( firstUiItem ) || dynamic_cast<RimSurface*>( firstUiItem ) )
|
||||
{
|
||||
menuBuilder << "RicImportSurfacesFeature";
|
||||
}
|
||||
else if ( dynamic_cast<RimAnnotationCollection*>( firstUiItem ) ||
|
||||
dynamic_cast<RimAnnotationGroupCollection*>( firstUiItem ) )
|
||||
{
|
||||
|
@@ -71,6 +71,7 @@
|
||||
#include "RimSimWellInView.h"
|
||||
#include "RimSimWellInViewCollection.h"
|
||||
#include "RimStimPlanColors.h"
|
||||
#include "RimSurfaceInViewCollection.h"
|
||||
#include "RimTernaryLegendConfig.h"
|
||||
#include "RimViewController.h"
|
||||
#include "RimViewLinker.h"
|
||||
@@ -1754,6 +1755,8 @@ void RimEclipseView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
|
||||
uiTreeOrdering.add( annotationCollection() );
|
||||
uiTreeOrdering.add( intersectionCollection() );
|
||||
|
||||
if ( surfaceInViewCollection() ) uiTreeOrdering.add( surfaceInViewCollection() );
|
||||
|
||||
uiTreeOrdering.add( m_rangeFilterCollection() );
|
||||
uiTreeOrdering.add( m_propertyFilterCollection() );
|
||||
uiTreeOrdering.skipRemainingChildren( true );
|
||||
|
@@ -42,6 +42,7 @@
|
||||
#include "RimIntersectionResultDefinition.h"
|
||||
#include "RimIntersectionResultsDefinitionCollection.h"
|
||||
#include "RimRegularLegendConfig.h"
|
||||
#include "RimSurfaceInViewCollection.h"
|
||||
#include "RimTensorResults.h"
|
||||
#include "RimTernaryLegendConfig.h"
|
||||
#include "RimViewLinker.h"
|
||||
@@ -907,6 +908,7 @@ void RimGeoMechView::defineUiTreeOrdering( caf::PdmUiTreeOrdering& uiTreeOrderin
|
||||
uiTreeOrdering.add( &m_wellMeasurementCollection );
|
||||
|
||||
uiTreeOrdering.add( m_intersectionCollection() );
|
||||
if ( surfaceInViewCollection() ) uiTreeOrdering.add( surfaceInViewCollection() );
|
||||
|
||||
uiTreeOrdering.add( m_rangeFilterCollection() );
|
||||
uiTreeOrdering.add( m_propertyFilterCollection() );
|
||||
|
@@ -29,8 +29,11 @@
|
||||
#include "RimGridCollection.h"
|
||||
#include "RimIntersectionCollection.h"
|
||||
#include "RimIntersectionResultsDefinitionCollection.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimPropertyFilterCollection.h"
|
||||
#include "RimSurfaceCollection.h"
|
||||
#include "RimSurfaceInViewCollection.h"
|
||||
#include "RimTextAnnotation.h"
|
||||
#include "RimViewController.h"
|
||||
#include "RimViewLinker.h"
|
||||
@@ -97,6 +100,9 @@ RimGridView::RimGridView()
|
||||
CAF_PDM_InitFieldNoDefault( &m_wellMeasurementCollection, "WellMeasurements", "Well Measurements", "", "", "" );
|
||||
m_wellMeasurementCollection = new RimWellMeasurementInViewCollection;
|
||||
m_wellMeasurementCollection.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_surfaceCollection, "SurfaceInViewCollection", "Surface Collection Field", "", "", "" );
|
||||
m_surfaceCollection.uiCapability()->setUiTreeHidden( true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -174,6 +180,14 @@ RimIntersectionCollection* RimGridView::intersectionCollection() const
|
||||
return m_intersectionCollection();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSurfaceInViewCollection* RimGridView::surfaceInViewCollection() const
|
||||
{
|
||||
return m_surfaceCollection();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -565,3 +579,28 @@ void RimGridView::updateWellMeasurements()
|
||||
{
|
||||
m_wellMeasurementCollection->syncWithChangesInWellMeasurementCollection();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGridView::updateSurfacesInViewTreeItems()
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimSurfaceCollection* surfColl = proj->activeOilField()->surfaceCollection();
|
||||
|
||||
if ( surfColl && surfColl->surfaces().size() )
|
||||
{
|
||||
if ( !m_surfaceCollection() )
|
||||
{
|
||||
m_surfaceCollection = new RimSurfaceInViewCollection();
|
||||
}
|
||||
|
||||
m_surfaceCollection->updateFromSurfaceCollection();
|
||||
}
|
||||
else
|
||||
{
|
||||
delete m_surfaceCollection;
|
||||
}
|
||||
|
||||
this->updateConnectedEditors();
|
||||
}
|
||||
|
@@ -31,6 +31,7 @@ class RimPropertyFilterCollection;
|
||||
class RimGridCollection;
|
||||
class RimCellRangeFilterCollection;
|
||||
class RimWellMeasurementInViewCollection;
|
||||
class RimSurfaceInViewCollection;
|
||||
|
||||
class RimGridView : public Rim3dView
|
||||
{
|
||||
@@ -47,6 +48,7 @@ public:
|
||||
cvf::ref<cvf::UByteArray> currentTotalCellVisibility();
|
||||
|
||||
RimIntersectionCollection* intersectionCollection() const;
|
||||
RimSurfaceInViewCollection* surfaceInViewCollection() const;
|
||||
RimIntersectionResultsDefinitionCollection* separateIntersectionResultsCollection() const;
|
||||
RimAnnotationInViewCollection* annotationCollection() const;
|
||||
RimWellMeasurementInViewCollection* measurementCollection() const;
|
||||
@@ -72,6 +74,7 @@ public:
|
||||
bool forceChange = false ) override;
|
||||
|
||||
void updateWellMeasurements();
|
||||
void updateSurfacesInViewTreeItems();
|
||||
|
||||
protected:
|
||||
virtual void updateViewFollowingRangeFilterUpdates();
|
||||
@@ -98,6 +101,7 @@ protected:
|
||||
caf::PdmChildField<RimGridCollection*> m_gridCollection;
|
||||
caf::PdmChildField<RimAnnotationInViewCollection*> m_annotationCollection;
|
||||
caf::PdmChildField<RimWellMeasurementInViewCollection*> m_wellMeasurementCollection;
|
||||
caf::PdmChildField<RimSurfaceInViewCollection*> m_surfaceCollection;
|
||||
|
||||
private:
|
||||
void onCreatePartCollectionFromSelection( cvf::Collection<cvf::Part>* parts ) override;
|
||||
|
@@ -64,6 +64,33 @@ QString RimSurface::userDescription()
|
||||
return m_userDescription();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimSurface::userDescriptionField()
|
||||
{
|
||||
return &m_userDescription;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSurface::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
||||
const QVariant& oldValue,
|
||||
const QVariant& newValue )
|
||||
{
|
||||
if ( changedField == &m_surfaceDefinitionFilePath )
|
||||
{
|
||||
updateDataFromFile();
|
||||
|
||||
// Todo: Update visualization
|
||||
}
|
||||
else if ( changedField == &m_color )
|
||||
{
|
||||
// Todo: Update visualization
|
||||
}
|
||||
}
|
||||
|
||||
struct SurfacePointData
|
||||
{
|
||||
int i;
|
||||
|
@@ -49,6 +49,11 @@ public:
|
||||
QString userDescription();
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
void fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
||||
const QVariant& oldValue,
|
||||
const QVariant& newValue ) override;
|
||||
|
||||
caf::PdmField<caf::FilePath> m_surfaceDefinitionFilePath;
|
||||
caf::PdmField<QString> m_userDescription;
|
||||
caf::PdmField<cvf::Color3f> m_color;
|
||||
|
@@ -20,8 +20,10 @@
|
||||
#include "QMessageBox"
|
||||
#include "RiaApplication.h"
|
||||
#include "RiaColorTables.h"
|
||||
#include "RimGridView.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSurface.h"
|
||||
#include "RimSurfaceInView.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimSurfaceCollection, "SurfaceCollection" );
|
||||
|
||||
@@ -122,6 +124,14 @@ RimSurface* RimSurfaceCollection::importSurfacesFromFiles( const QStringList& fi
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RimSurface*> RimSurfaceCollection::surfaces() const
|
||||
{
|
||||
return m_surfaces.childObjects();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -131,10 +141,53 @@ void RimSurfaceCollection::updateViews( const std::vector<RimSurface*>& surfsToR
|
||||
std::vector<RimGridView*> views;
|
||||
proj->allVisibleGridViews( views );
|
||||
|
||||
// Make sure the tree items are syncronized
|
||||
|
||||
for ( auto view : views )
|
||||
{
|
||||
// Update SurfaceInViewCollection
|
||||
// For each visible surfaceInView included in surfsToReload
|
||||
// LoadDataAndUpdate
|
||||
view->updateSurfacesInViewTreeItems();
|
||||
}
|
||||
|
||||
std::set<RimGridView*> viewsNeedingUpdate;
|
||||
|
||||
for ( auto surf : surfsToReload )
|
||||
{
|
||||
std::vector<RimSurfaceInView*> surfsInView;
|
||||
surf->objectsWithReferringPtrFieldsOfType( surfsInView );
|
||||
for ( auto surfInView : surfsInView )
|
||||
{
|
||||
RimGridView* gridView;
|
||||
surfInView->firstAncestorOrThisOfType( gridView );
|
||||
|
||||
if ( gridView ) viewsNeedingUpdate.insert( gridView );
|
||||
}
|
||||
}
|
||||
|
||||
// Update the views:
|
||||
for ( auto view : viewsNeedingUpdate )
|
||||
{
|
||||
view->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSurfaceCollection::updateViews()
|
||||
{
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
std::vector<RimGridView*> views;
|
||||
proj->allVisibleGridViews( views );
|
||||
|
||||
// Make sure the tree items are syncronized
|
||||
|
||||
for ( auto view : views )
|
||||
{
|
||||
view->updateSurfacesInViewTreeItems();
|
||||
}
|
||||
|
||||
for ( auto view : views )
|
||||
{
|
||||
view->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
|
@@ -34,6 +34,10 @@ public:
|
||||
|
||||
RimSurface* importSurfacesFromFiles( const QStringList& fileNames );
|
||||
|
||||
std::vector<RimSurface*> surfaces() const;
|
||||
|
||||
void updateViews();
|
||||
|
||||
private:
|
||||
void updateViews( const std::vector<RimSurface*>& surfsToReload );
|
||||
|
||||
|
@@ -27,9 +27,16 @@ CAF_PDM_SOURCE_INIT( RimSurfaceInView, "SurfaceInView" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSurfaceInView::RimSurfaceInView()
|
||||
{
|
||||
CAF_PDM_InitObject( "Surface", "", "", "" );
|
||||
CAF_PDM_InitObject( "Surface", ":/ReservoirSurface16x16.png", "", "" );
|
||||
|
||||
CAF_PDM_InitField( &m_isActive, "IsActive", true, "Visible", "", "", "" );
|
||||
m_isActive.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_name, "Name", "Name", "", "", "" );
|
||||
m_name.registerGetMethod( this, &RimSurfaceInView::name );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_surface, "SurfaceRef", "Surface", "", "", "" );
|
||||
m_surface.uiCapability()->setUiHidden( true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -40,7 +47,7 @@ RimSurfaceInView::~RimSurfaceInView() {}
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QString RimSurfaceInView::name()
|
||||
QString RimSurfaceInView::name() const
|
||||
{
|
||||
if ( m_surface ) return m_surface->userDescription();
|
||||
|
||||
@@ -51,3 +58,35 @@ QString RimSurfaceInView::name()
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSurfaceInView::loadDataAndUpdate() {}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSurface* RimSurfaceInView::surface() const
|
||||
{
|
||||
return m_surface();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSurfaceInView::setSurface( RimSurface* surf )
|
||||
{
|
||||
m_surface = surf;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimSurfaceInView::userDescriptionField()
|
||||
{
|
||||
return &m_name;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimSurfaceInView::objectToggleField()
|
||||
{
|
||||
return &m_isActive;
|
||||
}
|
||||
|
@@ -32,11 +32,16 @@ public:
|
||||
RimSurfaceInView();
|
||||
~RimSurfaceInView() override;
|
||||
|
||||
QString name();
|
||||
|
||||
void loadDataAndUpdate();
|
||||
|
||||
QString name() const;
|
||||
RimSurface* surface() const;
|
||||
void setSurface( RimSurface* surf );
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* userDescriptionField() override;
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
|
||||
caf::PdmProxyValueField<QString> m_name;
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmPtrField<RimSurface*> m_surface;
|
||||
|
@@ -18,6 +18,10 @@
|
||||
|
||||
#include "RimSurfaceInViewCollection.h"
|
||||
|
||||
#include "RiaApplication.h"
|
||||
#include "RimOilField.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimSurfaceCollection.h"
|
||||
#include "RimSurfaceInView.h"
|
||||
|
||||
CAF_PDM_SOURCE_INIT( RimSurfaceInViewCollection, "SurfaceInViewCollection" );
|
||||
@@ -27,9 +31,13 @@ CAF_PDM_SOURCE_INIT( RimSurfaceInViewCollection, "SurfaceInViewCollection" );
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RimSurfaceInViewCollection::RimSurfaceInViewCollection()
|
||||
{
|
||||
CAF_PDM_InitObject( "Surfaces", "", "", "" );
|
||||
CAF_PDM_InitObject( "Surfaces", ":/ReservoirSurfaces16x16.png", "", "" );
|
||||
|
||||
CAF_PDM_InitField( &m_isActive, "isActive", true, "Active", "", "", "" );
|
||||
m_isActive.uiCapability()->setUiHidden( true );
|
||||
|
||||
CAF_PDM_InitFieldNoDefault( &m_surfacesInView, "SurfacesInViewField", "SurfacesInViewField", "", "", "" );
|
||||
m_surfacesInView.uiCapability()->setUiTreeHidden( true );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -40,4 +48,64 @@ RimSurfaceInViewCollection::~RimSurfaceInViewCollection() {}
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimSurfaceInViewCollection::updateFromSurfaceCollection() {}
|
||||
void RimSurfaceInViewCollection::updateFromSurfaceCollection()
|
||||
{
|
||||
// Delete surfaceInView without any real Surface connection
|
||||
|
||||
std::vector<RimSurfaceInView*> surfsInView = m_surfacesInView.childObjects();
|
||||
|
||||
for ( auto surf : surfsInView )
|
||||
{
|
||||
if ( !surf->surface() )
|
||||
{
|
||||
m_surfacesInView.removeChildObject( surf );
|
||||
delete surf;
|
||||
}
|
||||
}
|
||||
|
||||
// Create new entries
|
||||
|
||||
RimProject* proj = RiaApplication::instance()->project();
|
||||
RimSurfaceCollection* surfColl = proj->activeOilField()->surfaceCollection();
|
||||
|
||||
if ( surfColl )
|
||||
{
|
||||
std::vector<RimSurface*> surfs = surfColl->surfaces();
|
||||
|
||||
for ( auto surf : surfs )
|
||||
{
|
||||
if ( !this->hasSurfaceInViewForSurface( surf ) )
|
||||
{
|
||||
RimSurfaceInView* newSurfInView = new RimSurfaceInView();
|
||||
newSurfInView->setSurface( surf );
|
||||
m_surfacesInView.push_back( newSurfInView );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this->updateConnectedEditors();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RimSurfaceInViewCollection::hasSurfaceInViewForSurface( const RimSurface* surf ) const
|
||||
{
|
||||
for ( auto surfInView : m_surfacesInView )
|
||||
{
|
||||
if ( surfInView->surface() == surf )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
caf::PdmFieldHandle* RimSurfaceInViewCollection::objectToggleField()
|
||||
{
|
||||
return &m_isActive;
|
||||
}
|
||||
|
@@ -17,10 +17,12 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#pragma once
|
||||
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmChildArrayField.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
class RimSurfaceInView;
|
||||
class RimSurface;
|
||||
|
||||
class RimSurfaceInViewCollection : public caf::PdmObject
|
||||
{
|
||||
@@ -33,7 +35,10 @@ public:
|
||||
void updateFromSurfaceCollection();
|
||||
|
||||
private:
|
||||
caf::PdmFieldHandle* objectToggleField() override;
|
||||
|
||||
bool hasSurfaceInViewForSurface(const RimSurface * surf) const;
|
||||
|
||||
caf::PdmField<bool> m_isActive;
|
||||
caf::PdmChildArrayField<RimSurfaceInView*> m_surfacesInView;
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user