diff --git a/ApplicationCode/ModelVisualization/CMakeLists_files.cmake b/ApplicationCode/ModelVisualization/CMakeLists_files.cmake index 9cb91845a0..7e18b1c848 100644 --- a/ApplicationCode/ModelVisualization/CMakeLists_files.cmake +++ b/ApplicationCode/ModelVisualization/CMakeLists_files.cmake @@ -37,6 +37,7 @@ ${CEE_CURRENT_LIST_DIR}RivSimWellPipeSourceInfo.h ${CEE_CURRENT_LIST_DIR}RivWellSpheresPartMgr.h ${CEE_CURRENT_LIST_DIR}RivPartPriority.h ${CEE_CURRENT_LIST_DIR}RivWellFracturePartMgr.h +${CEE_CURRENT_LIST_DIR}RivObjectSourceInfo.h ) set (SOURCE_GROUP_SOURCE_FILES @@ -69,6 +70,7 @@ ${CEE_CURRENT_LIST_DIR}RivSingleCellPartGenerator.cpp ${CEE_CURRENT_LIST_DIR}RivSimWellPipeSourceInfo.cpp ${CEE_CURRENT_LIST_DIR}RivWellSpheresPartMgr.cpp ${CEE_CURRENT_LIST_DIR}RivWellFracturePartMgr.cpp +${CEE_CURRENT_LIST_DIR}RivObjectSourceInfo.cpp ) list(APPEND CODE_HEADER_FILES diff --git a/ApplicationCode/ModelVisualization/RivObjectSourceInfo.cpp b/ApplicationCode/ModelVisualization/RivObjectSourceInfo.cpp new file mode 100644 index 0000000000..d42b13fcd3 --- /dev/null +++ b/ApplicationCode/ModelVisualization/RivObjectSourceInfo.cpp @@ -0,0 +1,38 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 - Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#include "RivObjectSourceInfo.h" + +#include "cafPdmObject.h" + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RivObjectSourceInfo::RivObjectSourceInfo(caf::PdmObject* object) + : m_object(object) +{ + +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +caf::PdmObject* RivObjectSourceInfo::object() const +{ + return m_object; +} diff --git a/ApplicationCode/ModelVisualization/RivObjectSourceInfo.h b/ApplicationCode/ModelVisualization/RivObjectSourceInfo.h new file mode 100644 index 0000000000..837a417e24 --- /dev/null +++ b/ApplicationCode/ModelVisualization/RivObjectSourceInfo.h @@ -0,0 +1,43 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2017 - Statoil ASA +// +// ResInsight is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. +// +// See the GNU General Public License at +// for more details. +// +///////////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include "cafPdmPointer.h" + +#include "cvfBase.h" +#include "cvfObject.h" + +namespace caf { + class PdmObject; +} + +//================================================================================================== +/// +/// +//================================================================================================== +class RivObjectSourceInfo : public cvf::Object +{ +public: + RivObjectSourceInfo(caf::PdmObject* object); + + caf::PdmObject* object() const; + +private: + caf::PdmPointer m_object; +}; diff --git a/ApplicationCode/UserInterface/RiuViewerCommands.cpp b/ApplicationCode/UserInterface/RiuViewerCommands.cpp index d92f9e7c52..8eb58a9986 100644 --- a/ApplicationCode/UserInterface/RiuViewerCommands.cpp +++ b/ApplicationCode/UserInterface/RiuViewerCommands.cpp @@ -63,10 +63,11 @@ #include "RivFemPickSourceInfo.h" #include "RivIntersectionBoxSourceInfo.h" #include "RivIntersectionSourceInfo.h" +#include "RivObjectSourceInfo.h" +#include "RivSimWellPipeSourceInfo.h" #include "RivSourceInfo.h" #include "RivTernarySaturationOverlayItem.h" #include "RivWellPathSourceInfo.h" -#include "RivSimWellPipeSourceInfo.h" #include "cafCmdExecCommandManager.h" #include "cafCmdFeatureManager.h" @@ -521,12 +522,18 @@ void RiuViewerCommands::handlePickAction(int winPosX, int winPosY, Qt::KeyboardM if (firstHitPart && firstHitPart->sourceInfo()) { + const RivObjectSourceInfo* rivObjectSourceInfo = dynamic_cast(firstHitPart->sourceInfo()); const RivSourceInfo* rivSourceInfo = dynamic_cast(firstHitPart->sourceInfo()); const RivFemPickSourceInfo* femSourceInfo = dynamic_cast(firstHitPart->sourceInfo()); const RivIntersectionSourceInfo* crossSectionSourceInfo = dynamic_cast(firstHitPart->sourceInfo()); const RivIntersectionBoxSourceInfo* intersectionBoxSourceInfo = dynamic_cast(firstHitPart->sourceInfo()); const RivSimWellPipeSourceInfo* eclipseWellSourceInfo = dynamic_cast(firstHitPart->sourceInfo()); + if (rivObjectSourceInfo) + { + RiuMainWindow::instance()->selectAsCurrentItem(rivObjectSourceInfo->object()); + } + if (rivSourceInfo) { gridIndex = rivSourceInfo->gridIndex();