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:
Magne Sjaastad
2013-12-18 12:18:15 +01:00
parent ae4175dd15
commit bc4ef17409
7 changed files with 114 additions and 6 deletions

View File

@@ -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);
}
}