mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Create only one label per fault
Use a separate code path for fault labels to avoid multiple labels on different sub parts of a fault
This commit is contained in:
parent
ae4175dd15
commit
bc4ef17409
@ -122,12 +122,6 @@ void RivReservoirFaultsPartMgr::appendPartsToModel(cvf::ModelBasicList* model)
|
||||
|
||||
if (rimFault->showFault() && m_faultCollection->showFaultCollection())
|
||||
{
|
||||
if (m_faultCollection->showFaultLabel() )
|
||||
{
|
||||
rivFaultPart->appendLabelPartsToModel(&parts);
|
||||
}
|
||||
|
||||
|
||||
if (m_faultCollection->showNNCs())
|
||||
{
|
||||
rivFaultPart->appendNNCFacesToModel(&parts);
|
||||
@ -182,3 +176,44 @@ void RivReservoirFaultsPartMgr::updateCellEdgeResultColor(size_t timeStepIndex,
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirFaultsPartMgr::appendLabelPartsToModel(cvf::ModelBasicList* model)
|
||||
{
|
||||
CVF_ASSERT(model != NULL);
|
||||
|
||||
if (!m_faultCollection) return;
|
||||
|
||||
bool isShowingGrid = m_faultCollection->isGridVisualizationMode();
|
||||
if (!m_faultCollection->showFaultCollection() && !isShowingGrid) return;
|
||||
|
||||
if (!m_faultCollection->showFaultLabel() ) return;
|
||||
|
||||
// Check match between model fault count and fault parts
|
||||
CVF_ASSERT(m_faultCollection->faults.size() == m_faultParts.size());
|
||||
|
||||
cvf::ModelBasicList parts;
|
||||
|
||||
for (size_t i = 0; i < m_faultCollection->faults.size(); i++)
|
||||
{
|
||||
const RimFault* rimFault = m_faultCollection->faults[i];
|
||||
|
||||
cvf::ref<RivFaultPartMgr> rivFaultPart = m_faultParts[i];
|
||||
CVF_ASSERT(rivFaultPart.notNull());
|
||||
|
||||
if (rimFault->showFault())
|
||||
{
|
||||
rivFaultPart->appendLabelPartsToModel(&parts);
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < parts.partCount(); i++)
|
||||
{
|
||||
cvf::Part* part = parts.part(i);
|
||||
part->setTransform(m_scaleTransform.p());
|
||||
|
||||
model->addPart(part);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,8 @@ public:
|
||||
|
||||
void appendPartsToModel(cvf::ModelBasicList* model);
|
||||
|
||||
void appendLabelPartsToModel(cvf::ModelBasicList* model);
|
||||
|
||||
|
||||
private:
|
||||
cvf::ref<cvf::Transform> m_scaleTransform;
|
||||
|
@ -171,3 +171,14 @@ void RivReservoirPartMgr::appendFaultPartsToModel(cvf::ModelBasicList* model)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirPartMgr::appendFaultLabelPartsToModel(cvf::ModelBasicList* model)
|
||||
{
|
||||
if (m_faultsPartMgr.notNull())
|
||||
{
|
||||
m_faultsPartMgr->appendLabelPartsToModel(model);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,6 +64,7 @@ public:
|
||||
// Faults
|
||||
void updateFaultCellResultColor(size_t timeStepIndex, RimResultSlot* cellResultSlot);
|
||||
void appendFaultPartsToModel(cvf::ModelBasicList* model);
|
||||
void appendFaultLabelPartsToModel(cvf::ModelBasicList* model);
|
||||
private:
|
||||
|
||||
cvf::Collection<RivGridPartMgr> m_allGrids; // Main grid and all LGR's
|
||||
|
@ -854,3 +854,51 @@ void RivReservoirViewPartMgr::appendFaultsDynamicGeometryPartsToModel(cvf::Model
|
||||
m_propFilteredWellGeometryFrames[frameIndex]->appendFaultPartsToModel(model);
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
RivReservoirViewPartMgr::ReservoirGeometryCacheType RivReservoirViewPartMgr::geometryTypeForFaultLabels(const std::vector<ReservoirGeometryCacheType>& geometryTypes) const
|
||||
{
|
||||
bool hasInactive = false;
|
||||
for (size_t i = 0; i < geometryTypes.size(); i++)
|
||||
{
|
||||
if (geometryTypes[i] == PROPERTY_FILTERED)
|
||||
{
|
||||
return PROPERTY_FILTERED;
|
||||
}
|
||||
|
||||
if (geometryTypes[i] == RANGE_FILTERED)
|
||||
{
|
||||
return RANGE_FILTERED;
|
||||
}
|
||||
|
||||
if (geometryTypes[i] == INACTIVE)
|
||||
{
|
||||
hasInactive = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (hasInactive)
|
||||
{
|
||||
return INACTIVE;
|
||||
}
|
||||
|
||||
return ACTIVE;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirViewPartMgr::appendFaultLabelsStaticGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType)
|
||||
{
|
||||
m_geometries[geometryType].appendFaultLabelPartsToModel(model);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RivReservoirViewPartMgr::appendFaultLabelsDynamicGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType, size_t frameIndex)
|
||||
{
|
||||
m_propFilteredGeometryFrames[frameIndex]->appendFaultLabelPartsToModel(model);
|
||||
}
|
||||
|
@ -73,6 +73,12 @@ public:
|
||||
void appendFaultsDynamicGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType, size_t frameIndex);
|
||||
void updateFaultsCellResultColor(ReservoirGeometryCacheType geometryType, size_t timeStepIndex, RimResultSlot* cellResultSlot);
|
||||
|
||||
// Fault labels
|
||||
ReservoirGeometryCacheType geometryTypeForFaultLabels(const std::vector<ReservoirGeometryCacheType>& geometryTypes) const;
|
||||
void appendFaultLabelsStaticGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType);
|
||||
void appendFaultLabelsDynamicGeometryPartsToModel(cvf::ModelBasicList* model, ReservoirGeometryCacheType geometryType, size_t frameIndex);
|
||||
|
||||
|
||||
private:
|
||||
void createGeometry(ReservoirGeometryCacheType geometryType);
|
||||
void computeVisibility(cvf::UByteArray* cellVisibility, ReservoirGeometryCacheType geometryType, RigGridBase* grid, size_t gridIdx);
|
||||
|
@ -642,6 +642,8 @@ void RimReservoirView::createDisplayModel()
|
||||
}
|
||||
}
|
||||
|
||||
RivReservoirViewPartMgr::ReservoirGeometryCacheType faultLabelType = m_reservoirGridPartManager->geometryTypeForFaultLabels(faultGeometryTypesToAdd);
|
||||
|
||||
size_t frameIdx;
|
||||
for (frameIdx = 0; frameIdx < frameModels.size(); ++frameIdx)
|
||||
{
|
||||
@ -649,6 +651,8 @@ void RimReservoirView::createDisplayModel()
|
||||
{
|
||||
m_reservoirGridPartManager->appendFaultsStaticGeometryPartsToModel(frameModels[frameIdx].p(), faultGeometryTypesToAdd[gtIdx]);
|
||||
}
|
||||
|
||||
m_reservoirGridPartManager->appendFaultLabelsStaticGeometryPartsToModel(frameModels[frameIdx].p(), faultLabelType);
|
||||
}
|
||||
}
|
||||
|
||||
@ -726,6 +730,7 @@ void RimReservoirView::updateCurrentTimeStep()
|
||||
if (faultCollection()->limitFaultsToFilter)
|
||||
{
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user