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()) if (propFilterColl->hasActiveFilters())
{ {
std::list< caf::PdmPointer< RimCellPropertyFilter > >::const_iterator pfIt; for (size_t i = 0; i < propFilterColl->propertyFilters().size(); i++)
for (pfIt = propFilterColl->propertyFilters().begin(); pfIt != propFilterColl->propertyFilters().end(); ++pfIt)
{ {
if ((*pfIt)->isActive()&& (*pfIt)->resultDefinition->hasResult()) RimCellPropertyFilter* propertyFilter = propFilterColl->propertyFilters()[i];
{
const double lowerBound = (*pfIt)->lowerBound();
const double upperBound = (*pfIt)->upperBound();
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; size_t adjustedTimeStepIndex = timeStepIndex;
// Set time step to zero for static results // Set time step to zero for static results
if ((*pfIt)->resultDefinition()->hasStaticResult()) if (propertyFilter->resultDefinition()->hasStaticResult())
{ {
adjustedTimeStepIndex = 0; 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(); 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()); CVF_ASSERT(resultAccessor.notNull());
//#pragma omp parallel for schedule(dynamic) //#pragma omp parallel for schedule(dynamic)

View File

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

View File

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

View File

@@ -176,9 +176,10 @@ void RimEclipseCase::removeResult(const QString& resultName)
std::list< caf::PdmPointer< RimCellPropertyFilter > >::iterator it; std::list< caf::PdmPointer< RimCellPropertyFilter > >::iterator it;
RimCellPropertyFilterCollection* propFilterCollection = reservoirView->propertyFilterCollection(); 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) if (propertyFilter->resultDefinition->resultVariable() == resultName)
{ {
propertyFilter->resultDefinition->setResultVariable(RimDefines::undefinedResultName()); propertyFilter->resultDefinition->setResultVariable(RimDefines::undefinedResultName());