codac 2.0.0
Loading...
Searching...
No Matches
codac2_ColorMap.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include <map>
13#include <cmath>
14#include "codac2_Color.h"
15#include "codac2_Interval.h"
16#include"codac2_assert.h"
17
18namespace codac2
19{
28 struct ColorMap : public std::map<float,Color>
29 {
30 protected:
31 Model m; //RGB or HSV
32
33 public:
34
40 explicit ColorMap(Model m_ = Model::RGB);
41
47 const Model& model() const { return m; }
48
54 Color color (float r) const;
55
61 static ColorMap haxby()
62 {
63 ColorMap cmap( Model::RGB );
64 cmap[0]=Color({39.,90.,211.});
65 cmap[1]=Color({40.,123.,245.});
66 cmap[2]=Color({45.,155.,253.});
67 cmap[3]=Color({73.,209.,255.});
68 cmap[4]=Color({100.,230.,254.});
69 cmap[5]=Color({118.,235.,226.});
70 cmap[6]=Color({135.,236.,187.});
71 cmap[7]=Color({194.,252.,165.});
72 cmap[8]=Color({217.,251.,151.});
73 cmap[9]=Color({233.,241.,131.});
74 cmap[10]=Color({252.,201.,96.});
75 cmap[11]=Color({255.,184.,84.});
76 cmap[12]=Color({255.,170.,75.});
77 cmap[13]=Color({255.,167.,83.});
78 cmap[14]=Color({255.,200.,158.});
79 cmap[15]=Color({255.,233.,217.});
80 return cmap;
81 }
82
88 static ColorMap basic() // Can't use default as name
89 {
90 ColorMap cmap( Model::RGB );
91 cmap[0]=Color({10.,0.,121.});
92 cmap[1]=Color({40.,0.,150.});
93 cmap[2]=Color({20.,5.,175.});
94 cmap[3]=Color({0.,10.,200.});
95 cmap[4]=Color({0.,25.,212.});
96 cmap[5]=Color({0.,40.,224.});
97 cmap[6]=Color({26.,102.,240.});
98 cmap[7]=Color({13.,129.,248.});
99 cmap[8]=Color({25.,175.,255.});
100 cmap[9]=Color({50.,190.,255.});
101 cmap[10]=Color({68.,202.,255.});
102 cmap[11]=Color({97.,225.,240.});
103 cmap[12]=Color({106.,235.,225.});
104 cmap[13]=Color({124.,235.,200.});
105 cmap[14]=Color({138.,236.,174.});
106 cmap[15]=Color({172.,245.,168.});
107 cmap[16]=Color({205.,255.,162.});
108 cmap[17]=Color({223.,245.,141.});
109 cmap[18]=Color({240.,236.,121.});
110 cmap[19]=Color({247.,215.,104.});
111 cmap[20]=Color({255.,189.,87.});
112 cmap[21]=Color({255.,160.,69.});
113 cmap[22]=Color({244.,117.,75.});
114 cmap[23]=Color({238.,80.,78.});
115 cmap[24]=Color({255.,90.,90.});
116 cmap[25]=Color({255.,124.,124.});
117 cmap[26]=Color({255.,158.,158.});
118 cmap[27]=Color({245.,179.,174.});
119 cmap[28]=Color({255.,196.,196.});
120 cmap[29]=Color({255.,215.,215.});
121 cmap[30]=Color({255.,235.,235.});
122 cmap[31]=Color({255.,254.,253.});
123 return cmap;
124 }
125
132 {
133 ColorMap cmap( Model::RGB );
134 cmap[0]=Color({76.,110.,127.});
135 cmap[1]=Color({136.,197.,228.});
136 return cmap;
137 }
138
145 {
146 ColorMap cmap( Model::RGB );
147 cmap[0]=Color({169.,55.,0.});
148 cmap[1]=Color({241.,140.,54.});
149 return cmap;
150 }
151
158 {
159 ColorMap cmap( Model::HSV );
160 int i = 0;
161 for(int h = 300 ; h > 0 ; h-=10)
162 {
163 cmap[i]=Color({(float)h,100.,100.},Model::HSV);
164 i++;
165 }
166 return cmap;
167 }
168
169 };
170}
Model
Color model (RGB or HSV)
Definition codac2_Color.h:28
Color structure, in RGBA or HSVA format.
Definition codac2_Color.h:44
static ColorMap red_tube()
Red tube color map.
Definition codac2_ColorMap.h:144
static ColorMap haxby()
Haxby color map.
Definition codac2_ColorMap.h:61
static ColorMap rainbow()
Rainbow color map.
Definition codac2_ColorMap.h:157
Color color(float r) const
Getter for the color at a given value.
static ColorMap blue_tube()
Blue tube color map.
Definition codac2_ColorMap.h:131
static ColorMap basic()
Basic color map.
Definition codac2_ColorMap.h:88
const Model & model() const
Getter for the color model.
Definition codac2_ColorMap.h:47
ColorMap(Model m_=Model::RGB)
Constructor from a model.