Fault result: Moved result mapping from collection to fault result

This commit is contained in:
Magne Sjaastad 2014-07-31 10:49:23 +02:00
parent 11967c5161
commit 6416a6d71d
7 changed files with 57 additions and 54 deletions

View File

@ -27,18 +27,21 @@
#include "RimFaultCollection.h"
#include "RigMainGrid.h"
#include "RimReservoirView.h"
#include "RimFaultResultSlot.h"
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RivReservoirFaultsPartMgr::RivReservoirFaultsPartMgr(const RigMainGrid* grid, const RimFaultCollection* faultCollection)
: m_faultCollection(faultCollection)
RivReservoirFaultsPartMgr::RivReservoirFaultsPartMgr(const RigMainGrid* grid, RimReservoirView* reservoirView)
: m_reservoirView(reservoirView)
{
CVF_ASSERT(grid);
if (faultCollection)
if (reservoirView)
{
RimFaultCollection* faultCollection = reservoirView->faultCollection();
for (size_t i = 0; i < faultCollection->faults.size(); i++)
{
m_faultParts.push_back(new RivFaultPartMgr(grid, faultCollection, faultCollection->faults[i]));
@ -83,26 +86,27 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
{
CVF_ASSERT(model != NULL);
if (!m_faultCollection) return;
RimFaultCollection* faultCollection = m_reservoirView->faultCollection();
if (!faultCollection) return;
bool isShowingGrid = m_faultCollection->isGridVisualizationMode();
if (!m_faultCollection->showFaultCollection() && !isShowingGrid) return;
bool isShowingGrid = faultCollection->isGridVisualizationMode();
if (!faultCollection->showFaultCollection() && !isShowingGrid) return;
// Check match between model fault count and fault parts
CVF_ASSERT(m_faultCollection->faults.size() == m_faultParts.size());
CVF_ASSERT(faultCollection->faults.size() == m_faultParts.size());
cvf::ModelBasicList parts;
for (size_t i = 0; i < m_faultCollection->faults.size(); i++)
for (size_t i = 0; i < faultCollection->faults.size(); i++)
{
const RimFault* rimFault = m_faultCollection->faults[i];
const RimFault* rimFault = faultCollection->faults[i];
cvf::ref<RivFaultPartMgr> rivFaultPart = m_faultParts[i];
CVF_ASSERT(rivFaultPart.notNull());
// Parts that is overridden by the grid settings
bool forceDisplayOfFault = false;
if (!m_faultCollection->showFaultsOutsideFilters())
if (!faultCollection->showFaultsOutsideFilters())
{
forceDisplayOfFault = isShowingGrid;
}
@ -114,17 +118,17 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
if (rimFault->showFault() || forceDisplayOfFault)
{
if (m_faultCollection->showFaultFaces() || forceDisplayOfFault)
if (faultCollection->showFaultFaces() || forceDisplayOfFault)
{
rivFaultPart->appendNativeFaultFacesToModel(&parts);
}
if (m_faultCollection->showOppositeFaultFaces() || forceDisplayOfFault)
if (faultCollection->showOppositeFaultFaces() || forceDisplayOfFault)
{
rivFaultPart->appendOppositeFaultFacesToModel(&parts);
}
if (m_faultCollection->showFaultFaces() || m_faultCollection->showOppositeFaultFaces() || m_faultCollection->showNNCs() || forceDisplayOfFault)
if (faultCollection->showFaultFaces() || faultCollection->showOppositeFaultFaces() || faultCollection->showNNCs() || forceDisplayOfFault)
{
rivFaultPart->appendMeshLinePartsToModel(&parts);
}
@ -132,9 +136,9 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
// Parts that is not overridden by the grid settings
if (rimFault->showFault() && m_faultCollection->showFaultCollection())
if (rimFault->showFault() && faultCollection->showFaultCollection())
{
if (m_faultCollection->showNNCs())
if (faultCollection->showNNCs())
{
rivFaultPart->appendNNCFacesToModel(&parts);
}
@ -166,26 +170,22 @@ void RivReservoirFaultsPartMgr::applySingleColorEffect()
//--------------------------------------------------------------------------------------------------
void RivReservoirFaultsPartMgr::updateColors(size_t timeStepIndex, RimResultSlot* cellResultSlot)
{
bool isShowingGrid = m_faultCollection->isGridVisualizationMode();
if (!m_reservoirView) return;
for (size_t i = 0; i < m_faultCollection->faults.size(); i++)
RimFaultCollection* faultCollection = m_reservoirView->faultCollection();
CVF_ASSERT(faultCollection);
for (size_t i = 0; i < faultCollection->faults.size(); i++)
{
RimFault* rimFault = m_faultCollection->faults[i];
RimFault* rimFault = faultCollection->faults[i];
if (isShowingGrid)
if (m_reservoirView->faultResult()->visualizationMode() == RimFaultResultSlot::FAULT_COLOR)
{
m_faultParts[i]->updateCellResultColor(timeStepIndex, cellResultSlot);
m_faultParts[i]->applySingleColorEffect();
}
else
{
if (m_faultCollection->showResultsOnFaults())
{
m_faultParts[i]->updateCellResultColor(timeStepIndex, cellResultSlot);
}
else
{
m_faultParts[i]->applySingleColorEffect();
}
m_faultParts[i]->updateCellResultColor(timeStepIndex, cellResultSlot);
}
}
}
@ -207,21 +207,23 @@ void RivReservoirFaultsPartMgr::updateCellEdgeResultColor(size_t timeStepIndex,
void RivReservoirFaultsPartMgr::appendLabelPartsToModel(cvf::ModelBasicList* model)
{
CVF_ASSERT(model != NULL);
if (!m_reservoirView) return;
if (!m_faultCollection) return;
RimFaultCollection* faultCollection = m_reservoirView->faultCollection();
CVF_ASSERT(faultCollection);
if (!m_faultCollection->showFaultCollection()) return;
if (!faultCollection->showFaultCollection()) return;
if (!m_faultCollection->showFaultLabel() ) return;
if (!faultCollection->showFaultLabel() ) return;
// Check match between model fault count and fault parts
CVF_ASSERT(m_faultCollection->faults.size() == m_faultParts.size());
CVF_ASSERT(faultCollection->faults.size() == m_faultParts.size());
cvf::ModelBasicList parts;
for (size_t i = 0; i < m_faultCollection->faults.size(); i++)
for (size_t i = 0; i < faultCollection->faults.size(); i++)
{
const RimFault* rimFault = m_faultCollection->faults[i];
const RimFault* rimFault = faultCollection->faults[i];
cvf::ref<RivFaultPartMgr> rivFaultPart = m_faultParts[i];
CVF_ASSERT(rivFaultPart.notNull());

View File

@ -31,7 +31,7 @@ namespace cvf
class RimResultSlot;
class RimCellEdgeResultSlot;
class RimFaultCollection;
class RimReservoirView;
//==================================================================================================
///
@ -39,7 +39,7 @@ class RimFaultCollection;
class RivReservoirFaultsPartMgr : public cvf::Object
{
public:
RivReservoirFaultsPartMgr(const RigMainGrid* grid, const RimFaultCollection* faultCollection);
RivReservoirFaultsPartMgr(const RigMainGrid* grid, RimReservoirView* reservoirView);
~RivReservoirFaultsPartMgr();
void setTransform(cvf::Transform* scaleTransform);
@ -59,7 +59,7 @@ public:
private:
cvf::ref<cvf::Transform> m_scaleTransform;
const RimFaultCollection* m_faultCollection;
caf::PdmPointer<RimReservoirView> m_reservoirView;
cvf::Collection<RivFaultPartMgr> m_faultParts;
bool m_forceVisibility;
};

View File

@ -28,7 +28,7 @@
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RivReservoirPartMgr::clearAndSetReservoir(const RigCaseData* eclipseCase, const RimFaultCollection* faultCollection)
void RivReservoirPartMgr::clearAndSetReservoir(const RigCaseData* eclipseCase, RimReservoirView* reservoirView)
{
m_allGrids.clear();
@ -44,7 +44,7 @@ void RivReservoirPartMgr::clearAndSetReservoir(const RigCaseData* eclipseCase, c
if (eclipseCase->mainGrid())
{
// Faults read from file are present only on main grid
m_faultsPartMgr = new RivReservoirFaultsPartMgr(eclipseCase->mainGrid(), faultCollection);
m_faultsPartMgr = new RivReservoirFaultsPartMgr(eclipseCase->mainGrid(), reservoirView);
}
}
}

View File

@ -33,7 +33,7 @@ class RimResultSlot;
class RimCellEdgeResultSlot;
class RivGridPartMgr;
class RigCaseData;
class RimFaultCollection;
class RimReservoirView;
//==================================================================================================
///
@ -45,7 +45,7 @@ class RimFaultCollection;
class RivReservoirPartMgr: public cvf::Object
{
public:
void clearAndSetReservoir(const RigCaseData* eclipseCase, const RimFaultCollection* faultCollection);
void clearAndSetReservoir(const RigCaseData* eclipseCase, RimReservoirView* reservoirView);
void setTransform(cvf::Transform* scaleTransform);
void setCellVisibility(size_t gridIndex, cvf::UByteArray* cellVisibilities );
void setFaultForceVisibility(bool isGeneratedByFilter);

View File

@ -152,7 +152,7 @@ void RivReservoirViewPartMgr::clearGeometryCache(ReservoirGeometryCacheType geom
m_propFilteredGeometryFramesNeedsRegen[i] = true;
if (m_propFilteredGeometryFrames[i].notNull())
{
m_propFilteredGeometryFrames[i]->clearAndSetReservoir(eclipseCase, m_reservoirView->faultCollection());
m_propFilteredGeometryFrames[i]->clearAndSetReservoir(eclipseCase, m_reservoirView);
m_propFilteredGeometryFrames[i]->setTransform(m_scaleTransform.p());
}
}
@ -164,7 +164,7 @@ void RivReservoirViewPartMgr::clearGeometryCache(ReservoirGeometryCacheType geom
m_propFilteredWellGeometryFramesNeedsRegen[i] = true;
if (m_propFilteredWellGeometryFrames[i].notNull())
{
m_propFilteredWellGeometryFrames[i]->clearAndSetReservoir(eclipseCase, m_reservoirView->faultCollection());
m_propFilteredWellGeometryFrames[i]->clearAndSetReservoir(eclipseCase, m_reservoirView);
m_propFilteredWellGeometryFrames[i]->setTransform(m_scaleTransform.p());
}
}
@ -172,7 +172,7 @@ void RivReservoirViewPartMgr::clearGeometryCache(ReservoirGeometryCacheType geom
else
{
m_geometriesNeedsRegen[geomType] = true;
m_geometries[geomType].clearAndSetReservoir(eclipseCase, m_reservoirView->faultCollection());
m_geometries[geomType].clearAndSetReservoir(eclipseCase, m_reservoirView);
m_geometries[geomType].setTransform(m_scaleTransform.p());
}
}
@ -239,7 +239,7 @@ void RivReservoirViewPartMgr::appendDynamicGeometryPartsToModel(cvf::ModelBasicL
void RivReservoirViewPartMgr::createGeometry(ReservoirGeometryCacheType geometryType)
{
RigCaseData* res = m_reservoirView->eclipseCase()->reservoirData();
m_geometries[geometryType].clearAndSetReservoir(res, m_reservoirView->faultCollection());
m_geometries[geometryType].clearAndSetReservoir(res, m_reservoirView);
m_geometries[geometryType].setTransform(m_scaleTransform.p());
std::vector<RigGridBase*> grids;
@ -395,7 +395,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredNoneWellCellGeometry(size_t
if ( m_propFilteredGeometryFrames[frameIndex].isNull()) m_propFilteredGeometryFrames[frameIndex] = new RivReservoirPartMgr;
m_propFilteredGeometryFrames[frameIndex]->clearAndSetReservoir(res, m_reservoirView->faultCollection());
m_propFilteredGeometryFrames[frameIndex]->clearAndSetReservoir(res, m_reservoirView);
m_propFilteredGeometryFrames[frameIndex]->setTransform(m_scaleTransform.p());
std::vector<RigGridBase*> grids;
@ -472,7 +472,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredWellGeometry(size_t frameInd
if ( m_propFilteredWellGeometryFrames[frameIndex].isNull()) m_propFilteredWellGeometryFrames[frameIndex] = new RivReservoirPartMgr;
m_propFilteredWellGeometryFrames[frameIndex]->clearAndSetReservoir(res, m_reservoirView->faultCollection());
m_propFilteredWellGeometryFrames[frameIndex]->clearAndSetReservoir(res, m_reservoirView);
m_propFilteredWellGeometryFrames[frameIndex]->setTransform(m_scaleTransform.p());
std::vector<RigGridBase*> grids;

View File

@ -45,7 +45,7 @@ RimFaultResultSlot::RimFaultResultSlot()
{
CAF_PDM_InitObject("Fault Result Slot", "", "", "");
CAF_PDM_InitField(&m_visualizationMode, "VisualizationMode", caf::AppEnum<RimFaultResultSlot::FaultVisualizationMode>(RimFaultResultSlot::CELL_RESULT_MAPPING), "Fault Color Mapping", "", "", "");
CAF_PDM_InitField(&visualizationMode, "VisualizationMode", caf::AppEnum<RimFaultResultSlot::FaultVisualizationMode>(RimFaultResultSlot::CELL_RESULT_MAPPING), "Fault Color Mapping", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_customResultSlot, "CustomResultSlot", "Custom Fault Cell Result", ":/CellResult.png", "", "");
m_customResultSlot = new RimResultSlot();
@ -74,7 +74,7 @@ void RimFaultResultSlot::setReservoirView(RimReservoirView* ownerReservoirView)
//--------------------------------------------------------------------------------------------------
void RimFaultResultSlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
if (changedField == &m_visualizationMode)
if (changedField == &visualizationMode)
{
updateVisibility();
@ -97,7 +97,7 @@ void RimFaultResultSlot::initAfterRead()
//--------------------------------------------------------------------------------------------------
void RimFaultResultSlot::updateVisibility()
{
if (this->m_visualizationMode() == FAULT_COLOR || this->m_visualizationMode() == CELL_RESULT_MAPPING)
if (this->visualizationMode() == FAULT_COLOR || this->visualizationMode() == CELL_RESULT_MAPPING)
{
this->m_customResultSlot.setUiHidden(true);
this->m_customResultSlot.setUiChildrenHidden(true);
@ -114,7 +114,7 @@ void RimFaultResultSlot::updateVisibility()
//--------------------------------------------------------------------------------------------------
RimResultSlot* RimFaultResultSlot::customResultSlot()
{
if (this->m_visualizationMode() == CUSTOM_RESULT_MAPPING)
if (this->visualizationMode() == CUSTOM_RESULT_MAPPING)
{
return this->m_customResultSlot();
}

View File

@ -43,10 +43,12 @@ public:
public:
RimFaultResultSlot();
virtual ~RimFaultResultSlot();
void setReservoirView(RimReservoirView* ownerReservoirView);
RimResultSlot* customResultSlot();
caf::PdmField< caf::AppEnum< FaultVisualizationMode > > visualizationMode;
RimResultSlot* customResultSlot();
void updateVisibility();
protected:
@ -54,7 +56,6 @@ protected:
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
private:
caf::PdmField< caf::AppEnum< FaultVisualizationMode > > m_visualizationMode;
caf::PdmField<RimResultSlot*> m_customResultSlot;
caf::PdmPointer<RimReservoirView> m_reservoirView;