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);
|
this->firstAnchestorOrThisOfType(view);
|
||||||
if (view)
|
if (view)
|
||||||
{
|
{
|
||||||
view->managedViewCollection->updateResult(this);
|
view->managedViewCollection->updateCellResult();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,16 +18,23 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "RimGeoMechResultDefinition.h"
|
#include "RimGeoMechResultDefinition.h"
|
||||||
#include "RimGeoMechView.h"
|
|
||||||
|
#include "RifGeoMechReaderInterface.h"
|
||||||
|
|
||||||
|
#include "RigFemPartResultsCollection.h"
|
||||||
|
#include "RigFemResultAddress.h"
|
||||||
|
#include "RigGeoMechCaseData.h"
|
||||||
|
|
||||||
#include "RimDefines.h"
|
#include "RimDefines.h"
|
||||||
#include "RimGeoMechCase.h"
|
#include "RimGeoMechCase.h"
|
||||||
#include "RifGeoMechReaderInterface.h"
|
#include "RimGeoMechCellColors.h"
|
||||||
#include "cafPdmUiListEditor.h"
|
|
||||||
#include "RigGeoMechCaseData.h"
|
|
||||||
#include "RigFemPartResultsCollection.h"
|
|
||||||
#include "RiuMainWindow.h"
|
|
||||||
#include "RimGeoMechPropertyFilter.h"
|
#include "RimGeoMechPropertyFilter.h"
|
||||||
#include "RigFemResultAddress.h"
|
#include "RimGeoMechView.h"
|
||||||
|
#include "RimManagedViewCollection.h"
|
||||||
|
|
||||||
|
#include "RiuMainWindow.h"
|
||||||
|
|
||||||
|
#include "cafPdmUiListEditor.h"
|
||||||
|
|
||||||
namespace caf {
|
namespace caf {
|
||||||
|
|
||||||
@ -197,6 +204,17 @@ void RimGeoMechResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
|
|||||||
}
|
}
|
||||||
|
|
||||||
reservoirView()->scheduleCreateDisplayModelAndRedraw();
|
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 "cvfCamera.h"
|
||||||
#include "cvfMatrix4.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];
|
RimEclipseResultDefinition* eclipseCellResultDefinition = masterEclipseView->cellResult();
|
||||||
if (managedViewConfig->managedView())
|
|
||||||
|
for (size_t i = 0; i < managedViews.size(); i++)
|
||||||
{
|
{
|
||||||
if (managedViewConfig->syncCellResult())
|
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||||
|
if (managedViewConfig->managedView())
|
||||||
{
|
{
|
||||||
RimView* rimView = managedViewConfig->managedView();
|
if (managedViewConfig->syncCellResult())
|
||||||
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
|
||||||
if (eclipeView)
|
|
||||||
{
|
{
|
||||||
eclipeView->cellResult()->setPorosityModel(resultDefinition->porosityModel());
|
RimView* rimView = managedViewConfig->managedView();
|
||||||
eclipeView->cellResult()->setResultType(resultDefinition->resultType());
|
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
|
||||||
eclipeView->cellResult()->setResultVariable(resultDefinition->resultVariable());
|
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();
|
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 "cafPdmField.h"
|
||||||
#include "cafPdmObject.h"
|
#include "cafPdmObject.h"
|
||||||
|
|
||||||
class RimEclipseResultDefinition;
|
|
||||||
class RimManagedViewConfig;
|
class RimManagedViewConfig;
|
||||||
class RiuViewer;
|
class RiuViewer;
|
||||||
|
|
||||||
@ -45,7 +44,7 @@ public:
|
|||||||
|
|
||||||
void updateViewers(RiuViewer* masterViewer);
|
void updateViewers(RiuViewer* masterViewer);
|
||||||
void updateTimeStep(int timeStep);
|
void updateTimeStep(int timeStep);
|
||||||
void updateResult(RimEclipseResultDefinition* resultDefinition);
|
void updateCellResult();
|
||||||
|
|
||||||
void updateRangeFilters();
|
void updateRangeFilters();
|
||||||
};
|
};
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include "RimCase.h"
|
#include "RimCase.h"
|
||||||
#include "RimCellRangeFilterCollection.h"
|
#include "RimCellRangeFilterCollection.h"
|
||||||
|
#include "RimManagedViewCollection.h"
|
||||||
#include "RimProject.h"
|
#include "RimProject.h"
|
||||||
#include "RimView.h"
|
#include "RimView.h"
|
||||||
|
|
||||||
@ -131,6 +132,19 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
|||||||
|
|
||||||
masterView->viewer()->update();
|
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)
|
else if (changedField == &syncRangeFilters)
|
||||||
{
|
{
|
||||||
configureOverrides();
|
configureOverrides();
|
||||||
@ -147,6 +161,14 @@ void RimManagedViewConfig::fieldChangedByUi(const caf::PdmFieldHandle* changedFi
|
|||||||
if (managedView)
|
if (managedView)
|
||||||
{
|
{
|
||||||
managedView->rangeFilterCollection()->updateUiUpdateDisplayModel();
|
managedView->rangeFilterCollection()->updateUiUpdateDisplayModel();
|
||||||
|
|
||||||
|
if (syncCellResult())
|
||||||
|
{
|
||||||
|
RimView* masterView = NULL;
|
||||||
|
firstAnchestorOrThisOfType(masterView);
|
||||||
|
|
||||||
|
masterView->managedViewCollection()->updateCellResult();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PdmObjectHandle* prevValue = oldValue.value<caf::PdmPointer<PdmObjectHandle> >().rawPtr();
|
PdmObjectHandle* prevValue = oldValue.value<caf::PdmPointer<PdmObjectHandle> >().rawPtr();
|
||||||
|
Loading…
Reference in New Issue
Block a user