Blender  V3.3
DNA_action_types.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2001-2002 NaN Holding BV. All rights reserved. */
3 
12 #pragma once
13 
14 #include "DNA_ID.h"
15 #include "DNA_listBase.h"
16 #include "DNA_session_uuid_types.h"
17 #include "DNA_userdef_types.h" /* ThemeWireColor */
18 #include "DNA_vec_types.h"
19 #include "DNA_view2d_types.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 struct Collection;
26 struct GHash;
27 struct Object;
28 struct SpaceLink;
29 
30 /* ************************************************ */
31 /* Visualization */
32 
33 /* Motion Paths ------------------------------------ */
34 /* (used for Pose Channels and Objects) */
35 
36 /* Data point for motion path (mpv) */
37 typedef struct bMotionPathVert {
39  float co[3];
41  int flag;
43 
44 /* bMotionPathVert->flag */
45 typedef enum eMotionPathVert_Flag {
46  /* vert is selected */
47  MOTIONPATH_VERT_SEL = (1 << 0),
48  MOTIONPATH_VERT_KEY = (1 << 1),
50 
51 /* ........ */
52 
53 /* Motion Path data cache (mpath)
54  * - for elements providing transforms (i.e. Objects or PoseChannels)
55  */
56 typedef struct bMotionPath {
60  int length;
61 
65  int end_frame;
66 
68  float color[3];
72  int flag;
73 
74  /* Used for drawing. */
78  void *_pad;
80 
81 /* bMotionPath->flag */
82 typedef enum eMotionPath_Flag {
83  /* (for bones) path represents the head of the bone */
85  /* motion path is being edited */
87  /* Custom colors */
89  /* Draw lines or only points */
92 
93 /* Visualization General --------------------------- */
94 /* for Objects or Poses (but NOT PoseChannels) */
95 
96 /* Animation Visualization Settings (avs) */
97 typedef struct bAnimVizSettings {
98  /* General Settings ------------------------ */
100  short recalc;
101 
102  /* Motion Path Settings ------------------- */
104  short path_type;
106  short path_step;
108  short path_range;
109 
114  char _pad[4];
115 
121 
122 /* bAnimVizSettings->recalc */
123 typedef enum eAnimViz_RecalcFlags {
124  /* Motion-paths need recalculating. */
127 
128 /* bAnimVizSettings->path_type */
129 typedef enum eMotionPaths_Types {
130  /* show the paths along their entire ranges */
132  /* only show the parts of the paths around the current frame */
135 
136 /* bAnimVizSettings->path_range */
137 typedef enum eMotionPath_Ranges {
138  /* Default is scene */
143 
144 /* bAnimVizSettings->path_viewflag */
145 typedef enum eMotionPaths_ViewFlag {
146  /* show frames on path */
148  /* show keyframes on path */
150  /* show keyframe/frame numbers */
152  /* find keyframes in whole action (instead of just in matching group name) */
154  /* draw lines on path */
155  /* MOTIONPATH_VIEW_LINES = (1 << 4), */ /* UNUSED */
157 
158 /* bAnimVizSettings->path_bakeflag */
159 typedef enum eMotionPaths_BakeFlag {
161  /* MOTIONPATH_BAKE_NEEDS_RECALC = (1 << 0), */ /* UNUSED */
168 
169 /* runtime */
170 #
171 #
172 typedef struct bPoseChannelDrawData {
173  float solid_color[4];
174  float wire_color[4];
175 
177  /* keep last */
178  float bbone_matrix[0][4][4];
180 
181 struct DualQuat;
182 struct Mat4;
183 
184 typedef struct bPoseChannel_Runtime {
186 
187  /* Cached dual quaternion for deformation. */
188  struct DualQuat deform_dual_quat;
189 
190  /* B-Bone shape data: copy of the segment count for validation. */
192 
193  /* Rest and posed matrices for segments. */
196 
197  /* Delta from rest to pose in matrix and DualQuat form. */
201 
202 /* ************************************************ */
203 /* Poses */
204 
205 /* PoseChannel ------------------------------------ */
206 
213 typedef struct bPoseChannel {
214  struct bPoseChannel *next, *prev;
215 
218 
222  char name[64];
223 
225  short flag;
227  short ikflag;
229  short protectflag;
231  short agrp_index;
233  char constflag;
236  char drawflag;
237  char bboneflag DNA_DEPRECATED;
238  char _pad0[4];
239 
241  struct Bone *bone;
246 
248  struct ListBase iktree;
250  struct ListBase siktree;
251 
260  struct Object *custom;
268  float custom_scale; /* Deprecated */
272 
274  float loc[3];
275  float size[3];
276 
282  float eul[3];
284  float quat[4];
286  float rotAxis[3], rotAngle;
288  short rotmode;
289  char _pad[2];
290 
295  float chan_mat[4][4];
300  float pose_mat[4][4];
302  float disp_mat[4][4];
304  float disp_tail_mat[4][4];
309  float constinv[4][4];
310 
312  float pose_head[3];
314  float pose_tail[3];
315 
317  float limitmin[3], limitmax[3];
319  float stiffness[3];
320  float ikstretch;
322  float ikrotweight;
324  float iklinweight;
325 
330  float roll1, roll2;
333  float ease1, ease2;
334  float scale_in_x DNA_DEPRECATED, scale_in_z DNA_DEPRECATED;
335  float scale_out_x DNA_DEPRECATED, scale_out_z DNA_DEPRECATED;
336  float scale_in[3], scale_out[3];
337 
341 
343  void *temp;
346 
349 
353 
354 /* PoseChannel (transform) flags */
355 typedef enum ePchan_Flag {
356  /* has transforms */
357  POSE_LOC = (1 << 0),
358  POSE_ROT = (1 << 1),
359  POSE_SIZE = (1 << 2),
360 
361  /* old IK/cache stuff
362  * - used to be here from (1 << 3) to (1 << 8)
363  * but has been repurposed since 2.77.2
364  * as they haven't been used in over 10 years
365  */
366 
367  /* has BBone deforms */
368  POSE_BBONE_SHAPE = (1 << 3),
369 
370  /* IK/Pose solving */
371  POSE_CHAIN = (1 << 9),
372  POSE_DONE = (1 << 10),
373  /* visualization */
374  POSE_KEY = (1 << 11),
375  /* POSE_STRIDE = (1 << 12), */ /* UNUSED */
376  /* standard IK solving */
377  POSE_IKTREE = (1 << 13),
378 #if 0
379  /* has Spline IK */
380  POSE_HAS_IKS = (1 << 14),
381 #endif
382  /* spline IK solving */
383  POSE_IKSPLINE = (1 << 15),
385 
386 /* PoseChannel constflag (constraint detection) */
387 typedef enum ePchan_ConstFlag {
388  PCHAN_HAS_IK = (1 << 0),
389  PCHAN_HAS_CONST = (1 << 1),
390  /* only used for drawing Posemode, not stored in channel */
391  /* PCHAN_HAS_ACTION = (1 << 2), */ /* UNUSED */
392  PCHAN_HAS_TARGET = (1 << 3),
393  /* only for drawing Posemode too */
394  /* PCHAN_HAS_STRIDE = (1 << 4), */ /* UNUSED */
395  /* spline IK */
396  PCHAN_HAS_SPLINEIK = (1 << 5),
398 
399 /* PoseChannel->ikflag */
400 typedef enum ePchan_IkFlag {
401  BONE_IK_NO_XDOF = (1 << 0),
402  BONE_IK_NO_YDOF = (1 << 1),
403  BONE_IK_NO_ZDOF = (1 << 2),
404 
405  BONE_IK_XLIMIT = (1 << 3),
406  BONE_IK_YLIMIT = (1 << 4),
407  BONE_IK_ZLIMIT = (1 << 5),
408 
409  BONE_IK_ROTCTL = (1 << 6),
410  BONE_IK_LINCTL = (1 << 7),
411 
412  BONE_IK_NO_XDOF_TEMP = (1 << 10),
413  BONE_IK_NO_YDOF_TEMP = (1 << 11),
414  BONE_IK_NO_ZDOF_TEMP = (1 << 12),
416 
417 /* PoseChannel->drawflag */
418 typedef enum ePchan_DrawFlag {
421 
422 /* NOTE: It doesn't take custom_scale_xyz into account. */
423 #define PCHAN_CUSTOM_BONE_LENGTH(pchan) \
424  (((pchan)->drawflag & PCHAN_DRAW_NO_CUSTOM_BONE_SIZE) ? 1.0f : (pchan)->bone->length)
425 
426 #ifdef DNA_DEPRECATED_ALLOW
427 /* PoseChannel->bboneflag */
428 typedef enum ePchan_BBoneFlag {
429  /* Use custom reference bones (for roll and handle alignment), instead of immediate neighbors */
430  PCHAN_BBONE_CUSTOM_HANDLES = (1 << 1),
431  /* Evaluate start handle as being "relative" */
432  PCHAN_BBONE_CUSTOM_START_REL = (1 << 2),
433  /* Evaluate end handle as being "relative" */
434  PCHAN_BBONE_CUSTOM_END_REL = (1 << 3),
435 } ePchan_BBoneFlag;
436 #endif
437 
438 /* PoseChannel->rotmode and Object->rotmode */
439 typedef enum eRotationModes {
440  /* quaternion rotations (default, and for older Blender versions) */
442  /* euler rotations - keep in sync with enum in BLI_math.h */
451  /* NOTE: space is reserved here for 18 other possible
452  * euler rotation orders not implemented
453  */
454  /* axis angle rotations */
456 
457  ROT_MODE_MIN = ROT_MODE_AXISANGLE, /* sentinel for Py API */
460 
461 /* Pose ------------------------------------ */
462 
463 /* Pose-Object.
464  *
465  * It is only found under ob->pose. It is not library data, even
466  * though there is a define for it (hack for the outliner).
467  */
468 typedef struct bPose {
472  struct GHash *chanhash;
473 
474  /* Flat array of pose channels. It references pointers from
475  * chanbase. Used for quick pose channel lookup from an index.
476  */
478 
479  short flag;
480  char _pad[2];
481 
483  float ctime;
485  float stride_offset[3];
487  float cyclic_offset[3];
488 
491 
495  int iksolver;
497  void *ikdata;
499  void *ikparam;
500 
504 
505 /* Pose->flag */
506 typedef enum ePose_Flags {
507  /* results in BKE_pose_rebuild being called */
508  POSE_RECALC = (1 << 0),
509  /* prevents any channel from getting overridden by anim from IPO */
510  POSE_LOCKED = (1 << 1),
511  /* clears the POSE_LOCKED flag for the next time the pose is evaluated */
512  POSE_DO_UNLOCK = (1 << 2),
513  /* pose has constraints which depend on time (used when depsgraph updates for a new frame) */
515  /* recalculate bone paths */
516  /* POSE_RECALCPATHS = (1 << 4), */ /* UNUSED */
517  /* set by BKE_pose_rebuild to give a chance to the IK solver to rebuild IK tree */
518  POSE_WAS_REBUILT = (1 << 5),
519  POSE_FLAG_DEPRECATED = (1 << 6), /* deprecated. */
520  /* pose constraint flags needs to be updated */
522  /* Use auto IK in pose mode */
523  POSE_AUTO_IK = (1 << 8),
524  /* Use x-axis mirror in pose mode */
525  POSE_MIRROR_EDIT = (1 << 9),
526  /* Use relative mirroring in mirror mode */
527  POSE_MIRROR_RELATIVE = (1 << 10),
529 
530 /* IK Solvers ------------------------------------ */
531 
532 /* bPose->iksolver and bPose->ikparam->iksolver */
533 typedef enum ePose_IKSolverType {
537 
538 /* header for all bPose->ikparam structures */
539 typedef struct bIKParam {
540  int iksolver;
542 
543 /* bPose->ikparam when bPose->iksolver=1 */
544 typedef struct bItasc {
545  int iksolver;
546  float precision;
547  short numiter;
548  short numstep;
549  float minstep;
550  float maxstep;
551  short solver;
552  short flag;
553  float feedback;
555  float maxvel;
557  float dampmax;
559  float dampeps;
561 
562 /* bItasc->flag */
563 typedef enum eItasc_Flags {
564  ITASC_AUTO_STEP = (1 << 0),
566  ITASC_REITERATION = (1 << 2),
567  ITASC_SIMULATION = (1 << 3),
569 
570 /* bItasc->solver */
571 typedef enum eItasc_Solver {
572  ITASC_SOLVER_SDLS = 0, /* selective damped least square, suitable for CopyPose constraint */
573  ITASC_SOLVER_DLS = 1, /* damped least square with numerical filtering of damping */
575 
576 /* ************************************************ */
577 /* Action */
578 
579 /* Groups -------------------------------------- */
580 
581 /* Action-Channel Group (agrp)
582  *
583  * These are stored as a list per-Action, and are only used to
584  * group that Action's channels in an Animation Editor.
585  *
586  * Even though all FCurves live in a big list per Action, each group they are in also
587  * holds references to the achans within that list which belong to it. Care must be taken to
588  * ensure that action-groups never end up being the sole 'owner' of a channel.
589  *
590  * This is also exploited for bone-groups. Bone-Groups are stored per bPose, and are used
591  * primarily to color bones in the 3d-view. There are other benefits too, but those are mostly
592  * related to Action-Groups.
593  *
594  * Note that these two uses each have their own RNA 'ActionGroup' and 'BoneGroup'.
595  */
596 typedef struct bActionGroup {
597  struct bActionGroup *next, *prev;
598 
604 
606  int flag;
613  char name[64];
614 
618 
619 /* Action Group flags */
620 typedef enum eActionGroup_Flag {
621  /* group is selected */
622  AGRP_SELECTED = (1 << 0),
623  /* group is 'active' / last selected one */
624  AGRP_ACTIVE = (1 << 1),
625  /* keyframes/channels belonging to it cannot be edited */
626  AGRP_PROTECTED = (1 << 2),
627  /* for UI (DopeSheet), sub-channels are shown */
628  AGRP_EXPANDED = (1 << 3),
629  /* sub-channels are not evaluated */
630  AGRP_MUTED = (1 << 4),
631  /* sub-channels are not visible in Graph Editor */
632  AGRP_NOTVISIBLE = (1 << 5),
633  /* for UI (Graph Editor), sub-channels are shown */
634  AGRP_EXPANDED_G = (1 << 6),
635 
636  /* sub channel modifiers off */
637  AGRP_MODIFIERS_OFF = (1 << 7),
638 
639  AGRP_TEMP = (1 << 30),
640  AGRP_MOVED = (1u << 31),
642 
643 /* Actions -------------------------------------- */
644 
645 /* Action - reusable F-Curve 'bag' (act)
646  *
647  * This contains F-Curves that may affect settings from more than one ID blocktype and/or datablock
648  * (i.e. sub-data linked/used directly to the ID block that the animation data is linked to),
649  * but with the restriction that the other unrelated data (i.e. data that is not directly used or
650  * linked to by the source ID block).
651  *
652  * It serves as a 'unit' of reusable animation information (i.e. keyframes/motion data),
653  * that affects a group of related settings (as defined by the user).
654  */
655 typedef struct bAction {
658 
667 
669  int flag;
672 
677  int idroot;
678  char _pad[4];
679 
683 
686 
687 /* Flags for the action */
688 typedef enum eAction_Flags {
689  /* flags for displaying in UI */
690  ACT_COLLAPSED = (1 << 0),
691  ACT_SELECTED = (1 << 1),
692 
693  /* flags for evaluation/editing */
694  ACT_MUTED = (1 << 9),
695  /* ACT_PROTECTED = (1 << 10), */ /* UNUSED */
696  /* ACT_DISABLED = (1 << 11), */ /* UNUSED */
698  ACT_FRAME_RANGE = (1 << 12),
700  ACT_CYCLIC = (1 << 13),
702 
703 /* ************************************************ */
704 /* Action/Dopesheet Editor */
705 
706 /* Storage for Dopesheet/Grease-Pencil Editor data */
707 typedef struct bDopeSheet {
709  ID *source; /* XXX not used! */
712 
716  char searchstr[64];
717 
723  int flag;
724 
728 
729 /* DopeSheet filter-flag */
730 typedef enum eDopeSheet_FilterFlag {
731  /* general filtering */
733  ADS_FILTER_ONLYSEL = (1 << 0),
734 
735  /* temporary filters */
739  ADS_FILTER_ONLYNLA = (1 << 2),
741  ADS_FILTER_SELEDIT = (1 << 3),
742 
743  /* general filtering */
745  ADS_FILTER_SUMMARY = (1 << 4),
746 
747  /* datatype-based filtering */
749  ADS_FILTER_NOMESH = (1 << 7),
751  ADS_FILTER_NOOBJ = (1 << 8),
752  ADS_FILTER_NOLAT = (1 << 9),
753  ADS_FILTER_NOCAM = (1 << 10),
754  ADS_FILTER_NOMAT = (1 << 11),
755  ADS_FILTER_NOLAM = (1 << 12),
756  ADS_FILTER_NOCUR = (1 << 13),
757  ADS_FILTER_NOWOR = (1 << 14),
758  ADS_FILTER_NOSCE = (1 << 15),
759  ADS_FILTER_NOPART = (1 << 16),
760  ADS_FILTER_NOMBA = (1 << 17),
761  ADS_FILTER_NOARM = (1 << 18),
762  ADS_FILTER_NONTREE = (1 << 19),
763  ADS_FILTER_NOTEX = (1 << 20),
764  ADS_FILTER_NOSPK = (1 << 21),
767  ADS_FILTER_NOGPENCIL = (1 << 24),
768  /* NOTE: all new datablock filters will have to go in filterflag2 (see below) */
769 
770  /* NLA-specific filters */
772  ADS_FILTER_NLA_NOACT = (1 << 25),
773 
774  /* general filtering 3 */
779 
780 #if 0
782  ADS_FILTER_NOOBDATA = (ADS_FILTER_NOCAM | ADS_FILTER_NOMAT | ADS_FILTER_NOLAM |
785 #endif
787 
788 /* DopeSheet filter-flags - Overflow (filterflag2) */
792  ADS_FILTER_NOHAIR = (1 << 3),
796 
797 /* DopeSheet general flags */
798 typedef enum eDopeSheet_Flag {
803 
812 
813 typedef struct SpaceAction_Runtime {
814  char flag;
815  char _pad0[7];
817 
818 /* Action Editor Space. This is defined here instead of in DNA_space_types.h */
819 typedef struct SpaceAction {
820  struct SpaceLink *next, *prev;
823  char spacetype;
824  char link_flag;
825  char _pad0[6];
826  /* End 'SpaceLink' header. */
827 
830 
835 
837  float timeslide;
838 
839  short flag;
840  /* Editing context */
841  char mode;
842  /* Storage for sub-space types. */
843  char mode_prev;
845  char autosnap;
848  char _pad1[6];
849 
852 
853 /* SpaceAction flag */
854 typedef enum eSAction_Flag {
855  /* during transform (only set for TimeSlide) */
856  SACTION_MOVING = (1 << 0),
857  /* show sliders */
858  SACTION_SLIDERS = (1 << 1),
859  /* draw time in seconds instead of time in frames */
860  SACTION_DRAWTIME = (1 << 2),
861  /* don't filter action channels according to visibility */
862  // SACTION_NOHIDE = (1 << 3), /* Deprecated, old animation systems. */
863  /* don't kill overlapping keyframes after transform */
865  /* don't include keyframes that are out of view */
866  // SACTION_HORIZOPTIMISEON = (1 << 5), /* Deprecated, old irrelevant trick. */
867  /* show pose-markers (local to action) in Action Editor mode. */
869  /* don't draw action channels using group colors (where applicable) */
870  /* SACTION_NODRAWGCOLORS = (1 << 7), DEPRECATED */
871  /* SACTION_NODRAWCFRANUM = (1 << 8), DEPRECATED */
872  /* don't perform realtime updates */
874  /* move markers as well as keyframes */
875  SACTION_MARKERS_MOVE = (1 << 11),
876  /* show interpolation type */
878  /* show extremes */
880  /* show markers region */
881  SACTION_SHOW_MARKERS = (1 << 14),
883 
885 typedef enum eSAction_Runtime_Flag {
889 
891 typedef enum eAnimEdit_Context {
907 
908 /* SpaceAction AutoSnap Settings (also used by other Animation Editors) */
909 typedef enum eAnimEdit_AutoSnap {
910  /* no auto-snap */
912  /* snap to 1.0 frame/second intervals */
914  /* snap to actual frames/seconds (nla-action time) */
916  /* snap to nearest marker */
918  /* snap to actual seconds (nla-action time) */
920  /* snap to 1.0 second increments */
923 
924 /* SAction->cache_display */
925 typedef enum eTimeline_Cache_Flag {
926  TIME_CACHE_DISPLAY = (1 << 0),
929  TIME_CACHE_CLOTH = (1 << 3),
930  TIME_CACHE_SMOKE = (1 << 4),
934 
935 /* ************************************************ */
936 /* Legacy Data */
937 
938 /* WARNING: Action Channels are now deprecated... they were part of the old animation system!
939  * (ONLY USED FOR DO_VERSIONS...)
940  *
941  * Action Channels belong to Actions. They are linked with an IPO block, and can also own
942  * Constraint Channels in certain situations.
943  *
944  * Action-Channels can only belong to one group at a time, but they still live the Action's
945  * list of achans (to preserve backwards compatibility, and also minimize the code
946  * that would need to be recoded). Grouped achans are stored at the start of the list, according
947  * to the position of the group in the list, and their position within the group.
948  */
949 typedef struct bActionChannel {
953 
955  struct Ipo *ipo;
958 
960  int flag;
962  char name[64];
964  int temp;
966 
967 #ifdef __cplusplus
968 }
969 #endif
ID and Library types, which are fundamental for sdna.
struct bActionChannel bActionChannel
eDopeSheet_FilterFlag2
@ ADS_FILTER_NOMOVIECLIPS
@ ADS_FILTER_NOVOLUME
@ ADS_FILTER_NOHAIR
@ ADS_FILTER_NOCACHEFILES
@ ADS_FILTER_NOPOINTCLOUD
eItasc_Solver
@ ITASC_SOLVER_SDLS
@ ITASC_SOLVER_DLS
eMotionPaths_BakeFlag
@ MOTIONPATH_BAKE_HEADS
@ MOTIONPATH_BAKE_HAS_PATHS
eMotionPaths_Types
@ MOTIONPATH_TYPE_ACFRA
@ MOTIONPATH_TYPE_RANGE
ePose_IKSolverType
@ IKSOLVER_STANDARD
@ IKSOLVER_ITASC
struct bItasc bItasc
eDopeSheet_FilterFlag
@ ADS_FILTER_ONLYSEL
@ ADS_FILTER_NOARM
@ ADS_FILTER_NLA_NOACT
@ ADS_FILTER_NOMAT
@ ADS_FILTER_NONTREE
@ ADS_FILTER_NOCAM
@ ADS_FILTER_NOSHAPEKEYS
@ ADS_FILTER_NOTEX
@ ADS_FILTER_ONLYNLA
@ ADS_FILTER_ONLY_ERRORS
@ ADS_FILTER_ONLYDRIVERS
@ ADS_FILTER_SELEDIT
@ ADS_FILTER_NOSCE
@ ADS_FILTER_NOLAM
@ ADS_FILTER_NOMODIFIERS
@ ADS_FILTER_NOLINESTYLE
@ ADS_FILTER_SUMMARY
@ ADS_FILTER_NOGPENCIL
@ ADS_FILTER_NOOBJ
@ ADS_FILTER_NOCUR
@ ADS_FILTER_NOPART
@ ADS_FILTER_NOSPK
@ ADS_FILTER_NOMESH
@ ADS_FILTER_NOWOR
@ ADS_FILTER_INCL_HIDDEN
@ ADS_FILTER_NOMBA
@ ADS_FILTER_NOLAT
eActionGroup_Flag
@ AGRP_TEMP
@ AGRP_ACTIVE
@ AGRP_SELECTED
@ AGRP_EXPANDED_G
@ AGRP_EXPANDED
@ AGRP_PROTECTED
@ AGRP_MOVED
@ AGRP_MODIFIERS_OFF
@ AGRP_MUTED
@ AGRP_NOTVISIBLE
eAnimEdit_AutoSnap
@ SACTSNAP_OFF
@ SACTSNAP_SECOND
@ SACTSNAP_TSTEP
@ SACTSNAP_MARKER
@ SACTSNAP_STEP
@ SACTSNAP_FRAME
struct bPoseChannel bPoseChannel
struct bAnimVizSettings bAnimVizSettings
struct bDopeSheet bDopeSheet
struct bAction bAction
eAction_Flags
@ ACT_FRAME_RANGE
@ ACT_COLLAPSED
@ ACT_MUTED
@ ACT_CYCLIC
@ ACT_SELECTED
eMotionPathVert_Flag
@ MOTIONPATH_VERT_KEY
@ MOTIONPATH_VERT_SEL
enum eMotionPaths_Types eMotionPath_Types
struct bPose bPose
struct bPoseChannelDrawData bPoseChannelDrawData
struct SpaceAction SpaceAction
eMotionPaths_ViewFlag
@ MOTIONPATH_VIEW_KFACT
@ MOTIONPATH_VIEW_KFNOS
@ MOTIONPATH_VIEW_FNUMS
@ MOTIONPATH_VIEW_KFRAS
eRotationModes
@ ROT_MODE_XZY
@ ROT_MODE_QUAT
@ ROT_MODE_ZXY
@ ROT_MODE_MAX
@ ROT_MODE_AXISANGLE
@ ROT_MODE_MIN
@ ROT_MODE_EUL
@ ROT_MODE_ZYX
@ ROT_MODE_XYZ
@ ROT_MODE_YXZ
@ ROT_MODE_YZX
struct SpaceAction_Runtime SpaceAction_Runtime
struct bActionGroup bActionGroup
struct bIKParam bIKParam
eItasc_Flags
@ ITASC_REITERATION
@ ITASC_AUTO_STEP
@ ITASC_SIMULATION
@ ITASC_INITIAL_REITERATION
eMotionPath_Ranges
@ MOTIONPATH_RANGE_KEYS_ALL
@ MOTIONPATH_RANGE_KEYS_SELECTED
@ MOTIONPATH_RANGE_SCENE
eAnimViz_RecalcFlags
@ ANIMVIZ_RECALC_PATHS
ePchan_IkFlag
@ BONE_IK_ZLIMIT
@ BONE_IK_NO_YDOF_TEMP
@ BONE_IK_XLIMIT
@ BONE_IK_NO_XDOF_TEMP
@ BONE_IK_NO_ZDOF
@ BONE_IK_ROTCTL
@ BONE_IK_NO_ZDOF_TEMP
@ BONE_IK_YLIMIT
@ BONE_IK_NO_YDOF
@ BONE_IK_LINCTL
@ BONE_IK_NO_XDOF
struct bMotionPathVert bMotionPathVert
eMotionPath_Flag
@ MOTIONPATH_FLAG_LINES
@ MOTIONPATH_FLAG_CUSTOM
@ MOTIONPATH_FLAG_EDIT
@ MOTIONPATH_FLAG_BHEAD
ePchan_ConstFlag
@ PCHAN_HAS_CONST
@ PCHAN_HAS_IK
@ PCHAN_HAS_TARGET
@ PCHAN_HAS_SPLINEIK
struct bMotionPath bMotionPath
eTimeline_Cache_Flag
@ TIME_CACHE_PARTICLES
@ TIME_CACHE_RIGIDBODY
@ TIME_CACHE_DYNAMICPAINT
@ TIME_CACHE_SOFTBODY
@ TIME_CACHE_DISPLAY
@ TIME_CACHE_CLOTH
@ TIME_CACHE_SMOKE
ePchan_DrawFlag
@ PCHAN_DRAW_NO_CUSTOM_BONE_SIZE
ePchan_Flag
@ POSE_DONE
@ POSE_IKTREE
@ POSE_BBONE_SHAPE
@ POSE_IKSPLINE
@ POSE_ROT
@ POSE_CHAIN
@ POSE_KEY
@ POSE_LOC
@ POSE_SIZE
eDopeSheet_Flag
@ ADS_FLAG_SHOW_DBFILTERS
@ ADS_FLAG_SUMMARY_COLLAPSED
@ ADS_FLAG_INVERT_FILTER
@ ADS_FLAG_NO_DB_SORT
@ ADS_FLAG_FUZZY_NAMES
struct bPoseChannel_Runtime bPoseChannel_Runtime
enum eMotionPaths_BakeFlag eMotionPath_BakeFlag
enum eMotionPaths_ViewFlag eMotionPath_ViewFlag
ePose_Flags
@ POSE_LOCKED
@ POSE_DO_UNLOCK
@ POSE_FLAG_DEPRECATED
@ POSE_CONSTRAINTS_NEED_UPDATE_FLAGS
@ POSE_WAS_REBUILT
@ POSE_AUTO_IK
@ POSE_RECALC
@ POSE_CONSTRAINTS_TIMEDEPEND
@ POSE_MIRROR_EDIT
@ POSE_MIRROR_RELATIVE
eAnimEdit_Context
@ SACTCONT_GPENCIL
@ SACTCONT_ACTION
@ SACTCONT_TIMELINE
@ SACTCONT_DOPESHEET
@ SACTCONT_SHAPEKEY
@ SACTCONT_MASK
@ SACTCONT_CACHEFILE
eSAction_Runtime_Flag
@ SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC
eSAction_Flag
@ SACTION_NOTRANSKEYCULL
@ SACTION_POSEMARKERS_SHOW
@ SACTION_SHOW_INTERPOLATION
@ SACTION_SHOW_EXTREMES
@ SACTION_SHOW_MARKERS
@ SACTION_SLIDERS
@ SACTION_MOVING
@ SACTION_MARKERS_MOVE
@ SACTION_NOREALTIMEUPDATES
@ SACTION_DRAWTIME
These structs are the foundation for all linked lists in the library system.
GPUBatch
Definition: GPU_batch.h:78
struct GPUVertBuf GPUVertBuf
Definition: DNA_ID.h:368
View2D v2d DNA_DEPRECATED
bAction * action
bDopeSheet ads
struct SpaceLink * prev
SpaceAction_Runtime runtime
struct SpaceLink * next
ListBase regionbase
struct bActionChannel * next
bActionGroup * grp
struct Ipo * ipo
ListBase constraintChannels
struct bActionChannel * prev
ThemeWireColor cs
struct bActionGroup * prev
struct bActionGroup * next
ListBase curves
ListBase chanbase DNA_DEPRECATED
float frame_start
float frame_end
ListBase groups
PreviewImage * preview
char _pad[4]
ListBase markers
ListBase chanbase
char searchstr[64]
struct Collection * filter_grp
float minstep
float dampmax
float precision
float dampeps
float feedback
float maxvel
short numstep
short numiter
short solver
float maxstep
struct GPUVertBuf * points_vbo
bMotionPathVert * points
struct GPUBatch * batch_points
struct GPUBatch * batch_line
float color[3]
float bbone_matrix[0][4][4]
struct Mat4 * bbone_deform_mats
struct DualQuat deform_dual_quat
struct DualQuat * bbone_dual_quats
struct Mat4 * bbone_pose_mats
struct Mat4 * bbone_rest_mats
ListBase constraints
IDProperty * prop
float custom_scale_xyz[3]
float scale_out[3]
bPoseChannelDrawData * draw_data
float custom_rotation_euler[3]
float scale_out_x DNA_DEPRECATED
struct Bone * bone
struct bPoseChannel * parent
char bboneflag DNA_DEPRECATED
struct bPoseChannel * custom_tx
bMotionPath * mpath
float stiffness[3]
struct ListBase iktree
float pose_head[3]
float chan_mat[4][4]
struct bPoseChannel * bbone_next
float pose_tail[3]
struct Object * custom
struct bPoseChannel * prev
struct bPoseChannel * next
float custom_translation[3]
float constinv[4][4]
struct bPoseChannel_Runtime runtime
float disp_mat[4][4]
struct bPoseChannel * orig_pchan
float disp_tail_mat[4][4]
struct bPoseChannel * bbone_prev
float pose_mat[4][4]
struct bPoseChannel * child
float scale_in_x DNA_DEPRECATED
struct ListBase siktree
char _pad[2]
ListBase chanbase
void * ikdata
void * ikparam
float ctime
struct GHash * chanhash
ListBase agroups
short flag
bAnimVizSettings avs
int active_group
float stride_offset[3]
bPoseChannel ** chan_array
float cyclic_offset[3]