SHAPER
9.15.0
ModelHighAPI_Macro.h
1
// Copyright (C) 2014-2025 CEA, EDF
2
//
3
// This library is free software; you can redistribute it and/or
4
// modify it under the terms of the GNU Lesser General Public
5
// License as published by the Free Software Foundation; either
6
// version 2.1 of the License, or (at your option) any later version.
7
//
8
// This library is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
// Lesser General Public License for more details.
12
//
13
// You should have received a copy of the GNU Lesser General Public
14
// License along with this library; if not, write to the Free Software
15
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
//
17
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18
//
19
20
#ifndef SRC_MODELHIGHAPI_MODELHIGHAPI_MACRO_H_
21
#define SRC_MODELHIGHAPI_MODELHIGHAPI_MACRO_H_
22
23
//--------------------------------------------------------------------------------------
24
#include <GeomDataAPI_Dir.h>
25
#include <GeomDataAPI_Point.h>
26
#include <GeomDataAPI_Point2D.h>
27
//--------------------------------------------------------------------------------------
28
#include <ModelAPI_AttributeBoolean.h>
29
#include <ModelAPI_AttributeDocRef.h>
30
#include <ModelAPI_AttributeDouble.h>
31
#include <ModelAPI_AttributeIntArray.h>
32
#include <ModelAPI_AttributeInteger.h>
33
#include <ModelAPI_AttributeRefAttr.h>
34
#include <ModelAPI_AttributeRefAttrList.h>
35
#include <ModelAPI_AttributeReference.h>
36
#include <ModelAPI_AttributeRefList.h>
37
#include <ModelAPI_AttributeSelection.h>
38
#include <ModelAPI_AttributeSelectionList.h>
39
#include <ModelAPI_AttributeString.h>
40
#include <ModelAPI_Feature.h>
41
42
//--------------------------------------------------------------------------------------
43
#define VAR_NAME(NAME) my##NAME
44
45
//--------------------------------------------------------------------------------------
46
#define TO_STRING_(NAME) #NAME
47
#define TO_STRING(NAME) TO_STRING_(NAME)
48
49
//--------------------------------------------------------------------------------------
50
// Used in INTERFACE_N for create variable and getter
51
#define DEFINE_ATTRIBUTE(NAME, TYPE, COMMENT) \
52
COMMENT \
53
virtual std::shared_ptr<TYPE> NAME() const { return VAR_NAME(NAME); } \
54
protected: \
55
std::shared_ptr<TYPE> VAR_NAME(NAME); \
56
public:
57
58
//--------------------------------------------------------------------------------------
59
// Used in INTERFACE_N inside START_INIT/END_INIT for
60
// set variable with attribute received from feature
61
#define SET_ATTRIBUTE(NAME, TYPE, ATT_NAME) \
62
VAR_NAME(NAME) = std::dynamic_pointer_cast<TYPE>(feature()->attribute(ATT_NAME)); \
63
if (!VAR_NAME(NAME)) \
64
return false; \
65
myAttrGetter[ATT_NAME] = TO_STRING(NAME);
66
67
//--------------------------------------------------------------------------------------
68
#define INTERFACE_COMMON(KIND) \
69
static std::string ID() { return KIND; }\
70
virtual std::string getID() { return ID(); }
71
72
//--------------------------------------------------------------------------------------
73
#define START_INIT() \
74
bool initialize() { \
75
if (!feature()) { \
76
throwException(ID() + " exception: The feature is NULL."
); \
77
return false; \
78
} \
79
if (getKind() != getID()) { \
80
throwException(ID() + " exception: Wrong feature kind."); \
81
return false; \
82
}
83
84
//--------------------------------------------------------------------------------------
85
#define END_INIT() \
86
return true; \
87
}
88
89
//--------------------------------------------------------------------------------------
90
#define INTERFACE_0(KIND) \
91
public: \
92
INTERFACE_COMMON(KIND) \
93
protected: \
94
START_INIT() \
95
END_INIT() \
96
public:
97
98
//--------------------------------------------------------------------------------------
99
#define INTERFACE_1(KIND, \
100
N_0, AN_0, T_0, C_0) \
101
public: \
102
INTERFACE_COMMON(KIND) \
103
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
104
protected: \
105
START_INIT() \
106
SET_ATTRIBUTE(N_0, T_0, AN_0) \
107
END_INIT() \
108
public:
109
110
//--------------------------------------------------------------------------------------
111
#define INTERFACE_2(KIND, \
112
N_0, AN_0, T_0, C_0, \
113
N_1, AN_1, T_1, C_1) \
114
public: \
115
INTERFACE_COMMON(KIND) \
116
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
117
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
118
protected: \
119
START_INIT() \
120
SET_ATTRIBUTE(N_0, T_0, AN_0) \
121
SET_ATTRIBUTE(N_1, T_1, AN_1) \
122
END_INIT() \
123
public:
124
125
//--------------------------------------------------------------------------------------
126
#define INTERFACE_3(KIND, \
127
N_0, AN_0, T_0, C_0, \
128
N_1, AN_1, T_1, C_1, \
129
N_2, AN_2, T_2, C_2) \
130
public: \
131
INTERFACE_COMMON(KIND) \
132
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
133
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
134
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
135
protected: \
136
START_INIT() \
137
SET_ATTRIBUTE(N_0, T_0, AN_0) \
138
SET_ATTRIBUTE(N_1, T_1, AN_1) \
139
SET_ATTRIBUTE(N_2, T_2, AN_2) \
140
END_INIT() \
141
public:
142
143
//--------------------------------------------------------------------------------------
144
#define INTERFACE_4(KIND, \
145
N_0, AN_0, T_0, C_0, \
146
N_1, AN_1, T_1, C_1, \
147
N_2, AN_2, T_2, C_2, \
148
N_3, AN_3, T_3, C_3) \
149
public: \
150
INTERFACE_COMMON(KIND) \
151
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
152
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
153
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
154
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
155
protected: \
156
START_INIT() \
157
SET_ATTRIBUTE(N_0, T_0, AN_0) \
158
SET_ATTRIBUTE(N_1, T_1, AN_1) \
159
SET_ATTRIBUTE(N_2, T_2, AN_2) \
160
SET_ATTRIBUTE(N_3, T_3, AN_3) \
161
END_INIT() \
162
public:
163
164
//--------------------------------------------------------------------------------------
165
#define INTERFACE_5(KIND, \
166
N_0, AN_0, T_0, C_0, \
167
N_1, AN_1, T_1, C_1, \
168
N_2, AN_2, T_2, C_2, \
169
N_3, AN_3, T_3, C_3, \
170
N_4, AN_4, T_4, C_4) \
171
public: \
172
INTERFACE_COMMON(KIND) \
173
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
174
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
175
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
176
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
177
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
178
protected: \
179
START_INIT() \
180
SET_ATTRIBUTE(N_0, T_0, AN_0) \
181
SET_ATTRIBUTE(N_1, T_1, AN_1) \
182
SET_ATTRIBUTE(N_2, T_2, AN_2) \
183
SET_ATTRIBUTE(N_3, T_3, AN_3) \
184
SET_ATTRIBUTE(N_4, T_4, AN_4) \
185
END_INIT() \
186
public:
187
188
//--------------------------------------------------------------------------------------
189
#define INTERFACE_6(KIND, \
190
N_0, AN_0, T_0, C_0, \
191
N_1, AN_1, T_1, C_1, \
192
N_2, AN_2, T_2, C_2, \
193
N_3, AN_3, T_3, C_3, \
194
N_4, AN_4, T_4, C_4, \
195
N_5, AN_5, T_5, C_5) \
196
public: \
197
INTERFACE_COMMON(KIND) \
198
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
199
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
200
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
201
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
202
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
203
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
204
protected: \
205
START_INIT() \
206
SET_ATTRIBUTE(N_0, T_0, AN_0) \
207
SET_ATTRIBUTE(N_1, T_1, AN_1) \
208
SET_ATTRIBUTE(N_2, T_2, AN_2) \
209
SET_ATTRIBUTE(N_3, T_3, AN_3) \
210
SET_ATTRIBUTE(N_4, T_4, AN_4) \
211
SET_ATTRIBUTE(N_5, T_5, AN_5) \
212
END_INIT() \
213
public:
214
215
//--------------------------------------------------------------------------------------
216
#define INTERFACE_7(KIND, \
217
N_0, AN_0, T_0, C_0, \
218
N_1, AN_1, T_1, C_1, \
219
N_2, AN_2, T_2, C_2, \
220
N_3, AN_3, T_3, C_3, \
221
N_4, AN_4, T_4, C_4, \
222
N_5, AN_5, T_5, C_5, \
223
N_6, AN_6, T_6, C_6) \
224
public: \
225
INTERFACE_COMMON(KIND) \
226
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
227
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
228
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
229
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
230
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
231
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
232
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
233
protected: \
234
START_INIT() \
235
SET_ATTRIBUTE(N_0, T_0, AN_0) \
236
SET_ATTRIBUTE(N_1, T_1, AN_1) \
237
SET_ATTRIBUTE(N_2, T_2, AN_2) \
238
SET_ATTRIBUTE(N_3, T_3, AN_3) \
239
SET_ATTRIBUTE(N_4, T_4, AN_4) \
240
SET_ATTRIBUTE(N_5, T_5, AN_5) \
241
SET_ATTRIBUTE(N_6, T_6, AN_6) \
242
END_INIT() \
243
public:
244
245
//--------------------------------------------------------------------------------------
246
#define INTERFACE_8(KIND, \
247
N_0, AN_0, T_0, C_0, \
248
N_1, AN_1, T_1, C_1, \
249
N_2, AN_2, T_2, C_2, \
250
N_3, AN_3, T_3, C_3, \
251
N_4, AN_4, T_4, C_4, \
252
N_5, AN_5, T_5, C_5, \
253
N_6, AN_6, T_6, C_6, \
254
N_7, AN_7, T_7, C_7) \
255
public: \
256
INTERFACE_COMMON(KIND) \
257
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
258
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
259
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
260
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
261
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
262
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
263
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
264
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
265
protected: \
266
START_INIT() \
267
SET_ATTRIBUTE(N_0, T_0, AN_0) \
268
SET_ATTRIBUTE(N_1, T_1, AN_1) \
269
SET_ATTRIBUTE(N_2, T_2, AN_2) \
270
SET_ATTRIBUTE(N_3, T_3, AN_3) \
271
SET_ATTRIBUTE(N_4, T_4, AN_4) \
272
SET_ATTRIBUTE(N_5, T_5, AN_5) \
273
SET_ATTRIBUTE(N_6, T_6, AN_6) \
274
SET_ATTRIBUTE(N_7, T_7, AN_7) \
275
END_INIT() \
276
public:
277
278
//--------------------------------------------------------------------------------------
279
#define INTERFACE_9(KIND, \
280
N_0, AN_0, T_0, C_0, \
281
N_1, AN_1, T_1, C_1, \
282
N_2, AN_2, T_2, C_2, \
283
N_3, AN_3, T_3, C_3, \
284
N_4, AN_4, T_4, C_4, \
285
N_5, AN_5, T_5, C_5, \
286
N_6, AN_6, T_6, C_6, \
287
N_7, AN_7, T_7, C_7, \
288
N_8, AN_8, T_8, C_8) \
289
public: \
290
INTERFACE_COMMON(KIND) \
291
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
292
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
293
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
294
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
295
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
296
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
297
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
298
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
299
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
300
protected: \
301
START_INIT() \
302
SET_ATTRIBUTE(N_0, T_0, AN_0) \
303
SET_ATTRIBUTE(N_1, T_1, AN_1) \
304
SET_ATTRIBUTE(N_2, T_2, AN_2) \
305
SET_ATTRIBUTE(N_3, T_3, AN_3) \
306
SET_ATTRIBUTE(N_4, T_4, AN_4) \
307
SET_ATTRIBUTE(N_5, T_5, AN_5) \
308
SET_ATTRIBUTE(N_6, T_6, AN_6) \
309
SET_ATTRIBUTE(N_7, T_7, AN_7) \
310
SET_ATTRIBUTE(N_8, T_8, AN_8) \
311
END_INIT() \
312
public:
313
314
//--------------------------------------------------------------------------------------
315
#define INTERFACE_10(KIND, \
316
N_0, AN_0, T_0, C_0, \
317
N_1, AN_1, T_1, C_1, \
318
N_2, AN_2, T_2, C_2, \
319
N_3, AN_3, T_3, C_3, \
320
N_4, AN_4, T_4, C_4, \
321
N_5, AN_5, T_5, C_5, \
322
N_6, AN_6, T_6, C_6, \
323
N_7, AN_7, T_7, C_7, \
324
N_8, AN_8, T_8, C_8, \
325
N_9, AN_9, T_9, C_9) \
326
public: \
327
INTERFACE_COMMON(KIND) \
328
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
329
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
330
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
331
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
332
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
333
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
334
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
335
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
336
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
337
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
338
protected: \
339
START_INIT() \
340
SET_ATTRIBUTE(N_0, T_0, AN_0) \
341
SET_ATTRIBUTE(N_1, T_1, AN_1) \
342
SET_ATTRIBUTE(N_2, T_2, AN_2) \
343
SET_ATTRIBUTE(N_3, T_3, AN_3) \
344
SET_ATTRIBUTE(N_4, T_4, AN_4) \
345
SET_ATTRIBUTE(N_5, T_5, AN_5) \
346
SET_ATTRIBUTE(N_6, T_6, AN_6) \
347
SET_ATTRIBUTE(N_7, T_7, AN_7) \
348
SET_ATTRIBUTE(N_8, T_8, AN_8) \
349
SET_ATTRIBUTE(N_9, T_9, AN_9) \
350
END_INIT() \
351
public:
352
353
//--------------------------------------------------------------------------------------
354
#define INTERFACE_11(KIND, \
355
N_0, AN_0, T_0, C_0, \
356
N_1, AN_1, T_1, C_1, \
357
N_2, AN_2, T_2, C_2, \
358
N_3, AN_3, T_3, C_3, \
359
N_4, AN_4, T_4, C_4, \
360
N_5, AN_5, T_5, C_5, \
361
N_6, AN_6, T_6, C_6, \
362
N_7, AN_7, T_7, C_7, \
363
N_8, AN_8, T_8, C_8, \
364
N_9, AN_9, T_9, C_9, \
365
N_10, AN_10, T_10, C_10) \
366
public: \
367
INTERFACE_COMMON(KIND) \
368
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
369
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
370
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
371
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
372
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
373
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
374
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
375
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
376
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
377
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
378
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
379
protected: \
380
START_INIT() \
381
SET_ATTRIBUTE(N_0, T_0, AN_0) \
382
SET_ATTRIBUTE(N_1, T_1, AN_1) \
383
SET_ATTRIBUTE(N_2, T_2, AN_2) \
384
SET_ATTRIBUTE(N_3, T_3, AN_3) \
385
SET_ATTRIBUTE(N_4, T_4, AN_4) \
386
SET_ATTRIBUTE(N_5, T_5, AN_5) \
387
SET_ATTRIBUTE(N_6, T_6, AN_6) \
388
SET_ATTRIBUTE(N_7, T_7, AN_7) \
389
SET_ATTRIBUTE(N_8, T_8, AN_8) \
390
SET_ATTRIBUTE(N_9, T_9, AN_9) \
391
SET_ATTRIBUTE(N_10, T_10, AN_10) \
392
END_INIT() \
393
public:
394
395
//--------------------------------------------------------------------------------------
396
#define INTERFACE_12(KIND, \
397
N_0, AN_0, T_0, C_0, \
398
N_1, AN_1, T_1, C_1, \
399
N_2, AN_2, T_2, C_2, \
400
N_3, AN_3, T_3, C_3, \
401
N_4, AN_4, T_4, C_4, \
402
N_5, AN_5, T_5, C_5, \
403
N_6, AN_6, T_6, C_6, \
404
N_7, AN_7, T_7, C_7, \
405
N_8, AN_8, T_8, C_8, \
406
N_9, AN_9, T_9, C_9, \
407
N_10, AN_10, T_10, C_10, \
408
N_11, AN_11, T_11, C_11) \
409
public: \
410
INTERFACE_COMMON(KIND) \
411
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
412
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
413
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
414
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
415
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
416
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
417
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
418
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
419
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
420
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
421
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
422
DEFINE_ATTRIBUTE(N_11, T_11, C_11) \
423
protected: \
424
START_INIT() \
425
SET_ATTRIBUTE(N_0, T_0, AN_0) \
426
SET_ATTRIBUTE(N_1, T_1, AN_1) \
427
SET_ATTRIBUTE(N_2, T_2, AN_2) \
428
SET_ATTRIBUTE(N_3, T_3, AN_3) \
429
SET_ATTRIBUTE(N_4, T_4, AN_4) \
430
SET_ATTRIBUTE(N_5, T_5, AN_5) \
431
SET_ATTRIBUTE(N_6, T_6, AN_6) \
432
SET_ATTRIBUTE(N_7, T_7, AN_7) \
433
SET_ATTRIBUTE(N_8, T_8, AN_8) \
434
SET_ATTRIBUTE(N_9, T_9, AN_9) \
435
SET_ATTRIBUTE(N_10, T_10, AN_10) \
436
SET_ATTRIBUTE(N_11, T_11, AN_11) \
437
END_INIT() \
438
public:
439
440
//--------------------------------------------------------------------------------------
441
#define INTERFACE_13(KIND, \
442
N_0, AN_0, T_0, C_0, \
443
N_1, AN_1, T_1, C_1, \
444
N_2, AN_2, T_2, C_2, \
445
N_3, AN_3, T_3, C_3, \
446
N_4, AN_4, T_4, C_4, \
447
N_5, AN_5, T_5, C_5, \
448
N_6, AN_6, T_6, C_6, \
449
N_7, AN_7, T_7, C_7, \
450
N_8, AN_8, T_8, C_8, \
451
N_9, AN_9, T_9, C_9, \
452
N_10, AN_10, T_10, C_10, \
453
N_11, AN_11, T_11, C_11, \
454
N_12, AN_12, T_12, C_12) \
455
public: \
456
INTERFACE_COMMON(KIND) \
457
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
458
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
459
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
460
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
461
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
462
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
463
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
464
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
465
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
466
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
467
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
468
DEFINE_ATTRIBUTE(N_11, T_11, C_11) \
469
DEFINE_ATTRIBUTE(N_12, T_12, C_12) \
470
protected: \
471
START_INIT() \
472
SET_ATTRIBUTE(N_0, T_0, AN_0) \
473
SET_ATTRIBUTE(N_1, T_1, AN_1) \
474
SET_ATTRIBUTE(N_2, T_2, AN_2) \
475
SET_ATTRIBUTE(N_3, T_3, AN_3) \
476
SET_ATTRIBUTE(N_4, T_4, AN_4) \
477
SET_ATTRIBUTE(N_5, T_5, AN_5) \
478
SET_ATTRIBUTE(N_6, T_6, AN_6) \
479
SET_ATTRIBUTE(N_7, T_7, AN_7) \
480
SET_ATTRIBUTE(N_8, T_8, AN_8) \
481
SET_ATTRIBUTE(N_9, T_9, AN_9) \
482
SET_ATTRIBUTE(N_10, T_10, AN_10) \
483
SET_ATTRIBUTE(N_11, T_11, AN_11) \
484
SET_ATTRIBUTE(N_12, T_12, AN_12) \
485
END_INIT() \
486
public:
487
488
//--------------------------------------------------------------------------------------
489
#define INTERFACE_14(KIND, \
490
N_0, AN_0, T_0, C_0, \
491
N_1, AN_1, T_1, C_1, \
492
N_2, AN_2, T_2, C_2, \
493
N_3, AN_3, T_3, C_3, \
494
N_4, AN_4, T_4, C_4, \
495
N_5, AN_5, T_5, C_5, \
496
N_6, AN_6, T_6, C_6, \
497
N_7, AN_7, T_7, C_7, \
498
N_8, AN_8, T_8, C_8, \
499
N_9, AN_9, T_9, C_9, \
500
N_10, AN_10, T_10, C_10, \
501
N_11, AN_11, T_11, C_11, \
502
N_12, AN_12, T_12, C_12, \
503
N_13, AN_13, T_13, C_13) \
504
public: \
505
INTERFACE_COMMON(KIND) \
506
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
507
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
508
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
509
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
510
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
511
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
512
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
513
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
514
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
515
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
516
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
517
DEFINE_ATTRIBUTE(N_11, T_11, C_11) \
518
DEFINE_ATTRIBUTE(N_12, T_12, C_12) \
519
DEFINE_ATTRIBUTE(N_13, T_13, C_13) \
520
protected: \
521
START_INIT() \
522
SET_ATTRIBUTE(N_0, T_0, AN_0) \
523
SET_ATTRIBUTE(N_1, T_1, AN_1) \
524
SET_ATTRIBUTE(N_2, T_2, AN_2) \
525
SET_ATTRIBUTE(N_3, T_3, AN_3) \
526
SET_ATTRIBUTE(N_4, T_4, AN_4) \
527
SET_ATTRIBUTE(N_5, T_5, AN_5) \
528
SET_ATTRIBUTE(N_6, T_6, AN_6) \
529
SET_ATTRIBUTE(N_7, T_7, AN_7) \
530
SET_ATTRIBUTE(N_8, T_8, AN_8) \
531
SET_ATTRIBUTE(N_9, T_9, AN_9) \
532
SET_ATTRIBUTE(N_10, T_10, AN_10) \
533
SET_ATTRIBUTE(N_11, T_11, AN_11) \
534
SET_ATTRIBUTE(N_12, T_12, AN_12) \
535
SET_ATTRIBUTE(N_13, T_13, AN_13) \
536
END_INIT() \
537
public:
538
539
//--------------------------------------------------------------------------------------
540
#define INTERFACE_17(KIND, \
541
N_0, AN_0, T_0, C_0, \
542
N_1, AN_1, T_1, C_1, \
543
N_2, AN_2, T_2, C_2, \
544
N_3, AN_3, T_3, C_3, \
545
N_4, AN_4, T_4, C_4, \
546
N_5, AN_5, T_5, C_5, \
547
N_6, AN_6, T_6, C_6, \
548
N_7, AN_7, T_7, C_7, \
549
N_8, AN_8, T_8, C_8, \
550
N_9, AN_9, T_9, C_9, \
551
N_10, AN_10, T_10, C_10, \
552
N_11, AN_11, T_11, C_11, \
553
N_12, AN_12, T_12, C_12, \
554
N_13, AN_13, T_13, C_13, \
555
N_14, AN_14, T_14, C_14, \
556
N_15, AN_15, T_15, C_15, \
557
N_16, AN_16, T_16, C_16) \
558
public: \
559
INTERFACE_COMMON(KIND) \
560
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
561
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
562
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
563
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
564
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
565
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
566
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
567
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
568
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
569
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
570
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
571
DEFINE_ATTRIBUTE(N_11, T_11, C_11) \
572
DEFINE_ATTRIBUTE(N_12, T_12, C_12) \
573
DEFINE_ATTRIBUTE(N_13, T_13, C_13) \
574
DEFINE_ATTRIBUTE(N_14, T_14, C_14) \
575
DEFINE_ATTRIBUTE(N_15, T_15, C_15) \
576
DEFINE_ATTRIBUTE(N_16, T_16, C_16) \
577
protected: \
578
START_INIT() \
579
SET_ATTRIBUTE(N_0, T_0, AN_0) \
580
SET_ATTRIBUTE(N_1, T_1, AN_1) \
581
SET_ATTRIBUTE(N_2, T_2, AN_2) \
582
SET_ATTRIBUTE(N_3, T_3, AN_3) \
583
SET_ATTRIBUTE(N_4, T_4, AN_4) \
584
SET_ATTRIBUTE(N_5, T_5, AN_5) \
585
SET_ATTRIBUTE(N_6, T_6, AN_6) \
586
SET_ATTRIBUTE(N_7, T_7, AN_7) \
587
SET_ATTRIBUTE(N_8, T_8, AN_8) \
588
SET_ATTRIBUTE(N_9, T_9, AN_9) \
589
SET_ATTRIBUTE(N_10, T_10, AN_10) \
590
SET_ATTRIBUTE(N_11, T_11, AN_11) \
591
SET_ATTRIBUTE(N_12, T_12, AN_12) \
592
SET_ATTRIBUTE(N_13, T_13, AN_13) \
593
SET_ATTRIBUTE(N_14, T_14, AN_14) \
594
SET_ATTRIBUTE(N_15, T_15, AN_15) \
595
SET_ATTRIBUTE(N_16, T_16, AN_16) \
596
END_INIT() \
597
public:
598
599
//--------------------------------------------------------------------------------------
600
#define INTERFACE_21(KIND, \
601
N_0, AN_0, T_0, C_0, \
602
N_1, AN_1, T_1, C_1, \
603
N_2, AN_2, T_2, C_2, \
604
N_3, AN_3, T_3, C_3, \
605
N_4, AN_4, T_4, C_4, \
606
N_5, AN_5, T_5, C_5, \
607
N_6, AN_6, T_6, C_6, \
608
N_7, AN_7, T_7, C_7, \
609
N_8, AN_8, T_8, C_8, \
610
N_9, AN_9, T_9, C_9, \
611
N_10, AN_10, T_10, C_10, \
612
N_11, AN_11, T_11, C_11, \
613
N_12, AN_12, T_12, C_12, \
614
N_13, AN_13, T_13, C_13, \
615
N_14, AN_14, T_14, C_14, \
616
N_15, AN_15, T_15, C_15, \
617
N_16, AN_16, T_16, C_16, \
618
N_17, AN_17, T_17, C_17, \
619
N_18, AN_18, T_18, C_18, \
620
N_19, AN_19, T_19, C_19, \
621
N_20, AN_20, T_20, C_20) \
622
public: \
623
INTERFACE_COMMON(KIND) \
624
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
625
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
626
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
627
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
628
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
629
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
630
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
631
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
632
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
633
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
634
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
635
DEFINE_ATTRIBUTE(N_11, T_11, C_11) \
636
DEFINE_ATTRIBUTE(N_12, T_12, C_12) \
637
DEFINE_ATTRIBUTE(N_13, T_13, C_13) \
638
DEFINE_ATTRIBUTE(N_14, T_14, C_14) \
639
DEFINE_ATTRIBUTE(N_15, T_15, C_15) \
640
DEFINE_ATTRIBUTE(N_16, T_16, C_16) \
641
DEFINE_ATTRIBUTE(N_17, T_17, C_17) \
642
DEFINE_ATTRIBUTE(N_18, T_18, C_18) \
643
DEFINE_ATTRIBUTE(N_19, T_19, C_19) \
644
DEFINE_ATTRIBUTE(N_20, T_20, C_20) \
645
protected: \
646
START_INIT() \
647
SET_ATTRIBUTE(N_0, T_0, AN_0) \
648
SET_ATTRIBUTE(N_1, T_1, AN_1) \
649
SET_ATTRIBUTE(N_2, T_2, AN_2) \
650
SET_ATTRIBUTE(N_3, T_3, AN_3) \
651
SET_ATTRIBUTE(N_4, T_4, AN_4) \
652
SET_ATTRIBUTE(N_5, T_5, AN_5) \
653
SET_ATTRIBUTE(N_6, T_6, AN_6) \
654
SET_ATTRIBUTE(N_7, T_7, AN_7) \
655
SET_ATTRIBUTE(N_8, T_8, AN_8) \
656
SET_ATTRIBUTE(N_9, T_9, AN_9) \
657
SET_ATTRIBUTE(N_10, T_10, AN_10) \
658
SET_ATTRIBUTE(N_11, T_11, AN_11) \
659
SET_ATTRIBUTE(N_12, T_12, AN_12) \
660
SET_ATTRIBUTE(N_13, T_13, AN_13) \
661
SET_ATTRIBUTE(N_14, T_14, AN_14) \
662
SET_ATTRIBUTE(N_15, T_15, AN_15) \
663
SET_ATTRIBUTE(N_16, T_16, AN_16) \
664
SET_ATTRIBUTE(N_17, T_17, AN_17) \
665
SET_ATTRIBUTE(N_18, T_18, AN_18) \
666
SET_ATTRIBUTE(N_19, T_19, AN_19) \
667
SET_ATTRIBUTE(N_20, T_20, AN_20) \
668
END_INIT() \
669
public:
670
671
//--------------------------------------------------------------------------------------
672
#define INTERFACE_25(KIND, \
673
N_0, AN_0, T_0, C_0, \
674
N_1, AN_1, T_1, C_1, \
675
N_2, AN_2, T_2, C_2, \
676
N_3, AN_3, T_3, C_3, \
677
N_4, AN_4, T_4, C_4, \
678
N_5, AN_5, T_5, C_5, \
679
N_6, AN_6, T_6, C_6, \
680
N_7, AN_7, T_7, C_7, \
681
N_8, AN_8, T_8, C_8, \
682
N_9, AN_9, T_9, C_9, \
683
N_10, AN_10, T_10, C_10, \
684
N_11, AN_11, T_11, C_11, \
685
N_12, AN_12, T_12, C_12, \
686
N_13, AN_13, T_13, C_13, \
687
N_14, AN_14, T_14, C_14, \
688
N_15, AN_15, T_15, C_15, \
689
N_16, AN_16, T_16, C_16, \
690
N_17, AN_17, T_17, C_17, \
691
N_18, AN_18, T_18, C_18, \
692
N_19, AN_19, T_19, C_19, \
693
N_20, AN_20, T_20, C_20, \
694
N_21, AN_21, T_21, C_21, \
695
N_22, AN_22, T_22, C_22, \
696
N_23, AN_23, T_23, C_23, \
697
N_24, AN_24, T_24, C_24) \
698
public: \
699
INTERFACE_COMMON(KIND) \
700
DEFINE_ATTRIBUTE(N_0, T_0, C_0) \
701
DEFINE_ATTRIBUTE(N_1, T_1, C_1) \
702
DEFINE_ATTRIBUTE(N_2, T_2, C_2) \
703
DEFINE_ATTRIBUTE(N_3, T_3, C_3) \
704
DEFINE_ATTRIBUTE(N_4, T_4, C_4) \
705
DEFINE_ATTRIBUTE(N_5, T_5, C_5) \
706
DEFINE_ATTRIBUTE(N_6, T_6, C_6) \
707
DEFINE_ATTRIBUTE(N_7, T_7, C_7) \
708
DEFINE_ATTRIBUTE(N_8, T_8, C_8) \
709
DEFINE_ATTRIBUTE(N_9, T_9, C_9) \
710
DEFINE_ATTRIBUTE(N_10, T_10, C_10) \
711
DEFINE_ATTRIBUTE(N_11, T_11, C_11) \
712
DEFINE_ATTRIBUTE(N_12, T_12, C_12) \
713
DEFINE_ATTRIBUTE(N_13, T_13, C_13) \
714
DEFINE_ATTRIBUTE(N_14, T_14, C_14) \
715
DEFINE_ATTRIBUTE(N_15, T_15, C_15) \
716
DEFINE_ATTRIBUTE(N_16, T_16, C_16) \
717
DEFINE_ATTRIBUTE(N_17, T_17, C_17) \
718
DEFINE_ATTRIBUTE(N_18, T_18, C_18) \
719
DEFINE_ATTRIBUTE(N_19, T_19, C_19) \
720
DEFINE_ATTRIBUTE(N_20, T_20, C_20) \
721
DEFINE_ATTRIBUTE(N_21, T_21, C_21) \
722
DEFINE_ATTRIBUTE(N_22, T_22, C_22) \
723
DEFINE_ATTRIBUTE(N_23, T_23, C_23) \
724
DEFINE_ATTRIBUTE(N_24, T_24, C_24) \
725
protected: \
726
START_INIT() \
727
SET_ATTRIBUTE(N_0, T_0, AN_0) \
728
SET_ATTRIBUTE(N_1, T_1, AN_1) \
729
SET_ATTRIBUTE(N_2, T_2, AN_2) \
730
SET_ATTRIBUTE(N_3, T_3, AN_3) \
731
SET_ATTRIBUTE(N_4, T_4, AN_4) \
732
SET_ATTRIBUTE(N_5, T_5, AN_5) \
733
SET_ATTRIBUTE(N_6, T_6, AN_6) \
734
SET_ATTRIBUTE(N_7, T_7, AN_7) \
735
SET_ATTRIBUTE(N_8, T_8, AN_8) \
736
SET_ATTRIBUTE(N_9, T_9, AN_9) \
737
SET_ATTRIBUTE(N_10, T_10, AN_10) \
738
SET_ATTRIBUTE(N_11, T_11, AN_11) \
739
SET_ATTRIBUTE(N_12, T_12, AN_12) \
740
SET_ATTRIBUTE(N_13, T_13, AN_13) \
741
SET_ATTRIBUTE(N_14, T_14, AN_14) \
742
SET_ATTRIBUTE(N_15, T_15, AN_15) \
743
SET_ATTRIBUTE(N_16, T_16, AN_16) \
744
SET_ATTRIBUTE(N_17, T_17, AN_17) \
745
SET_ATTRIBUTE(N_18, T_18, AN_18) \
746
SET_ATTRIBUTE(N_19, T_19, AN_19) \
747
SET_ATTRIBUTE(N_20, T_20, AN_20) \
748
SET_ATTRIBUTE(N_21, T_21, AN_21) \
749
SET_ATTRIBUTE(N_22, T_22, AN_22) \
750
SET_ATTRIBUTE(N_23, T_23, AN_23) \
751
SET_ATTRIBUTE(N_24, T_24, AN_24) \
752
END_INIT() \
753
public:
754
755
//--------------------------------------------------------------------------------------
756
#endif
/* SRC_MODELHIGHAPI_MODELHIGHAPI_MACRO_H_ */
src
ModelHighAPI
ModelHighAPI_Macro.h
Generated on Wed Jul 30 2025 19:10:45 for SHAPER by
1.9.1