#4849 Fix crash, timestep and legend issues on cyclick connections

This commit is contained in:
Jacob Støren
2019-10-11 14:34:59 +02:00
parent b0f8dfa9e6
commit 4a9dc3bcbe
4 changed files with 42 additions and 28 deletions

View File

@@ -388,10 +388,8 @@ void Rim3dView::setCurrentTimeStepAndUpdate( int frameIndex )
this->updateCurrentTimeStep(); this->updateCurrentTimeStep();
if ( Rim3dView* depView = activeComparisonView() ) if ( Rim3dView* depView = prepareComparisonView() )
{ {
prepareComparisonView();
depView->updateCurrentTimeStep(); depView->updateCurrentTimeStep();
depView->appendAnnotationsToModel(); depView->appendAnnotationsToModel();
depView->appendMeasurementToModel(); depView->appendMeasurementToModel();
@@ -455,10 +453,8 @@ void Rim3dView::updateCurrentTimeStepAndRedraw()
{ {
this->updateCurrentTimeStep(); this->updateCurrentTimeStep();
if ( Rim3dView* depView = activeComparisonView() ) if ( Rim3dView* depView = prepareComparisonView() )
{ {
prepareComparisonView();
depView->updateCurrentTimeStep(); depView->updateCurrentTimeStep();
restoreComparisonView(); restoreComparisonView();
@@ -493,24 +489,26 @@ void Rim3dView::createDisplayModelAndRedraw()
m_cameraPointOfInterest = nativeOrOverrideViewer()->pointOfInterest(); m_cameraPointOfInterest = nativeOrOverrideViewer()->pointOfInterest();
} }
if ( Rim3dView* depView = activeComparisonView() ) if ( Rim3dView* depView = prepareComparisonView() )
{ {
prepareComparisonView();
depView->createDisplayModelAndRedraw(); depView->createDisplayModelAndRedraw();
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() ) if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
{ {
// To make the override viewer see the new frame (skeletons) created by createDisplayModelAndRedraw // 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(); depView->updateCurrentTimeStep();
} }
restoreComparisonView(); 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()->setMainScene( nullptr, true );
viewer()->removeAllFrames( true ); viewer()->removeAllFrames( true );
} }
@@ -1364,12 +1362,20 @@ Rim3dView* Rim3dView::activeComparisonView() const
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void Rim3dView::prepareComparisonView() Rim3dView* Rim3dView::prepareComparisonView()
{ {
Rim3dView* depView = activeComparisonView(); Rim3dView* depView = activeComparisonView();
CVF_ASSERT( depView );
// prepareComparisonView if ( !depView )
{
return nullptr;
}
if (isUsingOverrideViewer())
{
return nullptr;
}
m_comparisonViewOrgTimestep = depView->currentTimeStep(); m_comparisonViewOrgTimestep = depView->currentTimeStep();
depView->m_currentTimeStep = currentTimeStep(); depView->m_currentTimeStep = currentTimeStep();
depView->clampCurrentTimestep(); depView->clampCurrentTimestep();
@@ -1380,6 +1386,8 @@ void Rim3dView::prepareComparisonView()
viewer()->setComparisonViewEyePointOffset( RimViewManipulator::calculateEquivalentCamPosOffset( this, depView ) ); viewer()->setComparisonViewEyePointOffset( RimViewManipulator::calculateEquivalentCamPosOffset( this, depView ) );
depView->setOverrideViewer( viewer() ); depView->setOverrideViewer( viewer() );
return depView;
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -297,7 +297,7 @@ private:
void setOverrideViewer( RiuViewer* overrideViewer ); void setOverrideViewer( RiuViewer* overrideViewer );
Rim3dView* activeComparisonView() const; Rim3dView* activeComparisonView() const;
void prepareComparisonView(); Rim3dView* prepareComparisonView();
void restoreComparisonView(); void restoreComparisonView();
private: private:

View File

@@ -556,7 +556,7 @@ void RimEclipseView::createDisplayModel()
if ( frameModels.size() > 1 && this->hasUserRequestedAnimation() ) if ( frameModels.size() > 1 && this->hasUserRequestedAnimation() )
{ {
if (viewer()) viewer()->setCurrentFrame( m_currentTimeStep ); if ( viewer() && !isUsingOverrideViewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
} }
else else
{ {
@@ -1171,11 +1171,14 @@ void RimEclipseView::updateLegends()
{ {
nativeOrOverrideViewer()->removeColorLegend( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() ); nativeOrOverrideViewer()->removeColorLegend( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
nativeOrOverrideViewer()->removeColorLegend( fractureColors()->activeLegend()->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()->legendConfig()->titledOverlayFrame() );
nativeOrOverrideViewer()->removeColorLegend( this->cellResult()->ternaryLegendConfig()->titledOverlayFrame() ); nativeOrOverrideViewer()->removeColorLegend( this->cellResult()->ternaryLegendConfig()->titledOverlayFrame() );
nativeOrOverrideViewer()->removeColorLegend( this->currentFaultResultColors()->legendConfig()->titledOverlayFrame() ); nativeOrOverrideViewer()->removeColorLegend(
nativeOrOverrideViewer()->removeColorLegend( this->currentFaultResultColors()->ternaryLegendConfig()->titledOverlayFrame() ); 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()->legendConfig()->setTitle( QString( "Edge Results: \n" ) +
this->cellEdgeResult()->resultVariableUiShortName() ); this->cellEdgeResult()->resultVariableUiShortName() );
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() ); nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner(
this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
} }
else else
{ {
@@ -1319,7 +1323,8 @@ void RimEclipseView::updateMinMaxValuesAndAddLegendToView( QString
resultColors->ternaryLegendConfig()->titledOverlayFrame() ) resultColors->ternaryLegendConfig()->titledOverlayFrame() )
{ {
resultColors->ternaryLegendConfig()->setTitle( legendLabel ); 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( cellResultNormalLegendConfig->titledOverlayFrame() );
} }
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() ); nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner(
this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@@ -293,7 +293,7 @@ void RimGeoMechView::createDisplayModel()
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() ) if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
{ {
if ( viewer() ) viewer()->setCurrentFrame( m_currentTimeStep ); if ( viewer() && !isUsingOverrideViewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
} }
else else
{ {