Blender
V4.5
source
blender
makesdna
DNA_ipo_types.h
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
13
14
#pragma once
15
16
#include "
DNA_curve_types.h
"
17
#include "
DNA_listBase.h
"
18
#include "
DNA_vec_types.h
"
19
20
#include "
DNA_ID.h
"
21
22
#include "
BLI_compiler_attrs.h
"
23
24
/* -------------------------- Type Defines --------------------------- */
25
26
/* --- IPO Curve Driver --- */
27
28
/* IPO Curve Driver */
29
typedef
struct
IpoDriver
{
31
struct
Object
*
ob
;
33
short
blocktype
,
adrcode
;
34
36
short
type
,
flag
;
38
char
name
[128];
39
}
IpoDriver
;
40
41
/* --- IPO Curve --- */
42
43
/* IPO Curve */
44
typedef
struct
IpoCurve
{
45
struct
IpoCurve
*
next
, *
prev
;
46
48
struct
BPoint
*
bp
;
50
struct
BezTriple
*
bezt
;
51
53
rctf
maxrct
,
totrct
;
54
56
short
blocktype
;
58
short
adrcode
;
60
short
vartype
;
62
short
totvert
;
64
short
ipo
,
extrap
;
66
short
flag
;
67
char
_pad0
[2];
69
float
ymin
,
ymax
;
71
unsigned
int
bitmask
;
72
74
float
slide_min
,
slide_max
;
76
float
curval
;
77
79
IpoDriver
*
driver
;
80
}
IpoCurve
;
81
82
/* --- ID-Datablock --- */
83
84
/* IPO Data-Block */
85
typedef
struct
Ipo
{
86
#ifdef __cplusplus
88
static
constexpr
ID_Type
id_type =
ID_IP
;
89
#endif
90
91
ID
id
;
92
94
ListBase
curve
;
96
rctf
cur
;
97
99
short
blocktype
;
101
short
showkey
;
103
short
muteipo
;
104
char
_pad
[2];
105
}
Ipo
;
106
107
/* ----------- adrcodes (for matching ipo-curves to data) ------------- */
108
109
/* defines: are these duped or new? */
110
#define IPOBUTY 17
111
112
#define TOB_IPO 1
113
#define TOB_IPODROT 2
114
115
/* disptype */
116
#define IPO_DISPDEGR 1
117
#define IPO_DISPBITS 2
118
#define IPO_DISPTIME 3
119
120
/* ********** Object (ID_OB) ********** */
121
122
#define OB_TOTIPO 30
123
#define OB_TOTNAM 30
124
125
#define OB_LOC_X 1
126
#define OB_LOC_Y 2
127
#define OB_LOC_Z 3
128
#define OB_DLOC_X 4
129
#define OB_DLOC_Y 5
130
#define OB_DLOC_Z 6
131
132
#define OB_ROT_X 7
133
#define OB_ROT_Y 8
134
#define OB_ROT_Z 9
135
#define OB_DROT_X 10
136
#define OB_DROT_Y 11
137
#define OB_DROT_Z 12
138
139
#define OB_SIZE_X 13
140
#define OB_SIZE_Y 14
141
#define OB_SIZE_Z 15
142
#define OB_DSIZE_X 16
143
#define OB_DSIZE_Y 17
144
#define OB_DSIZE_Z 18
145
146
#define OB_LAY 19
147
148
#define OB_TIME 20
149
150
#define OB_COL_R 21
151
#define OB_COL_G 22
152
#define OB_COL_B 23
153
#define OB_COL_A 24
154
155
#define OB_PD_FSTR 25
156
#define OB_PD_FFALL 26
157
#define OB_PD_SDAMP 27
158
#define OB_PD_RDAMP 28
159
#define OB_PD_PERM 29
160
#define OB_PD_FMAXD 30
161
162
/* exception: driver channel, for bone driver only */
163
#define OB_ROT_DIFF 100
164
165
/* ********** Material (ID_MA) ********** */
166
167
#define MA_TOTIPO 40
168
#define MA_TOTNAM 26
169
170
#define MA_COL_R 1
171
#define MA_COL_G 2
172
#define MA_COL_B 3
173
#define MA_SPEC_R 4
174
#define MA_SPEC_G 5
175
#define MA_SPEC_B 6
176
#define MA_MIR_R 7
177
#define MA_MIR_G 8
178
#define MA_MIR_B 9
179
#define MA_REF 10
180
#define MA_ALPHA 11
181
#define MA_EMIT 12
182
#define MA_AMB 13
183
#define MA_SPEC 14
184
#define MA_HARD 15
185
#define MA_SPTR 16
186
#define MA_IOR 17
187
#define MA_MODE 18
188
#define MA_HASIZE 19
189
#define MA_TRANSLU 20
190
#define MA_RAYM 21
191
#define MA_FRESMIR 22
192
#define MA_FRESMIRI 23
193
#define MA_FRESTRA 24
194
#define MA_FRESTRAI 25
195
#define MA_ADD 26
196
197
#define MA_MAP1 (1 << 5)
198
#define MA_MAP2 (1 << 6)
199
#define MA_MAP3 (1 << 7)
200
#define MA_MAP4 (1 << 8)
201
#define MA_MAP5 (1 << 9)
202
#define MA_MAP6 (1 << 10)
203
#define MA_MAP7 (1 << 11)
204
#define MA_MAP8 (1 << 12)
205
#define MA_MAP9 (1 << 13)
206
#define MA_MAP10 (1 << 14)
207
#define MA_MAP11 (1 << 15)
208
#define MA_MAP12 (1 << 16)
209
#define MA_MAP13 (1 << 17)
210
#define MA_MAP14 (1 << 18)
211
#define MA_MAP15 (1 << 19)
212
#define MA_MAP16 (1 << 20)
213
#define MA_MAP17 (1 << 21)
214
#define MA_MAP18 (1 << 22)
215
216
/* ********** Texture Slots (MTex) ********** */
217
218
#define TEX_TOTNAM 14
219
220
#define MAP_OFS_X 1
221
#define MAP_OFS_Y 2
222
#define MAP_OFS_Z 3
223
#define MAP_SIZE_X 4
224
#define MAP_SIZE_Y 5
225
#define MAP_SIZE_Z 6
226
#define MAP_R 7
227
#define MAP_G 8
228
#define MAP_B 9
229
230
#define MAP_DVAR 10
231
#define MAP_COLF 11
232
#define MAP_NORF 12
233
#define MAP_VARF 13
234
#define MAP_DISP 14
235
236
/* ********** Texture (ID_TE) ********** */
237
238
#define TE_TOTIPO 26
239
#define TE_TOTNAM 26
240
241
#define TE_NSIZE 1
242
#define TE_NDEPTH 2
243
#define TE_NTYPE 3
244
#define TE_TURB 4
245
246
#define TE_VNW1 5
247
#define TE_VNW2 6
248
#define TE_VNW3 7
249
#define TE_VNW4 8
250
#define TE_VNMEXP 9
251
#define TE_VN_DISTM 10
252
#define TE_VN_COLT 11
253
254
#define TE_ISCA 12
255
#define TE_DISTA 13
256
257
#define TE_MG_TYP 14
258
#define TE_MGH 15
259
#define TE_MG_LAC 16
260
#define TE_MG_OCT 17
261
#define TE_MG_OFF 18
262
#define TE_MG_GAIN 19
263
264
#define TE_N_BAS1 20
265
#define TE_N_BAS2 21
266
267
#define TE_COL_R 22
268
#define TE_COL_G 23
269
#define TE_COL_B 24
270
#define TE_BRIGHT 25
271
#define TE_CONTRA 26
272
273
/* ******** Sequence (ID_SEQ) ********** */
274
275
#define STRIP_TOTIPO 1
276
#define STRIP_TOTNAM 1
277
278
#define STRIP_FAC1 1
279
#define STRIP_FAC_SPEED 2
280
#define STRIP_FAC_OPACITY 3
281
282
/* ********* Curve (ID_CU_LEGACY) *********** */
283
284
#define CU_TOTIPO 1
285
#define CU_TOTNAM 1
286
287
#define CU_SPEED 1
288
289
/* ********* ShapeKey (ID_KE) *********** */
290
291
#define KEY_TOTIPO 64
292
#define KEY_TOTNAM 64
293
294
#define KEY_SPEED 0
295
#define KEY_NR 1
296
297
/* ********* World (ID_WO) *********** */
298
299
#define WO_TOTIPO 29
300
#define WO_TOTNAM 16
301
302
#define WO_HOR_R 1
303
#define WO_HOR_G 2
304
#define WO_HOR_B 3
305
#define WO_ZEN_R 4
306
#define WO_ZEN_G 5
307
#define WO_ZEN_B 6
308
309
#define WO_EXPOS 7
310
311
#define WO_MISI 8
312
#define WO_MISTDI 9
313
#define WO_MISTSTA 10
314
#define WO_MISTHI 11
315
316
/* Stars are deprecated & unused. */
317
// #define WO_STAR_R 12
318
// #define WO_STAR_G 13
319
// #define WO_STAR_B 14
320
// #define WO_STARDIST 15
321
// #define WO_STARSIZE 16
322
323
/* ********** Light (ID_LA) ********** */
324
325
#define LA_TOTIPO 21
326
#define LA_TOTNAM 10
327
328
#define LA_ENERGY 1
329
#define LA_COL_R 2
330
#define LA_COL_G 3
331
#define LA_COL_B 4
332
#define LA_DIST 5
333
#define LA_SPOTSI 6
334
#define LA_SPOTBL 7
335
#define LA_QUAD1 8
336
#define LA_QUAD2 9
337
#define LA_HALOINT 10
338
339
/* ********* Camera (ID_CA) ************ */
340
341
#define CAM_TOTIPO 7
342
#define CAM_TOTNAM 7
343
344
#define CAM_LENS 1
345
#define CAM_STA 2
346
#define CAM_END 3
347
348
/* YAFRAY aperture & focal distance curves. */
349
#define CAM_YF_APERT 4
350
#define CAM_YF_FDIST 5
351
352
#define CAM_SHIFT_X 6
353
#define CAM_SHIFT_Y 7
354
355
/* ********* Sound (ID_SO) *********** */
356
357
#define SND_TOTIPO 4
358
#define SND_TOTNAM 4
359
360
#define SND_VOLUME 1
361
#define SND_PITCH 2
362
#define SND_PANNING 3
363
#define SND_ATTEN 4
364
365
/* ******* PoseChannel (ID_PO) ********* */
366
367
#define AC_TOTIPO 13
368
#define AC_TOTNAM 13
369
370
#define AC_LOC_X 1
371
#define AC_LOC_Y 2
372
#define AC_LOC_Z 3
373
374
#define AC_SIZE_X 13
375
#define AC_SIZE_Y 14
376
#define AC_SIZE_Z 15
377
378
#define AC_EUL_X 16
379
#define AC_EUL_Y 17
380
#define AC_EUL_Z 18
381
382
#define AC_QUAT_W 25
383
#define AC_QUAT_X 26
384
#define AC_QUAT_Y 27
385
#define AC_QUAT_Z 28
386
387
/* ******** Constraint (ID_CO) ********** */
388
389
#define CO_TOTIPO 2
390
#define CO_TOTNAM 2
391
392
#define CO_ENFORCE 1
393
#define CO_HEADTAIL 2
394
395
/* ****** FluidSim (ID_FLUIDSIM) ****** */
396
397
#define FLUIDSIM_TOTIPO 13
398
#define FLUIDSIM_TOTNAM 13
399
400
#define FLUIDSIM_VISC 1
401
#define FLUIDSIM_TIME 2
402
403
#define FLUIDSIM_GRAV_X 3
404
#define FLUIDSIM_GRAV_Y 4
405
#define FLUIDSIM_GRAV_Z 5
406
407
#define FLUIDSIM_VEL_X 6
408
#define FLUIDSIM_VEL_Y 7
409
#define FLUIDSIM_VEL_Z 8
410
411
#define FLUIDSIM_ACTIVE 9
412
413
#define FLUIDSIM_ATTR_FORCE_STR 10
414
#define FLUIDSIM_ATTR_FORCE_RADIUS 11
415
#define FLUIDSIM_VEL_FORCE_STR 12
416
#define FLUIDSIM_VEL_FORCE_RADIUS 13
417
418
/* ******************** */
419
/* particle ipos */
420
421
/* ******* Particle (ID_PA) ******** */
422
#define PART_TOTIPO 25
423
#define PART_TOTNAM 25
424
425
#define PART_EMIT_FREQ 1
426
// #define PART_EMIT_LIFE 2 /* UNUSED */
427
#define PART_EMIT_VEL 3
428
#define PART_EMIT_AVE 4
429
// #define PART_EMIT_SIZE 5 /* UNUSED */
430
431
#define PART_AVE 6
432
#define PART_SIZE 7
433
#define PART_DRAG 8
434
#define PART_BROWN 9
435
#define PART_DAMP 10
436
#define PART_LENGTH 11
437
#define PART_CLUMP 12
438
439
#define PART_GRAV_X 13
440
#define PART_GRAV_Y 14
441
#define PART_GRAV_Z 15
442
443
#define PART_KINK_AMP 16
444
#define PART_KINK_FREQ 17
445
#define PART_KINK_SHAPE 18
446
447
#define PART_BB_TILT 19
448
449
#define PART_PD_FSTR 20
450
#define PART_PD_FFALL 21
451
#define PART_PD_FMAXD 22
452
453
#define PART_PD2_FSTR 23
454
#define PART_PD2_FFALL 24
455
#define PART_PD2_FMAXD 25
456
457
/* -------------------- Defines: Flags and Types ------------------ */
458
459
/* ----- IPO Curve Defines ------- */
460
461
/* icu->vartype */
462
#define IPO_CHAR 0
463
#define IPO_SHORT 1
464
#define IPO_INT 2
465
#define IPO_LONG 3
466
#define IPO_FLOAT 4
467
#define IPO_DOUBLE 5
468
#define IPO_FLOAT_DEGR 6
469
470
/* very special case, in keys */
471
#define IPO_BEZTRIPLE 100
472
#define IPO_BPOINT 101
473
474
/* icu->vartype */
475
#define IPO_BITS 16
476
#define IPO_CHAR_BIT 16
477
#define IPO_SHORT_BIT 17
478
#define IPO_INT_BIT 18
479
480
/* icu->ipo: the type of curve. */
481
#define IPO_CONST 0
482
#define IPO_LIN 1
483
#define IPO_BEZ 2
484
/* not used yet */
485
#define IPO_MIXED 3
486
487
/* icu->extrap */
488
#define IPO_HORIZ 0
489
#define IPO_DIR 1
490
#define IPO_CYCL 2
491
#define IPO_CYCLX 3
492
493
/* icu->flag */
494
#define IPO_VISIBLE 1
495
#define IPO_SELECT 2
496
#define IPO_EDIT 4
497
#define IPO_LOCK 8
498
#define IPO_AUTO_HORIZ 16
499
#define IPO_ACTIVE 32
500
#define IPO_PROTECT 64
501
#define IPO_MUTE 128
502
503
/* ---------- IPO Drivers ----------- */
504
505
/* Offset in driver->name for finding second posechannel for rot-diff. */
506
#define DRIVER_NAME_OFFS 32
507
508
/* driver->type */
509
#define IPO_DRIVER_TYPE_NORMAL 0
510
#define IPO_DRIVER_TYPE_PYTHON 1
511
512
/* driver->flag */
513
/* invalid flag: currently only used for buggy pydriver expressions */
514
#define IPO_DRIVER_FLAG_INVALID (1 << 0)
BLI_compiler_attrs.h
DNA_ID.h
ID and Library types, which are fundamental for SDNA.
ID_Type
ID_Type
Definition
DNA_ID_enums.h:122
ID_IP
@ ID_IP
Definition
DNA_ID_enums.h:135
DNA_curve_types.h
DNA_listBase.h
These structs are the foundation for all linked lists in the library system.
DNA_vec_types.h
BPoint
Definition
DNA_curve_types.h:122
BezTriple
Definition
DNA_curve_types.h:76
ID
Definition
DNA_ID.h:404
IpoCurve
Definition
DNA_ipo_types.h:44
IpoCurve::maxrct
rctf maxrct
Definition
DNA_ipo_types.h:53
IpoCurve::prev
struct IpoCurve * prev
Definition
DNA_ipo_types.h:45
IpoCurve::bezt
struct BezTriple * bezt
Definition
DNA_ipo_types.h:50
IpoCurve::bitmask
unsigned int bitmask
Definition
DNA_ipo_types.h:71
IpoCurve::ymax
float ymax
Definition
DNA_ipo_types.h:69
IpoCurve::driver
IpoDriver * driver
Definition
DNA_ipo_types.h:79
IpoCurve::_pad0
char _pad0[2]
Definition
DNA_ipo_types.h:67
IpoCurve::slide_min
float slide_min
Definition
DNA_ipo_types.h:74
IpoCurve::totvert
short totvert
Definition
DNA_ipo_types.h:62
IpoCurve::blocktype
short blocktype
Definition
DNA_ipo_types.h:56
IpoCurve::totrct
rctf totrct
Definition
DNA_ipo_types.h:53
IpoCurve::bp
struct BPoint * bp
Definition
DNA_ipo_types.h:48
IpoCurve::flag
short flag
Definition
DNA_ipo_types.h:66
IpoCurve::ipo
short ipo
Definition
DNA_ipo_types.h:64
IpoCurve::extrap
short extrap
Definition
DNA_ipo_types.h:64
IpoCurve::vartype
short vartype
Definition
DNA_ipo_types.h:60
IpoCurve::ymin
float ymin
Definition
DNA_ipo_types.h:69
IpoCurve::adrcode
short adrcode
Definition
DNA_ipo_types.h:58
IpoCurve::slide_max
float slide_max
Definition
DNA_ipo_types.h:74
IpoCurve::curval
float curval
Definition
DNA_ipo_types.h:76
IpoCurve::next
struct IpoCurve * next
Definition
DNA_ipo_types.h:45
IpoDriver
Definition
DNA_ipo_types.h:29
IpoDriver::name
char name[128]
Definition
DNA_ipo_types.h:38
IpoDriver::blocktype
short blocktype
Definition
DNA_ipo_types.h:33
IpoDriver::ob
struct Object * ob
Definition
DNA_ipo_types.h:31
IpoDriver::flag
short flag
Definition
DNA_ipo_types.h:36
IpoDriver::type
short type
Definition
DNA_ipo_types.h:36
IpoDriver::adrcode
short adrcode
Definition
DNA_ipo_types.h:33
Ipo
Definition
DNA_ipo_types.h:85
Ipo::muteipo
short muteipo
Definition
DNA_ipo_types.h:103
Ipo::curve
ListBase curve
Definition
DNA_ipo_types.h:94
Ipo::showkey
short showkey
Definition
DNA_ipo_types.h:101
Ipo::cur
rctf cur
Definition
DNA_ipo_types.h:96
Ipo::blocktype
short blocktype
Definition
DNA_ipo_types.h:99
Ipo::id
ID id
Definition
DNA_ipo_types.h:91
Ipo::_pad
char _pad[2]
Definition
DNA_ipo_types.h:104
ListBase
Definition
DNA_listBase.h:32
Object
Definition
DNA_object_types.h:192
rctf
Definition
DNA_vec_types.h:85
Generated on
for Blender by
doxygen
1.15.0