VizFwk : Added guard for one level only scalar values

This commit is contained in:
Magne Sjaastad 2016-08-05 16:12:54 +02:00
parent 9746bf7ccb
commit 975f52a78d
2 changed files with 16 additions and 3 deletions

View File

@ -38,7 +38,9 @@
#include "cvfScalarMapperDiscreteLinear.h"
#include "cvfMath.h"
#include "cvfTextureImage.h"
#include <cmath>
#include <assert.h>
namespace cvf {
//==================================================================================================
@ -59,9 +61,13 @@ ScalarMapperDiscreteLinear::ScalarMapperDiscreteLinear()
//--------------------------------------------------------------------------------------------------
Color3ub ScalarMapperDiscreteLinear::mapToColor(double scalarValue) const
{
assert(m_sortedLevels.size() > 0);
double discVal = ScalarMapperDiscreteLinear::discretizeToLevelBelow(scalarValue, m_sortedLevels);
std::set<double>::reverse_iterator it = m_sortedLevels.rbegin();
it++;
if (m_sortedLevels.size() > 1 ) it++;
double levelUnderMax = *it;
double normDiscVal = normalizedValue(discVal);
double normSemiMaxVal = normalizedValue(levelUnderMax);

View File

@ -37,9 +37,11 @@
#include "cvfScalarMapperDiscreteLog.h"
#include "cvfScalarMapperDiscreteLinear.h"
#include <cmath>
#include "cvfMath.h"
#include <assert.h>
#include <cmath>
namespace cvf {
//==================================================================================================
@ -59,14 +61,19 @@ ScalarMapperDiscreteLog::ScalarMapperDiscreteLog()
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
Color3ub ScalarMapperDiscreteLog::mapToColor(double scalarValue) const
{
assert(m_sortedLevels.size() > 0);
double discVal = ScalarMapperDiscreteLinear::discretizeToLevelBelow(scalarValue, m_sortedLevels);
std::set<double>::reverse_iterator it = m_sortedLevels.rbegin();
it++;
if (m_sortedLevels.size() > 1) it++;
double levelUnderMax = *it;
double normDiscVal = normalizedValue(discVal);
double normSemiMaxVal = normalizedValue(levelUnderMax);