Added ManagedViews and sync of camera, time step and cell result

This commit is contained in:
Magne Sjaastad 2015-08-25 12:40:55 +02:00
parent 792793b6ed
commit f6ac177ff2
17 changed files with 580 additions and 23 deletions

View File

@ -38,6 +38,7 @@ bool RicToggleItemsFeatureImpl::isToggleCommandsAvailable()
caf::PdmUiObjectHandle* uiObjectHandle = dynamic_cast<caf::PdmUiObjectHandle*>(selectedItems[0]);
QModelIndex modIndex = RiuMainWindow::instance()->projectTreeView()->findModelIndex(selectedItems[0]);
caf::PdmUiTreeOrdering* treeItem = static_cast<caf::PdmUiTreeOrdering*>(modIndex.internalPointer());
if (!treeItem) return false;
for (int cIdx = 0; cIdx < treeItem->childCount(); ++ cIdx)
{

View File

@ -59,6 +59,8 @@ ${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.h
${CEE_CURRENT_LIST_DIR}RimView.h
${CEE_CURRENT_LIST_DIR}RimCase.h
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.h
${CEE_CURRENT_LIST_DIR}RimManagedViewConfig.h
${CEE_CURRENT_LIST_DIR}RimManagedViewCollection.h
)
set (SOURCE_GROUP_SOURCE_FILES
@ -116,6 +118,8 @@ ${CEE_CURRENT_LIST_DIR}RimGeoMechCellColors.cpp
${CEE_CURRENT_LIST_DIR}RimView.cpp
${CEE_CURRENT_LIST_DIR}RimCase.cpp
${CEE_CURRENT_LIST_DIR}RimTreeViewStateSerializer.cpp
${CEE_CURRENT_LIST_DIR}RimManagedViewConfig.cpp
${CEE_CURRENT_LIST_DIR}RimManagedViewCollection.cpp
)

View File

@ -0,0 +1,95 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimConnectedViews.h"
#include "RimView.h"
#include "cafPdmFieldHandle.h"
#include "RimProject.h"
#include "RiaApplication.h"
#include "RimCase.h"
CAF_PDM_SOURCE_INIT(RimConnectedViews, "RimConnectedViews");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimConnectedViews::RimConnectedViews(void)
{
CAF_PDM_InitObject("Connected Views", "", "", "");
CAF_PDM_InitFieldNoDefault(&masterView, "MasterView", "Master View", "", "", "");
CAF_PDM_InitFieldNoDefault(&slaveView, "SlaveView", "Slave View", "", "", "");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimConnectedViews::~RimConnectedViews(void)
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimConnectedViews::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
{
QList<caf::PdmOptionItemInfo> optionList;
std::vector<RimView*> views;
allViews(views);
for (size_t i = 0; i< views.size(); i++)
{
optionList.push_back(caf::PdmOptionItemInfo(views[i]->name(), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
}
if (optionList.size() > 0)
{
optionList.push_front(caf::PdmOptionItemInfo("None", QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(NULL))));
}
return optionList;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimConnectedViews::allViews(std::vector<RimView*>& views)
{
RimProject* proj = RiaApplication::instance()->project();
if (proj)
{
std::vector<RimCase*> cases;
proj->allCases(cases);
for (size_t caseIdx = 0; caseIdx < cases.size(); caseIdx++)
{
RimCase* rimCase = cases[caseIdx];
std::vector<RimView*> caseViews = rimCase->views();
for (size_t viewIdx = 0; viewIdx < caseViews.size(); viewIdx++)
{
views.push_back(caseViews[viewIdx]);
}
}
}
}

View File

@ -0,0 +1,48 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafPdmObject.h"
#include "cafPdmPtrField.h"
class RimView;
//==================================================================================================
///
///
//==================================================================================================
class RimConnectedViews : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimConnectedViews(void);
virtual ~RimConnectedViews(void);
caf::PdmPtrField<RimView*> masterView;
caf::PdmPtrField<RimView*> slaveView;
protected:
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly);
private:
void allViews(std::vector<RimView*>& views);
};

View File

@ -22,13 +22,17 @@
#include "RigCaseCellResultsData.h"
#include "RigCaseData.h"
#include "RimEclipseCase.h"
#include "RimReservoirCellResultsStorage.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseFaultColors.h"
#include "RimEclipsePropertyFilter.h"
#include "RimEclipseView.h"
#include "RimManagedViewCollection.h"
#include "RimReservoirCellResultsStorage.h"
#include "RimView.h"
#include "cafPdmUiListEditor.h"
#include "RimEclipsePropertyFilter.h"
#include "RimEclipseFaultColors.h"
CAF_PDM_SOURCE_INIT(RimEclipseResultDefinition, "ResultDefinition");
@ -139,6 +143,16 @@ void RimEclipseResultDefinition::fieldChangedByUi(const caf::PdmFieldHandle* cha
m_reservoirView->scheduleCreateDisplayModelAndRedraw();
}
if (dynamic_cast<RimEclipseCellColors*>(this))
{
RimView* view = NULL;
this->firstAnchestorOrThisOfType(view);
if (view)
{
view->managedViewCollection->updateResult(this);
}
}
}
RimEclipsePropertyFilter* propFilter = dynamic_cast<RimEclipsePropertyFilter*>(this->parentField()->ownerObject());

View File

@ -0,0 +1,118 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimManagedViewCollection.h"
#include "RimEclipseCellColors.h"
#include "RimEclipseResultDefinition.h"
#include "RimEclipseView.h"
#include "RimManagedViewConfig.h"
#include "RimView.h"
#include "RiuViewer.h"
#include "cvfCamera.h"
#include "cvfMatrix4.h"
CAF_PDM_SOURCE_INIT(RimManagedViewCollection, "RimManagedViewCollection");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimManagedViewCollection::RimManagedViewCollection(void)
{
CAF_PDM_InitObject("Managed Views", ":/chain.png", "", "");
CAF_PDM_InitFieldNoDefault(&managedViews, "ManagedViews", "Managed Views", "", "", "");
managedViews.push_back(new RimManagedViewConfig);
managedViews.uiCapability()->setUiHidden(true);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimManagedViewCollection::~RimManagedViewCollection(void)
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewCollection::updateViewers(RiuViewer* masterViewer)
{
for (size_t i = 0; i < managedViews.size(); i++)
{
RimManagedViewConfig* managedViewConfig = managedViews[i];
if (managedViewConfig->managedView())
{
if (managedViewConfig->syncCamera() && managedViewConfig->managedView()->viewer())
{
const cvf::Mat4d mat = masterViewer->mainCamera()->viewMatrix();
managedViewConfig->managedView()->viewer()->mainCamera()->setViewMatrix(mat);
managedViewConfig->managedView()->viewer()->update();
}
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewCollection::updateTimeStep(int timeStep)
{
for (size_t i = 0; i < managedViews.size(); i++)
{
RimManagedViewConfig* managedViewConfig = managedViews[i];
if (managedViewConfig->managedView())
{
if (managedViewConfig->syncTimeStep() && managedViewConfig->managedView()->viewer())
{
managedViewConfig->managedView()->viewer()->slotSetCurrentFrame(timeStep);
}
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewCollection::updateResult(RimEclipseResultDefinition* resultDefinition)
{
for (size_t i = 0; i < managedViews.size(); i++)
{
RimManagedViewConfig* managedViewConfig = managedViews[i];
if (managedViewConfig->managedView())
{
if (managedViewConfig->syncCellResult())
{
RimView* rimView = managedViewConfig->managedView();
RimEclipseView* eclipeView = dynamic_cast<RimEclipseView*>(rimView);
if (eclipeView)
{
eclipeView->cellResult()->setPorosityModel(resultDefinition->porosityModel());
eclipeView->cellResult()->setResultType(resultDefinition->resultType());
eclipeView->cellResult()->setResultVariable(resultDefinition->resultVariable());
}
}
}
}
}

View File

@ -0,0 +1,49 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "RimDefines.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmField.h"
#include "cafPdmObject.h"
class RimEclipseResultDefinition;
class RimManagedViewConfig;
class RiuViewer;
//==================================================================================================
///
///
//==================================================================================================
class RimManagedViewCollection : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimManagedViewCollection(void);
virtual ~RimManagedViewCollection(void);
caf::PdmChildArrayField<RimManagedViewConfig*> managedViews;
void updateViewers(RiuViewer* masterViewer);
void updateTimeStep(int timeStep);
void updateResult(RimEclipseResultDefinition* resultDefinition);
};

View File

@ -0,0 +1,117 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#include "RimManagedViewConfig.h"
#include "RiaApplication.h"
#include "RimCase.h"
#include "RimProject.h"
#include "RimView.h"
#include "cafPdmUiTreeOrdering.h"
CAF_PDM_SOURCE_INIT(RimManagedViewConfig, "RimManagedViewConfig");
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimManagedViewConfig::RimManagedViewConfig(void)
{
CAF_PDM_InitObject("View Config", ":/chain.png", "", "");
CAF_PDM_InitFieldNoDefault(&managedView, "ManagedView", "Managed View", "", "", "");
managedView.uiCapability()->setUiChildrenHidden(true);
CAF_PDM_InitField(&syncCamera, "SyncCamera", true, "Sync Camera", "", "", "");
CAF_PDM_InitField(&syncCellResult, "SyncCellResult", true, "Sync Cell Result", "", "", "");
CAF_PDM_InitField(&syncTimeStep, "SyncTimeStep", true, "Sync Time Step", "", "", "");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RimManagedViewConfig::~RimManagedViewConfig(void)
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
QList<caf::PdmOptionItemInfo> RimManagedViewConfig::calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly)
{
QList<caf::PdmOptionItemInfo> optionList;
if (fieldNeedingOptions == &managedView)
{
std::vector<RimView*> views;
allVisibleViews(views);
for (size_t i = 0; i< views.size(); i++)
{
optionList.push_back(caf::PdmOptionItemInfo(views[i]->name(), QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(views[i]))));
}
if (optionList.size() > 0)
{
optionList.push_front(caf::PdmOptionItemInfo("None", QVariant::fromValue(caf::PdmPointer<caf::PdmObjectHandle>(NULL))));
}
}
return optionList;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewConfig::allVisibleViews(std::vector<RimView*>& views)
{
RimProject* proj = RiaApplication::instance()->project();
RimView* masterView = NULL;
firstAnchestorOrThisOfType(masterView);
if (proj)
{
std::vector<RimCase*> cases;
proj->allCases(cases);
for (size_t caseIdx = 0; caseIdx < cases.size(); caseIdx++)
{
RimCase* rimCase = cases[caseIdx];
std::vector<RimView*> caseViews = rimCase->views();
for (size_t viewIdx = 0; viewIdx < caseViews.size(); viewIdx++)
{
if (caseViews[viewIdx]->viewer() && caseViews[viewIdx] != masterView)
{
views.push_back(caseViews[viewIdx]);
}
}
}
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimManagedViewConfig::defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName /*= ""*/)
{
uiTreeOrdering.setForgetRemainingFields(true);
}

View File

@ -0,0 +1,52 @@
/////////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2015- Statoil ASA
// Copyright (C) 2015- Ceetron Solutions AS
//
// ResInsight is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE.
//
// See the GNU General Public License at <http://www.gnu.org/licenses/gpl.html>
// for more details.
//
/////////////////////////////////////////////////////////////////////////////////
#pragma once
#include "cafPdmField.h"
#include "cafPdmObject.h"
#include "cafPdmPtrField.h"
class RimView;
//==================================================================================================
///
///
//==================================================================================================
class RimManagedViewConfig : public caf::PdmObject
{
CAF_PDM_HEADER_INIT;
public:
RimManagedViewConfig(void);
virtual ~RimManagedViewConfig(void);
caf::PdmPtrField<RimView*> managedView;
caf::PdmField<bool> syncCamera;
caf::PdmField<bool> syncCellResult;
caf::PdmField<bool> syncTimeStep;
protected:
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions(const caf::PdmFieldHandle* fieldNeedingOptions, bool * useOptionsOnly);
virtual void defineUiTreeOrdering(caf::PdmUiTreeOrdering& uiTreeOrdering, QString uiConfigName = "");
private:
void allVisibleViews(std::vector<RimView*>& views);
};

View File

@ -26,34 +26,37 @@
#include "RigCaseData.h"
#include "RiaApplication.h"
#include "RimCalcScript.h"
#include "RimCaseCollection.h"
#include "RimCommandObject.h"
#include "RimEclipseCase.h"
#include "RimEclipseCaseCollection.h"
#include "RimEclipseInputProperty.h"
#include "RimEclipseInputPropertyCollection.h"
#include "RimEclipseStatisticsCase.h"
#include "RimEclipseStatisticsCaseCollection.h"
#include "RimEclipseView.h"
#include "RimGeoMechCase.h"
#include "RimGeoMechModels.h"
#include "RimIdenticalGridCaseGroup.h"
#include "RimManagedViewCollection.h"
#include "RimManagedViewConfig.h"
#include "RimOilField.h"
#include "RimScriptCollection.h"
#include "RimWellPath.h"
#include "RimWellPathCollection.h"
#include "RimWellPathImport.h"
#include "RimCalcScript.h"
#include "RiuMainWindow.h"
#include "RiaApplication.h"
#include "ToggleCommands/RicToggleItemsFeatureImpl.h"
#include "OctaveScriptCommands/RicExecuteScriptForCasesFeature.h"
#include "cafCmdFeature.h"
#include "cafPdmUiTreeOrdering.h"
#include <QDir>
#include "cafCmdFeature.h"
#include "ToggleCommands/RicToggleItemsFeatureImpl.h"
#include "OctaveScriptCommands/RicExecuteScriptForCasesFeature.h"
#include "RimEclipseStatisticsCaseCollection.h"
#include "RimEclipseStatisticsCase.h"
#include "RimEclipseInputProperty.h"
#include "RimEclipseInputPropertyCollection.h"
CAF_PDM_SOURCE_INIT(RimProject, "ResInsightProject");
//--------------------------------------------------------------------------------------------------
@ -704,6 +707,22 @@ void RimProject::actionsBasedOnSelection(QMenu& contextMenu)
commandIds << "RicAddScriptPathFeature";
commandIds << "RicDeleteScriptPathFeature";
}
else if (dynamic_cast<RimManagedViewConfig*>(uiItem))
{
commandIds << "RicDeleteItemFeature";
}
if (dynamic_cast<RimManagedViewCollection*>(uiItem))
{
RimManagedViewCollection* viewCollection = dynamic_cast<RimManagedViewCollection*>(uiItem);
caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&viewCollection->managedViews);
commandIds << "PdmListField_AddItem";
}
else
{
caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(NULL);
}
}
if (RicToggleItemsFeatureImpl::isToggleCommandsAvailable())

View File

@ -65,6 +65,7 @@ public:
caf::PdmField<QString> treeViewState;
caf::PdmField<QString> currentModelIndexPath;
void setScriptDirectories(const QString& scriptDirectories);
QString projectFileVersionString() const;
void close();

View File

@ -1,24 +1,29 @@
#include "RimView.h"
#include "cafPdmObjectFactory.h"
#include "RiaApplication.h"
#include "RiaPreferences.h"
#include "Rim3dOverlayInfoConfig.h"
#include "RiuViewer.h"
#include "RimOilField.h"
#include "RimProject.h"
#include "RimManagedViewCollection.h"
#include "RimWellPathCollection.h"
#include "RiuMainWindow.h"
#include "RiuViewer.h"
#include "RivWellPathCollectionPartMgr.h"
#include "cafFrameAnimationControl.h"
#include "cafPdmObjectFactory.h"
#include "cvfCamera.h"
#include "cvfModel.h"
#include "cvfModelBasicList.h"
#include "cvfPart.h"
#include "cvfScene.h"
#include "cvfViewport.h"
#include "cafFrameAnimationControl.h"
#include <limits.h>
#include "RimOilField.h"
#include "RimWellPathCollection.h"
#include "RimProject.h"
#include "RivWellPathCollectionPartMgr.h"
namespace caf {
@ -80,6 +85,10 @@ RimView::RimView(void)
CAF_PDM_InitField(&m_currentTimeStep, "CurrentTimeStep", 0, "Current Time Step", "", "", "");
m_currentTimeStep.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&managedViewCollection, "ManagedViewCollection", "Managed View Collection", "", "", "");
managedViewCollection = new RimManagedViewCollection;
managedViewCollection.uiCapability()->setUiHidden(true);
CAF_PDM_InitFieldNoDefault(&overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", "");
overlayInfoConfig = new Rim3dOverlayInfoConfig();
overlayInfoConfig->setReservoirView(this);
@ -443,6 +452,8 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
if (m_viewer)
{
m_viewer->update();
managedViewCollection->updateTimeStep(m_currentTimeStep);
}
}
else if (changedField == &backgroundColor)

View File

@ -20,6 +20,7 @@
#pragma once
#include "cafAppEnum.h"
#include "cafPdmChildArrayField.h"
#include "cafPdmChildField.h"
#include "cafPdmField.h"
#include "cafPdmFieldCvfColor.h"
@ -30,16 +31,17 @@
#include <QPointer>
class RiuViewer;
class Rim3dOverlayInfoConfig;
class RimCase;
class RimCellRangeFilterCollection;
class RimManagedViewCollection;
class RiuViewer;
namespace cvf
{
class BoundingBox;
class Scene;
class ModelBasicList;
class Scene;
class Transform;
}
@ -67,7 +69,9 @@ public:
caf::PdmField<int> maximumFrameRate;
caf::PdmField<bool> hasUserRequestedAnimation;
caf::PdmChildField<RimCellRangeFilterCollection*> rangeFilterCollection;
caf::PdmChildField<RimCellRangeFilterCollection*> rangeFilterCollection;
caf::PdmChildField<RimManagedViewCollection*> managedViewCollection;
// Draw style

View File

@ -46,7 +46,8 @@
<file>draw_style_surface_w_fault_mesh_24x24.png</file>
<file>InfoBox16x16.png</file>
<file>GeoMechCase48x48.png</file>
<file>GeoMechCases48x48.png</file>
<file>GeoMechCases48x48.png</file>
<file>chain.png</file>
</qresource>
<qresource prefix="/Shader/">
<file>fs_CellFace.glsl</file>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -64,6 +64,8 @@
#include "RigFemPartCollection.h"
#include "RigFemPart.h"
#include "RigFemPartGrid.h"
#include "RimProject.h"
#include "RimManagedViewCollection.h"
using cvf::ManipulatorTrackball;
@ -278,6 +280,12 @@ void RiuViewer::slotSetCurrentFrame(int frameIndex)
if (m_reservoirView) m_reservoirView->setCurrentTimeStep(frameIndex);
caf::Viewer::slotSetCurrentFrame(frameIndex);
if (m_reservoirView)
{
m_reservoirView->managedViewCollection()->updateTimeStep(frameIndex);
}
}
//--------------------------------------------------------------------------------------------------
@ -489,3 +497,16 @@ void RiuViewer::updateNavigationPolicy()
break;
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RiuViewer::paintEvent(QPaintEvent* event)
{
caf::Viewer::paintEvent(event);
if (m_reservoirView)
{
m_reservoirView->managedViewCollection()->updateViewers(this);
}
}

View File

@ -83,6 +83,8 @@ private:
void mouseReleaseEvent(QMouseEvent* event);
void mousePressEvent(QMouseEvent* event);
virtual void paintEvent(QPaintEvent* event);
QLabel* m_InfoLabel;
QLabel* m_versionInfoLabel;
bool m_showInfoText;;