Blender  V3.3
DNA_anim_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2009 Blender Foundation, Joshua Leung. All rights reserved. */
3 
8 #pragma once
9 
10 #include "DNA_ID.h"
11 #include "DNA_action_types.h"
12 #include "DNA_curve_types.h"
13 #include "DNA_listBase.h"
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 /* ************************************************ */
20 /* F-Curve DataTypes */
21 
22 /* Modifiers -------------------------------------- */
23 
30 typedef struct FModifier {
31  struct FModifier *next, *prev;
32 
34  struct FCurve *curve;
36  void *data;
37 
39  char name[64];
41  short type;
43  short flag;
49 
50  char _pad[6];
51 
53  float influence;
54 
56  float sfra;
58  float efra;
60  float blendin;
62  float blendout;
64 
69 typedef enum eFModifier_Types {
81 
82  /* NOTE: all new modifiers must be added above this line */
85 
87 typedef enum eFModifier_Flags {
92  FMODIFIER_FLAG_EXPANDED = (1 << 1),
93 #endif
103 
104 /* --- */
105 
106 /* Generator modifier data */
107 typedef struct FMod_Generator {
108  /* general generator information */
110  float *coefficients;
112  unsigned int arraysize;
113 
117  int mode;
118 
120  int flag;
122 
123 /* generator modes */
124 typedef enum eFMod_Generator_Modes {
128 
129 /* generator flags
130  * - shared by Generator and Function Generator
131  */
132 typedef enum eFMod_Generator_Flags {
133  /* generator works in conjunction with other modifiers (i.e. doesn't replace those before it) */
136 
146 typedef struct FMod_FunctionGenerator {
148  float amplitude;
152 
153  /* flags */
155  int type;
157  int flag;
159 
160 /* 'function' generator types */
169 
170 /* envelope modifier - envelope data */
171 typedef struct FCM_EnvelopeData {
173  float min, max;
175  float time;
176 
178  short f1;
180  short f2;
182 
183 /* envelope-like adjustment to values (for fade in/out) */
184 typedef struct FMod_Envelope {
188  int totvert;
189 
191  float midval;
193  float min, max;
195 
196 /* cycling/repetition modifier data */
197 /* TODO: we can only do complete cycles. */
198 typedef struct FMod_Cycles {
200  short before_mode;
202  short after_mode;
208 
209 /* cycling modes */
210 typedef enum eFMod_Cycling_Modes {
220 
221 /* Python-script modifier data */
222 typedef struct FMod_Python {
224  struct Text *script;
228 
229 /* limits modifier data */
230 typedef struct FMod_Limits {
234  int flag;
235  char _pad[4];
237 
238 /* limiting flags */
239 typedef enum eFMod_Limit_Flags {
240  FCM_LIMIT_XMIN = (1 << 0),
241  FCM_LIMIT_XMAX = (1 << 1),
242  FCM_LIMIT_YMIN = (1 << 2),
243  FCM_LIMIT_YMAX = (1 << 3),
245 
246 /* noise modifier data */
247 typedef struct FMod_Noise {
248  float size;
249  float strength;
250  float phase;
251  float offset;
252 
253  short depth;
256 
257 /* modification modes */
268 
269 /* stepped modifier data */
270 typedef struct FMod_Stepped {
272  float step_size;
274  float offset;
275 
277  float start_frame;
279  float end_frame;
280 
282  int flag;
284 
285 /* stepped modifier range flags */
286 typedef enum eFMod_Stepped_Flags {
292 
293 /* Drivers -------------------------------------- */
294 
295 /* Driver Target (dtar)
296  *
297  * Defines how to access a dependency needed for a driver variable.
298  */
299 typedef struct DriverTarget {
301  ID *id;
302 
304  char *rna_path;
305 
310  char pchan_name[64];
312  short transChan;
313 
316  char _pad[7];
317 
322  short flag;
324  int idtype;
326 
328 typedef enum eDriverTarget_Flag {
334 
335  /* "local-space" flags. */
340 
342  DTAR_FLAG_INVALID = (1 << 4),
344 
345 /* Transform Channels for Driver Targets */
358 
361 
362 /* Rotation channel mode for Driver Targets */
366 
374 
376 
382 
386 
387 /* --- */
388 
389 /* maximum number of driver targets per variable */
390 #define MAX_DRIVER_TARGETS 8
391 
400 typedef struct DriverVar {
401  struct DriverVar *next, *prev;
402 
407  char name[64];
408 
411 
415  char type;
416 
418  short flag;
420  float curval;
422 
424 typedef enum eDriverVar_Types {
433 
442 
443 /* Driver Variable Flags */
444 typedef enum eDriverVar_Flags {
445  /* variable is not set up correctly */
446  DVAR_FLAG_ERROR = (1 << 0),
447 
448  /* variable name doesn't pass the validation tests */
450  /* name starts with a number */
452  /* name starts with a special character (!, $, @, #, _, etc.) */
454  /* name contains a space */
456  /* name contains a dot */
458  /* name contains invalid chars */
460  /* name is a reserved keyword */
462  /* name is zero-length */
465 
466 /* All invalid dvar name flags */
467 #define DVAR_ALL_INVALID_FLAGS \
468  (DVAR_FLAG_INVALID_NAME | DVAR_FLAG_INVALID_START_NUM | DVAR_FLAG_INVALID_START_CHAR | \
469  DVAR_FLAG_INVALID_HAS_SPACE | DVAR_FLAG_INVALID_HAS_DOT | DVAR_FLAG_INVALID_HAS_SPECIAL | \
470  DVAR_FLAG_INVALID_PY_KEYWORD | DVAR_FLAG_INVALID_EMPTY)
471 
472 /* --- */
473 
486 typedef struct ChannelDriver {
489 
490  /* python expression to execute (may call functions defined in an accessory file)
491  * which relates the target 'variables' in some way to yield a single usable value
492  */
494  char expression[256];
496  void *expr_comp;
497 
500 
502  float curval;
503  /* XXX to be implemented... this is like the constraint influence setting. */
505  float influence;
506 
507  /* general settings */
509  int type;
511  int flag;
513 
515 typedef enum eDriver_Types {
527 
529 typedef enum eDriver_Flags {
534  /* TODO: this needs to be implemented at some stage or left out... */
535  // DRIVER_FLAG_LAYERING = (1 << 2),
540  // DRIVER_FLAG_UNUSED_5 = (1 << 5),
544 
545 /* F-Curves -------------------------------------- */
546 
548 #define FCURVE_ACTIVE_KEYFRAME_NONE -1
549 
556 typedef struct FPoint {
558  float vec[2];
560  int flag;
561  char _pad[4];
563 
564 /* 'Function-Curve' - defines values over time for a given setting (fcu) */
565 typedef struct FCurve {
566  struct FCurve *next, *prev;
567 
568  /* group */
571 
572  /* driver settings */
575  /* evaluation settings */
578 
579  /* motion data */
585  unsigned int totvert;
586 
595 
596  /* value cache + settings */
598  float curval;
600  short flag;
602  short extend;
605 
606  char _pad[3];
607 
608  /* RNA - data link */
621  char *rna_path;
622 
623  /* curve coloring (for editor) */
627  float color[3];
628 
631 
632 /* user-editable flags/settings */
633 typedef enum eFCurve_Flags {
635  FCURVE_VISIBLE = (1 << 0),
637  FCURVE_SELECTED = (1 << 1),
639  FCURVE_ACTIVE = (1 << 2),
641  FCURVE_PROTECTED = (1 << 3),
643  FCURVE_MUTED = (1 << 4),
644 
647  FCURVE_AUTO_HANDLES = (1 << 5), /* Dirty. */
648 #endif
649  FCURVE_MOD_OFF = (1 << 6),
652  FCURVE_DISABLED = (1 << 10),
654  FCURVE_INT_VALUES = (1 << 11),
658 
660  FCURVE_TAGGED = (1 << 15),
662 
663 /* extrapolation modes (only simple value 'extending') */
664 typedef enum eFCurve_Extend {
670 
671 /* curve coloring modes */
672 typedef enum eFCurve_Coloring {
682 
683 /* curve smoothing modes */
684 typedef enum eFCurve_Smoothing {
690 
691 /* ************************************************ */
692 /* 'Action' Datatypes */
693 
694 /* NOTE: Although these are part of the Animation System,
695  * they are not stored here... see DNA_action_types.h instead
696  */
697 
698 /* ************************************************ */
699 /* NLA - Non-Linear Animation */
700 
701 /* NLA Strips ------------------------------------- */
702 
709 typedef struct NlaStrip {
710  struct NlaStrip *next, *prev;
711 
716  /* TODO: move out? */
721 
723  char name[64];
724 
726  float influence;
728  float strip_time;
729 
731  float start, end;
733  float actstart, actend;
734 
736  float repeat;
738  float scale;
739 
743  short blendmode;
744 
746  short extendmode;
747  char _pad1[2];
748 
750  short type;
751 
754 
756  int flag;
757  char _pad2[4];
758 
759  /* Pointer to an original NLA strip. */
761 
762  void *_pad3;
764 
765 /* NLA Strip Blending Mode */
766 typedef enum eNlaStrip_Blend_Mode {
773 
776  /* extend before first frame if no previous strips in track,
777  * and always hold+extend last frame */
779  /* only hold+extend last frame */
781  /* don't contribute at all */
784 
786 typedef enum eNlaStrip_Flag {
787  /* UI selection flags */
790  /* NLA strip is selected for editing */
792  // NLASTRIP_FLAG_SELECT_L = (1 << 2), /* left handle selected. */
793  // NLASTRIP_FLAG_SELECT_R = (1 << 3), /* right handle selected. */
794 
798 
799  /* controls driven by local F-Curves */
804 
807 
808  /* playback flags (may be overridden by F-Curves) */
814  NLASTRIP_FLAG_MUTED = (1 << 12),
816  /* NLASTRIP_FLAG_MIRROR = (1 << 13), */ /* UNUSED */
817 
818  /* temporary editing flags */
825 
826 /* NLA Strip Type */
827 typedef enum eNlaStrip_Type {
828  /* 'clip' - references an Action */
830  /* 'transition' - blends between the adjacent strips */
832  /* 'meta' - a strip which acts as a container for a few others */
834 
835  /* 'emit sound' - a strip which is used for timing when speaker emits sounds */
838 
839 /* NLA Tracks ------------------------------------- */
840 
849 typedef struct NlaTrack {
850  struct NlaTrack *next, *prev;
851 
854 
856  int flag;
859  int index;
860 
862  char name[64];
864 
865 /* settings for track */
866 typedef enum eNlaTrack_Flag {
869  NLATRACK_ACTIVE = (1 << 0),
871  NLATRACK_SELECTED = (1 << 1),
873  NLATRACK_MUTED = (1 << 2),
875  NLATRACK_SOLO = (1 << 3),
877  NLATRACK_PROTECTED = (1 << 4),
878 
881  NLATRACK_DISABLED = (1 << 10),
882 
887 
888 /* ************************************ */
889 /* KeyingSet Datatypes */
890 
900 typedef struct KS_Path {
901  struct KS_Path *next, *prev;
902 
904  ID *id;
906  char group[64];
907 
909  int idtype;
910 
912  short groupmode;
914  short flag;
915 
917  char *rna_path;
920 
922  short keyingflag;
926 
927 /* KS_Path->flag */
928 typedef enum eKSP_Settings {
929  /* entire array (not just the specified index) gets keyframed */
932 
933 /* KS_Path->groupmode */
934 typedef enum eKSP_Grouping {
943  /* KSP_GROUP_TEMPLATE_ITEM, */ /* UNUSED */
945 
946 /* ---------------- */
947 
959 typedef struct KeyingSet {
960  struct KeyingSet *next, *prev;
961 
964 
966  char idname[64];
968  char name[64];
970  char description[240];
972  char typeinfo[64];
973 
976 
978  short flag;
979 
981  short keyingflag;
984 
985  char _pad[6];
987 
988 /* KeyingSet settings */
989 typedef enum eKS_Settings {
991  /* KEYINGSET_BUILTIN = (1 << 0), */ /* UNUSED */
993  KEYINGSET_ABSOLUTE = (1 << 1),
995 
996 /* Flags for use by keyframe creation/deletion calls */
997 typedef enum eInsertKeyFlags {
1000  INSERTKEY_NEEDED = (1 << 0),
1002  INSERTKEY_MATRIX = (1 << 1),
1004  INSERTKEY_FAST = (1 << 2),
1006  /* INSERTKEY_FASTR = (1 << 3), */ /* UNUSED */
1008  INSERTKEY_REPLACE = (1 << 4),
1010  INSERTKEY_XYZ2RGB = (1 << 5),
1018  INSERTKEY_DRIVER = (1 << 8),
1022  INSERTKEY_AVAILABLE = (1 << 10),
1024 
1025 /* ************************************************ */
1026 /* Animation Data */
1027 
1028 /* AnimOverride ------------------------------------- */
1029 
1040 typedef struct AnimOverride {
1042 
1044  char *rna_path;
1047 
1049  float value;
1051 
1052 /* AnimData ------------------------------------- */
1053 
1068 typedef struct AnimData {
1074 
1079 
1080  /* nla-tracks */
1092 
1093  /* 'drivers' for this ID-block's settings - FCurves, but are completely
1094  * separate from those for animation data
1095  */
1101 
1104 
1105  /* settings for animation evaluation */
1107  int flag;
1108  char _pad[4];
1109 
1110  /* settings for active action evaluation (based on NLA strip settings) */
1118 
1119 /* Animation Data settings (mostly for NLA) */
1120 typedef enum eAnimData_Flag {
1124  ADT_NLA_EVAL_OFF = (1 << 1),
1126  ADT_NLA_EDIT_ON = (1 << 2),
1131  /* Evaluate tracks above tweaked strip. Only relevant in tweak mode. */
1133 
1137  /* ADT_DRIVERS_DISABLED = (1 << 11), */ /* UNUSED */
1138 
1140  ADT_UI_SELECTED = (1 << 14),
1142  ADT_UI_ACTIVE = (1 << 15),
1143 
1146 
1150 
1151 /* Base Struct for Anim ------------------------------------- */
1152 
1158 typedef struct IdAdtTemplate {
1162 
1163 /* ************************************************ */
1164 
1165 #ifdef __cplusplus
1166 };
1167 #endif
ID and Library types, which are fundamental for sdna.
struct FMod_Cycles FMod_Cycles
eNlaStrip_Flag
@ NLASTRIP_FLAG_ACTIVE
@ NLASTRIP_FLAG_USR_INFLUENCE
@ NLASTRIP_FLAG_USR_TIME
@ NLASTRIP_FLAG_TEMP_META
@ NLASTRIP_FLAG_AUTO_BLENDS
@ NLASTRIP_FLAG_REVERSE
@ NLASTRIP_FLAG_MUTED
@ NLASTRIP_FLAG_USR_TIME_CYCLIC
@ NLASTRIP_FLAG_NO_TIME_MAP
@ NLASTRIP_FLAG_SELECT
@ NLASTRIP_FLAG_TWEAKUSER
@ NLASTRIP_FLAG_EDIT_TOUCHED
@ NLASTRIP_FLAG_SYNC_LENGTH
eAnimData_Flag
@ ADT_NLA_SOLO_TRACK
@ ADT_CURVES_ALWAYS_VISIBLE
@ ADT_CURVES_NOT_VISIBLE
@ ADT_DRIVERS_COLLAPSED
@ ADT_NLA_SKEYS_COLLAPSED
@ ADT_UI_ACTIVE
@ ADT_NLA_EVAL_OFF
@ ADT_NLA_EDIT_NOMAP
@ ADT_UI_SELECTED
@ ADT_NLA_EVAL_UPPER_TRACKS
@ ADT_NLA_EDIT_ON
struct FMod_Noise FMod_Noise
eFMod_Stepped_Flags
@ FCM_STEPPED_NO_AFTER
@ FCM_STEPPED_NO_BEFORE
struct FCurve FCurve
eDriverTarget_TransformChannels
@ DTAR_TRANSCHAN_ROTZ
@ DTAR_TRANSCHAN_SCALEX
@ DTAR_TRANSCHAN_SCALEZ
@ DTAR_TRANSCHAN_LOCX
@ DTAR_TRANSCHAN_ROTW
@ DTAR_TRANSCHAN_LOCY
@ DTAR_TRANSCHAN_ROTX
@ MAX_DTAR_TRANSCHAN_TYPES
@ DTAR_TRANSCHAN_LOCZ
@ DTAR_TRANSCHAN_SCALE_AVG
@ DTAR_TRANSCHAN_SCALEY
@ DTAR_TRANSCHAN_ROTY
struct FMod_Envelope FMod_Envelope
eFMod_Cycling_Modes
@ FCM_EXTRAPOLATE_MIRROR
@ FCM_EXTRAPOLATE_CYCLIC
@ FCM_EXTRAPOLATE_CYCLIC_OFFSET
@ FCM_EXTRAPOLATE_NONE
struct DriverVar DriverVar
eKS_Settings
@ KEYINGSET_ABSOLUTE
struct FMod_Limits FMod_Limits
struct FMod_Generator FMod_Generator
eDriver_Types
@ DRIVER_TYPE_AVERAGE
@ DRIVER_TYPE_PYTHON
@ DRIVER_TYPE_MAX
@ DRIVER_TYPE_MIN
@ DRIVER_TYPE_SUM
struct NlaStrip NlaStrip
eFCurve_Coloring
@ FCURVE_COLOR_AUTO_RGB
@ FCURVE_COLOR_AUTO_RAINBOW
@ FCURVE_COLOR_CUSTOM
@ FCURVE_COLOR_AUTO_YRGB
eFMod_Generator_Flags
@ FCM_GENERATOR_ADDITIVE
eFMod_Limit_Flags
@ FCM_LIMIT_XMIN
@ FCM_LIMIT_YMAX
@ FCM_LIMIT_XMAX
@ FCM_LIMIT_YMIN
eFMod_Noise_Modifications
@ FCM_NOISE_MODIF_REPLACE
@ FCM_NOISE_MODIF_SUBTRACT
@ FCM_NOISE_MODIF_ADD
@ FCM_NOISE_MODIF_MULTIPLY
eDriverVar_Types
@ DVAR_TYPE_LOC_DIFF
@ DVAR_TYPE_TRANSFORM_CHAN
@ DVAR_TYPE_ROT_DIFF
@ MAX_DVAR_TYPES
@ DVAR_TYPE_SINGLE_PROP
eInsertKeyFlags
@ INSERTKEY_FAST
@ INSERTKEY_CYCLE_AWARE
@ INSERTKEY_OVERWRITE_FULL
@ INSERTKEY_REPLACE
@ INSERTKEY_MATRIX
@ INSERTKEY_NEEDED
@ INSERTKEY_XYZ2RGB
@ INSERTKEY_NO_USERPREF
@ INSERTKEY_AVAILABLE
@ INSERTKEY_DRIVER
@ INSERTKEY_NOFLAGS
struct KS_Path KS_Path
eFModifier_Types
@ FMODIFIER_TYPE_CYCLES
@ FMODIFIER_TYPE_FILTER
@ FMODIFIER_TYPE_STEPPED
@ FMODIFIER_TYPE_FN_GENERATOR
@ FMODIFIER_TYPE_NOISE
@ FMODIFIER_TYPE_NULL
@ FMODIFIER_TYPE_GENERATOR
@ FMODIFIER_NUM_TYPES
@ FMODIFIER_TYPE_ENVELOPE
@ FMODIFIER_TYPE_PYTHON
@ FMODIFIER_TYPE_LIMITS
eKSP_Grouping
@ KSP_GROUP_KSNAME
@ KSP_GROUP_NAMED
@ KSP_GROUP_NONE
struct KeyingSet KeyingSet
struct FCM_EnvelopeData FCM_EnvelopeData
eFMod_Generator_Modes
@ FCM_GENERATOR_POLYNOMIAL_FACTORISED
@ FCM_GENERATOR_POLYNOMIAL
eNlaStrip_Extrapolate_Mode
@ NLASTRIP_EXTEND_HOLD_FORWARD
@ NLASTRIP_EXTEND_NOTHING
@ NLASTRIP_EXTEND_HOLD
eFModifier_Flags
@ FMODIFIER_FLAG_MUTED
@ FMODIFIER_FLAG_USEINFLUENCE
@ FMODIFIER_FLAG_ACTIVE
@ FMODIFIER_FLAG_DISABLED
@ FMODIFIER_FLAG_RANGERESTRICT
struct FPoint FPoint
eDriverTarget_RotationMode
@ DTAR_ROTMODE_QUATERNION
@ DTAR_ROTMODE_SWING_TWIST_X
@ DTAR_ROTMODE_EULER_MIN
@ DTAR_ROTMODE_EULER_ZXY
@ DTAR_ROTMODE_SWING_TWIST_Y
@ DTAR_ROTMODE_EULER_XYZ
@ DTAR_ROTMODE_EULER_ZYX
@ DTAR_ROTMODE_AUTO
@ DTAR_ROTMODE_EULER_YXZ
@ DTAR_ROTMODE_EULER_MAX
@ DTAR_ROTMODE_EULER_XZY
@ DTAR_ROTMODE_SWING_TWIST_Z
@ DTAR_ROTMODE_EULER_YZX
eDriverTarget_Flag
@ DTAR_FLAG_LOCAL_CONSTS
@ DTAR_FLAG_LOCALSPACE
@ DTAR_FLAG_ID_OB_ONLY
@ DTAR_FLAG_INVALID
@ DTAR_FLAG_STRUCT_REF
eNlaStrip_Blend_Mode
@ NLASTRIP_MODE_REPLACE
@ NLASTRIP_MODE_ADD
@ NLASTRIP_MODE_SUBTRACT
@ NLASTRIP_MODE_COMBINE
@ NLASTRIP_MODE_MULTIPLY
eDriver_Flags
@ DRIVER_FLAG_INVALID
@ DRIVER_FLAG_RECOMPILE
@ DRIVER_FLAG_USE_SELF
@ DRIVER_FLAG_RENAMEVAR
@ DRIVER_FLAG_DEPRECATED
eNlaStrip_Type
@ NLASTRIP_TYPE_SOUND
@ NLASTRIP_TYPE_META
@ NLASTRIP_TYPE_TRANSITION
@ NLASTRIP_TYPE_CLIP
eFCurve_Flags
@ FCURVE_DISABLED
@ FCURVE_MUTED
@ FCURVE_TAGGED
@ FCURVE_MOD_OFF
@ FCURVE_INT_VALUES
@ FCURVE_ACTIVE
@ FCURVE_SELECTED
@ FCURVE_DISCRETE_VALUES
@ FCURVE_PROTECTED
@ FCURVE_VISIBLE
eKSP_Settings
@ KSP_FLAG_WHOLE_ARRAY
eNlaTrack_Flag
@ NLATRACK_SOLO
@ NLATRACK_ACTIVE
@ NLATRACK_MUTED
@ NLATRACK_DISABLED
@ NLATRACK_SELECTED
@ NLATRACK_PROTECTED
@ NLATRACK_OVERRIDELIBRARY_LOCAL
eFCurve_Extend
@ FCURVE_EXTRAPOLATE_CONSTANT
@ FCURVE_EXTRAPOLATE_LINEAR
struct DriverTarget DriverTarget
eFCurve_Smoothing
@ FCURVE_SMOOTH_NONE
@ FCURVE_SMOOTH_CONT_ACCEL
struct FMod_FunctionGenerator FMod_FunctionGenerator
struct FModifier FModifier
struct AnimData AnimData
struct AnimOverride AnimOverride
struct IdAdtTemplate IdAdtTemplate
eDriverVar_Flags
@ DVAR_FLAG_INVALID_START_CHAR
@ DVAR_FLAG_INVALID_NAME
@ DVAR_FLAG_INVALID_EMPTY
@ DVAR_FLAG_INVALID_START_NUM
@ DVAR_FLAG_INVALID_HAS_SPACE
@ DVAR_FLAG_ERROR
@ DVAR_FLAG_INVALID_HAS_DOT
@ DVAR_FLAG_INVALID_HAS_SPECIAL
@ DVAR_FLAG_INVALID_PY_KEYWORD
struct FMod_Python FMod_Python
struct FMod_Stepped FMod_Stepped
eFMod_Generator_Functions
@ FCM_GENERATOR_FN_LN
@ FCM_GENERATOR_FN_SIN
@ FCM_GENERATOR_FN_SQRT
@ FCM_GENERATOR_FN_SINC
@ FCM_GENERATOR_FN_COS
@ FCM_GENERATOR_FN_TAN
struct NlaTrack NlaTrack
struct ChannelDriver ChannelDriver
These structs are the foundation for all linked lists in the library system.
#define DNA_DEPRECATED_ALLOW
Definition: action.c:16
char _pad[4]
bAction * action
short act_blendmode
NlaStrip * actstrip
ListBase overrides
float act_influence
FCurve ** driver_array
NlaTrack * act_track
bAction * tmpact
short act_extendmode
ListBase drivers
ListBase nla_tracks
struct AnimOverride * prev
struct AnimOverride * next
ListBase variables
char expression[256]
struct ExprPyLike_Parsed * expr_simple
char pchan_name[64]
struct DriverVar * next
char num_targets
DriverTarget targets[8]
char name[64]
struct DriverVar * prev
struct FCurve * next
bActionGroup * grp
int color_mode
float curval
char * rna_path
FPoint * fpt
ChannelDriver * driver
BezTriple * bezt
float color[3]
struct FCurve * prev
float prev_norm_factor
float prev_offset
char _pad[3]
short extend
int array_index
short flag
unsigned int totvert
int active_keyframe_index
char auto_smoothing
ListBase modifiers
short before_cycles
short after_cycles
FCM_EnvelopeData * data
unsigned int arraysize
float * coefficients
short modification
IDProperty * prop
struct Text * script
char name[64]
struct FCurve * curve
float influence
struct FModifier * next
short ui_expand_flag
void * data
float blendout
float blendin
char _pad[6]
struct FModifier * prev
char _pad[4]
float vec[2]
Definition: DNA_ID.h:368
AnimData * adt
struct KS_Path * next
short keyingoverride
short flag
char group[64]
int array_index
short keyingflag
short groupmode
struct KS_Path * prev
char * rna_path
struct KeyingSet * prev
char description[240]
char name[64]
char typeinfo[64]
char idname[64]
struct KeyingSet * next
char _pad[6]
ListBase paths
short keyingflag
short keyingoverride
float actstart
struct NlaStrip * next
short blendmode
char _pad2[4]
void * _pad3
char _pad1[2]
float blendout
ListBase fcurves
char name[64]
float influence
ListBase strips
void * speaker_handle
float actend
ListBase modifiers
float repeat
struct NlaStrip * prev
float blendin
struct NlaStrip * orig_strip
short extendmode
bAction * act
float strip_time
ListBase strips
struct NlaTrack * next
char name[64]
struct NlaTrack * prev