Refactored visualization : One part manager for each fracture

This commit is contained in:
Magne Sjaastad
2017-01-19 07:28:04 +01:00
parent 07b9eba3a8
commit 74fc8458ed
10 changed files with 109 additions and 222 deletions

View File

@@ -45,6 +45,7 @@
#include "RimEclipseWellCollection.h"
#include "RimFaultCollection.h"
#include "RimFlowDiagSolution.h"
#include "RimFracture.h"
#include "RimGridCollection.h"
#include "RimIntersection.h"
#include "RimIntersectionCollection.h"
@@ -60,15 +61,16 @@
#include "RiuSelectionManager.h"
#include "RiuViewer.h"
#include "RivReservoirFracturesPartMgr.h"
#include "RivReservoirPipesPartMgr.h"
#include "RivReservoirWellSpheresPartMgr.h"
#include "RivSingleCellPartGenerator.h"
#include "RivTernarySaturationOverlayItem.h"
#include "RivWellPathCollectionPartMgr.h"
#include "RivWellFracturePartMgr.h"
#include "cafCadNavigation.h"
#include "cafCeetronPlusNavigation.h"
#include "cafDisplayCoordTransform.h"
#include "cafFrameAnimationControl.h"
#include "cafPdmUiTreeOrdering.h"
@@ -138,7 +140,6 @@ RimEclipseView::RimEclipseView()
m_reservoirGridPartManager = new RivReservoirViewPartMgr(this);
m_pipesPartManager = new RivReservoirPipesPartMgr(this);
m_wellSpheresPartManager = new RivReservoirWellSpheresPartMgr(this);
m_simWellFracturesPartManager = new RivReservoirFracturesPartMgr(this);
m_reservoir = NULL;
}
@@ -671,7 +672,15 @@ void RimEclipseView::updateCurrentTimeStep()
m_pipesPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep);
m_wellSpheresPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep);
m_simWellFracturesPartManager->appendDynamicGeometryPartsToModel(wellPipeModelBasicList.p(), m_currentTimeStep);
cvf::ref<caf::DisplayCoordTransform> transForm = this->displayCoordTransform();
std::vector<RimFracture*> fractures;
this->descendantsIncludingThisOfType(fractures);
for (RimFracture* f : fractures)
{
f->fracturePartManager()->appendGeometryPartsToModel(wellPipeModelBasicList.p(), transForm.p());
}
wellPipeModelBasicList->updateBoundingBoxesRecursive();
@@ -906,7 +915,6 @@ void RimEclipseView::schedulePipeGeometryRegen()
{
m_pipesPartManager->scheduleGeometryRegen();
m_wellSpheresPartManager->clearGeometryCache();
m_simWellFracturesPartManager->clearGeometryCache();
}
@@ -1281,7 +1289,6 @@ void RimEclipseView::updateDisplayModelForWellResults()
m_reservoirGridPartManager->clearGeometryCache();
m_pipesPartManager->clearGeometryCache();
m_wellSpheresPartManager->clearGeometryCache();
m_simWellFracturesPartManager->clearGeometryCache();
syncronizeWellsWithResults();

View File

@@ -59,7 +59,6 @@ class RiuViewer;
class RivReservoirPipesPartMgr;
class RivReservoirWellSpheresPartMgr;
class RivIntersectionPartMgr;
class RivReservoirFracturesPartMgr;
namespace cvf
{
@@ -187,7 +186,6 @@ private:
cvf::ref<RivReservoirViewPartMgr> m_reservoirGridPartManager;
cvf::ref<RivReservoirPipesPartMgr> m_pipesPartManager;
cvf::ref<RivReservoirWellSpheresPartMgr> m_wellSpheresPartManager;
cvf::ref<RivReservoirFracturesPartMgr> m_simWellFracturesPartManager;
std::vector<RivCellSetEnum> m_visibleGridParts;
};

View File

@@ -38,6 +38,8 @@
#include "cafHexGridIntersectionTools/cafHexGridIntersectionTools.h"
#include "custom-clipper/clipper/clipper.hpp"
#include "RivWellFracturePartMgr.h"
CAF_PDM_XML_ABSTRACT_SOURCE_INIT(RimFracture, "Fracture");
@@ -53,6 +55,8 @@ RimFracture::RimFracture(void)
m_rigFracture = new RigFracture;
m_recomputeGeometry = true;
m_rivFracture = new RivWellFracturePartMgr(this);
}
//--------------------------------------------------------------------------------------------------
@@ -434,6 +438,8 @@ void RimFracture::calculateFracturePlaneCellPolygonOverlap(std::vector<std::vect
void RimFracture::setRecomputeGeometryFlag()
{
m_recomputeGeometry = true;
m_rivFracture->clearGeometryCache();
}
//--------------------------------------------------------------------------------------------------
@@ -477,6 +483,16 @@ cvf::ref<RigFracture> RimFracture::attachedRigFracture() const
return m_rigFracture;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RivWellFracturePartMgr* RimFracture::fracturePartManager()
{
CVF_ASSERT(m_rivFracture.notNull());
return m_rivFracture.p();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -30,6 +30,7 @@
class RimEllipseFractureTemplate;
class RigFracture;
class RivWellFracturePartMgr;
//==================================================================================================
///
@@ -51,6 +52,8 @@ public:
virtual RimEllipseFractureTemplate* attachedFractureDefinition() = 0;
cvf::ref<RigFracture> attachedRigFracture() const;
RivWellFracturePartMgr* fracturePartManager();
bool hasValidGeometry() const;
void computeGeometry();
void setRecomputeGeometryFlag();
@@ -78,8 +81,8 @@ private:
private:
cvf::ref<RigFracture> m_rigFracture;
bool m_recomputeGeometry;
cvf::ref<RivWellFracturePartMgr> m_rivFracture;
};