mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#395) Added support for control of geo mech results
This commit is contained in:
parent
3ef65ab8f9
commit
b7d04375c8
@ -149,7 +149,7 @@ void RimEclipseResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
|
||||
this->firstAnchestorOrThisOfType(view);
|
||||
if (view)
|
||||
{
|
||||
view->managedViewCollection->updateResult(this);
|
||||
view->managedViewCollection->updateCellResult();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,16 +18,23 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "RimGeoMechResultDefinition.h"
|
||||
#include "RimGeoMechView.h"
|
||||
|
||||
#include "RifGeoMechReaderInterface.h"
|
||||
|
||||
#include "RigFemPartResultsCollection.h"
|
||||
#include "RigFemResultAddress.h"
|
||||
#include "RigGeoMechCaseData.h"
|
||||
|
||||
#include "RimDefines.h"
|
||||
#include "RimGeoMechCase.h"
|
||||
#include "RifGeoMechReaderInterface.h"
|
||||
#include "cafPdmUiListEditor.h"
|
||||
#include "RigGeoMechCaseData.h"
|
||||
#include "RigFemPartResultsCollection.h"
|
||||
#include "RiuMainWindow.h"
|
||||
#include "RimGeoMechCellColors.h"
|
||||
#include "RimGeoMechPropertyFilter.h"
|
||||
#include "RigFemResultAddress.h"
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RimManagedViewCollection.h"
|
||||
|
||||
#include "RiuMainWindow.h"
|
||||
|
||||
#include "cafPdmUiListEditor.h"
|
||||
|
||||
namespace caf {
|
||||
|
||||
@ -197,6 +204,17 @@ void RimGeoMechResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
|
||||
}
|
||||
|
||||
reservoirView()->scheduleCreateDisplayModelAndRedraw();
|
||||
|
||||
if (dynamic_cast<RimGeoMechCellColors*>(this))
|
||||
{
|
||||
RimView* view = NULL;
|
||||
this->firstAnchestorOrThisOfType(view);
|
||||
if (view)
|
||||
{
|
||||
view->managedViewCollection->updateCellResult();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,9 @@
|
||||
|
||||
#include "cvfCamera.h"
|
||||
#include "cvfMatrix4.h"
|
||||
#include "RimGeoMechView.h"
|
||||
#include "RimGeoMechResultDefinition.h"
|
||||
#include "RimGeoMechCellColors.h"
|
||||
|
||||
|
||||
|
||||
@ -95,22 +98,55 @@ void RimManagedViewCollection::updateTimeStep(int timeStep)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::updateResult(RimEclipseResultDefinition* resultDefinition)
|
||||
void RimManagedViewCollection::updateCellResult()
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
|
||||
RimEclipseView* masterEclipseView = dynamic_cast<RimEclipseView*>(masterView);
|
||||
if (masterEclipseView && masterEclipseView->cellResult())
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
if (managedViewConfig->managedView())
|
||||
RimEclipseResultDefinition* eclipseCellResultDefinition = masterEclipseView->cellResult();
|
||||
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
{
|
||||
if (managedViewConfig->syncCellResult())
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
RimView* rimView = managedViewConfig->managedView();
|
||||
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
||||
if (eclipeView)
|
||||
if (managedViewConfig->syncCellResult())
|
||||
{
|
||||
eclipeView->cellResult()->setPorosityModel(resultDefinition->porosityModel());
|
||||
eclipeView->cellResult()->setResultType(resultDefinition->resultType());
|
||||
eclipeView->cellResult()->setResultVariable(resultDefinition->resultVariable());
|
||||
RimView* rimView = managedViewConfig->managedView();
|
||||
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
||||
if (eclipeView)
|
||||
{
|
||||
eclipeView->cellResult()->setPorosityModel(eclipseCellResultDefinition->porosityModel());
|
||||
eclipeView->cellResult()->setResultType(eclipseCellResultDefinition->resultType());
|
||||
eclipeView->cellResult()->setResultVariable(eclipseCellResultDefinition->resultVariable());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RimGeoMechView* masterGeoView = dynamic_cast<RimGeoMechView*>(masterView);
|
||||
if (masterGeoView && masterGeoView->cellResult())
|
||||
{
|
||||
RimGeoMechResultDefinition* geoMechResultDefinition = masterGeoView->cellResult();
|
||||
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncCellResult())
|
||||
{
|
||||
RimView* rimView = managedViewConfig->managedView();
|
||||
RimGeoMechView* geoView = dynamic_cast<RimGeoMechView*>(rimView);
|
||||
if (geoView)
|
||||
{
|
||||
geoView->cellResult()->setResultAddress(geoMechResultDefinition->resultAddress());
|
||||
geoView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -138,6 +174,15 @@ void RimManagedViewCollection::updateRangeFilters()
|
||||
|
||||
eclipeView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
|
||||
RimGeoMechView* geoView = dynamic_cast<RimGeoMechView*>(rimView);
|
||||
if (geoView)
|
||||
{
|
||||
geoView->scheduleGeometryRegen(RANGE_FILTERED);
|
||||
geoView->scheduleGeometryRegen(RANGE_FILTERED_INACTIVE);
|
||||
|
||||
geoView->scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,6 @@
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
|
||||
class RimEclipseResultDefinition;
|
||||
class RimManagedViewConfig;
|
||||
class RiuViewer;
|
||||
|
||||
@ -45,7 +44,7 @@ public:
|
||||
|
||||
void updateViewers(RiuViewer* masterViewer);
|
||||
void updateTimeStep(int timeStep);
|
||||
void updateResult(RimEclipseResultDefinition* resultDefinition);
|
||||
void updateCellResult();
|
||||
|
||||
void updateRangeFilters();
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
#include "RimCase.h"
|
||||
#include "RimCellRangeFilterCollection.h"
|
||||
#include "RimManagedViewCollection.h"
|
||||
#include "RimProject.h"
|
||||
#include "RimView.h"
|
||||
|
||||
@ -131,6 +132,19 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
|
||||
masterView->viewer()->update();
|
||||
}
|
||||
else if (changedField == &syncCellResult)
|
||||
{
|
||||
// When cell result is activated, update cell result in managed views
|
||||
// Original result Will not be restored when cell result is disabled
|
||||
|
||||
if (syncCellResult())
|
||||
{
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
|
||||
masterView->managedViewCollection()->updateCellResult();
|
||||
}
|
||||
}
|
||||
else if (changedField == &syncRangeFilters)
|
||||
{
|
||||
configureOverrides();
|
||||
@ -147,6 +161,14 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
||||
if (managedView)
|
||||
{
|
||||
managedView->rangeFilterCollection()->updateUiUpdateDisplayModel();
|
||||
|
||||
if (syncCellResult())
|
||||
{
|
||||
RimView* masterView = NULL;
|
||||
firstAnchestorOrThisOfType(masterView);
|
||||
|
||||
masterView->managedViewCollection()->updateCellResult();
|
||||
}
|
||||
}
|
||||
|
||||
PdmObjectHandle* prevValue = oldValue.value<caf::PdmPointer<PdmObjectHandle> >().rawPtr();
|
||||
|
Loading…
Reference in New Issue
Block a user