mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Faults: Show faults when filters are active
This commit is contained in:
parent
d393368df4
commit
c569b9fac1
@ -44,6 +44,8 @@ RivReservoirFaultsPartMgr::RivReservoirFaultsPartMgr(const RigMainGrid* grid, c
|
||||
m_faultParts.push_back(new RivFaultPartMgr(grid, faultCollection, faultCollection->faults[i]));
|
||||
}
|
||||
}
|
||||
|
||||
m_isFilterPart = false;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@ -100,19 +102,25 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
|
||||
|
||||
// Parts that is overridden by the grid settings
|
||||
|
||||
if (rimFault->showFault() || isShowingGrid)
|
||||
bool forceDisplayOfFault = false;
|
||||
if (isShowingGrid && m_isFilterPart)
|
||||
{
|
||||
if (m_faultCollection->showFaultFaces() || isShowingGrid)
|
||||
forceDisplayOfFault = true;
|
||||
}
|
||||
|
||||
if (rimFault->showFault() || forceDisplayOfFault)
|
||||
{
|
||||
if (m_faultCollection->showFaultFaces() || forceDisplayOfFault)
|
||||
{
|
||||
rivFaultPart->appendNativeFaultFacesToModel(&parts);
|
||||
}
|
||||
|
||||
if (m_faultCollection->showOppositeFaultFaces() || isShowingGrid)
|
||||
if (m_faultCollection->showOppositeFaultFaces() || forceDisplayOfFault)
|
||||
{
|
||||
rivFaultPart->appendOppositeFaultFacesToModel(&parts);
|
||||
}
|
||||
|
||||
if (m_faultCollection->showFaultFaces() || m_faultCollection->showOppositeFaultFaces() || m_faultCollection->showNNCs() || isShowingGrid)
|
||||
if (m_faultCollection->showFaultFaces() || m_faultCollection->showOppositeFaultFaces() || m_faultCollection->showNNCs() || forceDisplayOfFault)
|
||||
{
|
||||
rivFaultPart->appendMeshLinePartsToModel(&parts);
|
||||
}
|
||||
@ -218,3 +226,11 @@ void RivReservoirFaultsPartMgr::appendLabelPartsToModel(cvf::ModelBasicList* mod
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirFaultsPartMgr::setFilterPart(bool filterPart)
|
||||
{
|
||||
m_isFilterPart = filterPart;
|
||||
}
|
||||
|
||||
|
@ -44,6 +44,7 @@ public:
|
||||
|
||||
void setTransform(cvf::Transform* scaleTransform);
|
||||
void setCellVisibility(cvf::UByteArray* cellVisibilities);
|
||||
void setFilterPart(bool filterPart);
|
||||
|
||||
void applySingleColorEffect();
|
||||
void updateCellResultColor(size_t timeStepIndex, RimResultSlot* cellResultSlot);
|
||||
@ -59,4 +60,6 @@ private:
|
||||
cvf::ref<cvf::Transform> m_scaleTransform;
|
||||
const RimFaultCollection* m_faultCollection;
|
||||
cvf::Collection<RivFaultPartMgr> m_faultParts;
|
||||
|
||||
bool m_isFilterPart;
|
||||
};
|
||||
|
@ -182,3 +182,14 @@ void RivReservoirPartMgr::appendFaultLabelPartsToModel(cvf::ModelBasicList* mode
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirPartMgr::setFilterPart(bool filterPart)
|
||||
{
|
||||
if (m_faultsPartMgr.notNull())
|
||||
{
|
||||
m_faultsPartMgr->setFilterPart(filterPart);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -48,6 +48,7 @@ public:
|
||||
void clearAndSetReservoir(const RigCaseData* eclipseCase, const RimFaultCollection* faultCollection);
|
||||
void setTransform(cvf::Transform* scaleTransform);
|
||||
void setCellVisibility(size_t gridIndex, cvf::UByteArray* cellVisibilities );
|
||||
void setFilterPart(bool filterPart);
|
||||
|
||||
//size_t gridCount() { return m_allGrids.size(); }
|
||||
cvf::ref<cvf::UByteArray>
|
||||
|
@ -240,6 +240,8 @@ void RivReservoirViewPartMgr::createGeometry(ReservoirGeometryCacheType geometry
|
||||
RigCaseData* res = m_reservoirView->eclipseCase()->reservoirData();
|
||||
m_geometries[geometryType].clearAndSetReservoir(res, m_reservoirView->faultCollection());
|
||||
m_geometries[geometryType].setTransform(m_scaleTransform.p());
|
||||
setFilterPartFromGeometryType(&m_geometries[geometryType], geometryType);
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
res->allGrids(&grids);
|
||||
|
||||
@ -395,6 +397,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredNoneWellCellGeometry(size_t
|
||||
|
||||
m_propFilteredGeometryFrames[frameIndex]->clearAndSetReservoir(res, m_reservoirView->faultCollection());
|
||||
m_propFilteredGeometryFrames[frameIndex]->setTransform(m_scaleTransform.p());
|
||||
setFilterPartFromGeometryType(m_propFilteredGeometryFrames[frameIndex].p(), PROPERTY_FILTERED);
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
res->allGrids(&grids);
|
||||
@ -472,6 +475,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredWellGeometry(size_t frameInd
|
||||
|
||||
m_propFilteredWellGeometryFrames[frameIndex]->clearAndSetReservoir(res, m_reservoirView->faultCollection());
|
||||
m_propFilteredWellGeometryFrames[frameIndex]->setTransform(m_scaleTransform.p());
|
||||
setFilterPartFromGeometryType(m_propFilteredWellGeometryFrames[frameIndex].p(), PROPERTY_FILTERED_WELL_CELLS);
|
||||
|
||||
std::vector<RigGridBase*> grids;
|
||||
res->allGrids(&grids);
|
||||
@ -902,3 +906,41 @@ void RivReservoirViewPartMgr::appendFaultLabelsDynamicGeometryPartsToModel(cvf::
|
||||
{
|
||||
m_propFilteredGeometryFrames[frameIndex]->appendFaultLabelPartsToModel(model);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirViewPartMgr::setFilterPartFromGeometryType(RivReservoirPartMgr* reservoirPartManager, ReservoirGeometryCacheType cacheType)
|
||||
{
|
||||
if (cacheType == RANGE_FILTERED ||
|
||||
cacheType == RANGE_FILTERED_INACTIVE ||
|
||||
cacheType == RANGE_FILTERED_WELL_CELLS ||
|
||||
cacheType == PROPERTY_FILTERED ||
|
||||
cacheType == PROPERTY_FILTERED_WELL_CELLS)
|
||||
{
|
||||
reservoirPartManager->setFilterPart(true);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> RivReservoirViewPartMgr::allDefaultVisibleFaultTypes()
|
||||
{
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> types;
|
||||
|
||||
types.push_back(ACTIVE);
|
||||
types.push_back(ALL_WELL_CELLS);
|
||||
types.push_back(VISIBLE_WELL_CELLS);
|
||||
types.push_back(VISIBLE_WELL_FENCE_CELLS);
|
||||
//types.push_back(INACTIVE);
|
||||
types.push_back(RANGE_FILTERED);
|
||||
//types.push_back(RANGE_FILTERED_INACTIVE);
|
||||
types.push_back(RANGE_FILTERED_WELL_CELLS);
|
||||
types.push_back(VISIBLE_WELL_CELLS_OUTSIDE_RANGE_FILTER);
|
||||
types.push_back(VISIBLE_WELL_FENCE_CELLS_OUTSIDE_RANGE_FILTER);
|
||||
// types.push_back(PROPERTY_FILTERED);
|
||||
// types.push_back(PROPERTY_FILTERED_WELL_CELLS);
|
||||
|
||||
return types;
|
||||
}
|
||||
|
@ -78,6 +78,7 @@ public:
|
||||
void appendFaultLabelsStaticGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType);
|
||||
void appendFaultLabelsDynamicGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType, size_t frameIndex);
|
||||
|
||||
static std::vector<ReservoirGeometryCacheType> allDefaultVisibleFaultTypes();
|
||||
|
||||
private:
|
||||
void createGeometry(ReservoirGeometryCacheType geometryType);
|
||||
@ -96,6 +97,9 @@ private:
|
||||
|
||||
RivReservoirPartMgr * reservoirPartManager(ReservoirGeometryCacheType geometryType, size_t timeStepIndex );
|
||||
|
||||
void setFilterPartFromGeometryType(RivReservoirPartMgr* reservoirPartManager, ReservoirGeometryCacheType cacheType);
|
||||
|
||||
|
||||
private:
|
||||
caf::FixedArray<RivReservoirPartMgr, PROPERTY_FILTERED> m_geometries;
|
||||
caf::FixedArray<bool, PROPERTY_FILTERED> m_geometriesNeedsRegen;
|
||||
|
@ -574,7 +574,7 @@ void RimReservoirView::createDisplayModel()
|
||||
// For property filtered geometry : just set all the models as empty scenes
|
||||
// updateCurrentTimeStep requests the actual parts
|
||||
|
||||
if (! this->propertyFilterCollection()->hasActiveFilters())
|
||||
if (!this->propertyFilterCollection()->hasActiveFilters())
|
||||
{
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> geometryTypesToAdd;
|
||||
|
||||
@ -629,18 +629,36 @@ void RimReservoirView::createDisplayModel()
|
||||
m_visibleGridParts = geometryTypesToAdd;
|
||||
}
|
||||
|
||||
if (!this->propertyFilterCollection()->hasActiveFilters() ||
|
||||
faultCollection()->showFaultsOutsideFilters)
|
||||
if (!this->propertyFilterCollection()->hasActiveFilters() || faultCollection()->showFaultsOutsideFilters)
|
||||
{
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> faultGeometryTypesToAdd;
|
||||
if (!faultCollection()->showFaultsOutsideFilters)
|
||||
{
|
||||
faultGeometryTypesToAdd = m_visibleGridParts;
|
||||
if (this->rangeFilterCollection()->hasActiveFilters())
|
||||
{
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::RANGE_FILTERED);
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::RANGE_FILTERED_WELL_CELLS);
|
||||
|
||||
if (this->showInactiveCells())
|
||||
{
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::RANGE_FILTERED_INACTIVE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
faultGeometryTypesToAdd = RivReservoirViewPartMgr::allDefaultVisibleFaultTypes();
|
||||
|
||||
if (this->showInactiveCells())
|
||||
{
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::INACTIVE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::ALL_WELL_CELLS); // Should be all well cells
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::ACTIVE);
|
||||
faultGeometryTypesToAdd = RivReservoirViewPartMgr::allDefaultVisibleFaultTypes();
|
||||
|
||||
if (this->showInactiveCells())
|
||||
{
|
||||
@ -722,7 +740,6 @@ void RimReservoirView::createDisplayModel()
|
||||
void RimReservoirView::updateCurrentTimeStep()
|
||||
{
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> geometriesToRecolor;
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> faultGeometriesToRecolor;
|
||||
|
||||
if (this->propertyFilterCollection()->hasActiveFilters())
|
||||
{
|
||||
@ -733,16 +750,30 @@ void RimReservoirView::updateCurrentTimeStep()
|
||||
|
||||
geometriesToRecolor.push_back( RivReservoirViewPartMgr::PROPERTY_FILTERED);
|
||||
m_reservoirGridPartManager->appendDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED, m_currentTimeStep, gridIndices);
|
||||
if (!faultCollection()->showFaultsOutsideFilters)
|
||||
{
|
||||
m_reservoirGridPartManager->appendFaultsDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED, m_currentTimeStep);
|
||||
m_reservoirGridPartManager->appendFaultLabelsDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED, m_currentTimeStep);
|
||||
}
|
||||
|
||||
geometriesToRecolor.push_back( RivReservoirViewPartMgr::PROPERTY_FILTERED_WELL_CELLS);
|
||||
m_reservoirGridPartManager->appendDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED_WELL_CELLS, m_currentTimeStep, gridIndices);
|
||||
if (!faultCollection()->showFaultsOutsideFilters)
|
||||
|
||||
if (faultCollection()->showFaultsOutsideFilters)
|
||||
{
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> faultGeometryTypesToAdd = RivReservoirViewPartMgr::allDefaultVisibleFaultTypes();
|
||||
|
||||
if (this->showInactiveCells())
|
||||
{
|
||||
faultGeometryTypesToAdd.push_back(RivReservoirViewPartMgr::INACTIVE);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < faultGeometryTypesToAdd.size(); i++)
|
||||
{
|
||||
m_reservoirGridPartManager->appendFaultsStaticGeometryPartsToModel(frameParts.p(), faultGeometryTypesToAdd[i]);
|
||||
m_reservoirGridPartManager->appendFaultLabelsStaticGeometryPartsToModel(frameParts.p(), faultGeometryTypesToAdd[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_reservoirGridPartManager->appendFaultsDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED, m_currentTimeStep);
|
||||
m_reservoirGridPartManager->appendFaultLabelsDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED, m_currentTimeStep);
|
||||
|
||||
m_reservoirGridPartManager->appendFaultsDynamicGeometryPartsToModel(frameParts.p(), RivReservoirViewPartMgr::PROPERTY_FILTERED_WELL_CELLS, m_currentTimeStep);
|
||||
}
|
||||
|
||||
@ -828,14 +859,17 @@ void RimReservoirView::updateCurrentTimeStep()
|
||||
}
|
||||
}
|
||||
|
||||
if (!faultCollection()->showFaultsOutsideFilters)
|
||||
// Update all fault geometry
|
||||
std::vector<RivReservoirViewPartMgr::ReservoirGeometryCacheType> faultGeometriesToRecolor;
|
||||
|
||||
if (this->propertyFilterCollection()->hasActiveFilters() && !faultCollection()->showFaultsOutsideFilters)
|
||||
{
|
||||
faultGeometriesToRecolor = geometriesToRecolor;
|
||||
faultGeometriesToRecolor.push_back(RivReservoirViewPartMgr::PROPERTY_FILTERED);
|
||||
faultGeometriesToRecolor.push_back(RivReservoirViewPartMgr::PROPERTY_FILTERED_WELL_CELLS);
|
||||
}
|
||||
else
|
||||
{
|
||||
faultGeometriesToRecolor.push_back(RivReservoirViewPartMgr::ALL_WELL_CELLS); // Should be all well cells
|
||||
faultGeometriesToRecolor.push_back(RivReservoirViewPartMgr::ACTIVE);
|
||||
faultGeometriesToRecolor = RivReservoirViewPartMgr::allDefaultVisibleFaultTypes();
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < faultGeometriesToRecolor.size(); ++i)
|
||||
|
Loading…
Reference in New Issue
Block a user