25 h = max(0.0f,
min(1.0f, h));
26 s = max(0.0f,
min(1.0f,
s));
27 v = max(0.0f,
min(1.0f,
v));
29 int Hi = ((int)floor(h * 6)) % 6;
30 float f = (h * 6) - Hi;
31 float p =
v * (1 -
s);
32 float q =
v * (1 - f *
s);
33 float t =
v * (1 - (1 - f) *
s);
76 r = max(0.0f,
min(1.0f,
r));
77 g = max(0.0f,
min(1.0f,
g));
78 b = max(0.0f,
min(1.0f,
b));
92 h = (
g -
b) / (6 * (Max - Min));
94 h = 1 - (
g -
b) / (6 * (Max - Min));
97 h = 1 / 3.0f + (
b -
r) / (6 * (Max - Min));
99 h = 2 / 3.0f + (
r -
g) / (6 * (Max - Min));
114 const TColormap& color_map,
const float color_index,
float&
r,
float&
g,
124 r =
g =
b = color_index;
140 static bool jet_table_done =
false;
141 static Eigen::VectorXf jet_r, jet_g, jet_b;
146 jet_table_done =
true;
150 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
151 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
152 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
153 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
154 0.062500, 0.125000, 0.187500, 0.250000, 0.312500, 0.375000,
155 0.437500, 0.500000, 0.562500, 0.625000, 0.687500, 0.750000,
156 0.812500, 0.875000, 0.937500, 1.000000, 1.000000, 1.000000,
157 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
158 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
159 1.000000, 1.000000, 0.937500, 0.875000, 0.812500, 0.750000,
160 0.687500, 0.625000, 0.562500, 0.500000};
162 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
163 0.000000, 0.000000, 0.062500, 0.125000, 0.187500, 0.250000,
164 0.312500, 0.375000, 0.437500, 0.500000, 0.562500, 0.625000,
165 0.687500, 0.750000, 0.812500, 0.875000, 0.937500, 1.000000,
166 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
167 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
168 1.000000, 1.000000, 1.000000, 1.000000, 0.937500, 0.875000,
169 0.812500, 0.750000, 0.687500, 0.625000, 0.562500, 0.500000,
170 0.437500, 0.375000, 0.312500, 0.250000, 0.187500, 0.125000,
171 0.062500, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
172 0.000000, 0.000000, 0.000000, 0.000000};
174 0.562500, 0.625000, 0.687500, 0.750000, 0.812500, 0.875000,
175 0.937500, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
176 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
177 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
178 0.937500, 0.875000, 0.812500, 0.750000, 0.687500, 0.625000,
179 0.562500, 0.500000, 0.437500, 0.375000, 0.312500, 0.250000,
180 0.187500, 0.125000, 0.062500, 0.000000, 0.000000, 0.000000,
181 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
182 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
183 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
184 0.000000, 0.000000, 0.000000, 0.000000};
185 const size_t N =
sizeof(JET_B) /
sizeof(JET_B[0]);
190 for (
size_t i = 0; i < N; i++)
206 static bool table_done =
false;
207 static Eigen::VectorXf hot_r, hot_g, hot_b;
216 0.041667, 0.083333, 0.125000, 0.166667, 0.208333, 0.250000,
217 0.291667, 0.333333, 0.375000, 0.416667, 0.458333, 0.500000,
218 0.541667, 0.583333, 0.625000, 0.666667, 0.708333, 0.750000,
219 0.791667, 0.833333, 0.875000, 0.916667, 0.958333, 1.000000,
220 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
221 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
222 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
223 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
224 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
225 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
226 1.000000, 1.000000, 1.000000, 1.000000};
228 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
229 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
230 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
231 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
232 0.041667, 0.083333, 0.125000, 0.166667, 0.208333, 0.250000,
233 0.291667, 0.333333, 0.375000, 0.416667, 0.458333, 0.500000,
234 0.541667, 0.583333, 0.625000, 0.666667, 0.708333, 0.750000,
235 0.791667, 0.833333, 0.875000, 0.916667, 0.958333, 1.000000,
236 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
237 1.000000, 1.000000, 1.000000, 1.000000, 1.000000, 1.000000,
238 1.000000, 1.000000, 1.000000, 1.000000};
240 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
241 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
242 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
243 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
244 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
245 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
246 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
247 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000,
248 0.062500, 0.125000, 0.187500, 0.250000, 0.312500, 0.375000,
249 0.437500, 0.500000, 0.562500, 0.625000, 0.687500, 0.750000,
250 0.812500, 0.875000, 0.937500, 1.000000};
251 const size_t N =
sizeof(HOT_B) /
sizeof(HOT_B[0]);
256 for (
size_t i = 0; i < N; i++)