22 cgv::media::ColorScale cs[2],
float window_zero_position[2])
24 const std::vector<rgb>* scs_ptrs[2] = { 0, 0 };
25 int nr_color_scale_samples[2] = { 0, 0 };
26 int color_scale_index[2];
27 int color_scale_is_bipolar[2];
28 for (
unsigned idx = 0; idx < 2; ++idx) {
29 color_scale_is_bipolar[idx] = 0;
30 color_scale_index[idx] = (int)std::min(cs[idx], cgv::media::CS_NAMED);
31 if (cs[idx] >= cgv::media::CS_NAMED) {
33 scs_ptrs[idx] = &cgv::media::query_named_color_scale(cgv::media::query_color_scale_names()[cs[idx] - cgv::media::CS_NAMED], &is_bipolar);
34 color_scale_is_bipolar[idx] = is_bipolar ? 1 : 0;
35 nr_color_scale_samples[idx] = (int)scs_ptrs[idx]->size();
39 std::vector<rgb> colors(32 + nr_color_scale_samples[1]);
41 std::copy(scs_ptrs[0]->begin(), scs_ptrs[0]->end(), colors.begin());
43 std::copy(scs_ptrs[1]->begin(), scs_ptrs[1]->end(), colors.begin()+32);
base class for all drawables, which is independent of the used rendering API.
bool set_uniform(const context &ctx, const std::string &name, const T &value, bool generate_error=false)
Set the value of a uniform by name, where the type can be any of int, unsigned, float,...
void configure_color_scale(cgv::render::context &ctx, cgv::render::shader_program &prog, cgv::media::ColorScale cs, float window_zero_position)
convenience function to configure a shader that uses color_scale.glsl with a single color scale