10#ifndef OPENSWMM_RENDER_CLASSIFICATIONCOLORSAMPLER_H
11#define OPENSWMM_RENDER_CLASSIFICATIONCOLORSAMPLER_H
35 : m_ramp(scheme.resolvedRamp()), m_range(scheme.effectiveRange(dataMin, dataMax)),
36 m_invert(scheme.invertRamp())
38 m_classes.reserve(classes);
39 for (
int i = 0;
i < classes; ++
i)
50 return index < 0 || index >= m_classes.size() ? QColor(Qt::transparent)
51 : m_classes.at(index);
63 if (!std::isfinite(
value) ||
value < m_range.first)
64 return QColor(Qt::transparent);
65 const double f = std::clamp(m_range.second > m_range.first
66 ? (
value - m_range.first) / (m_range.second - m_range.first)
69 return m_ramp.
colorAt(m_invert ? 1.0 - f : f);
74 QPair<double, double> m_range;
76 QVector<QColor> m_classes;
Definition classificationcolorsampler.h:19
ClassificationColorSampler(const ClassificationScheme &scheme, double dataMin, double dataMax, int classes=0)
Capture a classification's ramp, range, inversion, and optional class colors.
Definition classificationcolorsampler.h:33
QColor classColor(int index) const
Obtain a captured discrete class color without rebuilding a palette.
Definition classificationcolorsampler.h:48
QColor valueColor(double value) const
Sample the captured continuous ramp over its captured effective range.
Definition classificationcolorsampler.h:61
Shared classification model: mode + binner + ramp + range + per-class overrides, with a revision stam...
Definition classificationscheme.h:63
QColor colorForClass(int classIndex) const
Sample a discrete class using the configured class count.
Definition classificationscheme.cpp:432
Slice US.1 (UNIFIED_STYLING_AND_UI_CONSISTENCY_PLAN.md S1) — the shared classification value type emb...
size_t i
Definition contourjob.cpp:30
Definition gisrasterlayer.h:42
double value
Definition rasterfluxintegration.cpp:27
Gradient mapping from a normalised value in [0,1] to a QColor.
Definition colorramp.h:66
QColor colorAt(double normalisedPos) const
Interpolate ramp stops at a normalized position.
Definition colorramp.cpp:100