Tatooine
color_scale.h
Go to the documentation of this file.
1#ifndef TATOOINE_RENDERING_INTERACTIVE_COLOR_SCALE_H
2#define TATOOINE_RENDERING_INTERACTIVE_COLOR_SCALE_H
3//==============================================================================
19#include <tatooine/gl/texture.h>
20#include <tatooine/vec.h>
21
22//==============================================================================
24//==============================================================================
28
29 template <typename ColorScale>
30 color_scale(ColorScale&& c) {
31 auto gpu_data = std::vector<GLfloat>(4 * c.num_samples());
32 for (std::size_t i = 0; i < c.num_samples(); ++i) {
33 gpu_data[i * 4] = c.data()[i](0);
34 gpu_data[i * 4 + 1] = c.data()[i](1);
35 gpu_data[i * 4 + 2] = c.data()[i](2);
36 gpu_data[i * 4 + 3] = 1;
37 }
38 tex = gl::tex1rgba32f{gpu_data.data(), c.num_samples()};
39 tex.set_wrap_mode(gl::wrap_mode::clamp_to_edge);
40 tex_2d = to_2d(tex, 4);
41 }
42 static auto GYPi() -> auto& {
44 return gypi;
45 }
46 static auto PiYG() -> auto& {
48 return s;
49 }
50 static auto BrBG() -> auto& {
52 return s;
53 }
54 static auto BuRD() -> auto& {
56 return s;
57 }
58 static auto GBBr() -> auto& {
60 return s;
61 }
62 static auto GnRP() -> auto& {
64 return s;
65 }
66 static auto GnYIRd() -> auto& {
68 return s;
69 }
70 static auto OrPu() -> auto& {
72 return s;
73 }
74 static auto PRGn() -> auto& {
76 return s;
77 }
78 static auto PuOr() -> auto& {
80 return s;
81 }
82 static auto viridis() -> auto& {
84 return viridis;
85 }
86 static auto magma() -> auto& {
88 return magma;
89 }
90 static auto cool_to_warm() -> auto& {
92 return cool_to_warm;
93 }
94 static auto jet() -> auto& {
96 return jet;
97 }
98};
99//==============================================================================
100} // namespace tatooine::rendering::interactive
101//==============================================================================
102#endif
tex2rgba< GLfloat > tex2rgba32f
Definition: texture.h:957
tex1rgba< GLfloat > tex1rgba32f
Definition: texture.h:921
Definition: interactive.h:15
Definition: BrBG.h:12
Definition: BuRD.h:12
Definition: GBBr.h:12
Definition: GYPi.h:12
Definition: GnRP.h:12
Definition: GnYIRd.h:12
Definition: OrPu.h:12
Definition: PRGn.h:12
Definition: PiYG.h:12
Definition: PuOr.h:12
Definition: cool_to_warm.h:12
Definition: jet.h:12
Definition: magma.h:13
Definition: viridis.h:12
gl::tex1rgba32f tex
Definition: color_scale.h:26
static auto GnRP() -> auto &
Definition: color_scale.h:62
static auto GYPi() -> auto &
Definition: color_scale.h:42
static auto magma() -> auto &
Definition: color_scale.h:86
gl::tex2rgba32f tex_2d
Definition: color_scale.h:27
static auto OrPu() -> auto &
Definition: color_scale.h:70
static auto BrBG() -> auto &
Definition: color_scale.h:50
static auto PiYG() -> auto &
Definition: color_scale.h:46
color_scale(ColorScale &&c)
Definition: color_scale.h:30
static auto cool_to_warm() -> auto &
Definition: color_scale.h:90
static auto GnYIRd() -> auto &
Definition: color_scale.h:66
static auto jet() -> auto &
Definition: color_scale.h:94
static auto PuOr() -> auto &
Definition: color_scale.h:78
static auto GBBr() -> auto &
Definition: color_scale.h:58
static auto viridis() -> auto &
Definition: color_scale.h:82
static auto PRGn() -> auto &
Definition: color_scale.h:74
static auto BuRD() -> auto &
Definition: color_scale.h:54