Blender  V2.93
DNA_anim_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2009 Blender Foundation, Joshua Leung
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #include "DNA_ID.h"
27 #include "DNA_action_types.h"
28 #include "DNA_curve_types.h"
29 #include "DNA_listBase.h"
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 /* ************************************************ */
36 /* F-Curve DataTypes */
37 
38 /* Modifiers -------------------------------------- */
39 
46 typedef struct FModifier {
47  struct FModifier *next, *prev;
48 
50  struct FCurve *curve;
52  void *data;
53 
55  char name[64];
57  short type;
59  short flag;
65 
66  char _pad[6];
67 
69  float influence;
70 
72  float sfra;
74  float efra;
76  float blendin;
78  float blendout;
80 
85 typedef enum eFModifier_Types {
97 
98  /* NOTE: all new modifiers must be added above this line */
101 
103 typedef enum eFModifier_Flags {
108  FMODIFIER_FLAG_EXPANDED = (1 << 1),
109 #endif
119 
120 /* --- */
121 
122 /* Generator modifier data */
123 typedef struct FMod_Generator {
124  /* general generator information */
126  float *coefficients;
128  unsigned int arraysize;
129 
133  int mode;
134 
136  int flag;
138 
139 /* generator modes */
140 typedef enum eFMod_Generator_Modes {
144 
145 /* generator flags
146  * - shared by Generator and Function Generator
147  */
148 typedef enum eFMod_Generator_Flags {
149  /* generator works in conjunction with other modifiers (i.e. doesn't replace those before it) */
152 
162 typedef struct FMod_FunctionGenerator {
164  float amplitude;
168 
169  /* flags */
171  int type;
173  int flag;
175 
176 /* 'function' generator types */
185 
186 /* envelope modifier - envelope data */
187 typedef struct FCM_EnvelopeData {
189  float min, max;
191  float time;
192 
194  short f1;
196  short f2;
198 
199 /* envelope-like adjustment to values (for fade in/out) */
200 typedef struct FMod_Envelope {
204  int totvert;
205 
207  float midval;
209  float min, max;
211 
212 /* cycling/repetition modifier data */
213 // TODO: we can only do complete cycles...
214 typedef struct FMod_Cycles {
216  short before_mode;
218  short after_mode;
224 
225 /* cycling modes */
226 typedef enum eFMod_Cycling_Modes {
236 
237 /* Python-script modifier data */
238 typedef struct FMod_Python {
240  struct Text *script;
244 
245 /* limits modifier data */
246 typedef struct FMod_Limits {
250  int flag;
251  char _pad[4];
253 
254 /* limiting flags */
255 typedef enum eFMod_Limit_Flags {
256  FCM_LIMIT_XMIN = (1 << 0),
257  FCM_LIMIT_XMAX = (1 << 1),
258  FCM_LIMIT_YMIN = (1 << 2),
259  FCM_LIMIT_YMAX = (1 << 3),
261 
262 /* noise modifier data */
263 typedef struct FMod_Noise {
264  float size;
265  float strength;
266  float phase;
267  float offset;
268 
269  short depth;
272 
273 /* modification modes */
284 
285 /* stepped modifier data */
286 typedef struct FMod_Stepped {
288  float step_size;
290  float offset;
291 
293  float start_frame;
295  float end_frame;
296 
298  int flag;
300 
301 /* stepped modifier range flags */
302 typedef enum eFMod_Stepped_Flags {
308 
309 /* Drivers -------------------------------------- */
310 
311 /* Driver Target (dtar)
312  *
313  * Defines how to access a dependency needed for a driver variable.
314  */
315 typedef struct DriverTarget {
317  ID *id;
318 
320  char *rna_path;
321 
326  char pchan_name[64];
328  short transChan;
329 
332  char _pad[7];
333 
338  short flag;
340  int idtype;
342 
344 typedef enum eDriverTarget_Flag {
350 
351  /* "localspace" flags */
356 
358  DTAR_FLAG_INVALID = (1 << 4),
360 
361 /* Transform Channels for Driver Targets */
374 
377 
378 /* Rotation channel mode for Driver Targets */
382 
390 
392 
398 
402 
403 /* --- */
404 
405 /* maximum number of driver targets per variable */
406 #define MAX_DRIVER_TARGETS 8
407 
416 typedef struct DriverVar {
417  struct DriverVar *next, *prev;
418 
423  char name[64];
424 
427 
431  char type;
432 
434  short flag;
436  float curval;
438 
440 typedef enum eDriverVar_Types {
449 
458 
459 /* Driver Variable Flags */
460 typedef enum eDriverVar_Flags {
461  /* variable is not set up correctly */
462  DVAR_FLAG_ERROR = (1 << 0),
463 
464  /* variable name doesn't pass the validation tests */
466  /* name starts with a number */
468  /* name starts with a special character (!, $, @, #, _, etc.) */
470  /* name contains a space */
472  /* name contains a dot */
474  /* name contains invalid chars */
476  /* name is a reserved keyword */
478  /* name is zero-length */
481 
482 /* All invalid dvar name flags */
483 #define DVAR_ALL_INVALID_FLAGS \
484  (DVAR_FLAG_INVALID_NAME | DVAR_FLAG_INVALID_START_NUM | DVAR_FLAG_INVALID_START_CHAR | \
485  DVAR_FLAG_INVALID_HAS_SPACE | DVAR_FLAG_INVALID_HAS_DOT | DVAR_FLAG_INVALID_HAS_SPECIAL | \
486  DVAR_FLAG_INVALID_PY_KEYWORD | DVAR_FLAG_INVALID_EMPTY)
487 
488 /* --- */
489 
502 typedef struct ChannelDriver {
505 
506  /* python expression to execute (may call functions defined in an accessory file)
507  * which relates the target 'variables' in some way to yield a single usable value
508  */
510  char expression[256];
512  void *expr_comp;
513 
516 
518  float curval;
519  /* XXX to be implemented... this is like the constraint influence setting. */
521  float influence;
522 
523  /* general settings */
525  int type;
527  int flag;
529 
531 typedef enum eDriver_Types {
543 
545 typedef enum eDriver_Flags {
550  /* TODO: this needs to be implemented at some stage or left out... */
551  // DRIVER_FLAG_LAYERING = (1 << 2),
556  // DRIVER_FLAG_UNUSED_5 = (1 << 5),
560 
561 /* F-Curves -------------------------------------- */
562 
564 #define FCURVE_ACTIVE_KEYFRAME_NONE -1
565 
572 typedef struct FPoint {
574  float vec[2];
576  int flag;
577  char _pad[4];
579 
580 /* 'Function-Curve' - defines values over time for a given setting (fcu) */
581 typedef struct FCurve {
582  struct FCurve *next, *prev;
583 
584  /* group */
587 
588  /* driver settings */
591  /* evaluation settings */
594 
595  /* motion data */
601  unsigned int totvert;
602 
611 
612  /* value cache + settings */
614  float curval;
616  short flag;
618  short extend;
621 
622  char _pad[3];
623 
624  /* RNA - data link */
637  char *rna_path;
638 
639  /* curve coloring (for editor) */
643  float color[3];
644 
647 
648 /* user-editable flags/settings */
649 typedef enum eFCurve_Flags {
651  FCURVE_VISIBLE = (1 << 0),
653  FCURVE_SELECTED = (1 << 1),
655  FCURVE_ACTIVE = (1 << 2),
657  FCURVE_PROTECTED = (1 << 3),
659  FCURVE_MUTED = (1 << 4),
660 
662  // DEPRECATED
664  FCURVE_MOD_OFF = (1 << 6),
667  FCURVE_DISABLED = (1 << 10),
669  FCURVE_INT_VALUES = (1 << 11),
673 
675  FCURVE_TAGGED = (1 << 15),
677 
678 /* extrapolation modes (only simple value 'extending') */
679 typedef enum eFCurve_Extend {
685 
686 /* curve coloring modes */
687 typedef enum eFCurve_Coloring {
697 
698 /* curve smoothing modes */
699 typedef enum eFCurve_Smoothing {
705 
706 /* ************************************************ */
707 /* 'Action' Datatypes */
708 
709 /* NOTE: Although these are part of the Animation System,
710  * they are not stored here... see DNA_action_types.h instead
711  */
712 
713 /* ************************************************ */
714 /* NLA - Non-Linear Animation */
715 
716 /* NLA Strips ------------------------------------- */
717 
724 typedef struct NlaStrip {
725  struct NlaStrip *next, *prev;
726 
731  /* TODO: move out? */
736 
738  char name[64];
739 
741  float influence;
743  float strip_time;
744 
746  float start, end;
748  float actstart, actend;
749 
751  float repeat;
753  float scale;
754 
758  short blendmode;
759 
761  short extendmode;
762  char _pad1[2];
763 
765  short type;
766 
769 
771  int flag;
772  char _pad2[4];
773 
774  /* Pointer to an original NLA strip. */
776 
777  void *_pad3;
779 
780 /* NLA Strip Blending Mode */
781 typedef enum eNlaStrip_Blend_Mode {
788 
791  /* extend before first frame if no previous strips in track,
792  * and always hold+extend last frame */
794  /* only hold+extend last frame */
796  /* don't contribute at all */
799 
801 typedef enum eNlaStrip_Flag {
802  /* UI selection flags */
805  /* NLA strip is selected for editing */
807  // NLASTRIP_FLAG_SELECT_L = (1 << 2), /* left handle selected. */
808  // NLASTRIP_FLAG_SELECT_R = (1 << 3), /* right handle selected. */
809 
813 
814  /* controls driven by local F-Curves */
819 
822 
823  /* playback flags (may be overridden by F-Curves) */
829  NLASTRIP_FLAG_MUTED = (1 << 12),
831  /* NLASTRIP_FLAG_MIRROR = (1 << 13), */ /* UNUSED */
832 
833  /* temporary editing flags */
840 
841 /* NLA Strip Type */
842 typedef enum eNlaStrip_Type {
843  /* 'clip' - references an Action */
845  /* 'transition' - blends between the adjacent strips */
847  /* 'meta' - a strip which acts as a container for a few others */
849 
850  /* 'emit sound' - a strip which is used for timing when speaker emits sounds */
853 
854 /* NLA Tracks ------------------------------------- */
855 
864 typedef struct NlaTrack {
865  struct NlaTrack *next, *prev;
866 
869 
871  int flag;
874  int index;
875 
877  char name[64];
879 
880 /* settings for track */
881 typedef enum eNlaTrack_Flag {
884  NLATRACK_ACTIVE = (1 << 0),
886  NLATRACK_SELECTED = (1 << 1),
888  NLATRACK_MUTED = (1 << 2),
890  NLATRACK_SOLO = (1 << 3),
892  NLATRACK_PROTECTED = (1 << 4),
893 
896  NLATRACK_DISABLED = (1 << 10),
897 
902 
903 /* ************************************ */
904 /* KeyingSet Datatypes */
905 
915 typedef struct KS_Path {
916  struct KS_Path *next, *prev;
917 
919  ID *id;
921  char group[64];
922 
924  int idtype;
925 
927  short groupmode;
929  short flag;
930 
932  char *rna_path;
935 
937  short keyingflag;
941 
942 /* KS_Path->flag */
943 typedef enum eKSP_Settings {
944  /* entire array (not just the specified index) gets keyframed */
947 
948 /* KS_Path->groupmode */
949 typedef enum eKSP_Grouping {
958  /* KSP_GROUP_TEMPLATE_ITEM, */ /* UNUSED */
960 
961 /* ---------------- */
962 
974 typedef struct KeyingSet {
975  struct KeyingSet *next, *prev;
976 
979 
981  char idname[64];
983  char name[64];
985  char description[240];
987  char typeinfo[64];
988 
991 
993  short flag;
994 
996  short keyingflag;
999 
1000  char _pad[6];
1002 
1003 /* KeyingSet settings */
1004 typedef enum eKS_Settings {
1006  /* KEYINGSET_BUILTIN = (1 << 0), */ /* UNUSED */
1010 
1011 /* Flags for use by keyframe creation/deletion calls */
1012 typedef enum eInsertKeyFlags {
1015  INSERTKEY_NEEDED = (1 << 0),
1017  INSERTKEY_MATRIX = (1 << 1),
1019  INSERTKEY_FAST = (1 << 2),
1021  /* INSERTKEY_FASTR = (1 << 3), */ /* UNUSED */
1023  INSERTKEY_REPLACE = (1 << 4),
1025  INSERTKEY_XYZ2RGB = (1 << 5),
1033  INSERTKEY_DRIVER = (1 << 8),
1037  INSERTKEY_AVAILABLE = (1 << 10),
1039 
1040 /* ************************************************ */
1041 /* Animation Data */
1042 
1043 /* AnimOverride ------------------------------------- */
1044 
1055 typedef struct AnimOverride {
1057 
1059  char *rna_path;
1062 
1064  float value;
1066 
1067 /* AnimData ------------------------------------- */
1068 
1083 typedef struct AnimData {
1089 
1094 
1095  /* nla-tracks */
1107 
1108  /* 'drivers' for this ID-block's settings - FCurves, but are completely
1109  * separate from those for animation data
1110  */
1116 
1119 
1120  /* settings for animation evaluation */
1122  int flag;
1123  char _pad[4];
1124 
1125  /* settings for active action evaluation (based on NLA strip settings) */
1133 
1134 /* Animation Data settings (mostly for NLA) */
1135 typedef enum eAnimData_Flag {
1139  ADT_NLA_EVAL_OFF = (1 << 1),
1141  ADT_NLA_EDIT_ON = (1 << 2),
1146 
1150  /* ADT_DRIVERS_DISABLED = (1 << 11), */ /* UNUSED */
1151 
1153  ADT_UI_SELECTED = (1 << 14),
1155  ADT_UI_ACTIVE = (1 << 15),
1156 
1159 
1163 
1164 /* Base Struct for Anim ------------------------------------- */
1165 
1171 typedef struct IdAdtTemplate {
1175 
1176 /* ************************************************ */
1177 
1178 #ifdef __cplusplus
1179 };
1180 #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_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_AUTO_HANDLES
@ 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:32
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:273
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