Faults: Always show faults when showing Grid

Always show the faults parts when showing the grid in the "normal" way.
If we do not, there will be holes in the model.
This commit is contained in:
Jacob Støren 2013-12-18 09:26:06 +01:00
parent 8b52a43360
commit 473a49f83d
5 changed files with 39 additions and 24 deletions

View File

@ -26,16 +26,14 @@
#include "cafPdmFieldCvfColor.h"
#include "RimFaultCollection.h"
#include "RigMainGrid.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RivReservoirFaultsPartMgr::RivReservoirFaultsPartMgr(const RigGridBase* grid, size_t gridIdx, const RimFaultCollection* faultCollection)
: m_gridIdx(gridIdx),
m_grid(grid),
m_faultCollection(faultCollection)
RivReservoirFaultsPartMgr::RivReservoirFaultsPartMgr(const RigMainGrid* grid, const RimFaultCollection* faultCollection)
: m_faultCollection(faultCollection)
{
CVF_ASSERT(grid);
@ -85,10 +83,8 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
if (!m_faultCollection) return;
// Faults are only present for main grid
if (!m_grid->isMainGrid()) return;
if (!m_faultCollection->showFaultCollection()) return;
bool isShowingGrid = m_faultCollection->isGridVisualizationMode();
if (!m_faultCollection->showFaultCollection() && !isShowingGrid) return;
// Check match between model fault count and fault parts
CVF_ASSERT(m_faultCollection->faults.size() == m_faultParts.size());
@ -99,30 +95,38 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
{
const RimFault* rimFault = m_faultCollection->faults[i];
if (rimFault->showFault())
{
cvf::ref<RivFaultPartMgr> rivFaultPart = m_faultParts[i];
CVF_ASSERT(rivFaultPart.notNull());
cvf::ref<RivFaultPartMgr> rivFaultPart = m_faultParts[i];
CVF_ASSERT(rivFaultPart.notNull());
if (m_faultCollection->showFaultFaces())
// Parts that is overridden by the grid settings
if (rimFault->showFault() || isShowingGrid)
{
if (m_faultCollection->showFaultFaces() || isShowingGrid)
{
rivFaultPart->appendNativeFaultFacesToModel(&parts);
}
if (m_faultCollection->showOppositeFaultFaces())
if (m_faultCollection->showOppositeFaultFaces() || isShowingGrid)
{
rivFaultPart->appendOppositeFaultFacesToModel(&parts);
}
if (m_faultCollection->showFaultLabel())
if (m_faultCollection->showFaultFaces() || m_faultCollection->showOppositeFaultFaces() || m_faultCollection->showNNCs() || isShowingGrid)
{
rivFaultPart->appendMeshLinePartsToModel(&parts);
}
}
// Parts that is not overridden by the grid settings
if (rimFault->showFault() && m_faultCollection->showFaultCollection())
{
if (m_faultCollection->showFaultLabel() )
{
rivFaultPart->appendLabelPartsToModel(&parts);
}
if (m_faultCollection->showFaultFaces() || m_faultCollection->showOppositeFaultFaces() || m_faultCollection->showNNCs() )
{
rivFaultPart->appendMeshLinePartsToModel(&parts);
}
if (m_faultCollection->showNNCs())
{

View File

@ -39,7 +39,7 @@ class RimFaultCollection;
class RivReservoirFaultsPartMgr : public cvf::Object
{
public:
RivReservoirFaultsPartMgr(const RigGridBase* grid, size_t gridIdx, const RimFaultCollection* faultCollection);
RivReservoirFaultsPartMgr(const RigMainGrid* grid, const RimFaultCollection* faultCollection);
~RivReservoirFaultsPartMgr();
void setTransform(cvf::Transform* scaleTransform);
@ -54,8 +54,6 @@ public:
private:
size_t m_gridIdx;
cvf::cref<RigGridBase> m_grid;
cvf::ref<cvf::Transform> m_scaleTransform;
const RimFaultCollection* m_faultCollection;
cvf::Collection<RivFaultPartMgr> m_faultParts;

View File

@ -42,7 +42,7 @@ void RivReservoirPartMgr::clearAndSetReservoir(const RigCaseData* eclipseCase, c
}
// Faults read from file are present only on main grid
m_faultsPartMgr = new RivReservoirFaultsPartMgr(eclipseCase->mainGrid(), 0, faultCollection);
m_faultsPartMgr = new RivReservoirFaultsPartMgr(eclipseCase->mainGrid(), faultCollection);
}
}

View File

@ -192,3 +192,14 @@ void RimFaultCollection::syncronizeFaults()
this->faults().insert(0, newFaults);
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimFaultCollection::isGridVisualizationMode() const
{
CVF_ASSERT(m_reservoirView);
return ( m_reservoirView->surfaceMode() == RimReservoirView::SURFACE
|| m_reservoirView->meshMode() == RimReservoirView::FULL_MESH);
}

View File

@ -47,6 +47,8 @@ public:
void setReservoirView(RimReservoirView* ownerReservoirView);
void syncronizeFaults();
bool isGridVisualizationMode() const;
caf::PdmField<bool> showGeometryDetectedFaults; // Obsolete, to be removed
caf::PdmField<bool> showFaultFaces;