Fault result : Use checkbox to enable custom fault visualization

When checkbox is disabled, faults are visualized using current cell
visualization. When checkbox is activated, fault colors or custom fault
result is active
This commit is contained in:
Magne Sjaastad 2014-08-01 09:40:35 +02:00
parent 8b04e2a2e8
commit b2f80c7ef9
5 changed files with 31 additions and 19 deletions

View File

@ -2066,7 +2066,7 @@ void RiaApplication::regressionTestConfigureProject()
}
riv->faultCollection->showFaultsOutsideFilters.setValueFromUi(false);
riv->faultResultSettings->visualizationMode.setValueFromUi(RimFaultResultSettings::CELL_RESULT_MAPPING);
riv->faultResultSettings->showCustomFaultResult.setValueFromUi(false);
}
}
}

View File

@ -182,7 +182,8 @@ void RivReservoirFaultsPartMgr::updateColors(size_t timeStepIndex, RimResultSlot
{
RimFault* rimFault = faultCollection->faults[i];
if (m_reservoirView->faultResultSettings()->visualizationMode() == RimFaultResultSettings::FAULT_COLOR)
if (m_reservoirView->faultResultSettings()->showCustomFaultResult() &&
m_reservoirView->faultResultSettings()->visualizationMode() == RimFaultResultSettings::FAULT_COLOR)
{
m_faultParts[i]->applySingleColorEffect();
}

View File

@ -30,9 +30,8 @@ namespace caf
void AppEnum< RimFaultResultSettings::FaultVisualizationMode >::setUp()
{
addItem(RimFaultResultSettings::FAULT_COLOR, "FAULT_COLOR", "Fault Colors");
addItem(RimFaultResultSettings::CELL_RESULT_MAPPING, "CELL_RESULT_MAPPING", "Grid Cell Results");
addItem(RimFaultResultSettings::CUSTOM_RESULT_MAPPING, "CUSTOM_RESULT_MAPPING", "Custom Cell Results");
setDefault(RimFaultResultSettings::CELL_RESULT_MAPPING);
setDefault(RimFaultResultSettings::FAULT_COLOR);
}
}
@ -45,7 +44,10 @@ RimFaultResultSettings::RimFaultResultSettings()
{
CAF_PDM_InitObject("Fault Result Slot", "", "", "");
CAF_PDM_InitField(&visualizationMode, "VisualizationMode", caf::AppEnum<RimFaultResultSettings::FaultVisualizationMode>(RimFaultResultSettings::CELL_RESULT_MAPPING), "Fault Color Mapping", "", "", "");
CAF_PDM_InitField(&showCustomFaultResult, "ShowCustomFaultResult", false, "Show Custom Fault Result", "", "", "");
showCustomFaultResult.setUiHidden(true);
CAF_PDM_InitField(&visualizationMode, "VisualizationMode", caf::AppEnum<RimFaultResultSettings::FaultVisualizationMode>(RimFaultResultSettings::FAULT_COLOR), "Fault Color Mapping", "", "", "");
CAF_PDM_InitField(&showNNCs, "ShowNNCs", false, "Show NNCs", "", "", "");
CAF_PDM_InitFieldNoDefault(&m_customFaultResult, "CustomResultSlot", "Custom Fault Result", ":/CellResult.png", "", "");
@ -75,6 +77,11 @@ void RimFaultResultSettings::setReservoirView(RimReservoirView* ownerReservoirVi
//--------------------------------------------------------------------------------------------------
void RimFaultResultSettings::fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue)
{
if (&showCustomFaultResult == changedField)
{
this->updateUiIconFromState(showCustomFaultResult);
}
if (changedField == &visualizationMode)
{
updateVisibility();
@ -100,7 +107,7 @@ void RimFaultResultSettings::initAfterRead()
//--------------------------------------------------------------------------------------------------
void RimFaultResultSettings::updateVisibility()
{
if (this->visualizationMode() == FAULT_COLOR || this->visualizationMode() == CELL_RESULT_MAPPING)
if (this->visualizationMode() == FAULT_COLOR)
{
this->m_customFaultResult.setUiHidden(true);
this->m_customFaultResult.setUiChildrenHidden(true);
@ -117,7 +124,7 @@ void RimFaultResultSettings::updateVisibility()
//--------------------------------------------------------------------------------------------------
RimResultSlot* RimFaultResultSettings::customFaultResult()
{
if (this->visualizationMode() == CUSTOM_RESULT_MAPPING)
if (showCustomFaultResult() && this->visualizationMode() == CUSTOM_RESULT_MAPPING)
{
return this->m_customFaultResult();
}
@ -125,3 +132,11 @@ RimResultSlot* RimFaultResultSettings::customFaultResult()
return NULL;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
caf::PdmFieldHandle* RimFaultResultSettings::objectToggleField()
{
return &showCustomFaultResult;
}

View File

@ -36,7 +36,6 @@ public:
enum FaultVisualizationMode
{
FAULT_COLOR,
CELL_RESULT_MAPPING,
CUSTOM_RESULT_MAPPING
};
@ -47,15 +46,17 @@ public:
void setReservoirView(RimReservoirView* ownerReservoirView);
caf::PdmField< caf::AppEnum< FaultVisualizationMode > > visualizationMode;
caf::PdmField<bool> showNNCs;
caf::PdmField<bool> showNNCs;
caf::PdmField<bool> showCustomFaultResult;
RimResultSlot* customFaultResult();
void updateVisibility();
protected:
virtual void initAfterRead();
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
virtual void initAfterRead();
virtual caf::PdmFieldHandle* objectToggleField();
virtual void fieldChangedByUi(const caf::PdmFieldHandle* changedField, const QVariant& oldValue, const QVariant& newValue);
private:
caf::PdmField<RimResultSlot*> m_customFaultResult;

View File

@ -1389,9 +1389,8 @@ void RimReservoirView::updateLegends()
CVF_ASSERT(results);
updateMinMaxValuesAndAddLegendToView(QString("Cell Results: \n"), this->cellResult(), results);
if (this->faultResultSettings()->visualizationMode() == RimFaultResultSettings::CUSTOM_RESULT_MAPPING)
if (this->faultResultSettings()->customFaultResult())
{
CVF_ASSERT(this->faultResultSettings()->customFaultResult());
updateMinMaxValuesAndAddLegendToView(QString("Fault Results: \n"), this->faultResultSettings()->customFaultResult(), results);
}
@ -2054,15 +2053,11 @@ void RimReservoirView::updateFaultColors()
// Update all fault geometry
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> faultGeometriesToRecolor = visibleFaultGeometryTypes();
RimResultSlot* resultSlot = NULL;
if (this->faultResultSettings()->visualizationMode() == RimFaultResultSettings::CUSTOM_RESULT_MAPPING)
RimResultSlot* resultSlot = this->cellResult();
if (this->faultResultSettings()->customFaultResult())
{
resultSlot = this->faultResultSettings()->customFaultResult();
}
else
{
resultSlot = this->cellResult();
}
for (size_t i = 0; i < faultGeometriesToRecolor.size(); ++i)
{