OpenPose  1.7.0
The first real-time multi-person system to jointly detect human body, hand, facial, and foot keypoints
poseParametersRender.hpp
Go to the documentation of this file.
1 #ifndef OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
2 #define OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
3 
6 
7 namespace op
8 {
9  // Rendering parameters
10  const auto POSE_DEFAULT_ALPHA_KEYPOINT = 0.6f;
11  const auto POSE_DEFAULT_ALPHA_HEAT_MAP = 0.7f;
12 
13  // Model-Dependent Parameters
14  // CUDA-code Model-Dependent Parameters must be defined with #define
15  // BODY_25
16  #define POSE_BODY_25_PAIRS_RENDER_GPU \
17  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18, 14,19,19,20,14,21, 11,22,22,23,11,24
18  #define POSE_BODY_25_SCALES_RENDER_GPU 1
19  #define POSE_BODY_25_COLORS_RENDER_GPU \
20  255.f, 0.f, 85.f, \
21  255.f, 0.f, 0.f, \
22  255.f, 85.f, 0.f, \
23  255.f, 170.f, 0.f, \
24  255.f, 255.f, 0.f, \
25  170.f, 255.f, 0.f, \
26  85.f, 255.f, 0.f, \
27  0.f, 255.f, 0.f, \
28  255.f, 0.f, 0.f, \
29  0.f, 255.f, 85.f, \
30  0.f, 255.f, 170.f, \
31  0.f, 255.f, 255.f, \
32  0.f, 170.f, 255.f, \
33  0.f, 85.f, 255.f, \
34  0.f, 0.f, 255.f, \
35  255.f, 0.f, 170.f, \
36  170.f, 0.f, 255.f, \
37  255.f, 0.f, 255.f, \
38  85.f, 0.f, 255.f, \
39  0.f, 0.f, 255.f, \
40  0.f, 0.f, 255.f, \
41  0.f, 0.f, 255.f, \
42  0.f, 255.f, 255.f, \
43  0.f, 255.f, 255.f, \
44  0.f, 255.f, 255.f
45  // COCO
46  #define POSE_COCO_PAIRS_RENDER_GPU \
47  1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 1,8, 8,9, 9,10, 1,11, 11,12, 12,13, 1,0, 0,14, 14,16, 0,15, 15,17
48  #define POSE_COCO_SCALES_RENDER_GPU 1
49  #define POSE_COCO_COLORS_RENDER_GPU \
50  255.f, 0.f, 85.f, \
51  255.f, 0.f, 0.f, \
52  255.f, 85.f, 0.f, \
53  255.f, 170.f, 0.f, \
54  255.f, 255.f, 0.f, \
55  170.f, 255.f, 0.f, \
56  85.f, 255.f, 0.f, \
57  0.f, 255.f, 0.f, \
58  0.f, 255.f, 85.f, \
59  0.f, 255.f, 170.f, \
60  0.f, 255.f, 255.f, \
61  0.f, 170.f, 255.f, \
62  0.f, 85.f, 255.f, \
63  0.f, 0.f, 255.f, \
64  255.f, 0.f, 170.f, \
65  170.f, 0.f, 255.f, \
66  255.f, 0.f, 255.f, \
67  85.f, 0.f, 255.f
68  // MPI
69  // MPI colors chosen such that they are closed to COCO colors
70  #define POSE_MPI_PAIRS_RENDER_GPU \
71  0,1, 1,2, 2,3, 3,4, 1,5, 5,6, 6,7, 1,14, 14,8, 8,9, 9,10, 14,11, 11,12, 12,13
72  #define POSE_MPI_SCALES_RENDER_GPU 1
73  #define POSE_MPI_COLORS_RENDER_GPU \
74  255.f, 0.f, 85.f, \
75  255.f, 0.f, 0.f, \
76  255.f, 85.f, 0.f, \
77  255.f, 170.f, 0.f, \
78  255.f, 255.f, 0.f, \
79  170.f, 255.f, 0.f, \
80  85.f, 255.f, 0.f, \
81  43.f, 255.f, 0.f, \
82  0.f, 255.f, 0.f, \
83  0.f, 255.f, 85.f, \
84  0.f, 255.f, 170.f, \
85  0.f, 255.f, 255.f, \
86  0.f, 170.f, 255.f, \
87  0.f, 85.f, 255.f, \
88  0.f, 0.f, 255.f
89  // BODY_19
90  #define POSE_BODY_19_PAIRS_RENDER_GPU \
91  1,8, 1,2, 1,5, 2,3, 3,4, 5,6, 6,7, 8,9, 9,10, 10,11, 8,12, 12,13, 13,14, 1,0, 0,15, 15,17, 0,16, 16,18
92  #define POSE_BODY_19_SCALES_RENDER_GPU 1
93  #define POSE_BODY_19_COLORS_RENDER_GPU \
94  255.f, 0.f, 85.f, \
95  255.f, 0.f, 0.f, \
96  255.f, 85.f, 0.f, \
97  255.f, 170.f, 0.f, \
98  255.f, 255.f, 0.f, \
99  170.f, 255.f, 0.f, \
100  85.f, 255.f, 0.f, \
101  0.f, 255.f, 0.f, \
102  255.f, 0.f, 0.f, \
103  0.f, 255.f, 85.f, \
104  0.f, 255.f, 170.f, \
105  0.f, 255.f, 255.f, \
106  0.f, 170.f, 255.f, \
107  0.f, 85.f, 255.f, \
108  0.f, 0.f, 255.f, \
109  255.f, 0.f, 170.f, \
110  170.f, 0.f, 255.f, \
111  255.f, 0.f, 255.f, \
112  85.f, 0.f, 255.f
113  // BODY_23
114  #define POSE_BODY_23_PAIRS_RENDER_GPU \
115  1,7, 4,10, 0,1, 0,4, 1,2, 2,3, 4,5, 5,6, 7,8, 8,9, 10,11, 11,12, 0,13, 13,15, 0,14, 14,16, 12,17,17,18,12,19, 9,20,20,21,9,22
116  #define POSE_BODY_23_SCALES_RENDER_GPU 1
117  #define POSE_BODY_23_COLORS_RENDER_GPU \
118  255.f, 0.f, 85.f, \
119  255.f, 0.f, 0.f, \
120  255.f, 85.f, 0.f, \
121  255.f, 170.f, 0.f, \
122  255.f, 255.f, 0.f, \
123  170.f, 255.f, 0.f, \
124  85.f, 255.f, 0.f, \
125  0.f, 255.f, 0.f, \
126  255.f, 0.f, 0.f, \
127  0.f, 255.f, 85.f, \
128  0.f, 255.f, 170.f, \
129  0.f, 255.f, 255.f, \
130  0.f, 170.f, 255.f, \
131  0.f, 85.f, 255.f, \
132  0.f, 0.f, 255.f, \
133  255.f, 0.f, 170.f, \
134  170.f, 0.f, 255.f, \
135  255.f, 0.f, 255.f, \
136  85.f, 0.f, 255.f, \
137  0.f, 0.f, 255.f, \
138  0.f, 0.f, 255.f, \
139  0.f, 0.f, 255.f, \
140  0.f, 255.f, 255.f, \
141  0.f, 255.f, 255.f, \
142  0.f, 255.f, 255.f
143  // BODY_25B
144  #define POSE_BODY_25B_PAIRS_RENDER_GPU \
145  0,1, 0,2, 1,3, 2,4, 5,7, 6,8, 7,9, 8,10, 5,11, 6,12, 11,13, 12,14, 13,15, 14,16, \
146  15,19, 19,20, 15,21, 16,22, 22,23, 16,24, 5,17, \
147  6,17, 17,18, 11,12
148  #define POSE_BODY_25B_SCALES_RENDER_GPU 1
149  #define POSE_BODY_25B_COLORS_RENDER_GPU \
150  255.f, 0.f, 85.f, \
151  170.f, 0.f, 255.f, \
152  255.f, 0.f, 170.f, \
153  85.f, 0.f, 255.f, \
154  255.f, 0.f, 255.f, \
155  170.f, 255.f, 0.f, \
156  255.f, 85.f, 0.f, \
157  85.f, 255.f, 0.f, \
158  255.f, 170.f, 0.f, \
159  0.f, 255.f, 0.f, \
160  255.f, 255.f, 0.f, \
161  0.f, 170.f, 255.f, \
162  0.f, 255.f, 85.f, \
163  0.f, 85.f, 255.f, \
164  0.f, 255.f, 170.f, \
165  0.f, 0.f, 255.f, \
166  0.f, 255.f, 255.f, \
167  255.f, 0.f, 0.f, \
168  255.f, 0.f, 0.f, \
169  0.f, 0.f, 255.f, \
170  0.f, 0.f, 255.f, \
171  0.f, 0.f, 255.f, \
172  0.f, 255.f, 255.f, \
173  0.f, 255.f, 255.f, \
174  0.f, 255.f, 255.f
175  // BODY_135
176  // Hand color selection
177  // http://www.perbang.dk/rgbgradient/
178  // 1. Main color
179  // - Each finger of the right hand: 11 steps from FF0000 to FF0001 and pick last 5 from HSV gradient.
180  // - Each finger of the left hand: 21 steps from FF0000 to FF0001, choosing 4 among first 6 (HSV grad.),
181  // and then green.
182  // Note: Choosing first 5 from 11 steps was giving 2 very close greens
183  // 2. Gradient color from wrist to finger tips
184  // - Inside each finger: 5 steps from main color to 000000, and selecting first 4 from RGB gradient.
185  // Note: Used HSV gradient for red finger.
186  const auto H135 = 25;
187  const auto F135 = H135 + 40;
188  // 15,19, 19,20, 15,21, 16,22, 22,23, 16,24, 5,17,
189  // 6,17, 17,18, 11,12,
190  #define POSE_BODY_135_PAIRS_RENDER_GPU \
191  0,1, 0,2, 1,3, 2,4, 5,7, 6,8, 7,9, 8,10, 5,11, 6,12, 11,13, 12,14, 13,15, 14,16, \
192  15,19, 19,20, 15,21, 16,22, 22,23, 16,24, 5,6, 17,18, 11,12, \
193  \
194  9,H135+0, H135+0,H135+1, H135+1,H135+2, H135+2,H135+3, 9,H135+4, H135+4,H135+5, H135+5,H135+6, H135+6,H135+7, \
195  9,H135+8, H135+8,H135+9, H135+9,H135+10, H135+10,H135+11, 9,H135+12, H135+12,H135+13, H135+13,H135+14, H135+14,H135+15, \
196  9,H135+16, H135+16,H135+17, H135+17,H135+18, H135+18,H135+19, \
197  \
198  10,H135+20, H135+20,H135+21, H135+21,H135+22, H135+22,H135+23, 10,H135+24, H135+24,H135+25, H135+25,H135+26, H135+26,H135+27, \
199  10,H135+28, H135+28,H135+29, H135+29,H135+30, H135+30,H135+31, 10,H135+32, H135+32,H135+33, H135+33,H135+34, H135+34,H135+35, \
200  10,H135+36, H135+36,H135+37, H135+37,H135+38, H135+38,H135+39, \
201  \
202  F135+0,F135+1, F135+1,F135+2, F135+2,F135+3, F135+3,F135+4, F135+4,F135+5, F135+5,F135+6, F135+6,F135+7, F135+7,F135+8, F135+8,F135+9, F135+9,F135+10, F135+10,F135+11, F135+11,F135+12, F135+12,F135+13, F135+13,F135+14, F135+14,F135+15, F135+15,F135+16, F135+17,F135+18, F135+18,F135+19, F135+19,F135+20, \
203  F135+20,F135+21, F135+22,F135+23, F135+23,F135+24, F135+24,F135+25, F135+25,F135+26, F135+27,F135+28, F135+28,F135+29, F135+29,F135+30, F135+31,F135+32, F135+32,F135+33, F135+33,F135+34, F135+34,F135+35, F135+36,F135+37, F135+37,F135+38, F135+38,F135+39, F135+39,F135+40, F135+40,F135+41, \
204  F135+41,F135+36, F135+42,F135+43, F135+43,F135+44, F135+44,F135+45, F135+45,F135+46, F135+46,F135+47, F135+47,F135+42, F135+48,F135+49, F135+49,F135+50, F135+50,F135+51, F135+51,F135+52, F135+52,F135+53, F135+53,F135+54, F135+54,F135+55, F135+55,F135+56, F135+56,F135+57, F135+57,F135+58, \
205  F135+58,F135+59, F135+59,F135+48, F135+60,F135+61, F135+61,F135+62, F135+62,F135+63, F135+63,F135+64, F135+64,F135+65, F135+65,F135+66, F135+66,F135+67, F135+67,F135+60
206  // Disabled really noisy values
207  #define POSE_BODY_135_SCALES_RENDER_GPU \
208  1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f, 1.f,1.f,1.f,1.f,1.f, 1.f,1.f, \
209  0.00f,0.00f, \
210  1.f,1.f,1.f,1.f,1.f,1.f, \
211  0.60f,0.60f,0.60f,0.60f,0.60f, 0.60f,0.60f,0.60f,0.60f,0.60f, 0.60f,0.60f,0.60f,0.60f,0.60f, 0.60f,0.60f,0.60f,0.60f,0.60f, \
212  0.60f,0.60f,0.60f,0.60f,0.60f, 0.60f,0.60f,0.60f,0.60f,0.60f, 0.60f,0.60f,0.60f,0.60f,0.60f, 0.60f,0.60f,0.60f,0.60f,0.60f, \
213  0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, \
214  0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, \
215  0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f, \
216  0.45f,0.45f,0.45f,0.45f,0.45f, 0.45f,0.45f,0.45f,0.45f,0.45f
217  // First 0.45f row:
218  // 0.00f,0.00f,0.00f,0.00f,0.00f, 0.00f,0.00f,0.00f,0.00f,0.00f, 0.00f,0.00f,0.00f,0.00f,0.00f, 0.00f,0.00f,0.45f,0.45f,0.45f,
219  #define POSE_BODY_135_COLORS_RENDER_GPU \
220  255.f, 0.f, 85.f, \
221  170.f, 0.f, 255.f, \
222  255.f, 0.f, 170.f, \
223  85.f, 0.f, 255.f, \
224  255.f, 0.f, 255.f, \
225  170.f, 255.f, 0.f, \
226  255.f, 85.f, 0.f, \
227  85.f, 255.f, 0.f, \
228  255.f, 170.f, 0.f, \
229  0.f, 255.f, 0.f, \
230  255.f, 255.f, 0.f, \
231  0.f, 170.f, 255.f, \
232  0.f, 255.f, 85.f, \
233  0.f, 85.f, 255.f, \
234  0.f, 255.f, 170.f, \
235  0.f, 0.f, 255.f, \
236  0.f, 255.f, 255.f, \
237  255.f, 0.f, 0.f, \
238  255.f, 0.f, 0.f, \
239  \
240  0.f, 0.f, 255.f, \
241  0.f, 0.f, 255.f, \
242  0.f, 0.f, 255.f, \
243  0.f, 255.f, 255.f, \
244  0.f, 255.f, 255.f, \
245  0.f, 255.f, 255.f, \
246  \
247  255.f, 0.f, 0.f, \
248  191.f, 47.f, 47.f, \
249  127.f, 63.f, 63.f, \
250  63.f, 47.f, 47.f, \
251  255.f, 76.f, 0.f, \
252  191.f, 57.f, 0.f, \
253  127.f, 38.f, 0.f, \
254  63.f, 19.f, 0.f, \
255  255.f, 152.f, 0.f, \
256  191.f, 114.f, 0.f, \
257  127.f, 76.f, 0.f, \
258  63.f, 38.f, 0.f, \
259  255.f, 255.f, 0.f, \
260  191.f, 191.f, 0.f, \
261  127.f, 127.f, 0.f, \
262  63.f, 63.f, 0.f, \
263  0.f, 255.f, 0.f, \
264  0.f, 191.f, 0.f, \
265  0.f, 127.f, 0.f, \
266  0.f, 63.f, 0.f, \
267  \
268  255.f, 0.f, 153.f, \
269  191.f, 0.f, 114.f, \
270  127.f, 0.f, 76.f, \
271  63.f, 0.f, 38.f, \
272  203.f, 0.f, 255.f, \
273  152.f, 0.f, 191.f, \
274  101.f, 0.f, 127.f, \
275  50.f, 0.f, 63.f, \
276  50.f, 0.f, 255.f, \
277  37.f, 0.f, 191.f, \
278  25.f, 0.f, 127.f, \
279  12.f, 0.f, 63.f, \
280  0.f, 102.f, 255.f, \
281  0.f, 76.f, 191.f, \
282  0.f, 51.f, 127.f, \
283  0.f, 25.f, 63.f, \
284  0.f, 255.f, 255.f, \
285  0.f, 191.f, 191.f, \
286  0.f, 127.f, 127.f, \
287  0.f, 63.f, 63.f, \
288  \
289  255.f, 255.f, 255.f, \
290  255.f, 255.f, 255.f, \
291  255.f, 255.f, 255.f, \
292  255.f, 255.f, 255.f, \
293  255.f, 255.f, 255.f, \
294  255.f, 255.f, 255.f, \
295  255.f, 255.f, 255.f, \
296  255.f, 255.f, 255.f, \
297  255.f, 255.f, 255.f, \
298  255.f, 255.f, 255.f, \
299  255.f, 255.f, 255.f, \
300  255.f, 255.f, 255.f, \
301  255.f, 255.f, 255.f, \
302  255.f, 255.f, 255.f, \
303  255.f, 255.f, 255.f, \
304  255.f, 255.f, 255.f, \
305  255.f, 255.f, 255.f, \
306  255.f, 255.f, 255.f, \
307  255.f, 255.f, 255.f, \
308  255.f, 255.f, 255.f, \
309  255.f, 255.f, 255.f, \
310  255.f, 255.f, 255.f, \
311  255.f, 255.f, 255.f, \
312  255.f, 255.f, 255.f, \
313  255.f, 255.f, 255.f, \
314  255.f, 255.f, 255.f, \
315  255.f, 255.f, 255.f, \
316  255.f, 255.f, 255.f, \
317  255.f, 255.f, 255.f, \
318  255.f, 255.f, 255.f, \
319  255.f, 255.f, 255.f, \
320  255.f, 255.f, 255.f, \
321  255.f, 255.f, 255.f, \
322  255.f, 255.f, 255.f, \
323  255.f, 255.f, 255.f, \
324  255.f, 255.f, 255.f, \
325  255.f, 255.f, 255.f, \
326  255.f, 255.f, 255.f, \
327  255.f, 255.f, 255.f, \
328  255.f, 255.f, 255.f, \
329  255.f, 255.f, 255.f, \
330  255.f, 255.f, 255.f, \
331  255.f, 255.f, 255.f, \
332  255.f, 255.f, 255.f, \
333  255.f, 255.f, 255.f, \
334  255.f, 255.f, 255.f, \
335  255.f, 255.f, 255.f, \
336  255.f, 255.f, 255.f, \
337  255.f, 255.f, 255.f, \
338  255.f, 255.f, 255.f, \
339  255.f, 255.f, 255.f, \
340  255.f, 255.f, 255.f, \
341  255.f, 255.f, 255.f, \
342  255.f, 255.f, 255.f, \
343  255.f, 255.f, 255.f, \
344  255.f, 255.f, 255.f, \
345  255.f, 255.f, 255.f, \
346  255.f, 255.f, 255.f, \
347  255.f, 255.f, 255.f, \
348  255.f, 255.f, 255.f, \
349  255.f, 255.f, 255.f, \
350  255.f, 255.f, 255.f, \
351  255.f, 255.f, 255.f, \
352  255.f, 255.f, 255.f, \
353  255.f, 255.f, 255.f, \
354  255.f, 255.f, 255.f, \
355  255.f, 255.f, 255.f, \
356  255.f, 255.f, 255.f, \
357  255.f, 255.f, 255.f, \
358  255.f, 255.f, 255.f
359 
360  // CAR_12
361  #define POSE_CAR_12_PAIRS_RENDER_GPU \
362  4,5, 4,6, 4,0, 0,2, 4,8, 8,10, 5,7, 5,1, 1,3, 5,9, 9,11, 0,1, 8,9, 2,3, 6,7, 10,11, 6,2,7,3, 6,10,7,11
363  // 4,5, 4,6, 4,0, 0,2, 4,8, 8,10, 5,7, 5,1, 1,3, 5,9, 9,11
364  #define POSE_CAR_12_SCALES_RENDER_GPU 0.5
365  #define POSE_CAR_12_COLORS_RENDER_GPU \
366  0.f, 255.f, 0.f, \
367  0.f, 255.f, 0.f, \
368  255.f, 255.f, 0.f, \
369  255.f, 255.f, 0.f, \
370  \
371  255.f, 0.f, 0.f, \
372  255.f, 0.f, 0.f, \
373  255.f, 75.f, 75.f, \
374  255.f, 75.f, 75.f, \
375  \
376  0.f, 0.f, 255.f, \
377  0.f, 0.f, 255.f, \
378  255.f, 0.f, 255.f, \
379  255.f, 0.f, 255.f
380 
381  // CAR_22
382  #define POSE_CAR_22_PAIRS_RENDER_GPU \
383  0,1,1,3,3,2,2,0, 6,7,7,16,16,17,17,6, 12,13,13,14,14,15,15,12, 6,8,7,8,6,9,7,9,6,4,7,5, 12,11,13,10, \
384  16,18,17,18,16,19,17,19, 6,21,7,20
385  #define POSE_CAR_22_SCALES_RENDER_GPU 0.625
386  #define POSE_CAR_22_COLORS_RENDER_GPU \
387  255.f, 128.f, 128.f, \
388  255.f, 0.f, 0.f, \
389  64.f, 0.f, 0.f, \
390  255.f, 0.f, 0.f, \
391  \
392  0.f, 255.f, 0.f, \
393  0.f, 255.f, 0.f, \
394  \
395  0.f, 0.f, 64.f, \
396  128.f, 128.f, 255.f, \
397  \
398  0.f, 255.f, 0.f, \
399  0.f, 255.f, 0.f, \
400  \
401  0.f, 255.f, 0.f, \
402  0.f, 255.f, 0.f, \
403  \
404  64.f, 0.f, 0.f, \
405  255.f, 128.f, 128.f, \
406  255.f, 0.f, 0.f, \
407  255.f, 0.f, 0.f, \
408  \
409  0.f, 0.f, 255.f, \
410  0.f, 0.f, 255.f, \
411  \
412  0.f, 255.f, 0.f, \
413  0.f, 255.f, 0.f, \
414  \
415  0.f, 0.f, 255.f, \
416  0.f, 0.f, 64.f
417 
418  // Rendering functions
419  OP_API const std::vector<float>& getPoseScales(const PoseModel poseModel);
420  OP_API const std::vector<float>& getPoseColors(const PoseModel poseModel);
421  OP_API const std::vector<unsigned int>& getPoseBodyPartPairsRender(const PoseModel poseModel);
422  OP_API unsigned int getNumberElementsToRender(const PoseModel poseModel);
423 }
424 
425 #endif // OPENPOSE_POSE_POSE_PARAMETERS_RENDER_HPP
#define OP_API
Definition: macros.hpp:18
OP_API const std::vector< float > & getPoseScales(const PoseModel poseModel)
OP_API const std::vector< unsigned int > & getPoseBodyPartPairsRender(const PoseModel poseModel)
const auto POSE_DEFAULT_ALPHA_KEYPOINT
const auto F135
OP_API const std::vector< float > & getPoseColors(const PoseModel poseModel)
const auto H135
OP_API unsigned int getNumberElementsToRender(const PoseModel poseModel)
const auto POSE_DEFAULT_ALPHA_HEAT_MAP
PoseModel
Definition: enumClasses.hpp:10