From 860b51931cc3091e7862464a7cbf65aa63353f43 Mon Sep 17 00:00:00 2001 From: Magne Sjaastad Date: Wed, 14 Dec 2016 07:15:44 +0100 Subject: [PATCH] #1025 Removed unsused code and renamed to isWellPipe/SpheresVisible --- .../RivReservoirWellSpheresPartMgr.cpp | 38 ++-- .../RivReservoirWellSpheresPartMgr.h | 6 +- .../RivWellSpheresPartMgr.cpp | 4 +- .../RivWellSpheresPartMgr.h | 4 - .../ProjectDataModel/RimEclipseView.cpp | 4 +- .../ProjectDataModel/RimEclipseWell.cpp | 194 +++++++++--------- .../ProjectDataModel/RimEclipseWell.h | 8 +- .../RimEclipseWellCollection.cpp | 4 +- 8 files changed, 114 insertions(+), 148 deletions(-) diff --git a/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.cpp b/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.cpp index 750273451d..60a707dd50 100644 --- a/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.cpp @@ -47,6 +47,15 @@ RivReservoirWellSpheresPartMgr::~RivReservoirWellSpheresPartMgr() } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RivReservoirWellSpheresPartMgr::clearGeometryCache() +{ + m_wellSpheresPartMgrs.clear(); +} + //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -58,6 +67,8 @@ void RivReservoirWellSpheresPartMgr::appendDynamicGeometryPartsToModel(cvf::Mode if (m_reservoirView->wellCollection()->wells.size() != m_wellSpheresPartMgrs.size()) { + clearGeometryCache(); + for (RimEclipseWell* rimWell : m_reservoirView->wellCollection()->wells()) { RivWellSpheresPartMgr* wppmgr = new RivWellSpheresPartMgr(m_reservoirView, rimWell); @@ -67,33 +78,8 @@ void RivReservoirWellSpheresPartMgr::appendDynamicGeometryPartsToModel(cvf::Mode for (size_t i = 0; i < m_wellSpheresPartMgrs.size(); i++) { - - bool showGeo = false; - - - if (m_reservoirView->wellCollection()->wells[i]->showWell()) + if (m_reservoirView->wellCollection()->wells[i]->isWellSpheresVisible(frameIndex)) { - - if (m_reservoirView->wellCollection->wellSphereVisibility == RimEclipseWellCollection::PIPES_FORCE_ALL_ON) - { - showGeo = true; - } - - else if (m_reservoirView->wellCollection->wellSphereVisibility == RimEclipseWellCollection::PIPES_INDIVIDUALLY && m_reservoirView->wellCollection()->wells[i]->showWellSpheres() ) - { - showGeo = true; - } - - else if (m_reservoirView->wellCollection->wellSphereVisibility == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS && m_reservoirView->wellCollection->wells[i]->visibleCellsInstersectsWell(frameIndex)) - { - showGeo = true; - } - - } - - - if (showGeo) - { m_wellSpheresPartMgrs.at(i)->appendDynamicGeometryPartsToModel(model, frameIndex); } } diff --git a/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.h b/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.h index fd73a75783..d63d430b78 100644 --- a/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.h +++ b/ApplicationCode/ModelVisualization/RivReservoirWellSpheresPartMgr.h @@ -25,7 +25,6 @@ namespace cvf { - class Transform; class ModelBasicList; } @@ -38,14 +37,11 @@ public: RivReservoirWellSpheresPartMgr(RimEclipseView* reservoirView); ~RivReservoirWellSpheresPartMgr(); + void clearGeometryCache(); void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model, size_t frameIndex); -private: - - private: caf::PdmPointer m_reservoirView; cvf::Collection< RivWellSpheresPartMgr > m_wellSpheresPartMgrs; - }; diff --git a/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.cpp b/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.cpp index 786d31195c..71d94615ca 100644 --- a/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.cpp +++ b/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.cpp @@ -18,6 +18,8 @@ #include "RivWellSpheresPartMgr.h" +#include "RiaApplication.h" + #include "RigCaseData.h" #include "RigMainGrid.h" @@ -28,7 +30,6 @@ #include "RiuViewer.h" - #include "cafDisplayCoordTransform.h" #include "cafEffectGenerator.h" #include "cafPdmFieldCvfColor.h" @@ -44,7 +45,6 @@ #include "cvfGeometryBuilderTriangles.h" #include "cvfOpenGLResourceManager.h" #include "cvfShaderProgram.h" -#include "RiaApplication.h" //-------------------------------------------------------------------------------------------------- /// diff --git a/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.h b/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.h index 609e14901f..67b9da37b8 100644 --- a/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.h +++ b/ApplicationCode/ModelVisualization/RivWellSpheresPartMgr.h @@ -52,8 +52,6 @@ public: RivWellSpheresPartMgr(RimEclipseView* reservoirView, RimEclipseWell* well); ~RivWellSpheresPartMgr(); - void scheduleGeometryRegen() { m_needsTransformUpdate = true; } - void appendDynamicGeometryPartsToModel(cvf::ModelBasicList* model, size_t frameIndex); private: @@ -63,6 +61,4 @@ private: private: caf::PdmPointer m_rimReservoirView; caf::PdmPointer m_rimWell; - - bool m_needsTransformUpdate; }; diff --git a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp index 3cbc4177ac..7af603aeec 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseView.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseView.cpp @@ -131,7 +131,6 @@ RimEclipseView::RimEclipseView() m_reservoirGridPartManager = new RivReservoirViewPartMgr(this); m_pipesPartManager = new RivReservoirPipesPartMgr(this); m_wellSpheresPartManager = new RivReservoirWellSpheresPartMgr(this); - m_reservoir = NULL; } @@ -666,7 +665,6 @@ void RimEclipseView::updateCurrentTimeStep() m_pipesPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep); m_wellSpheresPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep); - wellPipeModelBasicList->updateBoundingBoxesRecursive(); this->removeModelByName(frameScene, wellPipeModelBasicList->name()); @@ -900,6 +898,7 @@ void RimEclipseView::scheduleReservoirGridGeometryRegen() void RimEclipseView::schedulePipeGeometryRegen() { m_pipesPartManager->scheduleGeometryRegen(); + m_wellSpheresPartManager->clearGeometryCache(); } @@ -1308,6 +1307,7 @@ void RimEclipseView::updateDisplayModelForWellResults() { m_reservoirGridPartManager->clearGeometryCache(); m_pipesPartManager->clearGeometryCache(); + m_wellSpheresPartManager->clearGeometryCache(); syncronizeWellsWithResults(); diff --git a/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp b/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp index da0654dbd7..e9a26ce99f 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseWell.cpp @@ -148,106 +148,6 @@ caf::PdmFieldHandle* RimEclipseWell::objectToggleField() return &showWell; } -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RimEclipseWell::calculateWellPipeVisibility(size_t frameIndex) -{ - if (m_reservoirView == NULL) return false; - if (this->wellResults() == NULL) return false; - - if (frameIndex >= this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex.size()) - { - return false; - } - - size_t wellTimeStepIndex = this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex[frameIndex]; - if (wellTimeStepIndex == cvf::UNDEFINED_SIZE_T) - { - return false; - } - - if (!m_reservoirView->wellCollection()->isActive()) - return false; - - if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_ON) - return true; - - if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_OFF) - return false; - - if ( this->showWell() == false ) - return false; - - if ( this->showWellPipes() == false ) - return false; - - if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_INDIVIDUALLY) - return true; - - if (m_reservoirView->crossSectionCollection()->hasActiveIntersectionForSimulationWell(this)) - return true; - - if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS) - { - return visibleCellsInstersectsWell(frameIndex); - } - - CVF_ASSERT(false); // Never end here. have you added new pipe visibility modes ? - - return false; -} - -//-------------------------------------------------------------------------------------------------- -/// -//-------------------------------------------------------------------------------------------------- -bool RimEclipseWell::calculateWellSphereVisibility(size_t frameIndex) -{ - if (m_reservoirView == NULL) return false; - if (this->wellResults() == NULL) return false; - - if (frameIndex >= this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex.size()) - { - return false; - } - - size_t wellTimeStepIndex = this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex[frameIndex]; - if (wellTimeStepIndex == cvf::UNDEFINED_SIZE_T) - { - return false; - } - - if (!m_reservoirView->wellCollection()->isActive()) - return false; - - if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_ON) - return true; - - if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_OFF) - return false; - - if (this->showWell() == false) - return false; - - if (this->showWellSpheres() == false) - return false; - - if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_INDIVIDUALLY) - return true; - - if (m_reservoirView->crossSectionCollection()->hasActiveIntersectionForSimulationWell(this)) - return true; - - if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS) - { - return visibleCellsInstersectsWell(frameIndex); - } - - CVF_ASSERT(false); // Never end here. have you added new pipe visibility modes ? - - return false; -} - //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- @@ -326,7 +226,99 @@ void RimEclipseWell::defineUiOrdering(QString uiConfigName, caf::PdmUiOrdering& //-------------------------------------------------------------------------------------------------- bool RimEclipseWell::isWellPipeVisible(size_t frameIndex) { - return calculateWellPipeVisibility(frameIndex); + if (m_reservoirView == NULL) return false; + if (this->wellResults() == NULL) return false; + + if (frameIndex >= this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex.size()) + { + return false; + } + + size_t wellTimeStepIndex = this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex[frameIndex]; + if (wellTimeStepIndex == cvf::UNDEFINED_SIZE_T) + { + return false; + } + + if (!m_reservoirView->wellCollection()->isActive()) + return false; + + if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_ON) + return true; + + if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_OFF) + return false; + + if (this->showWell() == false) + return false; + + if (this->showWellPipes() == false) + return false; + + if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_INDIVIDUALLY) + return true; + + if (m_reservoirView->crossSectionCollection()->hasActiveIntersectionForSimulationWell(this)) + return true; + + if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS) + { + return visibleCellsInstersectsWell(frameIndex); + } + + CVF_ASSERT(false); // Never end here. have you added new pipe visibility modes ? + + return false; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RimEclipseWell::isWellSpheresVisible(size_t frameIndex) +{ + if (m_reservoirView == NULL) return false; + if (this->wellResults() == NULL) return false; + + if (frameIndex >= this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex.size()) + { + return false; + } + + size_t wellTimeStepIndex = this->wellResults()->m_resultTimeStepIndexToWellTimeStepIndex[frameIndex]; + if (wellTimeStepIndex == cvf::UNDEFINED_SIZE_T) + { + return false; + } + + if (!m_reservoirView->wellCollection()->isActive()) + return false; + + if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_ON) + return true; + + if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_FORCE_ALL_OFF) + return false; + + if (this->showWell() == false) + return false; + + if (this->showWellSpheres() == false) + return false; + + if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_INDIVIDUALLY) + return true; + + if (m_reservoirView->crossSectionCollection()->hasActiveIntersectionForSimulationWell(this)) + return true; + + if (m_reservoirView->wellCollection()->wellSphereVisibility() == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS) + { + return visibleCellsInstersectsWell(frameIndex); + } + + CVF_ASSERT(false); // Never end here. have you added new pipe visibility modes ? + + return false; } //-------------------------------------------------------------------------------------------------- diff --git a/ApplicationCode/ProjectDataModel/RimEclipseWell.h b/ApplicationCode/ProjectDataModel/RimEclipseWell.h index cfe9ae2807..ae8a05dace 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseWell.h +++ b/ApplicationCode/ProjectDataModel/RimEclipseWell.h @@ -53,13 +53,9 @@ public: size_t resultWellIndex() { return m_resultWellIndex; } bool isWellPipeVisible(size_t frameIndex); + bool isWellSpheresVisible(size_t frameIndex); - bool calculateWellPipeVisibility(size_t frameIndex); - bool calculateWellSphereVisibility(size_t frameIndex); - - bool visibleCellsInstersectsWell(size_t frameIndex); - - //Trengs det en calculateWellGeometryVisibility?? + bool visibleCellsInstersectsWell(size_t frameIndex); virtual caf::PdmFieldHandle* userDescriptionField(); virtual caf::PdmFieldHandle* objectToggleField(); diff --git a/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp b/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp index c571d6c5f4..6194a1d2bd 100644 --- a/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp +++ b/ApplicationCode/ProjectDataModel/RimEclipseWellCollection.cpp @@ -346,8 +346,8 @@ void RimEclipseWellCollection::calculateWellGeometryVisibility(size_t frameIndex for (size_t i = 0; i < wells().size(); ++i) { - bool wellPipeVisible = wells[i]->calculateWellPipeVisibility(frameIndex); - bool wellSphereVisible = wells[i]->calculateWellSphereVisibility(frameIndex); + bool wellPipeVisible = wells[i]->isWellPipeVisible(frameIndex); + bool wellSphereVisible = wells[i]->isWellSpheresVisible(frameIndex); m_framesOfResultWellPipeVisibilities[frameIndex][wells[i]->resultWellIndex()] = wellPipeVisible || wellSphereVisible; }