#3043 Implement Time step filtering on import for Geomech

This commit is contained in:
Gaute Lindkvist
2018-06-11 13:47:21 +02:00
parent 62792b59c4
commit 280656ca26
23 changed files with 616 additions and 209 deletions

View File

@@ -36,3 +36,55 @@ RifGeoMechReaderInterface::~RifGeoMechReaderInterface()
{
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RifGeoMechReaderInterface::setTimeStepFilter(const std::vector<size_t>& fileTimeStepIndices)
{
m_fileTimeStepIndices.reserve(fileTimeStepIndices.size());
for (size_t stepIndex : fileTimeStepIndices)
{
m_fileTimeStepIndices.push_back(static_cast<int>(stepIndex));
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RifGeoMechReaderInterface::isTimeStepIncludedByFilter(int timeStepIndex) const
{
CVF_ASSERT(timeStepIndex >= 0);
if (m_fileTimeStepIndices.empty()) return true;
for (auto i : m_fileTimeStepIndices)
{
if (i == static_cast<size_t>(timeStepIndex))
{
return true;
}
}
return false;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
int RifGeoMechReaderInterface::timeStepIndexOnFile(int timeStepIndex) const
{
if (m_fileTimeStepIndices.empty())
{
return timeStepIndex;
}
CVF_ASSERT(timeStepIndex >= 0);
CVF_ASSERT(static_cast<size_t>(timeStepIndex) < m_fileTimeStepIndices.size());
if (static_cast<size_t>(timeStepIndex) < m_fileTimeStepIndices.size())
{
return static_cast<int>(m_fileTimeStepIndices[timeStepIndex]);
}
return timeStepIndex;
}