24 lines
542 B
C++
24 lines
542 B
C++
#include "main_colour_extractor.h"
|
|
|
|
#include <math.h>
|
|
|
|
// CONSTRUCTORS
|
|
MainColourExtractor::MainColourExtractor(size_t h_levels, size_t s_levels,
|
|
size_t l_levels)
|
|
: ColourExtractor(h_levels, s_levels, l_levels)
|
|
{
|
|
}
|
|
|
|
// PROTECTED FUNCS
|
|
size_t MainColourExtractor::evaluate_colour(struct ColourHSL hsl, double weight)
|
|
const
|
|
{
|
|
size_t result = 0;
|
|
|
|
result = static_cast<size_t>(round(1000.0 * pow(weight, 0.3) *
|
|
(hsl.s + 1.0 / m_s_levels) *
|
|
((1.0 - fabs(2 * hsl.l - 1.0)) * (1 - 1.0 / m_l_levels) + 1.0 / m_l_levels)));
|
|
|
|
return result;
|
|
}
|