Blender
V5.0
source
blender
makesdna
DNA_key_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
#pragma once
5
13
14
#include "
DNA_ID.h
"
15
#include "
DNA_defs.h
"
16
#include "
DNA_listBase.h
"
17
18
struct
AnimData
;
19
24
typedef
struct
KeyBlock
{
25
struct
KeyBlock
*
next
, *
prev
;
26
32
float
pos
;
34
float
curval
;
35
37
short
type
;
38
char
_pad1
[2];
39
41
short
relative
;
42
/* KeyBlockFlag */
43
short
flag
;
44
46
int
totelem
;
48
int
uid
;
49
52
void
*
data
;
54
char
name
[
/*MAX_NAME*/
64];
56
char
vgroup
[
/*MAX_VGROUP_NAME*/
64];
57
59
float
slidermin
;
60
float
slidermax
;
61
62
}
KeyBlock
;
63
64
typedef
struct
Key
{
65
#ifdef __cplusplus
67
static
constexpr
ID_Type
id_type =
ID_KE
;
68
#endif
69
70
ID
id
;
72
struct
AnimData
*
adt
;
73
79
KeyBlock
*
refkey
;
80
85
char
elemstr
[32];
87
int
elemsize
;
88
char
_pad
[4];
89
91
ListBase
block
;
92
93
ID
*
from
;
94
96
int
totkey
;
97
/* ShapekeyContainerFlag */
98
short
flag
;
100
char
type
;
101
char
_pad2
;
102
105
float
ctime
;
106
111
int
uidgen
;
112
}
Key
;
113
114
/* **************** KEY ********************* */
115
116
/* Key::type: KeyBlocks are interpreted as... */
117
typedef
enum
ShapekeyContainerType
{
118
/* Sequential positions over time (using KeyBlock::pos and Key::ctime) */
119
KEY_NORMAL
= 0,
120
121
/* States to blend between (default) */
122
KEY_RELATIVE
= 1,
123
}
ShapekeyContainerType
;
124
125
/* Key::flag */
126
typedef
enum
ShapekeyContainerFlag
{
127
KEY_DS_EXPAND
= 1,
128
}
ShapekeyContainerFlag
;
129
130
/* The obvious name would be `KeyBlockType` but this enum is actually used in places outside of
131
* Shape Keys (NURBS, particles, etc.). */
132
typedef
enum
KeyInterpolationType
{
133
KEY_LINEAR
= 0,
134
KEY_CARDINAL
= 1,
135
KEY_BSPLINE
= 2,
136
KEY_CATMULL_ROM
= 3,
137
}
KeyInterpolationType
;
138
139
typedef
enum
KeyBlockFlag
{
140
KEYBLOCK_MUTE
= (1 << 0),
141
KEYBLOCK_SEL
= (1 << 1),
142
KEYBLOCK_LOCKED
= (1 << 2),
143
KEYBLOCK_LOCKED_SHAPE
= (1 << 3),
144
}
KeyBlockFlag
;
145
146
#define KEYELEM_FLOAT_LEN_COORD 3
147
148
/* Curve key data layout constants */
149
#define KEYELEM_ELEM_SIZE_CURVE 3
150
151
#define KEYELEM_ELEM_LEN_BPOINT 2
152
#define KEYELEM_FLOAT_LEN_BPOINT (KEYELEM_ELEM_LEN_BPOINT * KEYELEM_ELEM_SIZE_CURVE)
153
154
#define KEYELEM_ELEM_LEN_BEZTRIPLE 4
155
#define KEYELEM_FLOAT_LEN_BEZTRIPLE (KEYELEM_ELEM_LEN_BEZTRIPLE * KEYELEM_ELEM_SIZE_CURVE)
DNA_ID.h
ID and Library types, which are fundamental for SDNA.
ID_Type
ID_Type
Definition
DNA_ID_enums.h:116
ID_KE
@ ID_KE
Definition
DNA_ID_enums.h:129
DNA_defs.h
ShapekeyContainerType
ShapekeyContainerType
Definition
DNA_key_types.h:117
KEY_RELATIVE
@ KEY_RELATIVE
Definition
DNA_key_types.h:122
KEY_NORMAL
@ KEY_NORMAL
Definition
DNA_key_types.h:119
KeyBlockFlag
KeyBlockFlag
Definition
DNA_key_types.h:139
KEYBLOCK_LOCKED_SHAPE
@ KEYBLOCK_LOCKED_SHAPE
Definition
DNA_key_types.h:143
KEYBLOCK_SEL
@ KEYBLOCK_SEL
Definition
DNA_key_types.h:141
KEYBLOCK_MUTE
@ KEYBLOCK_MUTE
Definition
DNA_key_types.h:140
KEYBLOCK_LOCKED
@ KEYBLOCK_LOCKED
Definition
DNA_key_types.h:142
ShapekeyContainerFlag
ShapekeyContainerFlag
Definition
DNA_key_types.h:126
KEY_DS_EXPAND
@ KEY_DS_EXPAND
Definition
DNA_key_types.h:127
KeyInterpolationType
KeyInterpolationType
Definition
DNA_key_types.h:132
KEY_LINEAR
@ KEY_LINEAR
Definition
DNA_key_types.h:133
KEY_CARDINAL
@ KEY_CARDINAL
Definition
DNA_key_types.h:134
KEY_BSPLINE
@ KEY_BSPLINE
Definition
DNA_key_types.h:135
KEY_CATMULL_ROM
@ KEY_CATMULL_ROM
Definition
DNA_key_types.h:136
DNA_listBase.h
These structs are the foundation for all linked lists in the library system.
AnimData
Definition
DNA_anim_types.h:651
ID
Definition
DNA_ID.h:414
KeyBlock
Definition
DNA_key_types.h:24
KeyBlock::uid
int uid
Definition
DNA_key_types.h:48
KeyBlock::prev
struct KeyBlock * prev
Definition
DNA_key_types.h:25
KeyBlock::flag
short flag
Definition
DNA_key_types.h:43
KeyBlock::name
char name[64]
Definition
DNA_key_types.h:54
KeyBlock::totelem
int totelem
Definition
DNA_key_types.h:46
KeyBlock::pos
float pos
Definition
DNA_key_types.h:32
KeyBlock::slidermax
float slidermax
Definition
DNA_key_types.h:60
KeyBlock::slidermin
float slidermin
Definition
DNA_key_types.h:59
KeyBlock::curval
float curval
Definition
DNA_key_types.h:34
KeyBlock::next
struct KeyBlock * next
Definition
DNA_key_types.h:25
KeyBlock::vgroup
char vgroup[64]
Definition
DNA_key_types.h:56
KeyBlock::relative
short relative
Definition
DNA_key_types.h:41
KeyBlock::type
short type
Definition
DNA_key_types.h:37
KeyBlock::_pad1
char _pad1[2]
Definition
DNA_key_types.h:38
KeyBlock::data
void * data
Definition
DNA_key_types.h:52
Key
Definition
DNA_key_types.h:64
Key::from
ID * from
Definition
DNA_key_types.h:93
Key::totkey
int totkey
Definition
DNA_key_types.h:96
Key::ctime
float ctime
Definition
DNA_key_types.h:105
Key::_pad2
char _pad2
Definition
DNA_key_types.h:101
Key::flag
short flag
Definition
DNA_key_types.h:98
Key::elemstr
char elemstr[32]
Definition
DNA_key_types.h:85
Key::id
ID id
Definition
DNA_key_types.h:70
Key::uidgen
int uidgen
Definition
DNA_key_types.h:111
Key::elemsize
int elemsize
Definition
DNA_key_types.h:87
Key::adt
struct AnimData * adt
Definition
DNA_key_types.h:72
Key::type
char type
Definition
DNA_key_types.h:100
Key::block
ListBase block
Definition
DNA_key_types.h:91
Key::refkey
KeyBlock * refkey
Definition
DNA_key_types.h:79
Key::_pad
char _pad[4]
Definition
DNA_key_types.h:88
ListBase
Definition
DNA_listBase.h:32
Generated on
for Blender by
doxygen
1.16.1