mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#4857 Add support to distinguish 3D-view commands done in the main and comparison view
Support annotation and rangefilter creation in the comparison view
This commit is contained in:
@@ -974,13 +974,11 @@ void RiuViewer::setAxisLabels( const cvf::String& xLabel, const cvf::String& yLa
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
cvf::Vec3d RiuViewer::lastPickPositionInDomainCoords() const
|
||||
RiuViewerCommands* RiuViewer::viewerCommands() const
|
||||
{
|
||||
CVF_ASSERT( m_viewerCommands );
|
||||
|
||||
return m_viewerCommands->lastPickPositionInDomainCoords();
|
||||
return m_viewerCommands;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
void showAxisCross( bool enable );
|
||||
void setAxisLabels( const cvf::String& xLabel, const cvf::String& yLabel, const cvf::String& zLabel );
|
||||
|
||||
cvf::Vec3d lastPickPositionInDomainCoords() const;
|
||||
RiuViewerCommands* viewerCommands() const;
|
||||
|
||||
cvf::OverlayItem* pickFixedPositionedLegend( int winPosX, int winPosY );
|
||||
|
||||
|
||||
@@ -165,9 +165,9 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
}
|
||||
}
|
||||
|
||||
bool isComparisonViewPick = m_viewer->isMousePosWithinComparisonView( event->x(), event->y() );
|
||||
Rim3dView* mainOrComparisonView = isComparisonViewPick ? m_reservoirView->activeComparisonView()
|
||||
: m_reservoirView.p();
|
||||
m_isCurrentPickInComparisonView = m_viewer->isMousePosWithinComparisonView( event->x(), event->y() );
|
||||
Rim3dView* mainOrComparisonView = m_isCurrentPickInComparisonView ? m_reservoirView->activeComparisonView()
|
||||
: m_reservoirView.p();
|
||||
|
||||
// Find the following data
|
||||
|
||||
@@ -320,13 +320,13 @@ void RiuViewerCommands::displayContextMenu( QMouseEvent* event )
|
||||
|
||||
menuBuilder.subMenuStart( "Range Filter Slice", QIcon( ":/CellFilter_Range.png" ) );
|
||||
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewSliceRangeFilterFeature",
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewSliceRangeFilter3dViewFeature",
|
||||
"I-slice Range Filter",
|
||||
iSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewSliceRangeFilterFeature",
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewSliceRangeFilter3dViewFeature",
|
||||
"J-slice Range Filter",
|
||||
jSliceList );
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewSliceRangeFilterFeature",
|
||||
menuBuilder.addCmdFeatureWithUserData( "RicNewSliceRangeFilter3dViewFeature",
|
||||
"K-slice Range Filter",
|
||||
kSliceList );
|
||||
|
||||
@@ -588,9 +588,9 @@ void RiuViewerCommands::handlePickAction( int winPosX, int winPosY, Qt::Keyboard
|
||||
}
|
||||
}
|
||||
|
||||
bool isComparisonViewPick = m_viewer->isMousePosWithinComparisonView( winPosX, winPosY );
|
||||
Rim3dView* mainOrComparisonView = isComparisonViewPick ? m_reservoirView->activeComparisonView()
|
||||
: m_reservoirView.p();
|
||||
m_isCurrentPickInComparisonView = m_viewer->isMousePosWithinComparisonView( winPosX, winPosY );
|
||||
Rim3dView* mainOrComparisonView = m_isCurrentPickInComparisonView ? m_reservoirView->activeComparisonView()
|
||||
: m_reservoirView.p();
|
||||
|
||||
// Make pickEventHandlers do their stuff
|
||||
|
||||
@@ -1051,6 +1051,14 @@ cvf::Vec3d RiuViewerCommands::lastPickPositionInDomainCoords() const
|
||||
return m_currentPickPositionInDomainCoords;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
bool RiuViewerCommands::isCurrentPickInComparisonView() const
|
||||
{
|
||||
return m_isCurrentPickInComparisonView;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -1284,12 +1292,12 @@ void RiuViewerCommands::handleTextPicking( int winPosX, int winPosY, cvf::HitIte
|
||||
{
|
||||
using namespace cvf;
|
||||
|
||||
bool isMouseWithinComparisonView = m_viewer->isMousePosWithinComparisonView( winPosX, winPosY );
|
||||
m_isCurrentPickInComparisonView = m_viewer->isMousePosWithinComparisonView( winPosX, winPosY );
|
||||
|
||||
int translatedMousePosX = winPosX;
|
||||
int translatedMousePosY = m_viewer->height() - winPosY;
|
||||
|
||||
Scene* scene = m_viewer->currentScene( isMouseWithinComparisonView );
|
||||
Scene* scene = m_viewer->currentScene( m_isCurrentPickInComparisonView );
|
||||
|
||||
if ( !scene ) return;
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ public:
|
||||
static void removePickEventHandlerIfActive( Ric3dViewPickEventHandler* pickEventHandler );
|
||||
|
||||
cvf::Vec3d lastPickPositionInDomainCoords() const;
|
||||
bool isCurrentPickInComparisonView() const;
|
||||
|
||||
private:
|
||||
void findCellAndGridIndex( Rim3dView* mainOrComparisonView,
|
||||
@@ -96,6 +97,7 @@ private:
|
||||
size_t m_currentCellIndex;
|
||||
cvf::StructGridInterface::FaceType m_currentFaceIndex;
|
||||
cvf::Vec3d m_currentPickPositionInDomainCoords;
|
||||
bool m_isCurrentPickInComparisonView;
|
||||
caf::PdmPointer<Rim3dView> m_reservoirView;
|
||||
QPointer<RiuViewer> m_viewer;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user