#314 Connected the Property filter code together.

Now working !
This commit is contained in:
Jacob Støren 2015-06-22 21:57:52 +02:00
parent 6191422103
commit 515fb8b8d7
3 changed files with 19 additions and 21 deletions

View File

@ -23,6 +23,15 @@
#include "RigFemPartGrid.h" #include "RigFemPartGrid.h"
#include "cvfStructGrid.h" #include "cvfStructGrid.h"
#include "cvfStructGridGeometryGenerator.h" #include "cvfStructGridGeometryGenerator.h"
#include "RimGeoMechPropertyFilterCollection.h"
#include "RimCellPropertyFilter.h"
#include "RimGeoMechPropertyFilter.h"
#include "RimGeoMechResultDefinition.h"
#include "RimGeoMechView.h"
#include "RimGeoMechCase.h"
#include "RigGeomechCaseData.h"
#include "RigFemPartResultsCollection.h"
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -80,7 +89,7 @@ void RivFemElmVisibilityCalculator::computePropertyVisibility(cvf::UByteArray* c
const cvf::UByteArray* rangeFilterVisibility, const cvf::UByteArray* rangeFilterVisibility,
RimGeoMechPropertyFilterCollection* propFilterColl) RimGeoMechPropertyFilterCollection* propFilterColl)
{ {
#if 0 #if 1
CVF_ASSERT(cellVisibility != NULL); CVF_ASSERT(cellVisibility != NULL);
CVF_ASSERT(rangeFilterVisibility != NULL); CVF_ASSERT(rangeFilterVisibility != NULL);
CVF_ASSERT(propFilterColl != NULL); CVF_ASSERT(propFilterColl != NULL);
@ -96,28 +105,24 @@ void RivFemElmVisibilityCalculator::computePropertyVisibility(cvf::UByteArray* c
{ {
for (size_t i = 0; i < propFilterColl->propertyFilters().size(); i++) for (size_t i = 0; i < propFilterColl->propertyFilters().size(); i++)
{ {
RimCellPropertyFilter* propertyFilter = propFilterColl->propertyFilters()[i]; RimGeoMechPropertyFilter* propertyFilter = propFilterColl->propertyFilters()[i];
if (propertyFilter->isActive() && propertyFilter->resultDefinition->hasResult()) if (propertyFilter->isActive() && propertyFilter->resultDefinition->hasResult())
{ {
const double lowerBound = propertyFilter->lowerBound(); const double lowerBound = propertyFilter->lowerBound();
const double upperBound = propertyFilter->upperBound(); const double upperBound = propertyFilter->upperBound();
RigFemResultAddress resVarAddress = propertyFilter->resultDefinition->resulAddress(); RigFemResultAddress resVarAddress = propertyFilter->resultDefinition->resultAddress();
size_t adjustedTimeStepIndex = timeStepIndex; size_t adjustedTimeStepIndex = timeStepIndex;
// Set time step to zero for static results
if (propertyFilter->resultDefinition()->hasStaticResult())
{
adjustedTimeStepIndex = 0;
}
const RimCellFilter::FilterModeType filterType = propertyFilter->filterMode(); const RimCellFilter::FilterModeType filterType = propertyFilter->filterMode();
RigGeoMechCaseData* caseData = propFilterColl->reservoirView()->geoMechCase()->geoMechCaseData(); RigGeoMechCaseData* caseData = propFilterColl->reservoirView()->geoMechCase()->geoMechData();
const std::vector<float>& resVals = caseData->femPartResults()->resultValues(resVarAddress, grid->elementPartId(), timeStepIndex); const std::vector<float>& resVals = caseData->femPartResults()->resultValues(resVarAddress,
grid->elementPartId(),
timeStepIndex);
//#pragma omp parallel for schedule(dynamic) //#pragma omp parallel for schedule(dynamic)
for (int cellIndex = 0; cellIndex < elementCount; cellIndex++) for (int cellIndex = 0; cellIndex < elementCount; cellIndex++)
{ {

View File

@ -33,6 +33,7 @@
#include "RivCellSetEnum.h" #include "RivCellSetEnum.h"
#include "RivFemElmVisibilityCalculator.h" #include "RivFemElmVisibilityCalculator.h"
#include "RigFemPartResultsCollection.h" #include "RigFemPartResultsCollection.h"
#include "RimGeoMechPropertyFilterCollection.h"
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
@ -124,7 +125,7 @@ std::vector<RivGeoMechPartMgrCache::Key> RivGeoMechVizLogic::keysToVisiblePartMg
{ {
std::vector<RivGeoMechPartMgrCache::Key> visiblePartMgrs; std::vector<RivGeoMechPartMgrCache::Key> visiblePartMgrs;
if (false)//m_geomechView->propertyFilterCollection()->hasActiveFilters()) if (timeStepIndex >= 0 && m_geomechView->propertyFilterCollection()->hasActiveFilters())
{ {
visiblePartMgrs.push_back(RivGeoMechPartMgrCache::Key(PROPERTY_FILTERED, timeStepIndex)); visiblePartMgrs.push_back(RivGeoMechPartMgrCache::Key(PROPERTY_FILTERED, timeStepIndex));
} }
@ -181,8 +182,7 @@ RivGeoMechPartMgr* RivGeoMechVizLogic::getUpdatedPartMgr(RivGeoMechPartMgrCache:
caseData->femParts()->part(femPartIdx), caseData->femParts()->part(femPartIdx),
pMgrKey.frameIndex(), pMgrKey.frameIndex(),
rangeFiltVisibility.p(), rangeFiltVisibility.p(),
NULL m_geomechView->propertyFilterCollection()
//m_geomechView->propertyFilterCollection()
); );
} }
else else

View File

@ -21,13 +21,6 @@
#include "RimCellFilter.h" #include "RimCellFilter.h"
/*class RimEclipseView;
class RimCellPropertyFilterCollection;
class RimResultDefinition;
class RigGridBase;
class RigCaseCellResultsData;
*/
class RimGeoMechResultDefinition; class RimGeoMechResultDefinition;
class RimGeoMechPropertyFilterCollection; class RimGeoMechPropertyFilterCollection;