diff --git a/ApplicationCode/ModelVisualization/RivReservoirFaultsPartMgr.cpp b/ApplicationCode/ModelVisualization/RivReservoirFaultsPartMgr.cpp index 046527b5e4..222038536e 100644 --- a/ApplicationCode/ModelVisualization/RivReservoirFaultsPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivReservoirFaultsPartMgr.cpp @@ -30,7 +30,8 @@ #include "RimFaultResultSlot.h" #include "RimReservoirView.h" #include "RimResultSlot.h" - +#include "RimCase.h" +#include "RigCaseData.h" //-------------------------------------------------------------------------------------------------- /// @@ -93,8 +94,7 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model) RimFaultCollection* faultCollection = m_reservoirView->faultCollection(); if (!faultCollection) return; - RimFaultResultSlot* faultResultSlot = m_reservoirView->faultResultSettings(); - + bool isShowingGrid = faultCollection->isGridVisualizationMode(); if (!faultCollection->showFaultCollection() && !isShowingGrid) return; @@ -141,15 +141,31 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model) } // Parts that is not overridden by the grid settings + RimFaultResultSlot* faultResultSlot = m_reservoirView->faultResultSettings(); + RimResultSlot* cellResultSlot = m_reservoirView->cellResult(); if (rimFault->showFault() && faultCollection->showFaultCollection()) { if (faultCollection->showNNCs()) { bool showNncs = true; - if (faultResultSlot->hideNncsWhenNoResultIsAvailable()) + if (faultCollection->hideNncsWhenNoResultIsAvailable()) { - showNncs = faultResultSlot->isNncResultAvailable(); + size_t scalarResultIndex = cvf::UNDEFINED_SIZE_T; + if (faultResultSlot->showCustomFaultResult()) + { + scalarResultIndex = faultResultSlot->customFaultResult()->scalarResultIndex(); + } + else + { + scalarResultIndex = cellResultSlot->scalarResultIndex(); + } + + RigMainGrid* mainGrid = m_reservoirView->eclipseCase()->reservoirData()->mainGrid(); + if (!(mainGrid && mainGrid->nncData()->hasScalarValues(scalarResultIndex))) + { + showNncs = false; + } } if (showNncs) diff --git a/ApplicationCode/ProjectDataModel/RimFaultCollection.cpp b/ApplicationCode/ProjectDataModel/RimFaultCollection.cpp index 31537e452b..e5404d59d1 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimFaultCollection.cpp @@ -69,7 +69,8 @@ RimFaultCollection::RimFaultCollection() cvf::Color3f defWellLabelColor = RiaApplication::instance()->preferences()->defaultWellLabelColor(); CAF_PDM_InitField(&faultLabelColor, "FaultLabelColor", defWellLabelColor, "Label color", "", "", ""); - CAF_PDM_InitField(&showNNCs, "ShowNNCs", false, "Show NNCs", "", "", ""); + CAF_PDM_InitField(&showNNCs, "ShowNNCs", true, "Show NNCs", "", "", ""); + CAF_PDM_InitField(&hideNncsWhenNoResultIsAvailable, "HideNncsWhenNoResultIsAvailable", true, "Hide NNC geometry if no NNC result is available", "", "", ""); CAF_PDM_InitFieldNoDefault(&noCommonAreaNnncCollection, "NoCommonAreaNnncCollection", "NNCs With No Common Area", "", "", ""); noCommonAreaNnncCollection = new RimNoCommonAreaNncCollection; @@ -109,7 +110,8 @@ void RimFaultCollection::fieldChangedByUi(const caf::PdmFieldHandle* changedFiel &m_showFaultsOutsideFilters == changedField || &faultLabelColor == changedField || &faultResult == changedField || - &showNNCs == changedField + &showNNCs == changedField || + &hideNncsWhenNoResultIsAvailable == changedField ) { if (m_reservoirView) @@ -337,6 +339,11 @@ void RimFaultCollection::defineUiOrdering(QString uiConfigName, caf::PdmUiOrderi ffviz->add(&showFaultFaces); ffviz->add(&showOppositeFaultFaces); ffviz->add(&faultResult); + + caf::PdmUiGroup* nncViz = uiOrdering.addNewGroup("NNC Visibility"); + nncViz->add(&showNNCs); + nncViz->add(&hideNncsWhenNoResultIsAvailable); + } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimFaultCollection.h b/ApplicationCode/ProjectDataModel/RimFaultCollection.h index 18254497ae..d8fa62defc 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultCollection.h +++ b/ApplicationCode/ProjectDataModel/RimFaultCollection.h @@ -75,6 +75,7 @@ public: caf::PdmField showFaultCollection; caf::PdmField showNNCs; + caf::PdmField hideNncsWhenNoResultIsAvailable; caf::PdmPointersField faults; RimFault* findFaultByName(QString name); diff --git a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp index d174223284..a85dd814ed 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp +++ b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.cpp @@ -51,7 +51,6 @@ RimFaultResultSlot::RimFaultResultSlot() m_customFaultResult->m_porosityModelUiField.setOwnerObject(this); m_customFaultResult->m_resultVariableUiField.setOwnerObject(this); - CAF_PDM_InitField(&hideNncsWhenNoResultIsAvailable, "HideNncsWhenNoResultIsAvailable", true, "Hide NNC geometry if no NNC result is available", "", "", ""); updateFieldVisibility(); } @@ -148,25 +147,9 @@ QList RimFaultResultSlot::calculateValueOptions(const ca //-------------------------------------------------------------------------------------------------- bool RimFaultResultSlot::hasValidCustomResult() { - if (m_customFaultResult->hasResult() || m_customFaultResult->isTernarySaturationSelected()) + if (this->showCustomFaultResult()) { - return true; - } - - return false; -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RimFaultResultSlot::isNncResultAvailable() -{ - if (this->hasValidCustomResult()) - { - size_t scalarSetIndex = this->customFaultResult()->scalarResultIndex(); - - RigMainGrid* mainGrid = m_reservoirView->eclipseCase()->reservoirData()->mainGrid(); - if (mainGrid && mainGrid->nncData()->hasScalarValues(scalarSetIndex)) + if (m_customFaultResult->hasResult() || m_customFaultResult->isTernarySaturationSelected()) { return true; } @@ -174,4 +157,3 @@ bool RimFaultResultSlot::isNncResultAvailable() return false; } - diff --git a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h index e7362fd6e3..0e30db8422 100644 --- a/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h +++ b/ApplicationCode/ProjectDataModel/RimFaultResultSlot.h @@ -40,10 +40,8 @@ public: void setReservoirView(RimReservoirView* ownerReservoirView); caf::PdmField showCustomFaultResult; - caf::PdmField hideNncsWhenNoResultIsAvailable; bool hasValidCustomResult(); - bool isNncResultAvailable(); RimResultSlot* customFaultResult(); void updateFieldVisibility();