mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
Set a max limit for number of categories sent to category mapper
It is not possible to use the category mapper for a large number of categories.
This commit is contained in:
parent
534348c1a0
commit
3965041550
@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include "RiaColorTables.h"
|
#include "RiaColorTables.h"
|
||||||
#include "RiaColorTools.h"
|
#include "RiaColorTools.h"
|
||||||
|
#include "RiaLogging.h"
|
||||||
|
|
||||||
#include "RigAllanDiagramData.h"
|
#include "RigAllanDiagramData.h"
|
||||||
#include "RigCaseCellResultsData.h"
|
#include "RigCaseCellResultsData.h"
|
||||||
@ -633,12 +634,6 @@ void RimEclipseResultDefinitionTools::updateCellResultLegend( const RimEclipseRe
|
|||||||
std::iota( uniqueValues.begin(), uniqueValues.end(), 0 );
|
std::iota( uniqueValues.begin(), uniqueValues.end(), 0 );
|
||||||
}
|
}
|
||||||
|
|
||||||
cvf::Color3ubArray legendBaseColors = legendConfigToUpdate->colorLegend()->colorArray();
|
|
||||||
|
|
||||||
cvf::ref<caf::CategoryMapper> categoryMapper = new caf::CategoryMapper;
|
|
||||||
categoryMapper->setCategories( uniqueValues );
|
|
||||||
categoryMapper->setInterpolateColors( legendBaseColors );
|
|
||||||
|
|
||||||
std::vector<int> visibleCategoryValues = uniqueValues;
|
std::vector<int> visibleCategoryValues = uniqueValues;
|
||||||
|
|
||||||
if ( resultDefinition->showOnlyVisibleCategoriesInLegend() )
|
if ( resultDefinition->showOnlyVisibleCategoriesInLegend() )
|
||||||
@ -658,6 +653,26 @@ void RimEclipseResultDefinitionTools::updateCellResultLegend( const RimEclipseRe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const size_t maxCategoryCount = 500;
|
||||||
|
if ( legendConfigToUpdate->mappingMode() == RimRegularLegendConfig::MappingType::CATEGORY_INTEGER &&
|
||||||
|
visibleCategoryValues.size() > maxCategoryCount )
|
||||||
|
{
|
||||||
|
QString txt = QString( "Detected %1 category values. Maximum number of categories is %2. Only the first %2 "
|
||||||
|
"categories will be displayed. Please use a different color mapping." )
|
||||||
|
.arg( visibleCategoryValues.size() )
|
||||||
|
.arg( maxCategoryCount );
|
||||||
|
RiaLogging::error( txt );
|
||||||
|
|
||||||
|
visibleCategoryValues.resize( maxCategoryCount );
|
||||||
|
}
|
||||||
|
|
||||||
|
cvf::Color3ubArray legendBaseColors = legendConfigToUpdate->colorLegend()->colorArray();
|
||||||
|
|
||||||
|
cvf::ref<caf::CategoryMapper> categoryMapper = new caf::CategoryMapper;
|
||||||
|
categoryMapper->setCategories( visibleCategoryValues );
|
||||||
|
categoryMapper->setInterpolateColors( legendBaseColors );
|
||||||
|
|
||||||
std::vector<std::tuple<QString, int, cvf::Color3ub>> categoryVector;
|
std::vector<std::tuple<QString, int, cvf::Color3ub>> categoryVector;
|
||||||
|
|
||||||
for ( auto value : visibleCategoryValues )
|
for ( auto value : visibleCategoryValues )
|
||||||
|
Loading…
Reference in New Issue
Block a user