cgv
Loading...
Searching...
No Matches
color_scale.h
1#pragma once
2
3#include "color.h"
4#include <vector>
5#include <string>
6
7#include "lib_begin.h"
8
9namespace cgv {
10 namespace media {
11
15enum ColorScale {
16 CS_RED,
17 CS_GREEN,
18 CS_BLUE,
19 CS_GRAY,
20 CS_TEMPERATURE,
21 CS_HUE,
22 CS_HUE_LUMINANCE,
23 CS_NAMED
24};
25
34extern CGV_API color<float,RGB> color_scale(double value, ColorScale cs = CS_TEMPERATURE, int polarity = 0);
35
44extern CGV_API double color_scale_gamma_mapping(double v, double gamma, bool is_bipolar = false, double window_zero_position = 0.5);
45
57extern CGV_API double adjust_zero_position(double value, double window_zero_position);
58
65extern CGV_API void register_named_color_scale(const ::std::string& name, const ::std::vector<color<float, RGB>>& samples, bool is_bipolar = false);
66
72extern CGV_API std::string get_color_scale_name(ColorScale cs);
73
77
84extern CGV_API bool find_color_scale(const std::string& name, ColorScale& cs);
85
91extern CGV_API size_t get_named_color_scale_timestamp();
92
100extern CGV_API const std::string& get_color_scale_enum_definition(bool include_fixed = true, bool include_named = true, int polarity = 0);
101
109extern CGV_API const std::vector<std::string>& query_color_scale_names(int polarity = 0);
110
117extern CGV_API const std::vector<color<float, RGB>>& query_named_color_scale(const std::string& name, bool* is_bipolar_ptr = 0);
118
126extern CGV_API std::vector<color<float, RGB>> sample_named_color_scale(const std::string& name, size_t nr_samples = 0, bool exact = false);
127
134extern CGV_API color<float, RGB> sample_sampled_color_scale(float value, const std::vector<color<float, RGB>>& samples, bool is_bipolar = false);
135
136
137 }
138}
139
140#include <cgv/config/lib_end.h>
the cgv namespace
Definition print.h:11