mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-10 15:36:09 -06:00
(#395) Make sure the update() virtual function is called from camera related functions
This commit is contained in:
parent
854c47500b
commit
444500f6cc
@ -68,7 +68,7 @@ void RicLinkVisibleViewsFeature::onActionTriggered(bool isChecked)
|
||||
RimView* rimView = views[i];
|
||||
RimManagedViewConfig* viewConfig = new RimManagedViewConfig;
|
||||
viewConfig->managedView = rimView;
|
||||
managedViewCollection->managedViews.push_back(viewConfig);
|
||||
managedViewCollection->viewConfigs.push_back(viewConfig);
|
||||
|
||||
viewConfig->initAfterReadRecursively();
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ void Rim3dOverlayInfoConfig::fieldChangedByUi(const caf::PdmFieldHandle* changed
|
||||
|
||||
if (m_viewDef && m_viewDef->viewer())
|
||||
{
|
||||
m_viewDef->viewer()->update();
|
||||
m_viewDef->viewer()->issueBaseClassUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -792,7 +792,7 @@ void RimEclipseView::updateDisplayModelVisibility()
|
||||
}
|
||||
|
||||
m_viewer->setEnableMask(mask);
|
||||
m_viewer->update();
|
||||
m_viewer->issueBaseClassUpdate();
|
||||
|
||||
faultCollection->updateConnectedEditors();
|
||||
}
|
||||
|
@ -352,7 +352,7 @@ void RimGeoMechView::updateDisplayModelVisibility()
|
||||
}
|
||||
|
||||
m_viewer->setEnableMask(mask);
|
||||
m_viewer->update();
|
||||
m_viewer->issueBaseClassUpdate();
|
||||
|
||||
}
|
||||
|
||||
|
@ -43,8 +43,8 @@ RimManagedViewCollection::RimManagedViewCollection(void)
|
||||
{
|
||||
CAF_PDM_InitObject("Managed Views", ":/chain.png", "", "");
|
||||
|
||||
CAF_PDM_InitFieldNoDefault(&managedViews, "ManagedViews", "Managed Views", "", "", "");
|
||||
managedViews.uiCapability()->setUiHidden(true);
|
||||
CAF_PDM_InitFieldNoDefault(&viewConfigs, "ManagedViews", "Managed Views", "", "", "");
|
||||
viewConfigs.uiCapability()->setUiHidden(true);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -59,9 +59,9 @@ RimManagedViewCollection::~RimManagedViewCollection(void)
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::updateTimeStep(int timeStep)
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncTimeStep() && managedViewConfig->managedView()->viewer())
|
||||
@ -85,9 +85,9 @@ void RimManagedViewCollection::updateCellResult()
|
||||
{
|
||||
RimEclipseResultDefinition* eclipseCellResultDefinition = masterEclipseView->cellResult();
|
||||
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncCellResult())
|
||||
@ -113,9 +113,9 @@ void RimManagedViewCollection::updateCellResult()
|
||||
{
|
||||
RimGeoMechResultDefinition* geoMechResultDefinition = masterGeoView->cellResult();
|
||||
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncCellResult())
|
||||
@ -141,9 +141,9 @@ void RimManagedViewCollection::updateCellResult()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::updateRangeFilters()
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncRangeFilters())
|
||||
@ -179,9 +179,9 @@ void RimManagedViewCollection::updateRangeFilters()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::updatePropertyFilters()
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||
if (managedViewConfig->managedView())
|
||||
{
|
||||
if (managedViewConfig->syncPropertyFilters())
|
||||
@ -216,9 +216,9 @@ void RimManagedViewCollection::updatePropertyFilters()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::configureOverrides()
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
RimManagedViewConfig* managedViewConfig = managedViews[i];
|
||||
RimManagedViewConfig* managedViewConfig = viewConfigs[i];
|
||||
managedViewConfig->configureOverrides();
|
||||
}
|
||||
}
|
||||
@ -226,11 +226,16 @@ void RimManagedViewCollection::configureOverrides()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewCollection::allManagedViews(std::vector<RimView*>& views)
|
||||
void RimManagedViewCollection::allViewsForCameraSync(std::vector<RimView*>& views)
|
||||
{
|
||||
for (size_t i = 0; i < managedViews.size(); i++)
|
||||
for (size_t i = 0; i < viewConfigs.size(); i++)
|
||||
{
|
||||
managedViews[i]->allManagedViews(views);
|
||||
if (viewConfigs[i]->syncCamera && viewConfigs[i]->managedView())
|
||||
{
|
||||
views.push_back(viewConfigs[i]->managedView());
|
||||
|
||||
viewConfigs[i]->managedView()->managedViewCollection()->allViewsForCameraSync(views);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
RimManagedViewCollection(void);
|
||||
virtual ~RimManagedViewCollection(void);
|
||||
|
||||
caf::PdmChildArrayField<RimManagedViewConfig*> managedViews;
|
||||
caf::PdmChildArrayField<RimManagedViewConfig*> viewConfigs;
|
||||
|
||||
void applyAllOperations();
|
||||
|
||||
@ -53,5 +53,5 @@ public:
|
||||
|
||||
void configureOverrides();
|
||||
|
||||
void allManagedViews(std::vector<RimView*>& views);
|
||||
void allViewsForCameraSync(std::vector<RimView*>& views);
|
||||
};
|
||||
|
@ -324,19 +324,3 @@ void RimManagedViewConfig::updateDisplayName()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimManagedViewConfig::allManagedViews(std::vector<RimView*>& views)
|
||||
{
|
||||
if (managedView)
|
||||
{
|
||||
views.push_back(managedView);
|
||||
|
||||
for (size_t i = 0; i < managedView->managedViewCollection()->managedViews().size(); i++)
|
||||
{
|
||||
managedView->managedViewCollection()->managedViews()[i]->allManagedViews(views);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,6 @@ public:
|
||||
caf::PdmField<bool> syncPropertyFilters;
|
||||
|
||||
void configureOverrides();
|
||||
void allManagedViews(std::vector<RimView*>& views);
|
||||
|
||||
protected:
|
||||
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
|
||||
|
@ -772,7 +772,7 @@ void RimProject::actionsBasedOnSelection(QMenu& contextMenu)
|
||||
if (dynamic_cast<RimManagedViewCollection*>(uiItem))
|
||||
{
|
||||
RimManagedViewCollection* viewCollection = dynamic_cast<RimManagedViewCollection*>(uiItem);
|
||||
caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&viewCollection->managedViews);
|
||||
caf::SelectionManager::instance()->setActiveChildArrayFieldHandle(&viewCollection->viewConfigs);
|
||||
|
||||
commandIds << "PdmListField_AddItem";
|
||||
}
|
||||
|
@ -160,7 +160,7 @@ void RimView::updateViewerWidget()
|
||||
if (isViewerCreated) m_viewer->mainCamera()->setViewMatrix(cameraPosition);
|
||||
m_viewer->mainCamera()->viewport()->setClearColor(cvf::Color4f(backgroundColor()));
|
||||
|
||||
m_viewer->update();
|
||||
m_viewer->issueBaseClassUpdate();
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -195,6 +195,8 @@ void RimView::scheduleCreateDisplayModelAndRedraw()
|
||||
void RimView::setCurrentTimeStep(int frameIndex)
|
||||
{
|
||||
m_currentTimeStep = frameIndex;
|
||||
clampCurrentTimestep();
|
||||
|
||||
this->hasUserRequestedAnimation = true;
|
||||
this->updateCurrentTimeStep();
|
||||
}
|
||||
@ -205,7 +207,7 @@ void RimView::updateCurrentTimeStepAndRedraw()
|
||||
{
|
||||
this->updateCurrentTimeStep();
|
||||
|
||||
if (m_viewer) m_viewer->update();
|
||||
if (m_viewer) m_viewer->issueBaseClassUpdate();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -428,7 +430,7 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
||||
|
||||
updateScaleTransform();
|
||||
createDisplayModelAndRedraw();
|
||||
m_viewer->update();
|
||||
m_viewer->issueBaseClassUpdate();
|
||||
}
|
||||
|
||||
RiuMainWindow::instance()->updateScaleValue();
|
||||
@ -452,7 +454,7 @@ void RimView::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QV
|
||||
{
|
||||
if (m_viewer)
|
||||
{
|
||||
m_viewer->update();
|
||||
m_viewer->issueBaseClassUpdate();
|
||||
|
||||
managedViewCollection->updateTimeStep(m_currentTimeStep);
|
||||
}
|
||||
|
@ -496,7 +496,10 @@ void RiuViewer::updateNavigationPolicy()
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
/// Only camera related operations are supposed to call this function. Especially navigation policies
|
||||
/// will call this function
|
||||
///
|
||||
/// All other updates should be redirected to caf::OpenGLWidget::update()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RiuViewer::update()
|
||||
{
|
||||
@ -504,6 +507,8 @@ void RiuViewer::update()
|
||||
|
||||
if (m_reservoirView)
|
||||
{
|
||||
viewsToUpdate.push_back(m_reservoirView);
|
||||
|
||||
RimView* rimView = m_reservoirView;
|
||||
|
||||
std::vector<caf::PdmObjectHandle*> objects;
|
||||
@ -512,14 +517,21 @@ void RiuViewer::update()
|
||||
while (objects.size() > 0)
|
||||
{
|
||||
RimManagedViewConfig* viewConfig = dynamic_cast<RimManagedViewConfig*>(objects[0]);
|
||||
viewConfig->firstAnchestorOrThisOfType(rimView);
|
||||
|
||||
objects.clear();
|
||||
rimView->objectsWithReferringPtrFields(objects);
|
||||
|
||||
if (viewConfig->syncCamera())
|
||||
{
|
||||
viewConfig->firstAnchestorOrThisOfType(rimView);
|
||||
rimView->objectsWithReferringPtrFields(objects);
|
||||
}
|
||||
}
|
||||
|
||||
viewsToUpdate.push_back(rimView);
|
||||
rimView->managedViewCollection()->allManagedViews(viewsToUpdate);
|
||||
if (rimView != m_reservoirView)
|
||||
{
|
||||
viewsToUpdate.push_back(rimView);
|
||||
}
|
||||
|
||||
rimView->managedViewCollection()->allViewsForCameraSync(viewsToUpdate);
|
||||
}
|
||||
|
||||
// Propagate view matrix to all relevant views
|
||||
|
@ -74,7 +74,8 @@ public:
|
||||
void updateNavigationPolicy();
|
||||
|
||||
|
||||
virtual void update(); // Override of caf::Viewer::update()
|
||||
virtual void update(); // Override of caf::Viewer::update()
|
||||
void issueBaseClassUpdate();
|
||||
|
||||
public slots:
|
||||
virtual void slotSetCurrentFrame(int frameIndex);
|
||||
@ -86,7 +87,6 @@ private:
|
||||
void mouseReleaseEvent(QMouseEvent* event);
|
||||
void mousePressEvent(QMouseEvent* event);
|
||||
|
||||
void issueBaseClassUpdate();
|
||||
|
||||
QLabel* m_InfoLabel;
|
||||
QLabel* m_versionInfoLabel;
|
||||
|
Loading…
Reference in New Issue
Block a user