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

View File

@ -31,7 +31,7 @@ namespace cvf
class RimResultSlot; class RimResultSlot;
class RimCellEdgeResultSlot; class RimCellEdgeResultSlot;
class RimFaultCollection; class RimReservoirView;
//================================================================================================== //==================================================================================================
/// ///
@ -39,7 +39,7 @@ class RimFaultCollection;
class RivReservoirFaultsPartMgr : public cvf::Object class RivReservoirFaultsPartMgr : public cvf::Object
{ {
public: public:
RivReservoirFaultsPartMgr(const RigMainGrid* grid, const RimFaultCollection* faultCollection); RivReservoirFaultsPartMgr(const RigMainGrid* grid, RimReservoirView* reservoirView);
~RivReservoirFaultsPartMgr(); ~RivReservoirFaultsPartMgr();
void setTransform(cvf::Transform* scaleTransform); void setTransform(cvf::Transform* scaleTransform);
@ -59,7 +59,7 @@ public:
private: private:
cvf::ref<cvf::Transform> m_scaleTransform; cvf::ref<cvf::Transform> m_scaleTransform;
const RimFaultCollection* m_faultCollection; caf::PdmPointer<RimReservoirView> m_reservoirView;
cvf::Collection<RivFaultPartMgr> m_faultParts; cvf::Collection<RivFaultPartMgr> m_faultParts;
bool m_forceVisibility; 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(); m_allGrids.clear();
@ -44,7 +44,7 @@ void RivReservoirPartMgr::clearAndSetReservoir(const RigCaseData* eclipseCase, c
if (eclipseCase->mainGrid()) if (eclipseCase->mainGrid())
{ {
// Faults read from file are present only on main grid // 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 RimCellEdgeResultSlot;
class RivGridPartMgr; class RivGridPartMgr;
class RigCaseData; class RigCaseData;
class RimFaultCollection; class RimReservoirView;
//================================================================================================== //==================================================================================================
/// ///
@ -45,7 +45,7 @@ class RimFaultCollection;
class RivReservoirPartMgr: public cvf::Object class RivReservoirPartMgr: public cvf::Object
{ {
public: public:
void clearAndSetReservoir(const RigCaseData* eclipseCase, const RimFaultCollection* faultCollection); void clearAndSetReservoir(const RigCaseData* eclipseCase, RimReservoirView* reservoirView);
void setTransform(cvf::Transform* scaleTransform); void setTransform(cvf::Transform* scaleTransform);
void setCellVisibility(size_t gridIndex, cvf::UByteArray* cellVisibilities ); void setCellVisibility(size_t gridIndex, cvf::UByteArray* cellVisibilities );
void setFaultForceVisibility(bool isGeneratedByFilter); void setFaultForceVisibility(bool isGeneratedByFilter);

View File

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

View File

@ -45,7 +45,7 @@ RimFaultResultSlot::RimFaultResultSlot()
{ {
CAF_PDM_InitObject("Fault Result Slot", "", "", ""); 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", "", ""); CAF_PDM_InitFieldNoDefault(&m_customResultSlot, "CustomResultSlot", "Custom Fault Cell Result", ":/CellResult.png", "", "");
m_customResultSlot = new RimResultSlot(); 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) void RimFaultResultSlot::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{ {
if (changedField == &m_visualizationMode) if (changedField == &visualizationMode)
{ {
updateVisibility(); updateVisibility();
@ -97,7 +97,7 @@ void RimFaultResultSlot::initAfterRead()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RimFaultResultSlot::updateVisibility() 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.setUiHidden(true);
this->m_customResultSlot.setUiChildrenHidden(true); this->m_customResultSlot.setUiChildrenHidden(true);
@ -114,7 +114,7 @@ void RimFaultResultSlot::updateVisibility()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
RimResultSlot* RimFaultResultSlot::customResultSlot() RimResultSlot* RimFaultResultSlot::customResultSlot()
{ {
if (this->m_visualizationMode() == CUSTOM_RESULT_MAPPING) if (this->visualizationMode() == CUSTOM_RESULT_MAPPING)
{ {
return this->m_customResultSlot(); return this->m_customResultSlot();
} }

View File

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