mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4849 Co-visualization: Simple use of the comparison view support in the Viewer classes
The feature is ready for testing.
This commit is contained in:
parent
aee42f403b
commit
b0f8dfa9e6
@ -43,7 +43,8 @@ RivGridBoxGenerator::RivGridBoxGenerator()
|
||||
: m_gridColor( cvf::Color3f::LIGHT_GRAY )
|
||||
, m_gridLegendColor( cvf::Color3f::BLACK )
|
||||
{
|
||||
m_gridBoxModel = new cvf::ModelBasicList;
|
||||
m_gridBoxModel = new cvf::ModelBasicList();
|
||||
m_gridBoxModel->setName( "GridBoxModel" );
|
||||
|
||||
m_scaleZ = 1.0;
|
||||
m_displayModelOffset = cvf::Vec3d::ZERO;
|
||||
|
@ -184,7 +184,7 @@ bool Rim2dIntersectionView::isTimeStepDependentDataVisible() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim2dIntersectionView::update3dInfo()
|
||||
{
|
||||
if ( !m_viewer ) return;
|
||||
if ( !nativeOrOverrideViewer() ) return;
|
||||
|
||||
QString overlayInfoText;
|
||||
|
||||
@ -192,12 +192,12 @@ void Rim2dIntersectionView::update3dInfo()
|
||||
m_intersection->firstAncestorOrThisOfType( eclView );
|
||||
if ( eclView && !eclView->overlayInfoConfig()->isActive() )
|
||||
{
|
||||
m_viewer->showInfoText( false );
|
||||
m_viewer->showHistogram( false );
|
||||
m_viewer->showAnimationProgress( false );
|
||||
m_viewer->showVersionInfo( false );
|
||||
nativeOrOverrideViewer()->showInfoText( false );
|
||||
nativeOrOverrideViewer()->showHistogram( false );
|
||||
nativeOrOverrideViewer()->showAnimationProgress( false );
|
||||
nativeOrOverrideViewer()->showVersionInfo( false );
|
||||
|
||||
m_viewer->update();
|
||||
nativeOrOverrideViewer()->update();
|
||||
return;
|
||||
}
|
||||
if ( eclView && eclView->overlayInfoConfig()->showCaseInfo() )
|
||||
@ -233,11 +233,11 @@ void Rim2dIntersectionView::update3dInfo()
|
||||
{
|
||||
if ( eclView->overlayInfoConfig()->showAnimProgress() )
|
||||
{
|
||||
m_viewer->showAnimationProgress( true );
|
||||
nativeOrOverrideViewer()->showAnimationProgress( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_viewer->showAnimationProgress( false );
|
||||
nativeOrOverrideViewer()->showAnimationProgress( false );
|
||||
}
|
||||
|
||||
if ( eclView->overlayInfoConfig()->showResultInfo() )
|
||||
@ -250,11 +250,11 @@ void Rim2dIntersectionView::update3dInfo()
|
||||
{
|
||||
if ( geoView->overlayInfoConfig()->showAnimProgress() )
|
||||
{
|
||||
m_viewer->showAnimationProgress( true );
|
||||
nativeOrOverrideViewer()->showAnimationProgress( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_viewer->showAnimationProgress( false );
|
||||
nativeOrOverrideViewer()->showAnimationProgress( false );
|
||||
}
|
||||
|
||||
if ( geoView->overlayInfoConfig()->showResultInfo() )
|
||||
@ -296,9 +296,9 @@ void Rim2dIntersectionView::update3dInfo()
|
||||
}
|
||||
|
||||
overlayInfoText += "</p>";
|
||||
m_viewer->setInfoText( overlayInfoText );
|
||||
m_viewer->showInfoText( true );
|
||||
m_viewer->update();
|
||||
nativeOrOverrideViewer()->setInfoText( overlayInfoText );
|
||||
nativeOrOverrideViewer()->showInfoText( true );
|
||||
nativeOrOverrideViewer()->update();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -475,18 +475,18 @@ void Rim2dIntersectionView::axisLabels( cvf::String* xLabel, cvf::String* yLabel
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim2dIntersectionView::createDisplayModel()
|
||||
{
|
||||
if ( m_viewer.isNull() ) return;
|
||||
if ( !nativeOrOverrideViewer() ) return;
|
||||
if ( !m_intersection() ) return;
|
||||
|
||||
updateScaleTransform();
|
||||
|
||||
m_viewer->removeAllFrames();
|
||||
nativeOrOverrideViewer()->removeAllFrames( isUsingOverrideViewer() );
|
||||
|
||||
int tsCount = this->timeStepCount();
|
||||
|
||||
for ( int i = 0; i < tsCount; ++i )
|
||||
{
|
||||
m_viewer->addFrame( new cvf::Scene() );
|
||||
nativeOrOverrideViewer()->addFrame( new cvf::Scene(), isUsingOverrideViewer() );
|
||||
}
|
||||
|
||||
m_flatIntersectionPartMgr = new RivIntersectionPartMgr( m_intersection(), true );
|
||||
@ -529,13 +529,13 @@ void Rim2dIntersectionView::createDisplayModel()
|
||||
}
|
||||
}
|
||||
|
||||
m_viewer->addStaticModelOnce( m_intersectionVizModel.p() );
|
||||
nativeOrOverrideViewer()->addStaticModelOnce( m_intersectionVizModel.p(), isUsingOverrideViewer() );
|
||||
|
||||
m_intersectionVizModel->updateBoundingBoxesRecursive();
|
||||
|
||||
if ( this->hasUserRequestedAnimation() )
|
||||
{
|
||||
m_viewer->setCurrentFrame( m_currentTimeStep );
|
||||
if ( viewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
updateCurrentTimeStep();
|
||||
}
|
||||
|
||||
@ -555,7 +555,7 @@ void Rim2dIntersectionView::updateCurrentTimeStep()
|
||||
|
||||
if ( m_flatSimWellPipePartMgr.notNull() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
{
|
||||
@ -588,7 +588,7 @@ void Rim2dIntersectionView::updateCurrentTimeStep()
|
||||
|
||||
if ( m_flatWellpathPartMgr.notNull() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
{
|
||||
@ -627,9 +627,9 @@ void Rim2dIntersectionView::updateLegends()
|
||||
{
|
||||
m_legendObjectToSelect = nullptr;
|
||||
|
||||
if ( !m_viewer ) return;
|
||||
if ( !nativeOrOverrideViewer() ) return;
|
||||
|
||||
m_viewer->removeAllColorLegends();
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
|
||||
if ( !hasResults() ) return;
|
||||
|
||||
@ -678,7 +678,7 @@ void Rim2dIntersectionView::updateLegends()
|
||||
|
||||
if ( legend )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner( legend );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( legend );
|
||||
}
|
||||
}
|
||||
|
||||
@ -687,15 +687,15 @@ void Rim2dIntersectionView::updateLegends()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim2dIntersectionView::resetLegendsInViewer()
|
||||
{
|
||||
m_viewer->showAxisCross( false );
|
||||
m_viewer->showAnimationProgress( true );
|
||||
m_viewer->showHistogram( false );
|
||||
m_viewer->showInfoText( false );
|
||||
m_viewer->showVersionInfo( false );
|
||||
m_viewer->showEdgeTickMarksXZ( true, m_showAxisLines() );
|
||||
nativeOrOverrideViewer()->showAxisCross( false );
|
||||
nativeOrOverrideViewer()->showAnimationProgress( true );
|
||||
nativeOrOverrideViewer()->showHistogram( false );
|
||||
nativeOrOverrideViewer()->showInfoText( false );
|
||||
nativeOrOverrideViewer()->showVersionInfo( false );
|
||||
nativeOrOverrideViewer()->showEdgeTickMarksXZ( true, m_showAxisLines() );
|
||||
|
||||
m_viewer->setMainScene( new cvf::Scene() );
|
||||
m_viewer->enableNavigationRotation( false );
|
||||
nativeOrOverrideViewer()->setMainScene( new cvf::Scene(), isUsingOverrideViewer() );
|
||||
nativeOrOverrideViewer()->enableNavigationRotation( false );
|
||||
|
||||
m_ternaryLegendConfig()->recreateLegend();
|
||||
m_legendConfig()->recreateLegend();
|
||||
@ -730,7 +730,7 @@ void Rim2dIntersectionView::updateScaleTransform()
|
||||
|
||||
this->scaleTransform()->setLocalTransform( scale );
|
||||
|
||||
if ( m_viewer ) m_viewer->updateCachedValuesInScene();
|
||||
if ( nativeOrOverrideViewer() ) nativeOrOverrideViewer()->updateCachedValuesInScene();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -766,7 +766,7 @@ void Rim2dIntersectionView::fieldChangedByUi( const caf::PdmFieldHandle* changed
|
||||
}
|
||||
else if ( changedField == &m_showAxisLines )
|
||||
{
|
||||
m_viewer->showEdgeTickMarksXZ( true, m_showAxisLines() );
|
||||
nativeOrOverrideViewer()->showEdgeTickMarksXZ( true, m_showAxisLines() );
|
||||
this->loadDataAndUpdate();
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@
|
||||
|
||||
#include "RiaFieldHandleTools.h"
|
||||
#include "RiaGuiApplication.h"
|
||||
#include "RiaOptionItemFactory.h"
|
||||
#include "RiaPreferences.h"
|
||||
#include "RiaViewRedrawScheduler.h"
|
||||
|
||||
@ -36,6 +37,7 @@
|
||||
#include "RimTools.h"
|
||||
#include "RimViewController.h"
|
||||
#include "RimViewLinker.h"
|
||||
#include "RimViewManipulator.h"
|
||||
#include "RimViewNameConfig.h"
|
||||
#include "RimWellPathCollection.h"
|
||||
|
||||
@ -127,6 +129,16 @@ Rim3dView::Rim3dView( void )
|
||||
|
||||
CAF_PDM_InitField( &m_showZScaleLabel, "ShowZScale", true, "Show Z Scale Label", "", "", "" );
|
||||
|
||||
CAF_PDM_InitField( &m_isComparisonViewEnabled, "EnableComparisonView", false, "Enable", "", "", "" );
|
||||
CAF_PDM_InitFieldNoDefault( &m_comparisonView, "ComparisonView", "Comparison View", "", "", "" );
|
||||
CAF_PDM_InitField( &m_isComparisonViewLinkingTimestep,
|
||||
"EnableComparisonViewTimestepLinking",
|
||||
true,
|
||||
"Link Timestep",
|
||||
"",
|
||||
"",
|
||||
"" );
|
||||
|
||||
m_crossSectionVizModel = new cvf::ModelBasicList;
|
||||
m_crossSectionVizModel->setName( "CrossSectionModel" );
|
||||
|
||||
@ -165,6 +177,32 @@ RiuViewer* Rim3dView::viewer() const
|
||||
return m_viewer;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RiuViewer* Rim3dView::nativeOrOverrideViewer() const
|
||||
{
|
||||
if ( m_overrideViewer ) return m_overrideViewer;
|
||||
|
||||
return m_viewer;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::setOverrideViewer( RiuViewer* overrideViewer )
|
||||
{
|
||||
m_overrideViewer = overrideViewer;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool Rim3dView::isUsingOverrideViewer() const
|
||||
{
|
||||
return m_overrideViewer != nullptr;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -299,6 +337,11 @@ void Rim3dView::defineUiOrdering( QString uiConfigName, caf::PdmUiOrdering& uiOr
|
||||
gridGroup->add( &meshMode );
|
||||
gridGroup->add( &surfaceMode );
|
||||
|
||||
caf::PdmUiGroup* compViewGroup = uiOrdering.addNewGroup( "Comparison View" );
|
||||
compViewGroup->add( &m_isComparisonViewEnabled );
|
||||
compViewGroup->add( &m_comparisonView );
|
||||
compViewGroup->add( &m_isComparisonViewLinkingTimestep );
|
||||
|
||||
uiOrdering.skipRemainingFields( true );
|
||||
}
|
||||
|
||||
@ -345,6 +388,17 @@ void Rim3dView::setCurrentTimeStepAndUpdate( int frameIndex )
|
||||
|
||||
this->updateCurrentTimeStep();
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
{
|
||||
prepareComparisonView();
|
||||
|
||||
depView->updateCurrentTimeStep();
|
||||
depView->appendAnnotationsToModel();
|
||||
depView->appendMeasurementToModel();
|
||||
|
||||
restoreComparisonView();
|
||||
}
|
||||
|
||||
RimProject* project;
|
||||
firstAncestorOrThisOfTypeAsserted( project );
|
||||
project->mainPlotCollection()->updateCurrentTimeStepInPlots();
|
||||
@ -353,6 +407,20 @@ void Rim3dView::setCurrentTimeStepAndUpdate( int frameIndex )
|
||||
appendMeasurementToModel();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool Rim3dView::isTimeStepDependentDataVisibleInThisOrComparisonView() const
|
||||
{
|
||||
Rim3dView* otherView = activeComparisonView();
|
||||
if ( !otherView && isUsingOverrideViewer() )
|
||||
{
|
||||
otherView = dynamic_cast<Rim3dView*>( nativeOrOverrideViewer()->ownerReservoirView() );
|
||||
}
|
||||
|
||||
return ( isTimeStepDependentDataVisible() || ( otherView && otherView->isTimeStepDependentDataVisible() ) );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -387,11 +455,20 @@ void Rim3dView::updateCurrentTimeStepAndRedraw()
|
||||
{
|
||||
this->updateCurrentTimeStep();
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
{
|
||||
prepareComparisonView();
|
||||
|
||||
depView->updateCurrentTimeStep();
|
||||
|
||||
restoreComparisonView();
|
||||
}
|
||||
|
||||
RimProject* project;
|
||||
firstAncestorOrThisOfTypeAsserted( project );
|
||||
project->mainPlotCollection()->updateCurrentTimeStepInPlots();
|
||||
|
||||
if ( m_viewer ) m_viewer->update();
|
||||
if ( nativeOrOverrideViewer() ) nativeOrOverrideViewer()->update();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -399,10 +476,12 @@ void Rim3dView::updateCurrentTimeStepAndRedraw()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::createDisplayModelAndRedraw()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
this->clampCurrentTimestep();
|
||||
|
||||
updateScaleTransform();
|
||||
|
||||
createDisplayModel();
|
||||
createHighlightAndGridBoxDisplayModel();
|
||||
updateDisplayModelVisibility();
|
||||
@ -410,8 +489,30 @@ void Rim3dView::createDisplayModelAndRedraw()
|
||||
if ( m_cameraPosition().isIdentity() )
|
||||
{
|
||||
setDefaultView();
|
||||
m_cameraPosition = m_viewer->mainCamera()->viewMatrix();
|
||||
m_cameraPointOfInterest = m_viewer->pointOfInterest();
|
||||
m_cameraPosition = nativeOrOverrideViewer()->mainCamera()->viewMatrix();
|
||||
m_cameraPointOfInterest = nativeOrOverrideViewer()->pointOfInterest();
|
||||
}
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
{
|
||||
prepareComparisonView();
|
||||
|
||||
depView->createDisplayModelAndRedraw();
|
||||
|
||||
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
// To make the override viewer see the new frame (skeletons) created by createDisplayModelAndRedraw
|
||||
nativeOrOverrideViewer()->slotSetCurrentFrame( currentTimeStep() );
|
||||
depView->updateCurrentTimeStep();
|
||||
}
|
||||
|
||||
restoreComparisonView();
|
||||
}
|
||||
else if ( viewer() )
|
||||
{
|
||||
// Remove the comparison scene data
|
||||
viewer()->setMainScene( nullptr, true );
|
||||
viewer()->removeAllFrames( true );
|
||||
}
|
||||
}
|
||||
|
||||
@ -662,6 +763,24 @@ void Rim3dView::fieldChangedByUi( const caf::PdmFieldHandle* changedField,
|
||||
m_viewer->showZScaleLabel( m_showZScaleLabel() );
|
||||
m_viewer->update();
|
||||
}
|
||||
else if ( changedField == &m_isComparisonViewEnabled )
|
||||
{
|
||||
createDisplayModelAndRedraw();
|
||||
}
|
||||
else if ( changedField == &m_comparisonView )
|
||||
{
|
||||
if ( m_isComparisonViewEnabled() )
|
||||
{
|
||||
createDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
else if ( changedField == &m_isComparisonViewLinkingTimestep )
|
||||
{
|
||||
if ( m_isComparisonViewEnabled() && m_comparisonView() )
|
||||
{
|
||||
createDisplayModelAndRedraw();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -743,7 +862,7 @@ void Rim3dView::addMeasurementToModel( cvf::ModelBasicList* wellPathModelBasicLi
|
||||
else
|
||||
{
|
||||
cvf::ref<caf::DisplayCoordTransform> transForm = displayCoordTransform();
|
||||
m_measurementPartManager->appendGeometryPartsToModel( m_viewer->mainCamera(),
|
||||
m_measurementPartManager->appendGeometryPartsToModel( nativeOrOverrideViewer()->mainCamera(),
|
||||
wellPathModelBasicList,
|
||||
transForm.p(),
|
||||
ownerCase()->allCellsBoundingBox() );
|
||||
@ -784,13 +903,34 @@ bool Rim3dView::isMasterView() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::updateGridBoxData()
|
||||
{
|
||||
if ( m_viewer && ownerCase() )
|
||||
if ( viewer() && ownerCase() )
|
||||
{
|
||||
m_viewer->updateGridBoxData( scaleZ(),
|
||||
ownerCase()->displayModelOffset(),
|
||||
backgroundColor(),
|
||||
showActiveCellsOnly() ? ownerCase()->activeCellsBoundingBox()
|
||||
: ownerCase()->allCellsBoundingBox() );
|
||||
using BBox = cvf::BoundingBox;
|
||||
|
||||
BBox masterDomainBBox = showActiveCellsOnly() ? ownerCase()->activeCellsBoundingBox()
|
||||
: ownerCase()->allCellsBoundingBox();
|
||||
BBox combinedDomainBBox = masterDomainBBox;
|
||||
|
||||
if ( Rim3dView* depView = activeComparisonView() )
|
||||
{
|
||||
viewer()->setComparisonViewEyePointOffset(
|
||||
RimViewManipulator::calculateEquivalentCamPosOffset( this, depView ) );
|
||||
|
||||
RimCase* destinationOwnerCase = depView->ownerCase();
|
||||
|
||||
if ( destinationOwnerCase )
|
||||
{
|
||||
BBox depDomainBBox = depView->showActiveCellsOnly() ? destinationOwnerCase->activeCellsBoundingBox()
|
||||
: destinationOwnerCase->allCellsBoundingBox();
|
||||
if ( depDomainBBox.isValid() )
|
||||
{
|
||||
combinedDomainBBox.add( depDomainBBox.min() );
|
||||
combinedDomainBBox.add( depDomainBBox.max() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
viewer()->updateGridBoxData( scaleZ(), ownerCase()->displayModelOffset(), backgroundColor(), combinedDomainBBox );
|
||||
}
|
||||
}
|
||||
|
||||
@ -799,9 +939,9 @@ void Rim3dView::updateGridBoxData()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::updateAnnotationItems()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->updateAnnotationItems();
|
||||
nativeOrOverrideViewer()->updateAnnotationItems();
|
||||
}
|
||||
}
|
||||
|
||||
@ -812,26 +952,24 @@ void Rim3dView::updateScaling()
|
||||
{
|
||||
if ( scaleZ < 1 ) scaleZ = 1;
|
||||
|
||||
this->updateGridBoxData();
|
||||
|
||||
if ( m_viewer )
|
||||
if ( viewer() )
|
||||
{
|
||||
cvf::Vec3d poi = m_viewer->pointOfInterest();
|
||||
cvf::Vec3d poi = viewer()->pointOfInterest();
|
||||
cvf::Vec3d eye, dir, up;
|
||||
eye = m_viewer->mainCamera()->position();
|
||||
dir = m_viewer->mainCamera()->direction();
|
||||
up = m_viewer->mainCamera()->up();
|
||||
eye = viewer()->mainCamera()->position();
|
||||
dir = viewer()->mainCamera()->direction();
|
||||
up = viewer()->mainCamera()->up();
|
||||
|
||||
eye[2] = poi[2] * scaleZ() / this->scaleTransform()->worldTransform()( 2, 2 ) + ( eye[2] - poi[2] );
|
||||
poi[2] = poi[2] * scaleZ() / this->scaleTransform()->worldTransform()( 2, 2 );
|
||||
|
||||
m_viewer->mainCamera()->setFromLookAt( eye, eye + dir, up );
|
||||
m_viewer->setPointOfInterest( poi );
|
||||
viewer()->mainCamera()->setFromLookAt( eye, eye + dir, up );
|
||||
viewer()->setPointOfInterest( poi );
|
||||
|
||||
updateScaleTransform();
|
||||
createDisplayModelAndRedraw();
|
||||
|
||||
m_viewer->update();
|
||||
viewer()->update();
|
||||
|
||||
updateZScaleLabel();
|
||||
}
|
||||
@ -844,7 +982,7 @@ void Rim3dView::updateZScaleLabel()
|
||||
{
|
||||
// Update Z scale label
|
||||
int scale = static_cast<int>( scaleZ() );
|
||||
m_viewer->setZScale( scale );
|
||||
nativeOrOverrideViewer()->setZScale( scale );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -855,7 +993,7 @@ void Rim3dView::updateMeasurement()
|
||||
if ( m_viewer )
|
||||
{
|
||||
appendMeasurementToModel();
|
||||
m_viewer->update();
|
||||
nativeOrOverrideViewer()->update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -866,9 +1004,9 @@ void Rim3dView::createHighlightAndGridBoxDisplayModelWithRedraw()
|
||||
{
|
||||
createHighlightAndGridBoxDisplayModel();
|
||||
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->update();
|
||||
nativeOrOverrideViewer()->update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -877,7 +1015,9 @@ void Rim3dView::createHighlightAndGridBoxDisplayModelWithRedraw()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::createHighlightAndGridBoxDisplayModel()
|
||||
{
|
||||
m_viewer->removeStaticModel( m_highlightVizModel.p() );
|
||||
if ( !nativeOrOverrideViewer() ) return;
|
||||
|
||||
nativeOrOverrideViewer()->removeStaticModel( m_highlightVizModel.p() );
|
||||
|
||||
m_highlightVizModel->removeAllParts();
|
||||
|
||||
@ -891,10 +1031,12 @@ void Rim3dView::createHighlightAndGridBoxDisplayModel()
|
||||
}
|
||||
|
||||
m_highlightVizModel->updateBoundingBoxesRecursive();
|
||||
m_viewer->addStaticModelOnce( m_highlightVizModel.p() );
|
||||
nativeOrOverrideViewer()->addStaticModelOnce( m_highlightVizModel.p(), isUsingOverrideViewer() );
|
||||
}
|
||||
|
||||
m_viewer->showGridBox( m_showGridBox() );
|
||||
this->updateGridBoxData();
|
||||
|
||||
if ( viewer() ) viewer()->showGridBox( m_showGridBox() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -918,10 +1060,10 @@ void Rim3dView::setShowGridBox( bool showGridBox )
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::applyBackgroundColorAndFontChanges()
|
||||
{
|
||||
if ( m_viewer != nullptr )
|
||||
if ( viewer() != nullptr )
|
||||
{
|
||||
m_viewer->mainCamera()->viewport()->setClearColor( cvf::Color4f( backgroundColor() ) );
|
||||
m_viewer->updateFonts();
|
||||
viewer()->mainCamera()->viewport()->setClearColor( cvf::Color4f( backgroundColor() ) );
|
||||
viewer()->updateFonts();
|
||||
}
|
||||
updateGridBoxData();
|
||||
updateAnnotationItems();
|
||||
@ -941,7 +1083,7 @@ void Rim3dView::performAutoNameUpdate()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::updateDisplayModelVisibility()
|
||||
{
|
||||
if ( m_viewer.isNull() ) return;
|
||||
if ( viewer() == nullptr || isUsingOverrideViewer() ) return;
|
||||
|
||||
const cvf::uint uintSurfaceBit = surfaceBit;
|
||||
const cvf::uint uintMeshSurfaceBit = meshSurfaceBit;
|
||||
@ -982,8 +1124,10 @@ void Rim3dView::updateDisplayModelVisibility()
|
||||
mask |= intersectionFaultMeshBit;
|
||||
}
|
||||
|
||||
m_viewer->setEnableMask( mask );
|
||||
m_viewer->update();
|
||||
viewer()->setEnableMask( mask, false );
|
||||
viewer()->setEnableMask( mask, true );
|
||||
|
||||
viewer()->update();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1048,6 +1192,37 @@ bool Rim3dView::applyFontSize( RiaDefines::FontSettingType fontSettingType,
|
||||
return false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
QList<caf::PdmOptionItemInfo> Rim3dView::calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||
bool* useOptionsOnly )
|
||||
{
|
||||
QList<caf::PdmOptionItemInfo> options;
|
||||
|
||||
if ( fieldNeedingOptions == &m_comparisonView )
|
||||
{
|
||||
RimProject* proj;
|
||||
this->firstAncestorOrThisOfType( proj );
|
||||
if ( proj )
|
||||
{
|
||||
std::vector<Rim3dView*> views;
|
||||
proj->allViews( views );
|
||||
for ( auto view : views )
|
||||
{
|
||||
if ( view != this ) RiaOptionItemFactory::appendOptionItemFromViewNameAndCaseName( view, &options );
|
||||
}
|
||||
|
||||
if ( !options.empty() )
|
||||
{
|
||||
options.push_front( caf::PdmOptionItemInfo( "None", nullptr ) );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -1132,9 +1307,9 @@ void Rim3dView::setMdiWindowGeometry( const RimMdiWindowGeometry& windowGeometry
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::appendAnnotationsToModel()
|
||||
{
|
||||
if ( !m_viewer ) return;
|
||||
if ( !nativeOrOverrideViewer() ) return;
|
||||
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "Annotations";
|
||||
@ -1154,9 +1329,9 @@ void Rim3dView::appendAnnotationsToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::appendMeasurementToModel()
|
||||
{
|
||||
if ( !m_viewer ) return;
|
||||
if ( !nativeOrOverrideViewer() ) return;
|
||||
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "Measurement";
|
||||
@ -1170,3 +1345,52 @@ void Rim3dView::appendMeasurementToModel()
|
||||
frameScene->addModel( model.p() );
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
Rim3dView* Rim3dView::activeComparisonView() const
|
||||
{
|
||||
if ( m_isComparisonViewEnabled() )
|
||||
{
|
||||
return m_comparisonView();
|
||||
}
|
||||
else
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::prepareComparisonView()
|
||||
{
|
||||
Rim3dView* depView = activeComparisonView();
|
||||
CVF_ASSERT( depView );
|
||||
|
||||
// prepareComparisonView
|
||||
m_comparisonViewOrgTimestep = depView->currentTimeStep();
|
||||
depView->m_currentTimeStep = currentTimeStep();
|
||||
depView->clampCurrentTimestep();
|
||||
|
||||
m_comparisonViewOrgZScale = depView->scaleZ();
|
||||
depView->scaleZ = scaleZ();
|
||||
|
||||
viewer()->setComparisonViewEyePointOffset( RimViewManipulator::calculateEquivalentCamPosOffset( this, depView ) );
|
||||
|
||||
depView->setOverrideViewer( viewer() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void Rim3dView::restoreComparisonView()
|
||||
{
|
||||
Rim3dView* depView = activeComparisonView();
|
||||
CVF_ASSERT( depView );
|
||||
|
||||
depView->setOverrideViewer( nullptr );
|
||||
depView->m_currentTimeStep = m_comparisonViewOrgTimestep;
|
||||
depView->scaleZ = m_comparisonViewOrgZScale;
|
||||
}
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "cafAppEnum.h"
|
||||
#include "cafPdmField.h"
|
||||
#include "cafPdmObject.h"
|
||||
#include "cafPdmPtrField.h"
|
||||
|
||||
#include "cafPdmFieldCvfColor.h"
|
||||
#include "cafPdmFieldCvfMat4d.h"
|
||||
@ -145,6 +146,7 @@ public:
|
||||
}
|
||||
void setCurrentTimeStep( int frameIdx );
|
||||
void setCurrentTimeStepAndUpdate( int frameIdx ) override;
|
||||
bool isTimeStepDependentDataVisibleInThisOrComparisonView() const;
|
||||
virtual bool isTimeStepDependentDataVisible() const = 0;
|
||||
|
||||
// Updating
|
||||
@ -172,6 +174,9 @@ public:
|
||||
int fontSize,
|
||||
bool forceChange = false ) override;
|
||||
|
||||
virtual QList<caf::PdmOptionItemInfo> calculateValueOptions( const caf::PdmFieldHandle* fieldNeedingOptions,
|
||||
bool* useOptionsOnly ) override;
|
||||
|
||||
protected:
|
||||
static void removeModelByName( cvf::Scene* scene, const cvf::String& modelName );
|
||||
|
||||
@ -193,7 +198,10 @@ protected:
|
||||
void addAnnotationsToModel( cvf::ModelBasicList* wellPathModelBasicList );
|
||||
void addMeasurementToModel( cvf::ModelBasicList* wellPathModelBasicList );
|
||||
|
||||
void createHighlightAndGridBoxDisplayModel();
|
||||
// Override viewer
|
||||
|
||||
RiuViewer* nativeOrOverrideViewer() const;
|
||||
bool isUsingOverrideViewer() const;
|
||||
|
||||
// Implementation of RimNameConfigHolderInterface
|
||||
void performAutoNameUpdate() override;
|
||||
@ -202,15 +210,14 @@ protected:
|
||||
|
||||
virtual void axisLabels( cvf::String* xLabel, cvf::String* yLabel, cvf::String* zLabel ) = 0;
|
||||
|
||||
virtual void createDisplayModel() = 0;
|
||||
virtual void createPartCollectionFromSelection( cvf::Collection<cvf::Part>* parts ) = 0;
|
||||
|
||||
virtual void createDisplayModel() = 0;
|
||||
virtual void updateDisplayModelVisibility();
|
||||
virtual void clampCurrentTimestep() = 0;
|
||||
virtual void clampCurrentTimestep() = 0;
|
||||
virtual void updateCurrentTimeStep() = 0;
|
||||
virtual void onTimeStepChanged() = 0;
|
||||
|
||||
virtual void updateCurrentTimeStep() = 0;
|
||||
virtual void onTimeStepChanged() = 0;
|
||||
virtual void updateStaticCellColors() = 0;
|
||||
virtual void createPartCollectionFromSelection( cvf::Collection<cvf::Part>* parts ) = 0;
|
||||
virtual void updateStaticCellColors() = 0;
|
||||
|
||||
virtual void updateScaleTransform() = 0;
|
||||
virtual cvf::Transform* scaleTransform() = 0;
|
||||
@ -221,8 +228,6 @@ protected: // Fields
|
||||
caf::PdmField<int> m_currentTimeStep;
|
||||
|
||||
protected:
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
|
||||
cvf::ref<cvf::ModelBasicList> m_wellPathPipeVizModel;
|
||||
cvf::ref<cvf::ModelBasicList> m_crossSectionVizModel;
|
||||
cvf::ref<cvf::ModelBasicList> m_highlightVizModel;
|
||||
@ -263,22 +268,44 @@ private:
|
||||
{
|
||||
m_cameraPosition = cameraPosition;
|
||||
}
|
||||
|
||||
void setCameraPointOfInterest( const cvf::Vec3d& cameraPointOfInterest ) override
|
||||
{
|
||||
m_cameraPointOfInterest = cameraPointOfInterest;
|
||||
}
|
||||
QString timeStepName( int frameIdx ) const override;
|
||||
void endAnimation() override;
|
||||
|
||||
QString timeStepName( int frameIdx ) const override;
|
||||
void endAnimation() override;
|
||||
|
||||
caf::PdmObjectHandle* implementingPdmObject() override
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
void handleMdiWindowClosed() override;
|
||||
void setMdiWindowGeometry( const RimMdiWindowGeometry& windowGeometry ) override;
|
||||
|
||||
// Pure private methods
|
||||
|
||||
void createHighlightAndGridBoxDisplayModel();
|
||||
|
||||
void appendAnnotationsToModel();
|
||||
void appendMeasurementToModel();
|
||||
|
||||
// Pure private methods : Override viewer and comparison view
|
||||
|
||||
void setOverrideViewer( RiuViewer* overrideViewer );
|
||||
Rim3dView* activeComparisonView() const;
|
||||
|
||||
void prepareComparisonView();
|
||||
void restoreComparisonView();
|
||||
|
||||
private:
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
QPointer<RiuViewer> m_overrideViewer;
|
||||
int m_comparisonViewOrgTimestep;
|
||||
double m_comparisonViewOrgZScale;
|
||||
|
||||
caf::PdmField<QString> m_name_OBSOLETE;
|
||||
caf::PdmChildField<RimViewNameConfig*> m_nameConfig;
|
||||
caf::PdmField<bool> m_disableLighting;
|
||||
@ -287,4 +314,7 @@ private:
|
||||
caf::PdmField<cvf::Color3f> m_backgroundColor;
|
||||
caf::PdmField<bool> m_showGridBox;
|
||||
caf::PdmField<bool> m_showZScaleLabel;
|
||||
caf::PdmField<bool> m_isComparisonViewEnabled;
|
||||
caf::PdmPtrField<Rim3dView*> m_comparisonView;
|
||||
caf::PdmField<bool> m_isComparisonViewLinkingTimestep;
|
||||
};
|
||||
|
@ -140,9 +140,9 @@ void RimEclipseContourMapView::setDefaultCustomName()
|
||||
void RimEclipseContourMapView::updatePickPointAndRedraw()
|
||||
{
|
||||
appendPickPointVisToModel();
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->update();
|
||||
nativeOrOverrideViewer()->update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -285,7 +285,7 @@ void RimEclipseContourMapView::setFaultVisParameters()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseContourMapView::createContourMapGeometry()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
m_contourMapProjectionPartMgr->createProjectionGeometry();
|
||||
}
|
||||
@ -296,9 +296,9 @@ void RimEclipseContourMapView::createContourMapGeometry()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseContourMapView::appendContourMapProjectionToModel()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "ContourMapProjection";
|
||||
@ -322,9 +322,9 @@ void RimEclipseContourMapView::appendContourMapProjectionToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseContourMapView::appendContourLinesToModel()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "ContourMapLines";
|
||||
@ -349,9 +349,9 @@ void RimEclipseContourMapView::appendContourLinesToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseContourMapView::appendPickPointVisToModel()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "ContourMapPickPoint";
|
||||
@ -375,9 +375,16 @@ void RimEclipseContourMapView::appendPickPointVisToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseContourMapView::updateLegends()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->removeAllColorLegends();
|
||||
if ( !isUsingOverrideViewer() )
|
||||
{
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
}
|
||||
else if ( m_contourMapProjection && m_contourMapProjection->legendConfig() )
|
||||
{
|
||||
nativeOrOverrideViewer()->removeColorLegend( m_contourMapProjection->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
if ( m_contourMapProjection && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
@ -387,12 +394,12 @@ void RimEclipseContourMapView::updateLegends()
|
||||
m_contourMapProjection->updateLegend();
|
||||
if ( projectionLegend->showLegend() )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner( projectionLegend->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( projectionLegend->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_viewer->showScaleLegend( m_showScaleLegend() );
|
||||
nativeOrOverrideViewer()->showScaleLegend( m_showScaleLegend() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -401,11 +408,11 @@ void RimEclipseContourMapView::updateLegends()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseContourMapView::updateViewWidgetAfterCreation()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( viewer() )
|
||||
{
|
||||
m_viewer->showAxisCross( false );
|
||||
m_viewer->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
m_viewer->enableNavigationRotation( false );
|
||||
viewer()->showAxisCross( false );
|
||||
viewer()->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
viewer()->enableNavigationRotation( false );
|
||||
}
|
||||
|
||||
Rim3dView::updateViewWidgetAfterCreation();
|
||||
@ -426,9 +433,9 @@ void RimEclipseContourMapView::updateViewFollowingRangeFilterUpdates()
|
||||
void RimEclipseContourMapView::onLoadDataAndUpdate()
|
||||
{
|
||||
RimEclipseView::onLoadDataAndUpdate();
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->setView( cvf::Vec3d( 0, 0, -1 ), cvf::Vec3d( 0, 1, 0 ) );
|
||||
nativeOrOverrideViewer()->setView( cvf::Vec3d( 0, 0, -1 ), cvf::Vec3d( 0, 1, 0 ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -443,7 +450,7 @@ void RimEclipseContourMapView::fieldChangedByUi( const caf::PdmFieldHandle* chan
|
||||
|
||||
if ( changedField == &m_showAxisLines )
|
||||
{
|
||||
m_viewer->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
viewer()->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
else if ( changedField == backgroundColorField() )
|
||||
|
@ -338,7 +338,7 @@ void RimEclipseView::updateScaleTransform()
|
||||
this->scaleTransform()->setLocalTransform( scale );
|
||||
m_simWellsPartManager->setScaleTransform( this->scaleTransform() );
|
||||
|
||||
if ( m_viewer ) m_viewer->updateCachedValuesInScene();
|
||||
if ( nativeOrOverrideViewer() ) nativeOrOverrideViewer()->updateCachedValuesInScene();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -350,7 +350,7 @@ void RimEclipseView::createDisplayModel()
|
||||
{
|
||||
clearReservoirCellVisibilities();
|
||||
|
||||
if ( m_viewer.isNull() ) return;
|
||||
if ( nativeOrOverrideViewer() == nullptr ) return;
|
||||
|
||||
#if 0 // Debug info
|
||||
static int callCount = 0;
|
||||
@ -369,7 +369,7 @@ void RimEclipseView::createDisplayModel()
|
||||
|
||||
// Find the number of time frames the animation needs to show the requested data.
|
||||
|
||||
if ( isTimeStepDependentDataVisible() && currentGridCellResults()->maxTimeStepCount() > 0 )
|
||||
if ( ( isTimeStepDependentDataVisibleInThisOrComparisonView() && currentGridCellResults()->maxTimeStepCount() > 0 ) )
|
||||
{
|
||||
CVF_ASSERT( currentGridCellResults() );
|
||||
|
||||
@ -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
|
||||
m_viewer->removeAllFrames();
|
||||
nativeOrOverrideViewer()->removeAllFrames(isUsingOverrideViewer());
|
||||
|
||||
wellCollection()->scheduleIsWellPipesVisibleRecalculation();
|
||||
|
||||
@ -517,7 +517,7 @@ void RimEclipseView::createDisplayModel()
|
||||
m_crossSectionCollection->appendPartsToModel( *this,
|
||||
m_crossSectionVizModel.p(),
|
||||
m_reservoirGridPartManager->scaleTransform() );
|
||||
m_viewer->addStaticModelOnce( m_crossSectionVizModel.p() );
|
||||
nativeOrOverrideViewer()->addStaticModelOnce( m_crossSectionVizModel.p(), isUsingOverrideViewer() );
|
||||
|
||||
// Well path model
|
||||
|
||||
@ -532,7 +532,7 @@ void RimEclipseView::createDisplayModel()
|
||||
m_wellPathsPartManager->appendStaticFracturePartsToModel( m_wellPathPipeVizModel.p(),
|
||||
currentActiveCellInfo()->geometryBoundingBox() );
|
||||
m_wellPathPipeVizModel->updateBoundingBoxesRecursive();
|
||||
m_viewer->addStaticModelOnce( m_wellPathPipeVizModel.p() );
|
||||
nativeOrOverrideViewer()->addStaticModelOnce( m_wellPathPipeVizModel.p(), isUsingOverrideViewer() );
|
||||
|
||||
// Create Scenes from the frameModels
|
||||
// Animation frames for results display, starts from frame 1
|
||||
@ -547,16 +547,16 @@ void RimEclipseView::createDisplayModel()
|
||||
scene->addModel( model );
|
||||
|
||||
if ( frameIndex == 0 )
|
||||
m_viewer->setMainScene( scene.p() );
|
||||
nativeOrOverrideViewer()->setMainScene( scene.p() ,isUsingOverrideViewer() );
|
||||
else
|
||||
m_viewer->addFrame( scene.p() );
|
||||
nativeOrOverrideViewer()->addFrame( scene.p() , isUsingOverrideViewer() );
|
||||
}
|
||||
|
||||
// If the animation was active before recreating everything, make viewer view current frame
|
||||
|
||||
if ( frameModels.size() > 1 && this->hasUserRequestedAnimation() )
|
||||
{
|
||||
m_viewer->setCurrentFrame( m_currentTimeStep );
|
||||
if (viewer()) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -716,9 +716,9 @@ void RimEclipseView::updateVisibleGeometriesAndCellColors()
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
this->removeModelByName( frameScene, frameParts->name() );
|
||||
@ -792,9 +792,9 @@ void RimEclipseView::updateVisibleGeometriesAndCellColors()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::appendWellsAndFracturesToModel()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
// Simulation Wells
|
||||
@ -1161,12 +1161,25 @@ std::vector<size_t> RimEclipseView::indicesToVisibleGrids() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimEclipseView::updateLegends()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->removeAllColorLegends();
|
||||
if ( !isUsingOverrideViewer() )
|
||||
{
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
}
|
||||
else
|
||||
{
|
||||
nativeOrOverrideViewer()->removeColorLegend( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( fractureColors()->activeLegend()->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() );
|
||||
}
|
||||
}
|
||||
|
||||
if ( !m_eclipseCase || !m_viewer || !m_eclipseCase->eclipseCaseData() )
|
||||
if ( !m_eclipseCase || !nativeOrOverrideViewer() || !m_eclipseCase->eclipseCaseData() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -1222,7 +1235,7 @@ void RimEclipseView::updateLegends()
|
||||
|
||||
this->cellEdgeResult()->legendConfig()->setTitle( QString( "Edge Results: \n" ) +
|
||||
this->cellEdgeResult()->resultVariableUiShortName() );
|
||||
m_viewer->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1255,7 +1268,7 @@ void RimEclipseView::updateLegends()
|
||||
|
||||
if ( fractureColors()->isChecked() && stimPlanLegend->titledOverlayFrame() )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner( stimPlanLegend->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( stimPlanLegend->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1266,7 +1279,7 @@ void RimEclipseView::updateLegends()
|
||||
updateVirtualConnectionLegendRanges();
|
||||
|
||||
RimRegularLegendConfig* virtLegend = m_virtualPerforationResult->legendConfig();
|
||||
m_viewer->addColorLegendToBottomLeftCorner( virtLegend->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( virtLegend->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -1296,7 +1309,7 @@ void RimEclipseView::updateMinMaxValuesAndAddLegendToView( QString
|
||||
}
|
||||
|
||||
resultColors->legendConfig()->setTitle( title );
|
||||
m_viewer->addColorLegendToBottomLeftCorner( resultColors->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( resultColors->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
size_t maxTimeStepCount = cellResultsData->maxTimeStepCount();
|
||||
@ -1306,7 +1319,7 @@ void RimEclipseView::updateMinMaxValuesAndAddLegendToView( QString
|
||||
resultColors->ternaryLegendConfig()->titledOverlayFrame() )
|
||||
{
|
||||
resultColors->ternaryLegendConfig()->setTitle( legendLabel );
|
||||
m_viewer->addColorLegendToBottomLeftCorner( resultColors->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( resultColors->ternaryLegendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1549,9 +1562,9 @@ void RimEclipseView::updateDisplayModelForWellResults()
|
||||
createDisplayModel();
|
||||
updateDisplayModelVisibility();
|
||||
|
||||
if ( hasUserRequestedAnimation() && m_viewer )
|
||||
if ( hasUserRequestedAnimation() && nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->animationControl()->setCurrentFrame( m_currentTimeStep );
|
||||
nativeOrOverrideViewer()->animationControl()->setCurrentFrame( m_currentTimeStep );
|
||||
}
|
||||
|
||||
RiuMainWindow::instance()->refreshAnimationActions();
|
||||
@ -1815,14 +1828,14 @@ void RimEclipseView::resetLegendsInViewer()
|
||||
this->cellResult()->ternaryLegendConfig()->recreateLegend();
|
||||
this->cellEdgeResult()->legendConfig()->recreateLegend();
|
||||
|
||||
m_viewer->removeAllColorLegends();
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
|
||||
if ( cellResultNormalLegendConfig )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner( cellResultNormalLegendConfig->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( cellResultNormalLegendConfig->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
m_viewer->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellEdgeResult()->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -136,9 +136,9 @@ void RimGeoMechContourMapView::setDefaultCustomName()
|
||||
void RimGeoMechContourMapView::updatePickPointAndRedraw()
|
||||
{
|
||||
appendPickPointVisToModel();
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->update();
|
||||
nativeOrOverrideViewer()->update();
|
||||
}
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ void RimGeoMechContourMapView::updateGeometry()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechContourMapView::createContourMapGeometry()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
m_contourMapProjectionPartMgr->createProjectionGeometry();
|
||||
}
|
||||
@ -289,9 +289,9 @@ void RimGeoMechContourMapView::createContourMapGeometry()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechContourMapView::appendContourMapProjectionToModel()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "ContourMapProjection";
|
||||
@ -315,9 +315,9 @@ void RimGeoMechContourMapView::appendContourMapProjectionToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechContourMapView::appendContourLinesToModel()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "ContourMapLines";
|
||||
@ -342,9 +342,9 @@ void RimGeoMechContourMapView::appendContourLinesToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechContourMapView::appendPickPointVisToModel()
|
||||
{
|
||||
if ( m_viewer && m_contourMapProjection->isChecked() )
|
||||
if ( nativeOrOverrideViewer() && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
cvf::String name = "ContourMapPickPoint";
|
||||
@ -368,9 +368,16 @@ void RimGeoMechContourMapView::appendPickPointVisToModel()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechContourMapView::updateLegends()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->removeAllColorLegends();
|
||||
if ( !isUsingOverrideViewer() )
|
||||
{
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
}
|
||||
else if ( m_contourMapProjection && m_contourMapProjection->legendConfig() )
|
||||
{
|
||||
nativeOrOverrideViewer()->removeColorLegend( m_contourMapProjection->legendConfig()->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
if ( m_contourMapProjection && m_contourMapProjection->isChecked() )
|
||||
{
|
||||
@ -380,12 +387,12 @@ void RimGeoMechContourMapView::updateLegends()
|
||||
m_contourMapProjection->updateLegend();
|
||||
if ( projectionLegend->showLegend() )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner( projectionLegend->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( projectionLegend->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
m_viewer->showScaleLegend( m_showScaleLegend() );
|
||||
nativeOrOverrideViewer()->showScaleLegend( m_showScaleLegend() );
|
||||
}
|
||||
}
|
||||
|
||||
@ -394,11 +401,11 @@ void RimGeoMechContourMapView::updateLegends()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechContourMapView::updateViewWidgetAfterCreation()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( viewer() )
|
||||
{
|
||||
m_viewer->showAxisCross( false );
|
||||
m_viewer->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
m_viewer->enableNavigationRotation( false );
|
||||
viewer()->showAxisCross( false );
|
||||
viewer()->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
viewer()->enableNavigationRotation( false );
|
||||
}
|
||||
|
||||
Rim3dView::updateViewWidgetAfterCreation();
|
||||
@ -419,9 +426,9 @@ void RimGeoMechContourMapView::updateViewFollowingRangeFilterUpdates()
|
||||
void RimGeoMechContourMapView::onLoadDataAndUpdate()
|
||||
{
|
||||
RimGeoMechView::onLoadDataAndUpdate();
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->setView( cvf::Vec3d( 0, 0, -1 ), cvf::Vec3d( 0, 1, 0 ) );
|
||||
nativeOrOverrideViewer()->setView( cvf::Vec3d( 0, 0, -1 ), cvf::Vec3d( 0, 1, 0 ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -436,7 +443,7 @@ void RimGeoMechContourMapView::fieldChangedByUi( const caf::PdmFieldHandle* chan
|
||||
|
||||
if ( changedField == &m_showAxisLines )
|
||||
{
|
||||
m_viewer->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
viewer()->showEdgeTickMarksXY( true, m_showAxisLines() );
|
||||
scheduleCreateDisplayModelAndRedraw();
|
||||
}
|
||||
else if ( changedField == backgroundColorField() )
|
||||
|
@ -188,7 +188,7 @@ void RimGeoMechView::updateScaleTransform()
|
||||
|
||||
this->scaleTransform()->setLocalTransform( scale );
|
||||
|
||||
if ( m_viewer ) m_viewer->updateCachedValuesInScene();
|
||||
if ( nativeOrOverrideViewer() ) nativeOrOverrideViewer()->updateCachedValuesInScene();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -233,7 +233,7 @@ QString RimGeoMechView::createAutoName() const
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechView::createDisplayModel()
|
||||
{
|
||||
if ( m_viewer.isNull() ) return;
|
||||
if ( nativeOrOverrideViewer() == nullptr ) return;
|
||||
|
||||
if ( !( m_geomechCase && m_geomechCase->geoMechData() && m_geomechCase->geoMechData()->femParts() ) ) return;
|
||||
|
||||
@ -244,25 +244,26 @@ void RimGeoMechView::createDisplayModel()
|
||||
// Remove all existing animation frames from the viewer.
|
||||
// The parts are still cached in the RivReservoir geometry and friends
|
||||
|
||||
m_viewer->removeAllFrames();
|
||||
nativeOrOverrideViewer()->removeAllFrames( isUsingOverrideViewer() );
|
||||
|
||||
if ( isTimeStepDependentDataVisible() )
|
||||
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
// Create empty frames in the viewer
|
||||
|
||||
int frameCount = geoMechCase()->geoMechData()->femPartResults()->frameCount();
|
||||
for ( int frameIndex = 0; frameIndex < frameCount; frameIndex++ )
|
||||
{
|
||||
cvf::ref<cvf::Scene> scene = new cvf::Scene;
|
||||
scene->addModel( new cvf::ModelBasicList );
|
||||
m_viewer->addFrame( scene.p() );
|
||||
cvf::ref<cvf::Scene> scene = new cvf::Scene;
|
||||
cvf::ref<cvf::ModelBasicList> emptyModel = new cvf::ModelBasicList;
|
||||
emptyModel->setName( "EmptyModel" );
|
||||
scene->addModel( emptyModel.p() );
|
||||
nativeOrOverrideViewer()->addFrame( scene.p(), isUsingOverrideViewer() );
|
||||
}
|
||||
}
|
||||
|
||||
// Set the Main scene in the viewer. Used when the animation is in "Stopped" state
|
||||
|
||||
cvf::ref<cvf::Scene> mainScene = new cvf::Scene;
|
||||
m_viewer->setMainScene( mainScene.p() );
|
||||
|
||||
// Grid model
|
||||
cvf::ref<cvf::ModelBasicList> mainSceneGridVizModel = new cvf::ModelBasicList;
|
||||
@ -271,6 +272,7 @@ void RimGeoMechView::createDisplayModel()
|
||||
|
||||
mainSceneGridVizModel->updateBoundingBoxesRecursive();
|
||||
mainScene->addModel( mainSceneGridVizModel.p() );
|
||||
nativeOrOverrideViewer()->setMainScene( mainScene.p(), isUsingOverrideViewer() );
|
||||
|
||||
// Well path model
|
||||
|
||||
@ -279,19 +281,19 @@ void RimGeoMechView::createDisplayModel()
|
||||
m_wellPathPipeVizModel->removeAllParts();
|
||||
addWellPathsToModel( m_wellPathPipeVizModel.p(), femBBox );
|
||||
|
||||
m_viewer->addStaticModelOnce( m_wellPathPipeVizModel.p() );
|
||||
nativeOrOverrideViewer()->addStaticModelOnce( m_wellPathPipeVizModel.p(), isUsingOverrideViewer() );
|
||||
|
||||
// Cross sections
|
||||
|
||||
m_crossSectionVizModel->removeAllParts();
|
||||
m_crossSectionCollection->appendPartsToModel( *this, m_crossSectionVizModel.p(), scaleTransform() );
|
||||
m_viewer->addStaticModelOnce( m_crossSectionVizModel.p() );
|
||||
nativeOrOverrideViewer()->addStaticModelOnce( m_crossSectionVizModel.p(), isUsingOverrideViewer() );
|
||||
|
||||
// If the animation was active before recreating everything, make viewer view current frame
|
||||
|
||||
if ( isTimeStepDependentDataVisible() )
|
||||
if ( isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
m_viewer->setCurrentFrame( m_currentTimeStep );
|
||||
if ( viewer() ) viewer()->setCurrentFrame( m_currentTimeStep );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -318,11 +320,11 @@ void RimGeoMechView::updateCurrentTimeStep()
|
||||
{
|
||||
updateLegends();
|
||||
|
||||
if ( this->isTimeStepDependentDataVisible() )
|
||||
if ( this->isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
cvf::Scene* frameScene = m_viewer->frame( m_currentTimeStep );
|
||||
cvf::Scene* frameScene = nativeOrOverrideViewer()->frame( m_currentTimeStep, isUsingOverrideViewer() );
|
||||
if ( frameScene )
|
||||
{
|
||||
{
|
||||
@ -391,7 +393,7 @@ void RimGeoMechView::updateCurrentTimeStep()
|
||||
m_vizLogic->updateStaticCellColors( -1 );
|
||||
m_crossSectionCollection->applySingleColorEffect();
|
||||
|
||||
m_viewer->animationControl()->slotPause(); // To avoid animation timer spinning in the background
|
||||
nativeOrOverrideViewer()->animationControl()->slotPause(); // To avoid animation timer spinning in the background
|
||||
}
|
||||
|
||||
m_overlayInfoConfig()->update3DInfo();
|
||||
@ -421,8 +423,8 @@ void RimGeoMechView::resetLegendsInViewer()
|
||||
{
|
||||
this->cellResult()->legendConfig->recreateLegend();
|
||||
|
||||
m_viewer->removeAllColorLegends();
|
||||
m_viewer->addColorLegendToBottomLeftCorner( this->cellResult()->legendConfig->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( this->cellResult()->legendConfig->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -430,15 +432,23 @@ void RimGeoMechView::resetLegendsInViewer()
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimGeoMechView::updateLegends()
|
||||
{
|
||||
if ( m_viewer )
|
||||
if ( nativeOrOverrideViewer() )
|
||||
{
|
||||
m_viewer->removeAllColorLegends();
|
||||
if ( !isUsingOverrideViewer() )
|
||||
{
|
||||
nativeOrOverrideViewer()->removeAllColorLegends();
|
||||
}
|
||||
else
|
||||
{
|
||||
nativeOrOverrideViewer()->removeColorLegend( cellResult()->legendConfig->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->removeColorLegend( m_tensorResults->arrowColorLegendConfig->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
this->updateLegendTextAndRanges( cellResult()->legendConfig(), m_currentTimeStep() );
|
||||
|
||||
if ( cellResult()->hasResult() && cellResult()->legendConfig()->showLegend() )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner( cellResult()->legendConfig->titledOverlayFrame() );
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner( cellResult()->legendConfig->titledOverlayFrame() );
|
||||
}
|
||||
|
||||
if ( tensorResults()->showTensors() )
|
||||
@ -448,7 +458,7 @@ void RimGeoMechView::updateLegends()
|
||||
if ( tensorResults()->vectorColors() == RimTensorResults::RESULT_COLORS &&
|
||||
tensorResults()->arrowColorLegendConfig()->showLegend() )
|
||||
{
|
||||
m_viewer->addColorLegendToBottomLeftCorner(
|
||||
nativeOrOverrideViewer()->addColorLegendToBottomLeftCorner(
|
||||
m_tensorResults->arrowColorLegendConfig->titledOverlayFrame() );
|
||||
}
|
||||
}
|
||||
@ -678,10 +688,10 @@ void RimGeoMechView::convertCameraPositionFromOldProjectFiles()
|
||||
viewerToViewInterface->setCameraPointOfInterest( newPointOfInterest );
|
||||
}
|
||||
|
||||
if ( m_viewer )
|
||||
if ( viewer() )
|
||||
{
|
||||
m_viewer->mainCamera()->setViewMatrix( this->cameraPosition() );
|
||||
m_viewer->setPointOfInterest( this->cameraPointOfInterest() );
|
||||
viewer()->mainCamera()->setViewMatrix( this->cameraPosition() );
|
||||
viewer()->setPointOfInterest( this->cameraPointOfInterest() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -675,6 +675,30 @@ void RimProject::allNotLinkedViews( std::vector<RimGridView*>& views )
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimProject::allViews( std::vector<Rim3dView*>& views ) const
|
||||
{
|
||||
std::vector<RimCase*> cases;
|
||||
allCases( cases );
|
||||
|
||||
for ( size_t caseIdx = 0; caseIdx < cases.size(); caseIdx++ )
|
||||
{
|
||||
RimCase* rimCase = cases[caseIdx];
|
||||
if ( !rimCase ) continue;
|
||||
|
||||
std::vector<Rim3dView*> caseViews = rimCase->views();
|
||||
for ( size_t viewIdx = 0; viewIdx < caseViews.size(); viewIdx++ )
|
||||
{
|
||||
if ( caseViews[viewIdx] )
|
||||
{
|
||||
views.push_back( caseViews[viewIdx] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -124,6 +124,7 @@ public:
|
||||
std::vector<RimSummaryCaseCollection*> summaryGroups() const;
|
||||
RimSummaryCaseMainCollection* firstSummaryCaseMainCollection() const;
|
||||
|
||||
void allViews(std::vector<Rim3dView*>& views) const;
|
||||
void allVisibleViews( std::vector<Rim3dView*>& views ) const;
|
||||
void allVisibleGridViews( std::vector<RimGridView*>& views ) const;
|
||||
void allNotLinkedViews( std::vector<RimGridView*>& views );
|
||||
|
@ -128,6 +128,31 @@ void RimViewManipulator::applySourceViewCameraOnDestinationViews( RimGridView*
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::Vec3d RimViewManipulator::calculateEquivalentCamPosOffset( Rim3dView* sourceView, Rim3dView* destView )
|
||||
{
|
||||
cvf::Vec3d soffset = cvf::Vec3d::ZERO;
|
||||
RimCase* sourceOwnerCase = sourceView->ownerCase();
|
||||
if ( sourceOwnerCase )
|
||||
{
|
||||
soffset = sourceOwnerCase->displayModelOffset();
|
||||
soffset.z() *= sourceView->scaleZ();
|
||||
}
|
||||
|
||||
cvf::Vec3d doffset = cvf::Vec3d::ZERO;
|
||||
|
||||
RimCase* destinationOwnerCase = destView->ownerCase();
|
||||
if ( destinationOwnerCase )
|
||||
{
|
||||
doffset = destinationOwnerCase->displayModelOffset();
|
||||
doffset.z() *= sourceView->scaleZ();
|
||||
}
|
||||
|
||||
return soffset - doffset;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
@ -19,6 +19,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <vector>
|
||||
#include "cvfVector3.h"
|
||||
|
||||
namespace cvf
|
||||
{
|
||||
@ -26,12 +27,14 @@ class BoundingBox;
|
||||
}
|
||||
|
||||
class RimGridView;
|
||||
class Rim3dView;
|
||||
|
||||
class RimViewManipulator
|
||||
{
|
||||
public:
|
||||
static void applySourceViewCameraOnDestinationViews( RimGridView* sourceView,
|
||||
std::vector<RimGridView*>& destinationViews );
|
||||
static cvf::Vec3d calculateEquivalentCamPosOffset(Rim3dView* sourceView, Rim3dView* destView);
|
||||
|
||||
private:
|
||||
static bool isBoundingBoxesOverlappingOrClose( const cvf::BoundingBox& sourceBB, const cvf::BoundingBox& destBB );
|
||||
|
@ -933,7 +933,7 @@ void RiuMainWindow::refreshAnimationActions()
|
||||
{
|
||||
enableAnimControls = true;
|
||||
|
||||
if ( activeView->isTimeStepDependentDataVisible() )
|
||||
if ( activeView->isTimeStepDependentDataVisibleInThisOrComparisonView() )
|
||||
{
|
||||
timeStepStrings = activeView->ownerCase()->timeStepStrings();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user