#751 : Well pipes for intersections based on Simulation Wells disappears when a Range Filter is applied

This commit is contained in:
Magne Sjaastad 2016-07-27 08:05:44 +02:00
parent 512f8904de
commit a7d0c0c83e
3 changed files with 33 additions and 2 deletions

View File

@ -20,10 +20,13 @@
#include "RimCrossSectionCollection.h" #include "RimCrossSectionCollection.h"
#include "RimCrossSection.h" #include "RimCrossSection.h"
#include "RivCrossSectionPartMgr.h" #include "RimEclipseWell.h"
#include "RiuMainWindow.h"
#include "RimView.h" #include "RimView.h"
#include "RiuMainWindow.h"
#include "RivCrossSectionPartMgr.h"
CAF_PDM_SOURCE_INIT(RimCrossSectionCollection, "CrossSectionCollection"); CAF_PDM_SOURCE_INIT(RimCrossSectionCollection, "CrossSectionCollection");
@ -143,3 +146,25 @@ void RimCrossSectionCollection::fieldChangedByUi(const caf::PdmFieldHandle* chan
} }
} }
} }
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimCrossSectionCollection::hasActiveCrossSectionForSimulationWell(RimEclipseWell* eclipseWell) const
{
if (!isActive) return false;
for (size_t csIdx = 0; csIdx < m_crossSections.size(); ++csIdx)
{
RimCrossSection* cs = m_crossSections[csIdx];
if (cs->isActive &&
cs->type() == RimCrossSection::CS_SIMULATION_WELL &&
cs->simulationWell() == eclipseWell)
{
return true;
}
}
return false;
}

View File

@ -25,6 +25,7 @@
class RimCrossSection; class RimCrossSection;
class RimEclipseCellColors; class RimEclipseCellColors;
class RimEclipseWell;
namespace cvf { namespace cvf {
class ModelBasicList; class ModelBasicList;
@ -48,6 +49,7 @@ public:
void appendCrossSection(RimCrossSection* crossSection); void appendCrossSection(RimCrossSection* crossSection);
bool hasActiveCrossSectionForSimulationWell(RimEclipseWell* eclipseWell) const;
// Visualization interface // Visualization interface

View File

@ -20,6 +20,7 @@
#include "RimEclipseWell.h" #include "RimEclipseWell.h"
#include "RimCrossSectionCollection.h"
#include "RimEclipseView.h" #include "RimEclipseView.h"
#include "RimEclipseWellCollection.h" #include "RimEclipseWellCollection.h"
@ -179,6 +180,9 @@ bool RimEclipseWell::calculateWellPipeVisibility(size_t frameIndex)
if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_INDIVIDUALLY) if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_INDIVIDUALLY)
return true; return true;
if (m_reservoirView->crossSectionCollection()->hasActiveCrossSectionForSimulationWell(this))
return true;
if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS) if (m_reservoirView->wellCollection()->wellPipeVisibility() == RimEclipseWellCollection::PIPES_OPEN_IN_VISIBLE_CELLS)
{ {
const std::vector<RivCellSetEnum>& visGridParts = m_reservoirView->visibleGridParts(); const std::vector<RivCellSetEnum>& visGridParts = m_reservoirView->visibleGridParts();