1#ifndef TATOOINE_COLOR_SCALES_COOL_TO_WARM_H
2#define TATOOINE_COLOR_SCALES_COOL_TO_WARM_H
11template <
floating_po
int Real>
16 static constexpr auto num_samples() -> std::size_t {
return 3; }
18 std::unique_ptr<color_type[]>
m_data;
22 {0.865, 0.865, 0.865},
23 {0.705882, 0.0156863, 0.14902}}} {}
25 auto data() ->
auto& {
return m_data; }
26 auto data() const -> auto const& {
return m_data; }
33 return m_data[num_samples() - 1];
35 t *= num_samples() - 1;
36 auto const i =
static_cast<size_t>(std::floor(t));
38 return m_data[i] * (1 - t) + m_data[i + 1] * t;
Definition: cool_to_warm.h:12
static constexpr auto num_samples() -> std::size_t
Definition: cool_to_warm.h:16
auto operator()(real_type const t) const
Definition: cool_to_warm.h:41
cool_to_warm()
Definition: cool_to_warm.h:20
auto data() -> auto &
Definition: cool_to_warm.h:25
auto sample(real_type t) const
Definition: cool_to_warm.h:28
auto data() const -> auto const &
Definition: cool_to_warm.h:26
Real real_type
Definition: cool_to_warm.h:13
std::unique_ptr< color_type[]> m_data
Definition: cool_to_warm.h:18