mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4849 Fix crash, timestep and legend issues on cyclick connections
This commit is contained in:
parent
b0f8dfa9e6
commit
4a9dc3bcbe
@ -388,10 +388,8 @@ void Rim3dView::setCurrentTimeStepAndUpdate( int frameIndex )
|
||||
|
||||
this->updateCurrentTimeStep();
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
if ( Rim3dView* depView = prepareComparisonView() )
|
||||
{
|
||||
prepareComparisonView();
|
||||
|
||||
depView->updateCurrentTimeStep();
|
||||
depView->appendAnnotationsToModel();
|
||||
depView->appendMeasurementToModel();
|
||||
@ -455,10 +453,8 @@ void Rim3dView::updateCurrentTimeStepAndRedraw()
|
||||
{
|
||||
this->updateCurrentTimeStep();
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
if ( Rim3dView* depView = prepareComparisonView() )
|
||||
{
|
||||
prepareComparisonView();
|
||||
|
||||
depView->updateCurrentTimeStep();
|
||||
|
||||
restoreComparisonView();
|
||||
@ -493,24 +489,26 @@ void Rim3dView::createDisplayModelAndRedraw()
|
||||
m_cameraPointOfInterest = nativeOrOverrideViewer()->pointOfInterest();
|
||||
}
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
if ( Rim3dView* depView = prepareComparisonView() )
|
||||
{
|
||||
prepareComparisonView();
|
||||
|
||||
depView->createDisplayModelAndRedraw();
|
||||
|
||||
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
// To make the override viewer see the new frame (skeletons) created by createDisplayModelAndRedraw
|
||||
nativeOrOverrideViewer()->slotSetCurrentFrame( currentTimeStep() );
|
||||
// But avoid any call back down to this Rim3dView, instead do the update manually to not confuse the
|
||||
// m_currentTimeStep
|
||||
nativeOrOverrideViewer()->caf::Viewer::slotSetCurrentFrame( currentTimeStep() );
|
||||
depView->updateCurrentTimeStep();
|
||||
}
|
||||
|
||||
restoreComparisonView();
|
||||
}
|
||||
else if ( viewer() )
|
||||
else if ( !isUsingOverrideViewer() && viewer() )
|
||||
{
|
||||
// Remove the comparison scene data
|
||||
// Remove the comparison scene data when
|
||||
// we do not have a comparison view
|
||||
// and are not doing override generation
|
||||
viewer()->setMainScene( nullptr, true );
|
||||
viewer()->removeAllFrames( true );
|
||||
}
|
||||
@ -1364,12 +1362,20 @@ Rim3dView* Rim3dView::activeComparisonView() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::prepareComparisonView()
|
||||
Rim3dView* Rim3dView::prepareComparisonView()
|
||||
{
|
||||
Rim3dView* depView = activeComparisonView();
|
||||
CVF_ASSERT( depView );
|
||||
|
||||
// prepareComparisonView
|
||||
if ( !depView )
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (isUsingOverrideViewer())
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
m_comparisonViewOrgTimestep = depView->currentTimeStep();
|
||||
depView->m_currentTimeStep = currentTimeStep();
|
||||
depView->clampCurrentTimestep();
|
||||
@ -1380,6 +1386,8 @@ void Rim3dView::prepareComparisonView()
|
||||
viewer()->setComparisonViewEyePointOffset( RimViewManipulator::calculateEquivalentCamPosOffset( this, depView ) );
|
||||
|
||||
depView->setOverrideViewer( viewer() );
|
||||
|
||||
return depView;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -297,8 +297,8 @@ private:
|
||||
void setOverrideViewer( RiuViewer* overrideViewer );
|
||||
Rim3dView* activeComparisonView() const;
|
||||
|
||||
void prepareComparisonView();
|
||||
void restoreComparisonView();
|
||||
Rim3dView* prepareComparisonView();
|
||||
void restoreComparisonView();
|
||||
|
||||
private:
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
|
@ -395,7 +395,7 @@ void RimEclipseView::createDisplayModel()
|
||||
|
||||
// Remove all existing animation frames from the viewer.
|
||||
// The parts are still cached in the RivReservoir geometry and friends
|
||||
nativeOrOverrideViewer()->removeAllFrames(isUsingOverrideViewer());
|
||||
nativeOrOverrideViewer()->removeAllFrames( isUsingOverrideViewer() );
|
||||
|
||||
wellCollection()->scheduleIsWellPipesVisibleRecalculation();
|
||||
|
||||
@ -547,16 +547,16 @@ void RimEclipseView::createDisplayModel()
|
||||
scene->addModel( model );
|
||||
|
||||
if ( frameIndex == 0 )
|
||||
nativeOrOverrideViewer()->setMainScene( scene.p() ,isUsingOverrideViewer() );
|
||||
nativeOrOverrideViewer()->setMainScene( scene.p(), isUsingOverrideViewer() );
|
||||
else
|
||||
nativeOrOverrideViewer()->addFrame( scene.p() , isUsingOverrideViewer() );
|
||||
nativeOrOverrideViewer()->addFrame( scene.p(), isUsingOverrideViewer() );
|
||||
}
|
||||
|
||||
// If the animation was active before recreating everything, make viewer view current frame
|
||||
|
||||
if ( frameModels.size() > 1 && this->hasUserRequestedAnimation() )
|
||||
{
|
||||
if (viewer()) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
if ( viewer() && !isUsingOverrideViewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1171,11 +1171,14 @@ void RimEclipseView::updateLegends()
|
||||
{
|
||||
nativeOrOverrideViewer()->removeColorLegend( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( fractureColors()->activeLegend()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( m_virtualPerforationResult->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend(
|
||||
m_virtualPerforationResult->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( this->cellResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( this->cellResult()->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( this->currentFaultResultColors()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( this->currentFaultResultColors()->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend(
|
||||
this->currentFaultResultColors()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend(
|
||||
this->currentFaultResultColors()->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -1235,7 +1238,8 @@ void RimEclipseView::updateLegends()
|
||||
|
||||
this->cellEdgeResult()->legendConfig()->setTitle( QString( "Edge Results: \n" ) +
|
||||
this->cellEdgeResult()->resultVariableUiShortName() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner(
|
||||
this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1319,7 +1323,8 @@ void RimEclipseView::updateMinMaxValuesAndAddLegendToView( QString
|
||||
resultColors->ternaryLegendConfig()->titledOverlayFrame() )
|
||||
{
|
||||
resultColors->ternaryLegendConfig()->setTitle( legendLabel );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( resultColors->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner(
|
||||
resultColors->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1835,7 +1840,8 @@ void RimEclipseView::resetLegendsInViewer()
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( cellResultNormalLegendConfig->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner(
|
||||
this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -293,7 +293,7 @@ void RimGeoMechView::createDisplayModel()
|
||||
|
||||
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
if ( viewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
if ( viewer() && !isUsingOverrideViewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user