Fixed missing update of the 3D view after deleting statistic results

p4#: 21894
This commit is contained in:
Jacob Støren 2013-06-12 13:42:36 +02:00
parent 03ad142261
commit 6f04f70ade
4 changed files with 29 additions and 22 deletions

View File

@ -527,7 +527,7 @@ void RimReservoirView::createDisplayModel()
timeStepIndices.push_back(0);
}
updateLegends();
cvf::Collection<cvf::ModelBasicList> frameModels;
size_t timeIdx;
@ -644,6 +644,8 @@ void RimReservoirView::createDisplayModel()
m_viewer->slotSetCurrentFrame(m_currentTimeStep);
}
overlayInfoConfig()->update3DInfo();
updateLegends();
}
@ -848,7 +850,6 @@ void RimReservoirView::loadDataAndUpdate()
setDefaultView();
}
overlayInfoConfig()->update3DInfo();
}
@ -1443,8 +1444,6 @@ void RimReservoirView::updateDisplayModelForWellResults()
createDisplayModel();
updateDisplayModelVisibility();
overlayInfoConfig()->update3DInfo();
if (animationMode && m_viewer)
{
m_viewer->slotSetCurrentFrame(m_currentTimeStep);

View File

@ -44,7 +44,7 @@ CAF_PDM_SOURCE_INIT(RimResultDefinition, "ResultDefinition");
///
//--------------------------------------------------------------------------------------------------
RimResultDefinition::RimResultDefinition()
: m_gridScalarResultIndex(cvf::UNDEFINED_SIZE_T)
//: m_gridScalarResultIndex(cvf::UNDEFINED_SIZE_T)
{
CAF_PDM_InitObject("Result Definition", "", "", "");
@ -180,12 +180,12 @@ QList<caf::PdmOptionItemInfo> RimResultDefinition::calculateValueOptions(const c
//--------------------------------------------------------------------------------------------------
size_t RimResultDefinition::gridScalarIndex() const
{
if (m_gridScalarResultIndex == cvf::UNDEFINED_SIZE_T)
{
const RimReservoirCellResultsStorage* gridCellResults = this->currentGridCellResults();
if (gridCellResults) m_gridScalarResultIndex = gridCellResults->cellResults()->findScalarResultIndex(m_resultType(), m_resultVariable());
}
return m_gridScalarResultIndex;
size_t gridScalarResultIndex = cvf::UNDEFINED_SIZE_T;
const RimReservoirCellResultsStorage* gridCellResults = this->currentGridCellResults();
if (gridCellResults) gridScalarResultIndex = gridCellResults->cellResults()->findScalarResultIndex(m_resultType(), m_resultVariable());
return gridScalarResultIndex;
}
//--------------------------------------------------------------------------------------------------
@ -196,12 +196,9 @@ void RimResultDefinition::loadResult()
RimReservoirCellResultsStorage* gridCellResults = this->currentGridCellResults();
if (gridCellResults)
{
m_gridScalarResultIndex = gridCellResults->findOrLoadScalarResult(m_resultType(), m_resultVariable);
}
else
{
m_gridScalarResultIndex = cvf::UNDEFINED_SIZE_T;
gridCellResults->findOrLoadScalarResult(m_resultType(), m_resultVariable);
}
}
@ -212,7 +209,9 @@ void RimResultDefinition::loadResult()
bool RimResultDefinition::hasStaticResult() const
{
const RimReservoirCellResultsStorage* gridCellResults = this->currentGridCellResults();
if (hasResult() && gridCellResults->cellResults()->timeStepCount(m_gridScalarResultIndex) == 1 )
size_t gridScalarResultIndex = this->gridScalarIndex();
if (hasResult() && gridCellResults->cellResults()->timeStepCount(gridScalarResultIndex) == 1 )
{
return true;
}
@ -227,13 +226,12 @@ bool RimResultDefinition::hasStaticResult() const
//--------------------------------------------------------------------------------------------------
bool RimResultDefinition::hasResult() const
{
if (m_gridScalarResultIndex != cvf::UNDEFINED_SIZE_T) return true;
if (this->currentGridCellResults() && this->currentGridCellResults()->cellResults())
{
const RigCaseCellResultsData* gridCellResults = this->currentGridCellResults()->cellResults();
m_gridScalarResultIndex = gridCellResults->findScalarResultIndex(m_resultType(), m_resultVariable());
return m_gridScalarResultIndex != cvf::UNDEFINED_SIZE_T;
size_t gridScalarResultIndex = gridCellResults->findScalarResultIndex(m_resultType(), m_resultVariable());
return gridScalarResultIndex != cvf::UNDEFINED_SIZE_T;
}
return false;
@ -255,7 +253,8 @@ bool RimResultDefinition::hasDynamicResult() const
if (this->currentGridCellResults() && this->currentGridCellResults()->cellResults())
{
const RigCaseCellResultsData* gridCellResults = this->currentGridCellResults()->cellResults();
if (gridCellResults->timeStepCount(m_gridScalarResultIndex) > 1 )
size_t gridScalarResultIndex = this->gridScalarIndex();
if (gridCellResults->timeStepCount(gridScalarResultIndex) > 1 )
{
return true;
}

View File

@ -74,7 +74,7 @@ protected:
caf::PdmField<QString> m_resultVariableUiField;
mutable size_t m_gridScalarResultIndex;
//mutable size_t m_gridScalarResultIndex;
caf::PdmPointer<RimReservoirView> m_reservoirView;

View File

@ -650,6 +650,15 @@ void RimStatisticsCase::clearComputedStatistics()
reservoirData()->results(RifReaderInterface::MATRIX_RESULTS)->clearAllResults();
reservoirData()->results(RifReaderInterface::FRACTURE_RESULTS)->clearAllResults();
for (size_t i = 0; i < reservoirViews().size(); i++)
{
RimReservoirView* reservoirView = reservoirViews()[i];
CVF_ASSERT(reservoirView);
reservoirView->scheduleGeometryRegen(RivReservoirViewPartMgr::ACTIVE);
reservoirView->createDisplayModelAndRedraw();
}
this->updateConnectedEditors();
}