From 860b51931cc3091e7862464a7cbf65aa63353f43 Mon Sep 17 00:00:00 2001
From: Magne Sjaastad <magne.sjaastad@ceetronsolutions.com>
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<RimEclipseView>   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<RimEclipseView>   m_rimReservoirView;
     caf::PdmPointer<RimEclipseWell>            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;
     }