Blender
V4.5
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
struct
Ipo
;
20
25
typedef
struct
KeyBlock
{
26
struct
KeyBlock
*
next
, *
prev
;
27
33
float
pos
;
35
float
curval
;
36
38
short
type
;
39
char
_pad1
[2];
40
42
short
relative
;
43
/* KeyBlockFlag */
44
short
flag
;
45
47
int
totelem
;
49
int
uid
;
50
53
void
*
data
;
55
char
name
[
/*MAX_NAME*/
64];
57
char
vgroup
[
/*MAX_VGROUP_NAME*/
64];
58
60
float
slidermin
;
61
float
slidermax
;
62
63
}
KeyBlock
;
64
65
typedef
struct
Key
{
66
#ifdef __cplusplus
68
static
constexpr
ID_Type
id_type =
ID_KE
;
69
#endif
70
71
ID
id
;
73
struct
AnimData
*
adt
;
74
80
KeyBlock
*
refkey
;
81
86
char
elemstr
[32];
88
int
elemsize
;
89
char
_pad
[4];
90
92
ListBase
block
;
94
struct
Ipo
*ipo
DNA_DEPRECATED
;
95
96
ID
*
from
;
97
99
int
totkey
;
100
/* ShapekeyContainerFlag */
101
short
flag
;
103
char
type
;
104
char
_pad2
;
105
108
float
ctime
;
109
114
int
uidgen
;
115
}
Key
;
116
117
/* **************** KEY ********************* */
118
119
/* Key::type: KeyBlocks are interpreted as... */
120
typedef
enum
ShapekeyContainerType
{
121
/* Sequential positions over time (using KeyBlock::pos and Key::ctime) */
122
KEY_NORMAL
= 0,
123
124
/* States to blend between (default) */
125
KEY_RELATIVE
= 1,
126
}
ShapekeyContainerType
;
127
128
/* Key::flag */
129
typedef
enum
ShapekeyContainerFlag
{
130
KEY_DS_EXPAND
= 1,
131
}
ShapekeyContainerFlag
;
132
133
/* The obvious name would be `KeyBlockType` but this enum is actually used in places outside of
134
* Shape Keys (NURBS, particles, etc.). */
135
typedef
enum
KeyInterpolationType
{
136
KEY_LINEAR
= 0,
137
KEY_CARDINAL
= 1,
138
KEY_BSPLINE
= 2,
139
KEY_CATMULL_ROM
= 3,
140
}
KeyInterpolationType
;
141
142
typedef
enum
KeyBlockFlag
{
143
KEYBLOCK_MUTE
= (1 << 0),
144
KEYBLOCK_SEL
= (1 << 1),
145
KEYBLOCK_LOCKED
= (1 << 2),
146
KEYBLOCK_LOCKED_SHAPE
= (1 << 3),
147
}
KeyBlockFlag
;
148
149
#define KEYELEM_FLOAT_LEN_COORD 3
150
151
/* Curve key data layout constants */
152
#define KEYELEM_ELEM_SIZE_CURVE 3
153
154
#define KEYELEM_ELEM_LEN_BPOINT 2
155
#define KEYELEM_FLOAT_LEN_BPOINT (KEYELEM_ELEM_LEN_BPOINT * KEYELEM_ELEM_SIZE_CURVE)
156
157
#define KEYELEM_ELEM_LEN_BEZTRIPLE 4
158
#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:122
ID_KE
@ ID_KE
Definition
DNA_ID_enums.h:136
DNA_defs.h
ShapekeyContainerType
ShapekeyContainerType
Definition
DNA_key_types.h:120
KEY_RELATIVE
@ KEY_RELATIVE
Definition
DNA_key_types.h:125
KEY_NORMAL
@ KEY_NORMAL
Definition
DNA_key_types.h:122
KeyBlockFlag
KeyBlockFlag
Definition
DNA_key_types.h:142
KEYBLOCK_LOCKED_SHAPE
@ KEYBLOCK_LOCKED_SHAPE
Definition
DNA_key_types.h:146
KEYBLOCK_SEL
@ KEYBLOCK_SEL
Definition
DNA_key_types.h:144
KEYBLOCK_MUTE
@ KEYBLOCK_MUTE
Definition
DNA_key_types.h:143
KEYBLOCK_LOCKED
@ KEYBLOCK_LOCKED
Definition
DNA_key_types.h:145
ShapekeyContainerFlag
ShapekeyContainerFlag
Definition
DNA_key_types.h:129
KEY_DS_EXPAND
@ KEY_DS_EXPAND
Definition
DNA_key_types.h:130
KeyInterpolationType
KeyInterpolationType
Definition
DNA_key_types.h:135
KEY_LINEAR
@ KEY_LINEAR
Definition
DNA_key_types.h:136
KEY_CARDINAL
@ KEY_CARDINAL
Definition
DNA_key_types.h:137
KEY_BSPLINE
@ KEY_BSPLINE
Definition
DNA_key_types.h:138
KEY_CATMULL_ROM
@ KEY_CATMULL_ROM
Definition
DNA_key_types.h:139
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:404
Ipo
Definition
DNA_ipo_types.h:85
KeyBlock
Definition
DNA_key_types.h:25
KeyBlock::uid
int uid
Definition
DNA_key_types.h:49
KeyBlock::prev
struct KeyBlock * prev
Definition
DNA_key_types.h:26
KeyBlock::flag
short flag
Definition
DNA_key_types.h:44
KeyBlock::name
char name[64]
Definition
DNA_key_types.h:55
KeyBlock::totelem
int totelem
Definition
DNA_key_types.h:47
KeyBlock::pos
float pos
Definition
DNA_key_types.h:33
KeyBlock::slidermax
float slidermax
Definition
DNA_key_types.h:61
KeyBlock::slidermin
float slidermin
Definition
DNA_key_types.h:60
KeyBlock::curval
float curval
Definition
DNA_key_types.h:35
KeyBlock::next
struct KeyBlock * next
Definition
DNA_key_types.h:26
KeyBlock::vgroup
char vgroup[64]
Definition
DNA_key_types.h:57
KeyBlock::relative
short relative
Definition
DNA_key_types.h:42
KeyBlock::type
short type
Definition
DNA_key_types.h:38
KeyBlock::_pad1
char _pad1[2]
Definition
DNA_key_types.h:39
KeyBlock::data
void * data
Definition
DNA_key_types.h:53
Key
Definition
DNA_key_types.h:65
Key::from
ID * from
Definition
DNA_key_types.h:96
Key::totkey
int totkey
Definition
DNA_key_types.h:99
Key::ctime
float ctime
Definition
DNA_key_types.h:108
Key::_pad2
char _pad2
Definition
DNA_key_types.h:104
Key::DNA_DEPRECATED
struct Ipo *ipo DNA_DEPRECATED
Definition
DNA_key_types.h:94
Key::flag
short flag
Definition
DNA_key_types.h:101
Key::elemstr
char elemstr[32]
Definition
DNA_key_types.h:86
Key::id
ID id
Definition
DNA_key_types.h:71
Key::uidgen
int uidgen
Definition
DNA_key_types.h:114
Key::elemsize
int elemsize
Definition
DNA_key_types.h:88
Key::adt
struct AnimData * adt
Definition
DNA_key_types.h:73
Key::type
char type
Definition
DNA_key_types.h:103
Key::block
ListBase block
Definition
DNA_key_types.h:92
Key::refkey
KeyBlock * refkey
Definition
DNA_key_types.h:80
Key::_pad
char _pad[4]
Definition
DNA_key_types.h:89
ListBase
Definition
DNA_listBase.h:32
Generated on
for Blender by
doxygen
1.15.0