From d8f412017e9bf6e265e8094751b5879de0753171 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Tue, 29 Jul 2014 08:49:54 +0200 Subject: [PATCH] Faults: Added fault result mapping management --- .../ProjectDataModel/CMakeLists_files.cmake | 2 + .../ProjectDataModel/RimFaultResultSlot.cpp | 53 +++++++++++++++++++ .../ProjectDataModel/RimFaultResultSlot.h | 47 ++++++++++++++++ .../ProjectDataModel/RimReservoirView.cpp | 6 +++ .../ProjectDataModel/RimReservoirView.h | 2 + 5 files changed, 110 insertions(+) create mode 100644 ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp create mode 100644 ApplicationCode/ProjectDataModel/RimFaultResultSlot.h diff --git a/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake b/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake index 2abc7eacba..c9cb08a878 100644 --- a/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake +++ b/ApplicationCode/ProjectDataModel/CMakeLists_files.cmake @@ -48,6 +48,7 @@ ${CEE_CURRENT_LIST_DIR}RimFault.h ${CEE_CURRENT_LIST_DIR}RimFaultCollection.h ${CEE_CURRENT_LIST_DIR}RimMockModelSettings.h ${CEE_CURRENT_LIST_DIR}RimTernaryLegendConfig.h +${CEE_CURRENT_LIST_DIR}RimFaultResultSlot.h ) set (SOURCE_GROUP_SOURCE_FILES @@ -94,6 +95,7 @@ ${CEE_CURRENT_LIST_DIR}RimFault.cpp ${CEE_CURRENT_LIST_DIR}RimFaultCollection.cpp ${CEE_CURRENT_LIST_DIR}RimMockModelSettings.cpp ${CEE_CURRENT_LIST_DIR}RimTernaryLegendConfig.cpp +${CEE_CURRENT_LIST_DIR}RimFaultResultSlot.cpp ) list(APPEND CODE_HEADER_FILES diff --git a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp new file mode 100644 index 0000000000..dbfebd4a46 --- /dev/null +++ b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp @@ -0,0 +1,53 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS +// +// 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 "RimFaultResultSlot.h" + + +namespace caf +{ + template<> + void AppEnum< RimFaultResultSlot::FaultVisualizationMode >::setUp() + { + addItem(RimFaultResultSlot::FAULT_COLOR, "FAULT_COLOR", "Fault Colors"); + addItem(RimFaultResultSlot::CELL_RESULT_MAPPING, "CELL_RESULT_MAPPING", "Grid Cell Results"); + addItem(RimFaultResultSlot::CUSTOM_RESULT_MAPPING, "CUSTOM_RESULT_MAPPING", "Custom Cell Results"); + setDefault(RimFaultResultSlot::CELL_RESULT_MAPPING); + } +} + +CAF_PDM_SOURCE_INIT(RimFaultResultSlot, "RimFaultResultSlot"); + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimFaultResultSlot::RimFaultResultSlot() +{ + CAF_PDM_InitObject("Fault Result Slot", "", "", ""); + + CAF_PDM_InitField(&visualizationMode, "VisualizationMode", caf::AppEnum(RimFaultResultSlot::CELL_RESULT_MAPPING), "Fault Color Mapping", "", "", ""); + +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RimFaultResultSlot::~RimFaultResultSlot() +{ +} + diff --git a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h new file mode 100644 index 0000000000..010ce4d474 --- /dev/null +++ b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h @@ -0,0 +1,47 @@ +///////////////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2011-2012 Statoil ASA, Ceetron AS +// +// 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 "cafAppEnum.h" +#include "cafPdmField.h" +#include "cafPdmObject.h" + +//================================================================================================== +/// +/// +//================================================================================================== +class RimFaultResultSlot : public caf::PdmObject +{ + CAF_PDM_HEADER_INIT; +public: + enum FaultVisualizationMode + { + FAULT_COLOR, + CELL_RESULT_MAPPING, + CUSTOM_RESULT_MAPPING + }; + +public: + RimFaultResultSlot(); + virtual ~RimFaultResultSlot(); + +private: + caf::PdmField< caf::AppEnum< FaultVisualizationMode > > visualizationMode; +}; + diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp index 750729323b..0d893222a0 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.cpp +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.cpp @@ -28,6 +28,7 @@ #include "RimCellPropertyFilterCollection.h" #include "RimCellRangeFilterCollection.h" #include "RimFaultCollection.h" +#include "RimFaultResultSlot.h" #include "RimOilField.h" #include "RimProject.h" #include "RimResultSlot.h" @@ -101,6 +102,11 @@ RimReservoirView::RimReservoirView() CAF_PDM_InitFieldNoDefault(&cellEdgeResult, "GridCellEdgeResult", "Cell Edge Result", ":/EdgeResult_1.png", "", ""); cellEdgeResult = new RimCellEdgeResultSlot(); + CAF_PDM_InitFieldNoDefault(&cellFaultResult, "GridCellFaultResult", "Fault Cell Result", ":/CellResult.png", "", ""); + cellFaultResult = new RimFaultResultSlot(); + cellFaultResult.setUiHidden(true); + + CAF_PDM_InitFieldNoDefault(&overlayInfoConfig, "OverlayInfoConfig", "Info Box", "", "", ""); overlayInfoConfig = new Rim3dOverlayInfoConfig(); overlayInfoConfig->setReservoirView(this); diff --git a/ApplicationCode/ProjectDataModel/RimReservoirView.h b/ApplicationCode/ProjectDataModel/RimReservoirView.h index 178d17ecd5..f6a5ba96f5 100644 --- a/ApplicationCode/ProjectDataModel/RimReservoirView.h +++ b/ApplicationCode/ProjectDataModel/RimReservoirView.h @@ -43,6 +43,7 @@ class RimCellPropertyFilterCollection; class RimCellRangeFilter; class RimCellRangeFilterCollection; class RimFaultCollection; +class RimFaultResultSlot; class RimReservoirCellResultsStorage; class RimReservoirCellResultsStorage; class RimResultSlot; @@ -96,6 +97,7 @@ public: caf::PdmField cellResult; caf::PdmField cellEdgeResult; + caf::PdmField cellFaultResult; caf::PdmField rangeFilterCollection; caf::PdmField propertyFilterCollection;