Blender V5.0
DNA_anim_enums.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2009 Blender Authors, Joshua Leung. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_utildefines.h"
12
13/* ************************************************ */
14/* F-Curve DataTypes */
15
16/* Modifiers -------------------------------------- */
17
22typedef enum eFModifier_Types {
29 FMODIFIER_TYPE_FILTER = 6, /* Was never implemented, removed in #123906. */
30 FMODIFIER_TYPE_PYTHON = 7, /* Was never implemented, removed in #123906. */
33
34 /* NOTE: all new modifiers must be added above this line */
37
39typedef enum eFModifier_Flags {
44 FMODIFIER_FLAG_EXPANDED = (1 << 1),
45#endif
55
56/* --- */
57
58/* generator modes */
63
64/* generator flags
65 * - shared by Generator and Function Generator
66 */
68 /* generator works in conjunction with other modifiers (i.e. doesn't replace those before it) */
71
72/* 'function' generator types */
81
82/* cycling modes */
93
94/* limiting flags */
101
102/* modification modes */
113
114/* stepped modifier range flags */
121
122/* Drivers -------------------------------------- */
123
129
131typedef enum eDriverTarget_Flag {
137
138 /* "local-space" flags. */
143
146
150
151/* Transform Channels for Driver Targets */
167
168/* Rotation channel mode for Driver Targets */
194
199
200/* --- */
201
202/* maximum number of driver targets per variable */
203#define MAX_DRIVER_TARGETS 8
204
226
227/* Driver Variable Flags */
228typedef enum eDriverVar_Flags {
229 /* variable is not set up correctly */
230 DVAR_FLAG_ERROR = (1 << 0),
231
232 /* variable name doesn't pass the validation tests */
234 /* name starts with a number */
236 /* name starts with a special character (!, $, @, #, _, etc.) */
238 /* name contains a space */
240 /* name contains a dot */
242 /* name contains invalid chars */
244 /* name is a reserved keyword */
246 /* name is zero-length */
249
251#define DVAR_ALL_INVALID_FLAGS \
252 (DVAR_FLAG_INVALID_NAME | DVAR_FLAG_INVALID_START_NUM | DVAR_FLAG_INVALID_START_CHAR | \
253 DVAR_FLAG_INVALID_HAS_SPACE | DVAR_FLAG_INVALID_HAS_DOT | DVAR_FLAG_INVALID_HAS_SPECIAL | \
254 DVAR_FLAG_INVALID_PY_KEYWORD | DVAR_FLAG_INVALID_EMPTY)
255
256/* --- */
257
271
273typedef enum eDriver_Flags {
278 /* TODO: this needs to be implemented at some stage or left out... */
279 // DRIVER_FLAG_LAYERING = (1 << 2),
284 /* Set if the driver cannot run because it uses Python which isn't allowed to execute. */
289
290/* F-Curves -------------------------------------- */
291
293#define FCURVE_ACTIVE_KEYFRAME_NONE -1
294
295/* user-editable flags/settings */
296typedef enum eFCurve_Flags {
298 FCURVE_VISIBLE = (1 << 0),
300 FCURVE_SELECTED = (1 << 1),
302 FCURVE_ACTIVE = (1 << 2),
306 FCURVE_MUTED = (1 << 4),
307
310 FCURVE_AUTO_HANDLES = (1 << 5), /* Dirty. */
311#endif
312 FCURVE_MOD_OFF = (1 << 6),
315 FCURVE_DISABLED = (1 << 10),
317 FCURVE_INT_VALUES = (1 << 11),
321
323 FCURVE_TAGGED = (1 << 15),
326
327/* extrapolation modes (only simple value 'extending') */
334
335/* curve coloring modes */
346
347/* curve smoothing modes */
354
355/* ************************************************ */
356/* 'Action' Data-types */
357
358/* NOTE: Although these are part of the Animation System,
359 * they are not stored here, see `DNA_action_types.h` instead. */
360
361/* ************************************************ */
362/* NLA - Non-Linear Animation */
363
364/* NLA Strips ------------------------------------- */
365
366/* NLA Strip Blending Mode */
374
377 /* extend before first frame if no previous strips in track,
378 * and always hold+extend last frame */
380 /* only hold+extend last frame */
382 /* don't contribute at all */
385
387typedef enum eNlaStrip_Flag {
388 /* UI selection flags */
391 /* NLA strip is selected for editing */
393 // NLASTRIP_FLAG_SELECT_L = (1 << 2), /* left handle selected. */
394 // NLASTRIP_FLAG_SELECT_R = (1 << 3), /* right handle selected. */
395
401
402 /* controls driven by local F-Curves */
407
410
411 /* playback flags (may be overridden by F-Curves) */
419 /* NLASTRIP_FLAG_MIRROR = (1 << 13), */ /* UNUSED */
420
421 /* temporary editing flags */
422
435
436/* NLA Strip Type */
437typedef enum eNlaStrip_Type {
438 /* 'clip' - references an Action */
440 /* 'transition' - blends between the adjacent strips */
442 /* 'meta' - a strip which acts as a container for a few others */
444
445 /* 'emit sound' - a strip which is used for timing when speaker emits sounds */
448
449/* NLA Tracks ------------------------------------- */
450
451/* settings for track */
477
478/* ************************************ */
479/* KeyingSet Data-types */
480
481/* KeyingSet settings */
482typedef enum eKS_Settings {
484 /* KEYINGSET_BUILTIN = (1 << 0), */ /* UNUSED */
489
490/* Flags for use by keyframe creation/deletion calls */
498 INSERTKEY_FAST = (1 << 2),
500 /* INSERTKEY_FASTR = (1 << 3), */ /* UNUSED */
517
518/* KS_Path->flag */
519typedef enum eKSP_Settings {
520 /* entire array (not just the specified index) gets keyframed */
523
524/* KS_Path->groupmode */
525typedef enum eKSP_Grouping {
534 /* KSP_GROUP_TEMPLATE_ITEM, */ /* UNUSED */
536
537/* ************************************************ */
538/* Animation Data */
539
540/* AnimData ------------------------------------- */
541
542/* Animation Data settings (mostly for NLA) */
543typedef enum eAnimData_Flag {
549 ADT_NLA_EDIT_ON = (1 << 2),
554 /* Evaluate tracks above tweaked strip. Only relevant in tweak mode. */
556
560 /* ADT_DRIVERS_DISABLED = (1 << 11), */ /* UNUSED */
561
563 ADT_UI_SELECTED = (1 << 14),
565 ADT_UI_ACTIVE = (1 << 15),
566
569
572
575 ADT_UI_EXPANDED = (1 << 18),
577
578/* From: `DNA_object_types.h`, see its doc-string there. */
579#define SELECT 1
#define ENUM_OPERATORS(_type, _max)
eNlaStrip_Flag
@ NLASTRIP_FLAG_ACTIVE
@ NLASTRIP_FLAG_USR_INFLUENCE
@ NLASTRIP_FLAG_USR_TIME
@ NLASTRIP_FLAG_INVALID_LOCATION
@ 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_UI_EXPANDED
@ 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
eFMod_Stepped_Flags
@ FCM_STEPPED_NO_AFTER
@ FCM_STEPPED_NO_BEFORE
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
eFMod_Cycling_Modes
@ FCM_EXTRAPOLATE_MIRROR
@ FCM_EXTRAPOLATE_CYCLIC
@ FCM_EXTRAPOLATE_CYCLIC_OFFSET
@ FCM_EXTRAPOLATE_NONE
eKS_Settings
@ KEYINGSET_ABSOLUTE
eDriverTarget_Options
@ DTAR_OPTION_USE_FALLBACK
eDriver_Types
@ DRIVER_TYPE_AVERAGE
@ DRIVER_TYPE_PYTHON
@ DRIVER_TYPE_MAX
@ DRIVER_TYPE_MIN
@ DRIVER_TYPE_SUM
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
@ DVAR_TYPE_CONTEXT_PROP
eInsertKeyFlags
@ INSERTKEY_FAST
@ INSERTKEY_CYCLE_AWARE
@ INSERTKEY_OVERWRITE_FULL
@ INSERTKEY_REPLACE
@ INSERTKEY_MATRIX
@ INSERTKEY_NEEDED
@ INSERTKEY_NO_USERPREF
@ INSERTKEY_AVAILABLE
@ INSERTKEY_NOFLAGS
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
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
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_FALLBACK_USED
@ 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_PYTHON_BLOCKED
@ 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_TEMPORARILY_ADDED
@ NLATRACK_OVERRIDELIBRARY_LOCAL
eFCurve_Extend
@ FCURVE_EXTRAPOLATE_CONSTANT
@ FCURVE_EXTRAPOLATE_LINEAR
eFCurve_Smoothing
@ FCURVE_SMOOTH_NONE
@ FCURVE_SMOOTH_CONT_ACCEL
eDriverTarget_ContextProperty
@ DTAR_CONTEXT_PROPERTY_ACTIVE_SCENE
@ DTAR_CONTEXT_PROPERTY_ACTIVE_VIEW_LAYER
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
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
#define typedef
#define DNA_DEPRECATED_ALLOW
Definition versioning.cc:11