Refactored cell property filter collection

Using caf::PdmPointersField as container.
This commit is contained in:
Stein Dale
2015-06-18 11:23:56 +02:00
parent 0ea699484c
commit b4759ca06e
4 changed files with 28 additions and 28 deletions

View File

@@ -710,30 +710,31 @@ void RivReservoirViewPartMgr::computePropertyVisibility(cvf::UByteArray* cellVis
if (propFilterColl->hasActiveFilters())
{
std::list< caf::PdmPointer< RimCellPropertyFilter > >::const_iterator pfIt;
for (pfIt = propFilterColl->propertyFilters().begin(); pfIt != propFilterColl->propertyFilters().end(); ++pfIt)
for (size_t i = 0; i < propFilterColl->propertyFilters().size(); i++)
{
if ((*pfIt)->isActive()&& (*pfIt)->resultDefinition->hasResult())
{
const double lowerBound = (*pfIt)->lowerBound();
const double upperBound = (*pfIt)->upperBound();
RimCellPropertyFilter* propertyFilter = propFilterColl->propertyFilters()[i];
size_t scalarResultIndex = (*pfIt)->resultDefinition->scalarResultIndex();
if (propertyFilter->isActive()&& propertyFilter->resultDefinition->hasResult())
{
const double lowerBound = propertyFilter->lowerBound();
const double upperBound = propertyFilter->upperBound();
size_t scalarResultIndex = propertyFilter->resultDefinition->scalarResultIndex();
size_t adjustedTimeStepIndex = timeStepIndex;
// Set time step to zero for static results
if ((*pfIt)->resultDefinition()->hasStaticResult())
if (propertyFilter->resultDefinition()->hasStaticResult())
{
adjustedTimeStepIndex = 0;
}
const RimCellFilter::FilterModeType filterType = (*pfIt)->filterMode();
const RimCellFilter::FilterModeType filterType = propertyFilter->filterMode();
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel((*pfIt)->resultDefinition()->porosityModel());
RifReaderInterface::PorosityModelResultType porosityModel = RigCaseCellResultsData::convertFromProjectModelPorosityModel(propertyFilter->resultDefinition()->porosityModel());
RigCaseData* eclipseCase = propFilterColl->reservoirView()->eclipseCase()->reservoirData();
cvf::ref<RigResultAccessor> resultAccessor = RigResultAccessorFactory::createResultAccessor(eclipseCase, grid->gridIndex(), porosityModel, adjustedTimeStepIndex, (*pfIt)->resultDefinition->resultVariable(), (*pfIt)->resultDefinition->resultType());
cvf::ref<RigResultAccessor> resultAccessor = RigResultAccessorFactory::createResultAccessor(eclipseCase, grid->gridIndex(), porosityModel, adjustedTimeStepIndex, propertyFilter->resultDefinition->resultVariable(), propertyFilter->resultDefinition->resultType());
CVF_ASSERT(resultAccessor.notNull());
//#pragma omp parallel for schedule(dynamic)

View File

@@ -55,10 +55,9 @@ void RimCellPropertyFilterCollection::setReservoirView(RimEclipseView* reservoir
{
m_reservoirView = reservoirView;
std::list< caf::PdmPointer< RimCellPropertyFilter > >::iterator it;
for (it = propertyFilters.v().begin(); it != propertyFilters.v().end(); ++it)
for (size_t i = 0; i < propertyFilters.size(); i++)
{
RimCellPropertyFilter* propertyFilter = *it;
RimCellPropertyFilter* propertyFilter = propertyFilters[i];
propertyFilter->resultDefinition->setReservoirView(m_reservoirView.p());
}
@@ -93,7 +92,7 @@ RimCellPropertyFilter* RimCellPropertyFilterCollection::createAndAppendPropertyF
propertyFilter->resultDefinition->setReservoirView(m_reservoirView.p());
propertyFilter->setParentContainer(this);
propertyFilters.v().push_back(propertyFilter);
propertyFilters.push_back(propertyFilter);
propertyFilter->resultDefinition->setResultVariable(m_reservoirView->cellResult->resultVariable());
propertyFilter->resultDefinition->setPorosityModel(m_reservoirView->cellResult->porosityModel());
@@ -113,10 +112,9 @@ RimCellPropertyFilter* RimCellPropertyFilterCollection::createAndAppendPropertyF
//--------------------------------------------------------------------------------------------------
void RimCellPropertyFilterCollection::loadAndInitializePropertyFilters()
{
std::list< caf::PdmPointer< RimCellPropertyFilter > >::iterator it;
for (it = propertyFilters.v().begin(); it != propertyFilters.v().end(); ++it)
for (size_t i = 0; i < propertyFilters.size(); i++)
{
RimCellPropertyFilter* propertyFilter = *it;
RimCellPropertyFilter* propertyFilter = propertyFilters[i];
propertyFilter->setParentContainer(this);
@@ -142,7 +140,7 @@ void RimCellPropertyFilterCollection::initAfterRead()
//--------------------------------------------------------------------------------------------------
void RimCellPropertyFilterCollection::remove(RimCellPropertyFilter* propertyFilter)
{
propertyFilters.v().remove(propertyFilter);
propertyFilters.removeChildObject(propertyFilter);
}
//--------------------------------------------------------------------------------------------------
@@ -152,10 +150,10 @@ bool RimCellPropertyFilterCollection::hasActiveFilters() const
{
if (!active) return false;
std::list< caf::PdmPointer< RimCellPropertyFilter > >::const_iterator it;
for (it = propertyFilters.v().begin(); it != propertyFilters.v().end(); ++it)
for (size_t i = 0; i < propertyFilters.size(); i++)
{
if ((*it)->isActive() && (*it)->resultDefinition->hasResult()) return true;
RimCellPropertyFilter* propertyFilter = propertyFilters[i];
if (propertyFilter->isActive() && propertyFilter->resultDefinition->hasResult()) return true;
}
return false;
@@ -168,10 +166,10 @@ bool RimCellPropertyFilterCollection::hasActiveDynamicFilters() const
{
if (!active) return false;
std::list< caf::PdmPointer< RimCellPropertyFilter > >::const_iterator it;
for (it = propertyFilters.v().begin(); it != propertyFilters.v().end(); ++it)
for (size_t i = 0; i < propertyFilters.size(); i++)
{
if ((*it)->isActive() && (*it)->resultDefinition->hasDynamicResult()) return true;
RimCellPropertyFilter* propertyFilter = propertyFilters[i];
if (propertyFilter->isActive() && propertyFilter->resultDefinition->hasDynamicResult()) return true;
}
return false;

View File

@@ -34,7 +34,7 @@ public:
// Fields:
caf::PdmField<bool> active;
caf::PdmField< std::list< caf::PdmPointer< RimCellPropertyFilter > > > propertyFilters;
caf::PdmPointersField<RimCellPropertyFilter*> propertyFilters;
// Methods
RimCellPropertyFilter* createAndAppendPropertyFilter();

View File

@@ -176,9 +176,10 @@ void RimEclipseCase::removeResult(const QString& resultName)
std::list< caf::PdmPointer< RimCellPropertyFilter > >::iterator it;
RimCellPropertyFilterCollection* propFilterCollection = reservoirView->propertyFilterCollection();
for (it = propFilterCollection->propertyFilters.v().begin(); it != propFilterCollection->propertyFilters.v().end(); ++it)
for (size_t filter = 0; filter < propFilterCollection->propertyFilters().size(); filter++)
{
RimCellPropertyFilter* propertyFilter = *it;
RimCellPropertyFilter* propertyFilter = propFilterCollection->propertyFilters()[filter];
if (propertyFilter->resultDefinition->resultVariable() == resultName)
{
propertyFilter->resultDefinition->setResultVariable(RimDefines::undefinedResultName());