mirror of
https://github.com/OPM/ResInsight.git
synced 2026-09-03 20:53:13 -05:00
#2476 2dIntersectionView. Clean up context menus
This commit is contained in:
@@ -25,18 +25,31 @@
|
|||||||
#include "RimGeoMechCellColors.h"
|
#include "RimGeoMechCellColors.h"
|
||||||
#include "RimGeoMechView.h"
|
#include "RimGeoMechView.h"
|
||||||
#include "RimGridView.h"
|
#include "RimGridView.h"
|
||||||
|
#include "Rim2dIntersectionView.h"
|
||||||
|
#include "RimIntersection.h"
|
||||||
|
|
||||||
#include "Riu3DMainWindowTools.h"
|
#include "Riu3DMainWindowTools.h"
|
||||||
|
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
|
||||||
CAF_CMD_SOURCE_INIT(RicSelectColorResult, "RicSelectColorResult");
|
CAF_CMD_SOURCE_INIT(RicSelectColorResult, "RicSelectColorResult");
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
/// Internal function
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
RimGridView* gridViewFrom2dIntersectionView(const Rim2dIntersectionView* int2dView)
|
||||||
|
{
|
||||||
|
RimGridView* gridView = nullptr;
|
||||||
|
int2dView->intersection()->firstAncestorOrThisOfType(gridView);
|
||||||
|
return gridView;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicSelectColorResult::setupActionLook(QAction* actionToSetup)
|
void RicSelectColorResult::setupActionLook(QAction* actionToSetup)
|
||||||
{
|
{
|
||||||
actionToSetup->setText("Color Result");
|
actionToSetup->setText("Select Color Result");
|
||||||
actionToSetup->setIcon(QIcon(":/CellResult.png"));
|
actionToSetup->setIcon(QIcon(":/CellResult.png"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -47,7 +60,7 @@ bool RicSelectColorResult::isCommandEnabled()
|
|||||||
{
|
{
|
||||||
if (RicWellLogTools::isWellPathOrSimWellSelectedInView()) return false;
|
if (RicWellLogTools::isWellPathOrSimWellSelectedInView()) return false;
|
||||||
|
|
||||||
return RiaApplication::instance()->activeGridView() != nullptr;
|
return RiaApplication::instance()->activeReservoirView() != nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
@@ -55,18 +68,23 @@ bool RicSelectColorResult::isCommandEnabled()
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
void RicSelectColorResult::onActionTriggered(bool isChecked)
|
void RicSelectColorResult::onActionTriggered(bool isChecked)
|
||||||
{
|
{
|
||||||
RimGridView* activeView = RiaApplication::instance()->activeGridView();
|
Rim3dView* activeView = RiaApplication::instance()->activeReservoirView();
|
||||||
|
Rim2dIntersectionView* int2dView = dynamic_cast<Rim2dIntersectionView*>(activeView);
|
||||||
|
RimGridView* gridView = nullptr;
|
||||||
|
|
||||||
RimEclipseView* eclView = dynamic_cast<RimEclipseView*>(activeView);
|
if (int2dView) gridView = gridViewFrom2dIntersectionView(int2dView);
|
||||||
|
else gridView = dynamic_cast<RimGridView*>(activeView);
|
||||||
|
|
||||||
|
RimEclipseView* eclView = dynamic_cast<RimEclipseView*>(gridView);
|
||||||
if (eclView)
|
if (eclView)
|
||||||
{
|
{
|
||||||
Riu3DMainWindowTools::selectAsCurrentItem(eclView->cellResult());
|
Riu3DMainWindowTools::selectAsCurrentItem(eclView->cellResult(), int2dView == nullptr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
RimGeoMechView* geoMechView = dynamic_cast<RimGeoMechView*>(activeView);
|
RimGeoMechView* geoMechView = dynamic_cast<RimGeoMechView*>(gridView);
|
||||||
if (geoMechView)
|
if (geoMechView)
|
||||||
{
|
{
|
||||||
Riu3DMainWindowTools::selectAsCurrentItem(geoMechView->cellResult());
|
Riu3DMainWindowTools::selectAsCurrentItem(geoMechView->cellResult(), int2dView== nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,10 +116,10 @@ bool RicWellLogTools::isWellPathOrSimWellSelectedInView()
|
|||||||
RiuSelectionManager* riuSelManager = RiuSelectionManager::instance();
|
RiuSelectionManager* riuSelManager = RiuSelectionManager::instance();
|
||||||
RiuSelectionItem* selItem = riuSelManager->selectedItem(RiuSelectionManager::RUI_TEMPORARY);
|
RiuSelectionItem* selItem = riuSelManager->selectedItem(RiuSelectionManager::RUI_TEMPORARY);
|
||||||
|
|
||||||
RiuSimWellSelectionItem* simWellSelectionItem = static_cast<RiuSimWellSelectionItem*>(selItem);
|
RiuSimWellSelectionItem* simWellSelectionItem = dynamic_cast<RiuSimWellSelectionItem*>(selItem);
|
||||||
if (simWellSelectionItem) return true;
|
if (simWellSelectionItem) return true;
|
||||||
|
|
||||||
RiuWellPathSelectionItem* wellPathSelectionItem = static_cast<RiuWellPathSelectionItem*>(selItem);
|
RiuWellPathSelectionItem* wellPathSelectionItem = dynamic_cast<RiuWellPathSelectionItem*>(selItem);
|
||||||
if (wellPathSelectionItem) return true;
|
if (wellPathSelectionItem) return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ void Rim2dIntersectionView::setIntersection(RimIntersection* intersection)
|
|||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
RimIntersection* Rim2dIntersectionView::intersection()
|
RimIntersection* Rim2dIntersectionView::intersection() const
|
||||||
{
|
{
|
||||||
return m_intersection();
|
return m_intersection();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public:
|
|||||||
|
|
||||||
void setVisible(bool isVisible);
|
void setVisible(bool isVisible);
|
||||||
void setIntersection(RimIntersection* intersection);
|
void setIntersection(RimIntersection* intersection);
|
||||||
RimIntersection* intersection();
|
RimIntersection* intersection() const;
|
||||||
|
|
||||||
virtual bool isUsingFormationNames() const override;
|
virtual bool isUsingFormationNames() const override;
|
||||||
virtual void scheduleGeometryRegen(RivCellSetEnum geometryType) override;
|
virtual void scheduleGeometryRegen(RivCellSetEnum geometryType) override;
|
||||||
|
|||||||
@@ -160,6 +160,10 @@ void RiuViewerCommands::displayContextMenu(QMouseEvent* event)
|
|||||||
|
|
||||||
m_currentPickPositionInDomainCoords = cvf::Vec3d::UNDEFINED;
|
m_currentPickPositionInDomainCoords = cvf::Vec3d::UNDEFINED;
|
||||||
|
|
||||||
|
// Check type of view
|
||||||
|
RimGridView* gridView = dynamic_cast<RimGridView*>(m_reservoirView.p());
|
||||||
|
Rim2dIntersectionView* int2dView = dynamic_cast<Rim2dIntersectionView*>(m_reservoirView.p());
|
||||||
|
|
||||||
cvf::HitItemCollection hitItems;
|
cvf::HitItemCollection hitItems;
|
||||||
if (m_viewer->rayPick(winPosX, winPosY, &hitItems))
|
if (m_viewer->rayPick(winPosX, winPosY, &hitItems))
|
||||||
{
|
{
|
||||||
@@ -187,10 +191,9 @@ void RiuViewerCommands::displayContextMenu(QMouseEvent* event)
|
|||||||
|
|
||||||
cvf::Vec3d displayModelOffset = cvf::Vec3d::ZERO;
|
cvf::Vec3d displayModelOffset = cvf::Vec3d::ZERO;
|
||||||
|
|
||||||
Rim3dView* activeView = RiaApplication::instance()->activeReservoirView();
|
if (m_reservoirView.p())
|
||||||
if (activeView)
|
|
||||||
{
|
{
|
||||||
cvf::ref<caf::DisplayCoordTransform> transForm = activeView->displayCoordTransform();
|
cvf::ref<caf::DisplayCoordTransform> transForm = m_reservoirView.p()->displayCoordTransform();
|
||||||
m_currentPickPositionInDomainCoords = transForm->transformToDomainCoord(globalIntersectionPoint);
|
m_currentPickPositionInDomainCoords = transForm->transformToDomainCoord(globalIntersectionPoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,10 +231,17 @@ void RiuViewerCommands::displayContextMenu(QMouseEvent* event)
|
|||||||
RiuSelectionItem* selItem = new RiuGeneralSelectionItem(crossSectionSourceInfo->crossSection());
|
RiuSelectionItem* selItem = new RiuGeneralSelectionItem(crossSectionSourceInfo->crossSection());
|
||||||
RiuSelectionManager::instance()->setSelectedItem(selItem, RiuSelectionManager::RUI_TEMPORARY);
|
RiuSelectionManager::instance()->setSelectedItem(selItem, RiuSelectionManager::RUI_TEMPORARY);
|
||||||
|
|
||||||
menuBuilder << "RicHideIntersectionFeature";
|
if (gridView)
|
||||||
menuBuilder.addSeparator();
|
{
|
||||||
menuBuilder << "RicNewIntersectionViewFeature";
|
menuBuilder << "RicHideIntersectionFeature";
|
||||||
menuBuilder.addSeparator();
|
menuBuilder.addSeparator();
|
||||||
|
menuBuilder << "RicNewIntersectionViewFeature";
|
||||||
|
menuBuilder.addSeparator();
|
||||||
|
}
|
||||||
|
else if (int2dView)
|
||||||
|
{
|
||||||
|
menuBuilder << "RicSelectColorResult";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (intersectionBoxSourceInfo)
|
else if (intersectionBoxSourceInfo)
|
||||||
{
|
{
|
||||||
@@ -245,51 +255,54 @@ void RiuViewerCommands::displayContextMenu(QMouseEvent* event)
|
|||||||
menuBuilder.addSeparator();
|
menuBuilder.addSeparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
// IJK -slice commands
|
if (gridView)
|
||||||
RimViewController* viewController = nullptr;
|
|
||||||
if (m_reservoirView) viewController = m_reservoirView->viewController();
|
|
||||||
|
|
||||||
if (!viewController || !viewController->isRangeFiltersControlled())
|
|
||||||
{
|
{
|
||||||
size_t i, j, k;
|
// IJK -slice commands
|
||||||
ijkFromCellIndex(m_currentGridIdx, m_currentCellIndex, &i, &j, &k);
|
RimViewController* viewController = nullptr;
|
||||||
|
if (m_reservoirView) viewController = m_reservoirView->viewController();
|
||||||
|
|
||||||
QVariantList iSliceList;
|
if (!viewController || !viewController->isRangeFiltersControlled())
|
||||||
iSliceList.push_back(0);
|
{
|
||||||
iSliceList.push_back(CVF_MAX(static_cast<int>(i + 1), 1));
|
size_t i, j, k;
|
||||||
|
ijkFromCellIndex(m_currentGridIdx, m_currentCellIndex, &i, &j, &k);
|
||||||
QVariantList jSliceList;
|
|
||||||
jSliceList.push_back(1);
|
|
||||||
jSliceList.push_back(CVF_MAX(static_cast<int>(j + 1), 1));
|
|
||||||
|
|
||||||
QVariantList kSliceList;
|
QVariantList iSliceList;
|
||||||
kSliceList.push_back(2);
|
iSliceList.push_back(0);
|
||||||
kSliceList.push_back(CVF_MAX(static_cast<int>(k + 1), 1));
|
iSliceList.push_back(CVF_MAX(static_cast<int>(i + 1), 1));
|
||||||
|
|
||||||
menuBuilder.subMenuStart("Range Filter Slice", QIcon(":/CellFilter_Range.png"));
|
QVariantList jSliceList;
|
||||||
|
jSliceList.push_back(1);
|
||||||
|
jSliceList.push_back(CVF_MAX(static_cast<int>(j + 1), 1));
|
||||||
|
|
||||||
menuBuilder.addCmdFeatureWithUserData("RicNewSliceRangeFilterFeature", "I-slice Range Filter", iSliceList);
|
QVariantList kSliceList;
|
||||||
menuBuilder.addCmdFeatureWithUserData("RicNewSliceRangeFilterFeature", "J-slice Range Filter", jSliceList);
|
kSliceList.push_back(2);
|
||||||
menuBuilder.addCmdFeatureWithUserData("RicNewSliceRangeFilterFeature", "K-slice Range Filter", kSliceList);
|
kSliceList.push_back(CVF_MAX(static_cast<int>(k + 1), 1));
|
||||||
|
|
||||||
menuBuilder.subMenuEnd();
|
menuBuilder.subMenuStart("Range Filter Slice", QIcon(":/CellFilter_Range.png"));
|
||||||
|
|
||||||
|
menuBuilder.addCmdFeatureWithUserData("RicNewSliceRangeFilterFeature", "I-slice Range Filter", iSliceList);
|
||||||
|
menuBuilder.addCmdFeatureWithUserData("RicNewSliceRangeFilterFeature", "J-slice Range Filter", jSliceList);
|
||||||
|
menuBuilder.addCmdFeatureWithUserData("RicNewSliceRangeFilterFeature", "K-slice Range Filter", kSliceList);
|
||||||
|
|
||||||
|
menuBuilder.subMenuEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
menuBuilder << "RicEclipsePropertyFilterNewInViewFeature";
|
||||||
|
menuBuilder << "RicGeoMechPropertyFilterNewInViewFeature";
|
||||||
|
|
||||||
|
menuBuilder.addSeparator();
|
||||||
|
|
||||||
|
menuBuilder.subMenuStart("Intersections", QIcon(":/IntersectionXPlane16x16.png"));
|
||||||
|
|
||||||
|
menuBuilder << "RicNewPolylineIntersectionFeature";
|
||||||
|
menuBuilder << "RicNewAzimuthDipIntersectionFeature";
|
||||||
|
menuBuilder << "RicIntersectionBoxAtPosFeature";
|
||||||
|
|
||||||
|
menuBuilder << "RicIntersectionBoxXSliceFeature";
|
||||||
|
menuBuilder << "RicIntersectionBoxYSliceFeature";
|
||||||
|
menuBuilder << "RicIntersectionBoxZSliceFeature";
|
||||||
}
|
}
|
||||||
|
|
||||||
menuBuilder << "RicEclipsePropertyFilterNewInViewFeature";
|
|
||||||
menuBuilder << "RicGeoMechPropertyFilterNewInViewFeature";
|
|
||||||
|
|
||||||
menuBuilder.addSeparator();
|
|
||||||
|
|
||||||
menuBuilder.subMenuStart("Intersections", QIcon(":/IntersectionXPlane16x16.png"));
|
|
||||||
|
|
||||||
menuBuilder << "RicNewPolylineIntersectionFeature";
|
|
||||||
menuBuilder << "RicNewAzimuthDipIntersectionFeature";
|
|
||||||
menuBuilder << "RicIntersectionBoxAtPosFeature";
|
|
||||||
|
|
||||||
menuBuilder << "RicIntersectionBoxXSliceFeature";
|
|
||||||
menuBuilder << "RicIntersectionBoxYSliceFeature";
|
|
||||||
menuBuilder << "RicIntersectionBoxZSliceFeature";
|
|
||||||
|
|
||||||
menuBuilder.subMenuEnd();
|
menuBuilder.subMenuEnd();
|
||||||
|
|
||||||
menuBuilder.addSeparator();
|
menuBuilder.addSeparator();
|
||||||
@@ -414,18 +427,31 @@ void RiuViewerCommands::displayContextMenu(QMouseEvent* event)
|
|||||||
// View Link commands
|
// View Link commands
|
||||||
if (!firstHitPart)
|
if (!firstHitPart)
|
||||||
{
|
{
|
||||||
menuBuilder << "RicLinkViewFeature";
|
if (gridView)
|
||||||
menuBuilder << "RicShowLinkOptionsFeature";
|
{
|
||||||
menuBuilder << "RicSetMasterViewFeature";
|
menuBuilder << "RicLinkViewFeature";
|
||||||
menuBuilder << "RicUnLinkViewFeature";
|
menuBuilder << "RicShowLinkOptionsFeature";
|
||||||
|
menuBuilder << "RicSetMasterViewFeature";
|
||||||
|
menuBuilder << "RicUnLinkViewFeature";
|
||||||
|
}
|
||||||
|
else if (int2dView)
|
||||||
|
{
|
||||||
|
menuBuilder << "RicSelectColorResult";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
menuBuilder.addSeparator();
|
if (gridView)
|
||||||
menuBuilder << "RicNewGridTimeHistoryCurveFeature";
|
{
|
||||||
menuBuilder << "RicShowFlowCharacteristicsPlotFeature";
|
menuBuilder.addSeparator();
|
||||||
menuBuilder << "RicSaveEclipseInputActiveVisibleCellsFeature";
|
menuBuilder << "RicNewGridTimeHistoryCurveFeature";
|
||||||
menuBuilder << "RicShowGridStatisticsFeature";
|
menuBuilder << "RicShowFlowCharacteristicsPlotFeature";
|
||||||
menuBuilder << "RicSelectColorResult";
|
menuBuilder << "RicSaveEclipseInputActiveVisibleCellsFeature";
|
||||||
|
menuBuilder << "RicShowGridStatisticsFeature";
|
||||||
|
menuBuilder << "RicSelectColorResult";
|
||||||
|
}
|
||||||
|
else if (int2dView)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
menuBuilder.appendToMenu(&menu);
|
menuBuilder.appendToMenu(&menu);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user