Merge pull request #5275 from OPM/feature-allen-result-info

#5269 Cycle cell selection when clicking an NNC
This commit is contained in:
Jacob Støren 2020-01-02 14:21:19 +01:00 committed by GitHub
commit b066703529
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 156 additions and 55 deletions

View File

@ -372,17 +372,17 @@ QString RiaDefines::completionTypeResultName()
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RiaDefines::binaryAllenResultName() QString RiaDefines::formationBinaryAllenResultName()
{ {
return "Binary Allen"; return "Binary Formation Allen";
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// ///
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
QString RiaDefines::allCombinationsAllenResultName() QString RiaDefines::formationAllenResultName()
{ {
return "All Allen Categories"; return "Formation Allen";
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------

View File

@ -106,8 +106,8 @@ QString mobilePoreVolumeName();
QString completionTypeResultName(); QString completionTypeResultName();
// Fault results // Fault results
QString binaryAllenResultName(); QString formationBinaryAllenResultName();
QString allCombinationsAllenResultName(); QString formationAllenResultName();
// Mock model text identifiers // Mock model text identifiers
QString mockModelBasic(); QString mockModelBasic();

View File

@ -1391,8 +1391,8 @@ bool RimEclipseResultDefinition::hasCategoryResult() const
if ( this->m_resultType() == RiaDefines::FLOW_DIAGNOSTICS && m_resultVariable() == RIG_FLD_MAX_FRACTION_TRACER_RESNAME ) if ( this->m_resultType() == RiaDefines::FLOW_DIAGNOSTICS && m_resultVariable() == RIG_FLD_MAX_FRACTION_TRACER_RESNAME )
return true; return true;
if ( this->resultVariable() == RiaDefines::allCombinationsAllenResultName() || if ( this->resultVariable() == RiaDefines::formationAllenResultName() ||
this->resultVariable() == RiaDefines::binaryAllenResultName() ) this->resultVariable() == RiaDefines::formationBinaryAllenResultName() )
{ {
return true; return true;
} }
@ -1887,7 +1887,7 @@ void RimEclipseResultDefinition::updateRangesForExplicitLegends( RimRegularLegen
} }
else if ( this->resultType() == RiaDefines::ALLEN_DIAGRAMS ) else if ( this->resultType() == RiaDefines::ALLEN_DIAGRAMS )
{ {
if ( this->resultVariable() == RiaDefines::allCombinationsAllenResultName() ) if ( this->resultVariable() == RiaDefines::formationAllenResultName() )
{ {
const std::vector<QString>& fnVector = eclipseCaseData->activeFormationNames()->formationNames(); const std::vector<QString>& fnVector = eclipseCaseData->activeFormationNames()->formationNames();
std::vector<int> fnameIdxes; std::vector<int> fnameIdxes;
@ -1931,7 +1931,7 @@ void RimEclipseResultDefinition::updateRangesForExplicitLegends( RimRegularLegen
legendConfigToUpdate->setCategoryItems( categories ); legendConfigToUpdate->setCategoryItems( categories );
} }
else if ( this->resultVariable() == RiaDefines::binaryAllenResultName() ) else if ( this->resultVariable() == RiaDefines::formationBinaryAllenResultName() )
{ {
std::vector<std::tuple<QString, int, cvf::Color3ub>> categories; std::vector<std::tuple<QString, int, cvf::Color3ub>> categories;
categories.emplace_back( std::make_tuple( "Same formation", 0, cvf::Color3ub::BROWN ) ); categories.emplace_back( std::make_tuple( "Same formation", 0, cvf::Color3ub::BROWN ) );

View File

@ -34,6 +34,19 @@ public:
return m_formationCombinationToCategory; return m_formationCombinationToCategory;
} }
std::pair<int, int> formationIndexCombinationFromCategory( int category )
{
for ( auto it : m_formationCombinationToCategory )
{
if ( it.second == category )
{
return it.first;
}
}
return std::make_pair( -1, -1 );
}
void setFormationCombinationToCategorymap( const std::map<std::pair<int, int>, int>& mapping ) void setFormationCombinationToCategorymap( const std::map<std::pair<int, int>, int>& mapping )
{ {
m_formationCombinationToCategory = mapping; m_formationCombinationToCategory = mapping;

View File

@ -426,8 +426,8 @@ size_t RigCaseCellResultsData::findOrCreateScalarResultIndex( const RigEclipseRe
QString( "%1K" ).arg( baseName ) ) ); QString( "%1K" ).arg( baseName ) ) );
statisticsCalculator = calc; statisticsCalculator = calc;
} }
else if ( resultName == RiaDefines::allCombinationsAllenResultName() || else if ( resultName == RiaDefines::formationAllenResultName() ||
resultName == RiaDefines::binaryAllenResultName() ) resultName == RiaDefines::formationBinaryAllenResultName() )
{ {
cvf::ref<RigEclipseAllenFaultsStatCalc> calc = new RigEclipseAllenFaultsStatCalc( m_ownerMainGrid->nncData(), cvf::ref<RigEclipseAllenFaultsStatCalc> calc = new RigEclipseAllenFaultsStatCalc( m_ownerMainGrid->nncData(),
resVarAddr ); resVarAddr );
@ -913,11 +913,11 @@ void RigCaseCellResultsData::createPlaceholderResultEntries()
// Fault results // Fault results
{ {
findOrCreateScalarResultIndex( RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS, findOrCreateScalarResultIndex( RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS,
RiaDefines::binaryAllenResultName() ), RiaDefines::formationBinaryAllenResultName() ),
false ); false );
findOrCreateScalarResultIndex( RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS, findOrCreateScalarResultIndex( RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS,
RiaDefines::allCombinationsAllenResultName() ), RiaDefines::formationAllenResultName() ),
false ); false );
} }
@ -1227,8 +1227,8 @@ size_t RigCaseCellResultsData::findOrLoadKnownScalarResult( const RigEclipseResu
{ {
computeRiTRANSbyAreaComponent( resultName ); computeRiTRANSbyAreaComponent( resultName );
} }
else if ( resultName == RiaDefines::allCombinationsAllenResultName() || else if ( resultName == RiaDefines::formationAllenResultName() ||
resultName == RiaDefines::binaryAllenResultName() ) resultName == RiaDefines::formationBinaryAllenResultName() )
{ {
computeAllenResults( this, m_ownerMainGrid ); computeAllenResults( this, m_ownerMainGrid );
} }
@ -3008,32 +3008,32 @@ void RigCaseCellResultsData::computeAllenResults( RigCaseCellResultsData* cellRe
if ( hasFormationData ) if ( hasFormationData )
{ {
auto fnAllenResultResAddr = RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS, auto fnAllenResultResAddr = RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS,
RiaDefines::allCombinationsAllenResultName() ); RiaDefines::formationAllenResultName() );
auto fnBinAllenResAddr = RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS, auto fnBinAllenResAddr = RigEclipseResultAddress( RiaDefines::ALLEN_DIAGRAMS,
RiaDefines::binaryAllenResultName() ); RiaDefines::formationBinaryAllenResultName() );
// Create and retreive nnc result arrays // Create and retreive nnc result arrays
std::vector<double>& fnAllenNncResults = mainGrid->nncData()->makeStaticConnectionScalarResult( std::vector<double>& fnAllenNncResults = mainGrid->nncData()->makeStaticConnectionScalarResult(
RiaDefines::allCombinationsAllenResultName() ); RiaDefines::formationAllenResultName() );
std::vector<double>& fnBinAllenNncResults = mainGrid->nncData()->makeStaticConnectionScalarResult( std::vector<double>& fnBinAllenNncResults = mainGrid->nncData()->makeStaticConnectionScalarResult(
RiaDefines::binaryAllenResultName() ); RiaDefines::formationBinaryAllenResultName() );
// Associate them with eclipse result address // Associate them with eclipse result address
mainGrid->nncData()->setEclResultAddress( RiaDefines::allCombinationsAllenResultName(), fnAllenResultResAddr ); mainGrid->nncData()->setEclResultAddress( RiaDefines::formationAllenResultName(), fnAllenResultResAddr );
mainGrid->nncData()->setEclResultAddress( RiaDefines::binaryAllenResultName(), fnBinAllenResAddr ); mainGrid->nncData()->setEclResultAddress( RiaDefines::formationBinaryAllenResultName(), fnBinAllenResAddr );
const std::vector<double>& fnData = cellResultsData->cellScalarResults( fnNamesResAddr, 0 ); const std::vector<double>& fnData = cellResultsData->cellScalarResults( fnNamesResAddr, 0 );
// Add a result entry for the special allen grid data (used only for the grid cells without nnc coverage) // Add a result entry for the special allen grid data (used only for the grid cells without nnc coverage)
cellResultsData->addStaticScalarResult( RiaDefines::ALLEN_DIAGRAMS, cellResultsData->addStaticScalarResult( RiaDefines::ALLEN_DIAGRAMS,
RiaDefines::allCombinationsAllenResultName(), RiaDefines::formationAllenResultName(),
false, false,
fnData.size() ); fnData.size() );
cellResultsData->addStaticScalarResult( RiaDefines::ALLEN_DIAGRAMS, cellResultsData->addStaticScalarResult( RiaDefines::ALLEN_DIAGRAMS,
RiaDefines::binaryAllenResultName(), RiaDefines::formationBinaryAllenResultName(),
false, false,
fnData.size() ); fnData.size() );

View File

@ -161,7 +161,7 @@ RiuEclipseSelectionItem::RiuEclipseSelectionItem( RimGridView*
RimEclipseResultDefinition* resultDefinition, RimEclipseResultDefinition* resultDefinition,
size_t timestepIdx, size_t timestepIdx,
size_t gridIndex, size_t gridIndex,
size_t cellIndex, size_t gridLocalCellIndex,
size_t nncIndex, size_t nncIndex,
cvf::Color3f color, cvf::Color3f color,
cvf::StructGridInterface::FaceType face, cvf::StructGridInterface::FaceType face,
@ -170,7 +170,7 @@ RiuEclipseSelectionItem::RiuEclipseSelectionItem( RimGridView*
, m_resultDefinition( resultDefinition ) , m_resultDefinition( resultDefinition )
, m_timestepIdx( timestepIdx ) , m_timestepIdx( timestepIdx )
, m_gridIndex( gridIndex ) , m_gridIndex( gridIndex )
, m_gridLocalCellIndex( cellIndex ) , m_gridLocalCellIndex( gridLocalCellIndex )
, m_nncIndex( nncIndex ) , m_nncIndex( nncIndex )
, m_color( color ) , m_color( color )
, m_face( face ) , m_face( face )

View File

@ -136,7 +136,7 @@ public:
RimEclipseResultDefinition* resultDefinition, RimEclipseResultDefinition* resultDefinition,
size_t timestepIdx, size_t timestepIdx,
size_t gridIndex, size_t gridIndex,
size_t cellIndex, size_t gridLocalCellIndex,
size_t nncIndex, size_t nncIndex,
cvf::Color3f color, cvf::Color3f color,
cvf::StructGridInterface::FaceType face, cvf::StructGridInterface::FaceType face,

View File

@ -22,6 +22,7 @@
#include "Rim2dIntersectionView.h" #include "Rim2dIntersectionView.h"
#include "RimBoxIntersection.h" #include "RimBoxIntersection.h"
#include "RimEclipseCase.h"
#include "RimEclipseCellColors.h" #include "RimEclipseCellColors.h"
#include "RimEclipseView.h" #include "RimEclipseView.h"
#include "RimExtrudedCurveIntersection.h" #include "RimExtrudedCurveIntersection.h"
@ -38,6 +39,10 @@
#include "RivFemPickSourceInfo.h" #include "RivFemPickSourceInfo.h"
#include "RivSourceInfo.h" #include "RivSourceInfo.h"
#include "RigEclipseCaseData.h"
#include "RigMainGrid.h"
#include "RigNNCData.h"
#include "cafPdmObjectHandle.h" #include "cafPdmObjectHandle.h"
#include "cvfPart.h" #include "cvfPart.h"
@ -113,26 +118,25 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
if ( !firstHitPart ) return false; if ( !firstHitPart ) return false;
size_t gridIndex = cvf::UNDEFINED_SIZE_T; size_t gridIndex = cvf::UNDEFINED_SIZE_T;
size_t cellIndex = cvf::UNDEFINED_SIZE_T; size_t gridLocalCellIndex = cvf::UNDEFINED_SIZE_T;
cvf::StructGridInterface::FaceType face = cvf::StructGridInterface::NO_FACE; cvf::StructGridInterface::FaceType face = cvf::StructGridInterface::NO_FACE;
int gmFace = -1; int gmFace = -1;
bool intersectionHit = false; bool intersectionHit = false;
std::array<cvf::Vec3f, 3> intersectionTriangleHit; std::array<cvf::Vec3f, 3> intersectionTriangleHit;
RimGeoMechResultDefinition* geomResDef = nullptr; RimGeoMechResultDefinition* geomResDef = nullptr;
RimEclipseResultDefinition* eclResDef = nullptr; RimEclipseResultDefinition* eclResDef = nullptr;
size_t timestepIndex = -1; size_t timestepIndex = -1;
// clang-format off // clang-format off
if ( const RivSourceInfo* rivSourceInfo = if ( const RivSourceInfo* rivSourceInfo = dynamic_cast<const RivSourceInfo*>( firstHitPart->sourceInfo() ) )
dynamic_cast<const RivSourceInfo*>( firstHitPart->sourceInfo() ) )
{ {
gridIndex = rivSourceInfo->gridIndex(); gridIndex = rivSourceInfo->gridIndex();
if ( rivSourceInfo->hasCellFaceMapping() ) if ( rivSourceInfo->hasCellFaceMapping() )
{ {
CVF_ASSERT( rivSourceInfo->m_cellFaceFromTriangleMapper.notNull() ); CVF_ASSERT( rivSourceInfo->m_cellFaceFromTriangleMapper.notNull() );
cellIndex = rivSourceInfo->m_cellFaceFromTriangleMapper->cellIndex( firstPartTriangleIndex ); gridLocalCellIndex = rivSourceInfo->m_cellFaceFromTriangleMapper->cellIndex( firstPartTriangleIndex );
face = rivSourceInfo->m_cellFaceFromTriangleMapper->cellFace( firstPartTriangleIndex ); face = rivSourceInfo->m_cellFaceFromTriangleMapper->cellFace( firstPartTriangleIndex );
} }
} }
@ -140,17 +144,17 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
dynamic_cast<const RivFemPickSourceInfo*>( firstHitPart->sourceInfo() ) ) dynamic_cast<const RivFemPickSourceInfo*>( firstHitPart->sourceInfo() ) )
{ {
gridIndex = femSourceInfo->femPartIndex(); gridIndex = femSourceInfo->femPartIndex();
cellIndex = femSourceInfo->triangleToElmMapper()->elementIndex( firstPartTriangleIndex ); gridLocalCellIndex = femSourceInfo->triangleToElmMapper()->elementIndex( firstPartTriangleIndex );
gmFace = femSourceInfo->triangleToElmMapper()->elementFace( firstPartTriangleIndex ); gmFace = femSourceInfo->triangleToElmMapper()->elementFace( firstPartTriangleIndex );
} }
else if ( const RivExtrudedCurveIntersectionSourceInfo* intersectionSourceInfo = else if ( const RivExtrudedCurveIntersectionSourceInfo* intersectionSourceInfo =
dynamic_cast<const RivExtrudedCurveIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) ) dynamic_cast<const RivExtrudedCurveIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) )
{ {
RiuViewerCommands::findCellAndGridIndex( mainOrComparisonView, RiuViewerCommands::findCellAndGridIndex( mainOrComparisonView,
intersectionSourceInfo, intersectionSourceInfo,
firstPartTriangleIndex, firstPartTriangleIndex,
&cellIndex, &gridLocalCellIndex,
&gridIndex ); &gridIndex );
intersectionHit = true; intersectionHit = true;
intersectionTriangleHit = intersectionSourceInfo->triangle( firstPartTriangleIndex ); intersectionTriangleHit = intersectionSourceInfo->triangle( firstPartTriangleIndex );
@ -173,10 +177,10 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
dynamic_cast<const RivBoxIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) ) dynamic_cast<const RivBoxIntersectionSourceInfo*>( firstHitPart->sourceInfo() ) )
{ {
RiuViewerCommands::findCellAndGridIndex( mainOrComparisonView, RiuViewerCommands::findCellAndGridIndex( mainOrComparisonView,
intersectionBoxSourceInfo, intersectionBoxSourceInfo,
firstPartTriangleIndex, firstPartTriangleIndex,
&cellIndex, &gridLocalCellIndex,
&gridIndex ); &gridIndex );
intersectionHit = true; intersectionHit = true;
intersectionTriangleHit = intersectionBoxSourceInfo->triangle( firstPartTriangleIndex ); intersectionTriangleHit = intersectionBoxSourceInfo->triangle( firstPartTriangleIndex );
@ -197,7 +201,7 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
} }
// clang-format on // clang-format on
if ( cellIndex == cvf::UNDEFINED_SIZE_T ) if ( gridLocalCellIndex == cvf::UNDEFINED_SIZE_T )
{ {
Riu3dSelectionManager::instance()->deleteAllItems(); Riu3dSelectionManager::instance()->deleteAllItems();
return false; return false;
@ -253,11 +257,55 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
if ( eclResDef ) if ( eclResDef )
{ {
// Select the other cell if we are about to select the same cell at an nnc.
// To make consecutive clicks toggle between closest and furthest cell
// clang-format off
if ( nncIndex != cvf::UNDEFINED_SIZE_T )
{
auto selectedItem = dynamic_cast<RiuEclipseSelectionItem*>( Riu3dSelectionManager::instance()->selectedItem() );
if ( selectedItem &&
selectedItem->m_gridIndex == gridIndex &&
selectedItem->m_gridLocalCellIndex == gridLocalCellIndex &&
selectedItem->m_nncIndex == nncIndex )
{
RigMainGrid* mainGrid = eclipseView->eclipseCase()->eclipseCaseData()->mainGrid();
const RigConnection& nncConn = mainGrid->nncData()->connections()[nncIndex];
size_t c1LocalIdx = cvf::UNDEFINED_SIZE_T;
const RigGridBase* grid1 = mainGrid->gridAndGridLocalIdxFromGlobalCellIdx(nncConn.m_c1GlobIdx, &c1LocalIdx);
size_t c1GridIdx = grid1->gridIndex();
size_t c2LocalIdx = cvf::UNDEFINED_SIZE_T;
const RigGridBase* grid2 = mainGrid->gridAndGridLocalIdxFromGlobalCellIdx(nncConn.m_c2GlobIdx, &c2LocalIdx);
size_t c2GridIdx = grid2->gridIndex();
if (gridLocalCellIndex == c1LocalIdx && gridIndex == c1GridIdx)
{
gridLocalCellIndex = c2LocalIdx;
gridIndex = c2GridIdx;
face = cvf::StructGridInterface::oppositeFace(face);
}
else if (gridLocalCellIndex == c2LocalIdx && gridIndex == c2GridIdx)
{
gridLocalCellIndex = c1LocalIdx;
gridIndex = c1GridIdx;
face = cvf::StructGridInterface::oppositeFace(face);
}
else
{
// None really matched, error in nnc data.
}
}
}
// clang-format on
selItem = new RiuEclipseSelectionItem( associatedGridView, selItem = new RiuEclipseSelectionItem( associatedGridView,
eclResDef, eclResDef,
timestepIndex, timestepIndex,
gridIndex, gridIndex,
cellIndex, gridLocalCellIndex,
nncIndex, nncIndex,
curveColor, curveColor,
face, face,
@ -271,7 +319,7 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
geomResDef, geomResDef,
timestepIndex, timestepIndex,
gridIndex, gridIndex,
cellIndex, gridLocalCellIndex,
curveColor, curveColor,
gmFace, gmFace,
localIntersectionPoint, localIntersectionPoint,
@ -281,7 +329,7 @@ bool RiuCellAndNncPickEventHandler::handle3dPickEvent( const Ric3dPickEvent& eve
geomResDef, geomResDef,
timestepIndex, timestepIndex,
gridIndex, gridIndex,
cellIndex, gridLocalCellIndex,
curveColor, curveColor,
gmFace, gmFace,
localIntersectionPoint ); localIntersectionPoint );

View File

@ -40,6 +40,7 @@
#include "RivExtrudedCurveIntersectionPartMgr.h" #include "RivExtrudedCurveIntersectionPartMgr.h"
#include "RigAllenDiagramData.h"
#include "RimIntersectionResultDefinition.h" #include "RimIntersectionResultDefinition.h"
#include "cafDisplayCoordTransform.h" #include "cafDisplayCoordTransform.h"
@ -321,13 +322,17 @@ QString RiuResultTextBuilder::faultResultDetails()
if ( m_viewWithFaultsSettings && m_viewWithFaultsSettings->faultResultSettings()->hasValidCustomResult() ) if ( m_viewWithFaultsSettings && m_viewWithFaultsSettings->faultResultSettings()->hasValidCustomResult() )
{ {
text += "Fault result data:\n"; if ( m_viewWithFaultsSettings->faultResultSettings()->customFaultResult()->resultType() !=
this->appendTextFromResultColors( eclipseCaseData, RiaDefines::ALLEN_DIAGRAMS )
m_gridIndex, {
m_cellIndex, text += "Fault result data:\n";
m_timeStepIndex, this->appendTextFromResultColors( eclipseCaseData,
m_viewWithFaultsSettings->currentFaultResultColors(), m_gridIndex,
&text ); m_cellIndex,
m_timeStepIndex,
m_viewWithFaultsSettings->currentFaultResultColors(),
&text );
}
} }
} }
} }
@ -472,6 +477,41 @@ QString RiuResultTextBuilder::nncResultText()
text = QString( "%1 : %2" ).arg( resultVar ).arg( scalarValue ); text = QString( "%1 : %2" ).arg( resultVar ).arg( scalarValue );
} }
if ( resultType == RiaDefines::ALLEN_DIAGRAMS )
{
nncValues = nncData->staticConnectionScalarResult( eclipseResultAddress );
QString resultValueText;
if ( m_viewWithFaultsSettings->currentFaultResultColors()->resultVariable() ==
RiaDefines::formationAllenResultName() )
{
std::pair<int, int> fmIndexPair =
eclipseCase->allenDiagramData()->formationIndexCombinationFromCategory(
( *nncValues )[m_nncIndex] );
RigFormationNames* fmNames = eclipseCase->activeFormationNames();
// clang-format off
if ( fmNames &&
fmIndexPair.first >= 0 &&
fmIndexPair.second >= 0 &&
fmNames->formationNames().size() > fmIndexPair.first &&
fmNames->formationNames().size() > fmIndexPair.second )
{
resultValueText = fmNames->formationNames()[fmIndexPair.first] + " - " +
fmNames->formationNames()[fmIndexPair.second];
}
// clang-format on
}
else if ( m_viewWithFaultsSettings->currentFaultResultColors()->resultVariable() ==
RiaDefines::formationBinaryAllenResultName() )
{
resultValueText = ( *nncValues )[m_nncIndex] == 0 ? "Same formation" : "Different formation";
}
QString resultVar = m_viewWithFaultsSettings->currentFaultResultColors()->resultVariableUiName();
text = QString( "%1 : %2" ).arg( resultVar ).arg( resultValueText );
}
} }
} }
} }