21#ifndef GF_COLOR_RAMP_H
22#define GF_COLOR_RAMP_H
35#ifndef DOXYGEN_SHOULD_SKIP_THIS
50 static_assert(std::is_floating_point<T>::value,
"T must be a floating point type.");
69 m_min = m_max = offset;
80 m_map.insert(std::make_pair(offset, color));
95 return m_map.begin()->second;
99 return m_map.rbegin()->second;
102 auto it = m_map.lower_bound(offset);
103 assert(it != m_map.end());
108 if (it == m_map.begin()) {
116 return gf::lerp(c1, c2, (offset - t1) / (t2 - t1));
122 std::map<T, Color4<T>> m_map;
149#ifndef DOXYGEN_SHOULD_SKIP_THIS
ColorRampBase< float > ColorRampF
Instantiation of ColoRampBase for float
Definition: ColorRamp.h:129
constexpr T lerp(T lhs, T rhs, U t)
Linear interpolation function.
Definition: Math.h:266
The namespace for gf classes.
Predefined colors and utilities.
Definition: Color.h:56
A color ramp.
Definition: ColorRamp.h:49
bool isEmpty() const
Check if the color ramp is empty.
Definition: ColorRamp.h:57
void addColorStop(T offset, const Color4< T > &color)
Add a color stop.
Definition: ColorRamp.h:67
Color4< T > computeColor(T offset) const
Compute a color from an offset.
Definition: ColorRamp.h:89
A 4D vector.
Definition: Vector.h:852