diff --git a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp index 7730f3e935..9139e5b580 100644 --- a/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp +++ b/ApplicationCode/ProjectDataModel/GridCrossPlots/CellFilters/RimPlotCellPropertyFilter.cpp @@ -30,6 +30,8 @@ #include "cafPdmUiDoubleSliderEditor.h" +#include + CAF_PDM_SOURCE_INIT( RimPlotCellPropertyFilter, "RimPlotCellPropertyFilter" ); //-------------------------------------------------------------------------------------------------- @@ -142,10 +144,12 @@ void RimPlotCellPropertyFilter::updateCellVisibilityFromFilter( size_t timeStepI RigCaseCellResultsData* cellResultsData = resDef->currentGridCellResults(); if ( !cellResultsData ) return; - if ( !resDef->currentGridCellResults()->hasResultEntry( resDef->eclipseResultAddress() ) ) return; + RigEclipseResultAddress rigEclipseAddress = resDef->eclipseResultAddress(); - const std::vector& cellResultValues = - cellResultsData->cellScalarResults( resDef->eclipseResultAddress(), timeStepIndex ); + if ( !resDef->currentGridCellResults()->hasResultEntry( rigEclipseAddress ) ) return; + + size_t clampedIndex = std::min( timeStepIndex, cellResultsData->timeStepCount( rigEclipseAddress ) - 1 ); + const std::vector& cellResultValues = cellResultsData->cellScalarResults( rigEclipseAddress, clampedIndex ); if ( cellResultValues.empty() ) return; const RigActiveCellInfo* actCellInfo = cellResultsData->activeCellInfo(); @@ -162,12 +166,12 @@ void RimPlotCellPropertyFilter::updateCellVisibilityFromFilter( size_t timeStepI return; } - bool isUsingGlobalActiveIndex = cellResultsData->isUsingGlobalActiveIndex( resDef->eclipseResultAddress() ); - double lowerBound = m_lowerBound; - double upperBound = m_upperBound; - size_t cellResultIndex = 0; - double scalarValue = 0.0; - FilterModeType currentFilterMode = filterMode(); + bool isUsingGlobalActiveIndex = cellResultsData->isUsingGlobalActiveIndex( rigEclipseAddress ); + double lowerBound = m_lowerBound; + double upperBound = m_upperBound; + size_t cellResultIndex = 0; + double scalarValue = 0.0; + FilterModeType currentFilterMode = filterMode(); for ( size_t reservoirCellIndex = 0; reservoirCellIndex < totalReservoirCellCount; ++reservoirCellIndex ) {