Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/makesdna/DNA_action_types.h
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/makesdna/DNA_action_types.h')
-rw-r--r--source/blender/makesdna/DNA_action_types.h1305
1 files changed, 648 insertions, 657 deletions
diff --git a/source/blender/makesdna/DNA_action_types.h b/source/blender/makesdna/DNA_action_types.h
index b17a746f11c..3341272c10f 100644
--- a/source/blender/makesdna/DNA_action_types.h
+++ b/source/blender/makesdna/DNA_action_types.h
@@ -46,17 +46,17 @@ struct SpaceLink;
/* Data point for motion path (mpv) */
typedef struct bMotionPathVert {
- /** Coordinates of point in 3D-space. */
- float co[3];
- /** Quick settings. */
- int flag;
+ /** Coordinates of point in 3D-space. */
+ float co[3];
+ /** Quick settings. */
+ int flag;
} bMotionPathVert;
/* bMotionPathVert->flag */
typedef enum eMotionPathVert_Flag {
- /* vert is selected */
- MOTIONPATH_VERT_SEL = (1 << 0),
- MOTIONPATH_VERT_KEY = (1 << 1),
+ /* vert is selected */
+ MOTIONPATH_VERT_SEL = (1 << 0),
+ MOTIONPATH_VERT_KEY = (1 << 1),
} eMotionPathVert_Flag;
/* ........ */
@@ -65,40 +65,40 @@ typedef enum eMotionPathVert_Flag {
* - for elements providing transforms (i.e. Objects or PoseChannels)
*/
typedef struct bMotionPath {
- /** Path samples. */
- bMotionPathVert *points;
- /** The number of cached verts. */
- int length;
-
- /** For drawing paths, the start frame number. */
- int start_frame;
- /** For drawing paths, the end frame number. */
- int end_frame;
-
- /** Optional custom color. */
- float color[3];
- /** Line thickness. */
- int line_thickness;
- /** Baking settings - eMotionPath_Flag. */
- int flag;
-
- /* Used for drawing. */
- struct GPUVertBuf *points_vbo;
- struct GPUBatch *batch_line;
- struct GPUBatch *batch_points;
- void *_pad;
+ /** Path samples. */
+ bMotionPathVert *points;
+ /** The number of cached verts. */
+ int length;
+
+ /** For drawing paths, the start frame number. */
+ int start_frame;
+ /** For drawing paths, the end frame number. */
+ int end_frame;
+
+ /** Optional custom color. */
+ float color[3];
+ /** Line thickness. */
+ int line_thickness;
+ /** Baking settings - eMotionPath_Flag. */
+ int flag;
+
+ /* Used for drawing. */
+ struct GPUVertBuf *points_vbo;
+ struct GPUBatch *batch_line;
+ struct GPUBatch *batch_points;
+ void *_pad;
} bMotionPath;
/* bMotionPath->flag */
typedef enum eMotionPath_Flag {
- /* (for bones) path represents the head of the bone */
- MOTIONPATH_FLAG_BHEAD = (1 << 0),
- /* motion path is being edited */
- MOTIONPATH_FLAG_EDIT = (1 << 1),
- /* Custom colors */
- MOTIONPATH_FLAG_CUSTOM = (1 << 2),
- /* Draw lines or only points */
- MOTIONPATH_FLAG_LINES = (1 << 3),
+ /* (for bones) path represents the head of the bone */
+ MOTIONPATH_FLAG_BHEAD = (1 << 0),
+ /* motion path is being edited */
+ MOTIONPATH_FLAG_EDIT = (1 << 1),
+ /* Custom colors */
+ MOTIONPATH_FLAG_CUSTOM = (1 << 2),
+ /* Draw lines or only points */
+ MOTIONPATH_FLAG_LINES = (1 << 3),
} eMotionPath_Flag;
/* Visualization General --------------------------- */
@@ -106,94 +106,93 @@ typedef enum eMotionPath_Flag {
/* Animation Visualization Settings (avs) */
typedef struct bAnimVizSettings {
- /* General Settings ------------------------ */
- /** #eAnimViz_RecalcFlags. */
- short recalc;
-
- /* Motion Path Settings ------------------- */
- /** #eMotionPath_Types. */
- short path_type;
- /** Number of frames between points indicated on the paths. */
- short path_step;
-
- /** #eMotionPaths_ViewFlag. */
- short path_viewflag;
- /** #eMotionPaths_BakeFlag. */
- short path_bakeflag;
- char _pad[6];
-
- /** Start and end frames of path-calculation range. */
- int path_sf, path_ef;
- /** Number of frames before/after current frame to show. */
- int path_bc, path_ac;
+ /* General Settings ------------------------ */
+ /** #eAnimViz_RecalcFlags. */
+ short recalc;
+
+ /* Motion Path Settings ------------------- */
+ /** #eMotionPath_Types. */
+ short path_type;
+ /** Number of frames between points indicated on the paths. */
+ short path_step;
+
+ /** #eMotionPaths_ViewFlag. */
+ short path_viewflag;
+ /** #eMotionPaths_BakeFlag. */
+ short path_bakeflag;
+ char _pad[6];
+
+ /** Start and end frames of path-calculation range. */
+ int path_sf, path_ef;
+ /** Number of frames before/after current frame to show. */
+ int path_bc, path_ac;
} bAnimVizSettings;
-
/* bAnimVizSettings->recalc */
typedef enum eAnimViz_RecalcFlags {
- /* motionpaths need recalculating */
- ANIMVIZ_RECALC_PATHS = (1 << 0),
+ /* motionpaths need recalculating */
+ ANIMVIZ_RECALC_PATHS = (1 << 0),
} eAnimViz_RecalcFlags;
/* bAnimVizSettings->path_type */
typedef enum eMotionPaths_Types {
- /* show the paths along their entire ranges */
- MOTIONPATH_TYPE_RANGE = 0,
- /* only show the parts of the paths around the current frame */
- MOTIONPATH_TYPE_ACFRA = 1,
+ /* show the paths along their entire ranges */
+ MOTIONPATH_TYPE_RANGE = 0,
+ /* only show the parts of the paths around the current frame */
+ MOTIONPATH_TYPE_ACFRA = 1,
} eMotionPath_Types;
/* bAnimVizSettings->path_viewflag */
typedef enum eMotionPaths_ViewFlag {
- /* show frames on path */
- MOTIONPATH_VIEW_FNUMS = (1 << 0),
- /* show keyframes on path */
- MOTIONPATH_VIEW_KFRAS = (1 << 1),
- /* show keyframe/frame numbers */
- MOTIONPATH_VIEW_KFNOS = (1 << 2),
- /* find keyframes in whole action (instead of just in matching group name) */
- MOTIONPATH_VIEW_KFACT = (1 << 3),
- /* draw lines on path */
- MOTIONPATH_VIEW_LINES = (1 << 4),
+ /* show frames on path */
+ MOTIONPATH_VIEW_FNUMS = (1 << 0),
+ /* show keyframes on path */
+ MOTIONPATH_VIEW_KFRAS = (1 << 1),
+ /* show keyframe/frame numbers */
+ MOTIONPATH_VIEW_KFNOS = (1 << 2),
+ /* find keyframes in whole action (instead of just in matching group name) */
+ MOTIONPATH_VIEW_KFACT = (1 << 3),
+ /* draw lines on path */
+ MOTIONPATH_VIEW_LINES = (1 << 4),
} eMotionPath_ViewFlag;
/* bAnimVizSettings->path_bakeflag */
typedef enum eMotionPaths_BakeFlag {
- /** motion paths directly associated with this block of settings needs updating */
- MOTIONPATH_BAKE_NEEDS_RECALC = (1 << 0),
- /** for bones - calculate head-points for curves instead of tips */
- MOTIONPATH_BAKE_HEADS = (1 << 1),
- /** motion paths exist for AnimVizSettings instance - set when calc for first time,
- * and unset when clearing */
- MOTIONPATH_BAKE_HAS_PATHS = (1 << 2),
+ /** motion paths directly associated with this block of settings needs updating */
+ MOTIONPATH_BAKE_NEEDS_RECALC = (1 << 0),
+ /** for bones - calculate head-points for curves instead of tips */
+ MOTIONPATH_BAKE_HEADS = (1 << 1),
+ /** motion paths exist for AnimVizSettings instance - set when calc for first time,
+ * and unset when clearing */
+ MOTIONPATH_BAKE_HAS_PATHS = (1 << 2),
} eMotionPath_BakeFlag;
/* runtime */
#
#
typedef struct bPoseChannelDrawData {
- float solid_color[4];
- float wire_color[4];
+ float solid_color[4];
+ float wire_color[4];
- int bbone_matrix_len;
- /* keep last */
- float bbone_matrix[0][4][4];
+ int bbone_matrix_len;
+ /* keep last */
+ float bbone_matrix[0][4][4];
} bPoseChannelDrawData;
struct DualQuat;
struct Mat4;
typedef struct bPoseChannel_Runtime {
- int bbone_segments;
- char _pad[4];
+ int bbone_segments;
+ char _pad[4];
- /* Rest and posed matrices for segments. */
- struct Mat4 *bbone_rest_mats;
- struct Mat4 *bbone_pose_mats;
+ /* Rest and posed matrices for segments. */
+ struct Mat4 *bbone_rest_mats;
+ struct Mat4 *bbone_pose_mats;
- /* Delta from rest to pose in matrix and DualQuat form. */
- struct Mat4 *bbone_deform_mats;
- struct DualQuat *bbone_dual_quats;
+ /* Delta from rest to pose in matrix and DualQuat form. */
+ struct Mat4 *bbone_deform_mats;
+ struct DualQuat *bbone_dual_quats;
} bPoseChannel_Runtime;
/* ************************************************ */
@@ -207,239 +206,239 @@ typedef struct bPoseChannel_Runtime {
* with respect to the restposition of Armature bones
*/
typedef struct bPoseChannel {
- struct bPoseChannel *next, *prev;
-
- /** User-Defined Properties on this PoseChannel. */
- IDProperty *prop;
-
- /** Constraints that act on this PoseChannel. */
- ListBase constraints;
- /** Need to match bone name length: MAXBONENAME. */
- char name[64];
-
- /** Dynamic, for detecting transform changes. */
- short flag;
- /** Settings for IK bones. */
- short ikflag;
- /** Protect channels from being transformed. */
- short protectflag;
- /** Index of action-group this bone belongs to (0 = default/no group). */
- short agrp_index;
- /** For quick detecting which constraints affect this channel. */
- char constflag;
- /** Copy of bone flag, so you can work with library armatures, not for runtime use. */
- char selectflag;
- char drawflag;
- char bboneflag DNA_DEPRECATED;
- char _pad0[4];
-
- /** Set on read file or rebuild pose. */
- struct Bone *bone;
- /** Set on read file or rebuild pose. */
- struct bPoseChannel *parent;
- /** Set on read file or rebuild pose, the 'ik' child, for b-bones. */
- struct bPoseChannel *child;
-
- /** "IK trees" - only while evaluating pose. */
- struct ListBase iktree;
- /** Spline-IK "trees" - only while evaluating pose. */
- struct ListBase siktree;
-
- /** Motion path cache for this bone. */
- bMotionPath *mpath;
- /** Draws custom object instead of default bone shape. */
- struct Object *custom;
- /**
- * Odd feature, display with another bones transform.
- * needed in rare cases for advanced rigs,
- * since the alternative is highly complicated - campbell
- */
- struct bPoseChannel *custom_tx;
- float custom_scale;
-
- char _pad1[4];
-
- /** Transforms - written in by actions or transform. */
- float loc[3];
- float size[3];
-
- /**
- * Rotations - written in by actions or transform
- * (but only one representation gets used at any time)
- */
- /** Euler rotation. */
- float eul[3];
- /** Quaternion rotation. */
- float quat[4];
- /** Axis-angle rotation. */
- float rotAxis[3], rotAngle;
- /** #eRotationModes - rotation representation to use. */
- short rotmode;
- char _pad[2];
-
- /** Matrix result of loc/quat/size, and where we put deform in, see next line */
- float chan_mat[4][4];
- /**
- * Constraints accumulate here. in the end, pose_mat = bone->arm_mat * chan_mat
- * this matrix is object space.
- */
- float pose_mat[4][4];
- /** For display, pose_mat with bone length applied. */
- float disp_mat[4][4];
- /** For display, pose_mat with bone length applied and translated to tai.l*/
- float disp_tail_mat[4][4];
- /**
- * Inverse result of constraints.
- * doesn't include effect of restposition, parent, and local transform.
- */
- float constinv[4][4];
-
- /** Actually pose_mat[3]. */
- float pose_head[3];
- /** Also used for drawing help lines. */
- float pose_tail[3];
-
- /** DOF constraint, note! - these are stored in degrees, not radians. */
- float limitmin[3], limitmax[3];
- /** DOF stiffness. */
- float stiffness[3];
- float ikstretch;
- /** Weight of joint rotation constraint. */
- float ikrotweight;
- /** Weight of joint stretch constraint. */
- float iklinweight;
-
- /**
- * Curved bones settings - these are for animating,
- * and are applied on top of the copies in pchan->bone
- */
- float roll1, roll2;
- float curveInX, curveInY;
- float curveOutX, curveOutY;
- float ease1, ease2;
- float scaleIn, scaleOut;
-
- /** B-Bone custom handles; set on read file or rebuild pose based on pchan->bone data. */
- struct bPoseChannel *bbone_prev;
- struct bPoseChannel *bbone_next;
-
- /** Use for outliner. */
- void *temp;
- /** Runtime data for color and bbone segment matrix. */
- bPoseChannelDrawData *draw_data;
-
- /** Points to an original pose channel. */
- struct bPoseChannel *orig_pchan;
-
- /** Runtime data (keep last). */
- struct bPoseChannel_Runtime runtime;
+ struct bPoseChannel *next, *prev;
+
+ /** User-Defined Properties on this PoseChannel. */
+ IDProperty *prop;
+
+ /** Constraints that act on this PoseChannel. */
+ ListBase constraints;
+ /** Need to match bone name length: MAXBONENAME. */
+ char name[64];
+
+ /** Dynamic, for detecting transform changes. */
+ short flag;
+ /** Settings for IK bones. */
+ short ikflag;
+ /** Protect channels from being transformed. */
+ short protectflag;
+ /** Index of action-group this bone belongs to (0 = default/no group). */
+ short agrp_index;
+ /** For quick detecting which constraints affect this channel. */
+ char constflag;
+ /** Copy of bone flag, so you can work with library armatures, not for runtime use. */
+ char selectflag;
+ char drawflag;
+ char bboneflag DNA_DEPRECATED;
+ char _pad0[4];
+
+ /** Set on read file or rebuild pose. */
+ struct Bone *bone;
+ /** Set on read file or rebuild pose. */
+ struct bPoseChannel *parent;
+ /** Set on read file or rebuild pose, the 'ik' child, for b-bones. */
+ struct bPoseChannel *child;
+
+ /** "IK trees" - only while evaluating pose. */
+ struct ListBase iktree;
+ /** Spline-IK "trees" - only while evaluating pose. */
+ struct ListBase siktree;
+
+ /** Motion path cache for this bone. */
+ bMotionPath *mpath;
+ /** Draws custom object instead of default bone shape. */
+ struct Object *custom;
+ /**
+ * Odd feature, display with another bones transform.
+ * needed in rare cases for advanced rigs,
+ * since the alternative is highly complicated - campbell
+ */
+ struct bPoseChannel *custom_tx;
+ float custom_scale;
+
+ char _pad1[4];
+
+ /** Transforms - written in by actions or transform. */
+ float loc[3];
+ float size[3];
+
+ /**
+ * Rotations - written in by actions or transform
+ * (but only one representation gets used at any time)
+ */
+ /** Euler rotation. */
+ float eul[3];
+ /** Quaternion rotation. */
+ float quat[4];
+ /** Axis-angle rotation. */
+ float rotAxis[3], rotAngle;
+ /** #eRotationModes - rotation representation to use. */
+ short rotmode;
+ char _pad[2];
+
+ /** Matrix result of loc/quat/size, and where we put deform in, see next line */
+ float chan_mat[4][4];
+ /**
+ * Constraints accumulate here. in the end, pose_mat = bone->arm_mat * chan_mat
+ * this matrix is object space.
+ */
+ float pose_mat[4][4];
+ /** For display, pose_mat with bone length applied. */
+ float disp_mat[4][4];
+ /** For display, pose_mat with bone length applied and translated to tai.l*/
+ float disp_tail_mat[4][4];
+ /**
+ * Inverse result of constraints.
+ * doesn't include effect of restposition, parent, and local transform.
+ */
+ float constinv[4][4];
+
+ /** Actually pose_mat[3]. */
+ float pose_head[3];
+ /** Also used for drawing help lines. */
+ float pose_tail[3];
+
+ /** DOF constraint, note! - these are stored in degrees, not radians. */
+ float limitmin[3], limitmax[3];
+ /** DOF stiffness. */
+ float stiffness[3];
+ float ikstretch;
+ /** Weight of joint rotation constraint. */
+ float ikrotweight;
+ /** Weight of joint stretch constraint. */
+ float iklinweight;
+
+ /**
+ * Curved bones settings - these are for animating,
+ * and are applied on top of the copies in pchan->bone
+ */
+ float roll1, roll2;
+ float curveInX, curveInY;
+ float curveOutX, curveOutY;
+ float ease1, ease2;
+ float scaleIn, scaleOut;
+
+ /** B-Bone custom handles; set on read file or rebuild pose based on pchan->bone data. */
+ struct bPoseChannel *bbone_prev;
+ struct bPoseChannel *bbone_next;
+
+ /** Use for outliner. */
+ void *temp;
+ /** Runtime data for color and bbone segment matrix. */
+ bPoseChannelDrawData *draw_data;
+
+ /** Points to an original pose channel. */
+ struct bPoseChannel *orig_pchan;
+
+ /** Runtime data (keep last). */
+ struct bPoseChannel_Runtime runtime;
} bPoseChannel;
-
/* PoseChannel (transform) flags */
typedef enum ePchan_Flag {
- /* has transforms */
- POSE_LOC = (1 << 0),
- POSE_ROT = (1 << 1),
- POSE_SIZE = (1 << 2),
-
- /* old IK/cache stuff
- * - used to be here from (1 << 3) to (1 << 8)
- * but has been repurposed since 2.77.2
- * as they haven't been used in over 10 years
- */
-
- /* has BBone deforms */
- POSE_BBONE_SHAPE = (1 << 3),
-
- /* IK/Pose solving */
- POSE_CHAIN = (1 << 9),
- POSE_DONE = (1 << 10),
- /* visualization */
- POSE_KEY = (1 << 11),
- POSE_STRIDE = (1 << 12),
- /* standard IK solving */
- POSE_IKTREE = (1 << 13),
+ /* has transforms */
+ POSE_LOC = (1 << 0),
+ POSE_ROT = (1 << 1),
+ POSE_SIZE = (1 << 2),
+
+ /* old IK/cache stuff
+ * - used to be here from (1 << 3) to (1 << 8)
+ * but has been repurposed since 2.77.2
+ * as they haven't been used in over 10 years
+ */
+
+ /* has BBone deforms */
+ POSE_BBONE_SHAPE = (1 << 3),
+
+ /* IK/Pose solving */
+ POSE_CHAIN = (1 << 9),
+ POSE_DONE = (1 << 10),
+ /* visualization */
+ POSE_KEY = (1 << 11),
+ POSE_STRIDE = (1 << 12),
+ /* standard IK solving */
+ POSE_IKTREE = (1 << 13),
#if 0
- /* has Spline IK */
- POSE_HAS_IKS = (1 << 14),
+ /* has Spline IK */
+ POSE_HAS_IKS = (1 << 14),
#endif
- /* spline IK solving */
- POSE_IKSPLINE = (1 << 15),
+ /* spline IK solving */
+ POSE_IKSPLINE = (1 << 15),
} ePchan_Flag;
/* PoseChannel constflag (constraint detection) */
typedef enum ePchan_ConstFlag {
- PCHAN_HAS_IK = (1 << 0),
- PCHAN_HAS_CONST = (1 << 1),
- /* only used for drawing Posemode, not stored in channel */
- PCHAN_HAS_ACTION = (1 << 2),
- PCHAN_HAS_TARGET = (1 << 3),
- /* only for drawing Posemode too */
- PCHAN_HAS_STRIDE = (1 << 4),
- /* spline IK */
- PCHAN_HAS_SPLINEIK = (1 << 5),
+ PCHAN_HAS_IK = (1 << 0),
+ PCHAN_HAS_CONST = (1 << 1),
+ /* only used for drawing Posemode, not stored in channel */
+ PCHAN_HAS_ACTION = (1 << 2),
+ PCHAN_HAS_TARGET = (1 << 3),
+ /* only for drawing Posemode too */
+ PCHAN_HAS_STRIDE = (1 << 4),
+ /* spline IK */
+ PCHAN_HAS_SPLINEIK = (1 << 5),
} ePchan_ConstFlag;
/* PoseChannel->ikflag */
typedef enum ePchan_IkFlag {
- BONE_IK_NO_XDOF = (1 << 0),
- BONE_IK_NO_YDOF = (1 << 1),
- BONE_IK_NO_ZDOF = (1 << 2),
+ BONE_IK_NO_XDOF = (1 << 0),
+ BONE_IK_NO_YDOF = (1 << 1),
+ BONE_IK_NO_ZDOF = (1 << 2),
- BONE_IK_XLIMIT = (1 << 3),
- BONE_IK_YLIMIT = (1 << 4),
- BONE_IK_ZLIMIT = (1 << 5),
+ BONE_IK_XLIMIT = (1 << 3),
+ BONE_IK_YLIMIT = (1 << 4),
+ BONE_IK_ZLIMIT = (1 << 5),
- BONE_IK_ROTCTL = (1 << 6),
- BONE_IK_LINCTL = (1 << 7),
+ BONE_IK_ROTCTL = (1 << 6),
+ BONE_IK_LINCTL = (1 << 7),
- BONE_IK_NO_XDOF_TEMP = (1 << 10),
- BONE_IK_NO_YDOF_TEMP = (1 << 11),
- BONE_IK_NO_ZDOF_TEMP = (1 << 12),
+ BONE_IK_NO_XDOF_TEMP = (1 << 10),
+ BONE_IK_NO_YDOF_TEMP = (1 << 11),
+ BONE_IK_NO_ZDOF_TEMP = (1 << 12),
} ePchan_IkFlag;
/* PoseChannel->drawflag */
typedef enum ePchan_DrawFlag {
- PCHAN_DRAW_NO_CUSTOM_BONE_SIZE = (1 << 0),
+ PCHAN_DRAW_NO_CUSTOM_BONE_SIZE = (1 << 0),
} ePchan_DrawFlag;
#define PCHAN_CUSTOM_DRAW_SIZE(pchan) \
- (pchan)->custom_scale * (((pchan)->drawflag & PCHAN_DRAW_NO_CUSTOM_BONE_SIZE) ? 1.0f : (pchan)->bone->length)
+ (pchan)->custom_scale *( \
+ ((pchan)->drawflag & PCHAN_DRAW_NO_CUSTOM_BONE_SIZE) ? 1.0f : (pchan)->bone->length)
#ifdef DNA_DEPRECATED_ALLOW
/* PoseChannel->bboneflag */
typedef enum ePchan_BBoneFlag {
- /* Use custom reference bones (for roll and handle alignment), instead of immediate neighbors */
- PCHAN_BBONE_CUSTOM_HANDLES = (1 << 1),
- /* Evaluate start handle as being "relative" */
- PCHAN_BBONE_CUSTOM_START_REL = (1 << 2),
- /* Evaluate end handle as being "relative" */
- PCHAN_BBONE_CUSTOM_END_REL = (1 << 3),
+ /* Use custom reference bones (for roll and handle alignment), instead of immediate neighbors */
+ PCHAN_BBONE_CUSTOM_HANDLES = (1 << 1),
+ /* Evaluate start handle as being "relative" */
+ PCHAN_BBONE_CUSTOM_START_REL = (1 << 2),
+ /* Evaluate end handle as being "relative" */
+ PCHAN_BBONE_CUSTOM_END_REL = (1 << 3),
} ePchan_BBoneFlag;
#endif
/* PoseChannel->rotmode and Object->rotmode */
typedef enum eRotationModes {
- /* quaternion rotations (default, and for older Blender versions) */
- ROT_MODE_QUAT = 0,
- /* euler rotations - keep in sync with enum in BLI_math.h */
- /** Blender 'default' (classic) - must be as 1 to sync with BLI_math_rotation.h defines */
- ROT_MODE_EUL = 1,
- ROT_MODE_XYZ = 1,
- ROT_MODE_XZY = 2,
- ROT_MODE_YXZ = 3,
- ROT_MODE_YZX = 4,
- ROT_MODE_ZXY = 5,
- ROT_MODE_ZYX = 6,
- /* NOTE: space is reserved here for 18 other possible
- * euler rotation orders not implemented
- */
- /* axis angle rotations */
- ROT_MODE_AXISANGLE = -1,
-
- ROT_MODE_MIN = ROT_MODE_AXISANGLE, /* sentinel for Py API */
- ROT_MODE_MAX = ROT_MODE_ZYX,
+ /* quaternion rotations (default, and for older Blender versions) */
+ ROT_MODE_QUAT = 0,
+ /* euler rotations - keep in sync with enum in BLI_math.h */
+ /** Blender 'default' (classic) - must be as 1 to sync with BLI_math_rotation.h defines */
+ ROT_MODE_EUL = 1,
+ ROT_MODE_XYZ = 1,
+ ROT_MODE_XZY = 2,
+ ROT_MODE_YXZ = 3,
+ ROT_MODE_YZX = 4,
+ ROT_MODE_ZXY = 5,
+ ROT_MODE_ZYX = 6,
+ /* NOTE: space is reserved here for 18 other possible
+ * euler rotation orders not implemented
+ */
+ /* axis angle rotations */
+ ROT_MODE_AXISANGLE = -1,
+
+ ROT_MODE_MIN = ROT_MODE_AXISANGLE, /* sentinel for Py API */
+ ROT_MODE_MAX = ROT_MODE_ZYX,
} eRotationModes;
/* Pose ------------------------------------ */
@@ -450,112 +449,110 @@ typedef enum eRotationModes {
* though there is a define for it (hack for the outliner).
*/
typedef struct bPose {
- /** List of pose channels, PoseBones in RNA. */
- ListBase chanbase;
- /** Ghash for quicker string lookups. */
- struct GHash *chanhash;
-
- /* Flat array of pose channels. It references pointers from
- * chanbase. Used for quick pose channel lookup from an index.
- */
- bPoseChannel **chan_array;
-
- short flag;
- char _pad[2];
- /** Proxy layer: copy from armature, gets synced. */
- unsigned int proxy_layer;
- char _pad1[4];
-
- /** Local action time of this pose. */
- float ctime;
- /** Applied to object. */
- float stride_offset[3];
- /** Result of match and cycles, applied in BKE_pose_where_is(). */
- float cyclic_offset[3];
-
-
- /** List of bActionGroups. */
- ListBase agroups;
-
- /** Index of active group (starts from 1). */
- int active_group;
- /** Ik solver to use, see ePose_IKSolverType. */
- int iksolver;
- /** Temporary IK data, depends on the IK solver. Not saved in file. */
- void *ikdata;
- /** IK solver parameters, structure depends on iksolver. */
- void *ikparam;
-
- /** Settings for visualization of bone animation. */
- bAnimVizSettings avs;
- /** Proxy active bone name, MAXBONENAME. */
- char proxy_act_bone[64];
+ /** List of pose channels, PoseBones in RNA. */
+ ListBase chanbase;
+ /** Ghash for quicker string lookups. */
+ struct GHash *chanhash;
+
+ /* Flat array of pose channels. It references pointers from
+ * chanbase. Used for quick pose channel lookup from an index.
+ */
+ bPoseChannel **chan_array;
+
+ short flag;
+ char _pad[2];
+ /** Proxy layer: copy from armature, gets synced. */
+ unsigned int proxy_layer;
+ char _pad1[4];
+
+ /** Local action time of this pose. */
+ float ctime;
+ /** Applied to object. */
+ float stride_offset[3];
+ /** Result of match and cycles, applied in BKE_pose_where_is(). */
+ float cyclic_offset[3];
+
+ /** List of bActionGroups. */
+ ListBase agroups;
+
+ /** Index of active group (starts from 1). */
+ int active_group;
+ /** Ik solver to use, see ePose_IKSolverType. */
+ int iksolver;
+ /** Temporary IK data, depends on the IK solver. Not saved in file. */
+ void *ikdata;
+ /** IK solver parameters, structure depends on iksolver. */
+ void *ikparam;
+
+ /** Settings for visualization of bone animation. */
+ bAnimVizSettings avs;
+ /** Proxy active bone name, MAXBONENAME. */
+ char proxy_act_bone[64];
} bPose;
-
/* Pose->flag */
typedef enum ePose_Flags {
- /* results in BKE_pose_rebuild being called */
- POSE_RECALC = (1 << 0),
- /* prevents any channel from getting overridden by anim from IPO */
- POSE_LOCKED = (1 << 1),
- /* clears the POSE_LOCKED flag for the next time the pose is evaluated */
- POSE_DO_UNLOCK = (1 << 2),
- /* pose has constraints which depend on time (used when depsgraph updates for a new frame) */
- POSE_CONSTRAINTS_TIMEDEPEND = (1 << 3),
- /* recalculate bone paths */
- POSE_RECALCPATHS = (1 << 4),
- /* set by BKE_pose_rebuild to give a chance to the IK solver to rebuild IK tree */
- POSE_WAS_REBUILT = (1 << 5),
- POSE_FLAG_DEPRECATED = (1 << 6), /* deprecated. */
- /* pose constraint flags needs to be updated */
- POSE_CONSTRAINTS_NEED_UPDATE_FLAGS = (1 << 7),
+ /* results in BKE_pose_rebuild being called */
+ POSE_RECALC = (1 << 0),
+ /* prevents any channel from getting overridden by anim from IPO */
+ POSE_LOCKED = (1 << 1),
+ /* clears the POSE_LOCKED flag for the next time the pose is evaluated */
+ POSE_DO_UNLOCK = (1 << 2),
+ /* pose has constraints which depend on time (used when depsgraph updates for a new frame) */
+ POSE_CONSTRAINTS_TIMEDEPEND = (1 << 3),
+ /* recalculate bone paths */
+ POSE_RECALCPATHS = (1 << 4),
+ /* set by BKE_pose_rebuild to give a chance to the IK solver to rebuild IK tree */
+ POSE_WAS_REBUILT = (1 << 5),
+ POSE_FLAG_DEPRECATED = (1 << 6), /* deprecated. */
+ /* pose constraint flags needs to be updated */
+ POSE_CONSTRAINTS_NEED_UPDATE_FLAGS = (1 << 7),
} ePose_Flags;
/* IK Solvers ------------------------------------ */
/* bPose->iksolver and bPose->ikparam->iksolver */
typedef enum ePose_IKSolverType {
- IKSOLVER_STANDARD = 0,
- IKSOLVER_ITASC = 1,
+ IKSOLVER_STANDARD = 0,
+ IKSOLVER_ITASC = 1,
} ePose_IKSolverType;
/* header for all bPose->ikparam structures */
typedef struct bIKParam {
- int iksolver;
+ int iksolver;
} bIKParam;
/* bPose->ikparam when bPose->iksolver=1 */
typedef struct bItasc {
- int iksolver;
- float precision;
- short numiter;
- short numstep;
- float minstep;
- float maxstep;
- short solver;
- short flag;
- float feedback;
- /** Max velocity to SDLS solver. */
- float maxvel;
- /** Maximum damping for DLS solver. */
- float dampmax;
- /** Threshold of singular value from which the damping start progressively. */
- float dampeps;
+ int iksolver;
+ float precision;
+ short numiter;
+ short numstep;
+ float minstep;
+ float maxstep;
+ short solver;
+ short flag;
+ float feedback;
+ /** Max velocity to SDLS solver. */
+ float maxvel;
+ /** Maximum damping for DLS solver. */
+ float dampmax;
+ /** Threshold of singular value from which the damping start progressively. */
+ float dampeps;
} bItasc;
/* bItasc->flag */
typedef enum eItasc_Flags {
- ITASC_AUTO_STEP = (1 << 0),
- ITASC_INITIAL_REITERATION = (1 << 1),
- ITASC_REITERATION = (1 << 2),
- ITASC_SIMULATION = (1 << 3),
+ ITASC_AUTO_STEP = (1 << 0),
+ ITASC_INITIAL_REITERATION = (1 << 1),
+ ITASC_REITERATION = (1 << 2),
+ ITASC_SIMULATION = (1 << 3),
} eItasc_Flags;
/* bItasc->solver */
typedef enum eItasc_Solver {
- ITASC_SOLVER_SDLS = 0, /* selective damped least square, suitable for CopyPose constraint */
- ITASC_SOLVER_DLS = 1, /* damped least square with numerical filtering of damping */
+ ITASC_SOLVER_SDLS = 0, /* selective damped least square, suitable for CopyPose constraint */
+ ITASC_SOLVER_DLS = 1, /* damped least square with numerical filtering of damping */
} eItasc_Solver;
/* ************************************************ */
@@ -579,53 +576,52 @@ typedef enum eItasc_Solver {
* Note that these two uses each have their own RNA 'ActionGroup' and 'BoneGroup'.
*/
typedef struct bActionGroup {
- struct bActionGroup *next, *prev;
-
- /**
- * Note: this must not be touched by standard listbase functions
- * which would clear links to other channels.
- */
- ListBase channels;
-
- /** Settings for this action-group. */
- int flag;
- /**
- * Index of custom color set to use when used for bones
- * (0=default - used for all old files, -1=custom set).
- */
- int customCol;
- /** Name of the group. */
- char name[64];
-
- /** Color set to use when customCol == -1. */
- ThemeWireColor cs;
+ struct bActionGroup *next, *prev;
+
+ /**
+ * Note: this must not be touched by standard listbase functions
+ * which would clear links to other channels.
+ */
+ ListBase channels;
+
+ /** Settings for this action-group. */
+ int flag;
+ /**
+ * Index of custom color set to use when used for bones
+ * (0=default - used for all old files, -1=custom set).
+ */
+ int customCol;
+ /** Name of the group. */
+ char name[64];
+
+ /** Color set to use when customCol == -1. */
+ ThemeWireColor cs;
} bActionGroup;
/* Action Group flags */
typedef enum eActionGroup_Flag {
- /* group is selected */
- AGRP_SELECTED = (1 << 0),
- /* group is 'active' / last selected one */
- AGRP_ACTIVE = (1 << 1),
- /* keyframes/channels belonging to it cannot be edited */
- AGRP_PROTECTED = (1 << 2),
- /* for UI (DopeSheet), sub-channels are shown */
- AGRP_EXPANDED = (1 << 3),
- /* sub-channels are not evaluated */
- AGRP_MUTED = (1 << 4),
- /* sub-channels are not visible in Graph Editor */
- AGRP_NOTVISIBLE = (1 << 5),
- /* for UI (Graph Editor), sub-channels are shown */
- AGRP_EXPANDED_G = (1 << 6),
-
- /* sub channel modifiers off */
- AGRP_MODIFIERS_OFF = (1 << 7),
-
- AGRP_TEMP = (1 << 30),
- AGRP_MOVED = (1u << 31),
+ /* group is selected */
+ AGRP_SELECTED = (1 << 0),
+ /* group is 'active' / last selected one */
+ AGRP_ACTIVE = (1 << 1),
+ /* keyframes/channels belonging to it cannot be edited */
+ AGRP_PROTECTED = (1 << 2),
+ /* for UI (DopeSheet), sub-channels are shown */
+ AGRP_EXPANDED = (1 << 3),
+ /* sub-channels are not evaluated */
+ AGRP_MUTED = (1 << 4),
+ /* sub-channels are not visible in Graph Editor */
+ AGRP_NOTVISIBLE = (1 << 5),
+ /* for UI (Graph Editor), sub-channels are shown */
+ AGRP_EXPANDED_G = (1 << 6),
+
+ /* sub channel modifiers off */
+ AGRP_MODIFIERS_OFF = (1 << 7),
+
+ AGRP_TEMP = (1 << 30),
+ AGRP_MOVED = (1u << 31),
} eActionGroup_Flag;
-
/* Actions -------------------------------------- */
/* Action - reusable F-Curve 'bag' (act)
@@ -639,276 +635,271 @@ typedef enum eActionGroup_Flag {
* affects a group of related settings (as defined by the user).
*/
typedef struct bAction {
- /** ID-serialisation for relinking. */
- ID id;
-
- /** Function-curves (FCurve). */
- ListBase curves;
- /** Legacy data - Action Channels (bActionChannel) in pre-2.5 animation system. */
- ListBase chanbase DNA_DEPRECATED;
- /** Groups of function-curves (bActionGroup). */
- ListBase groups;
- /** Markers local to the Action (used to provide Pose-Libraries). */
- ListBase markers;
-
- /** Settings for this action. */
- int flag;
- /** Index of the active marker. */
- int active_marker;
-
- /**
- * Type of ID-blocks that action can be assigned to
- * (if 0, will be set to whatever ID first evaluates it).
- */
- int idroot;
- char _pad[4];
+ /** ID-serialisation for relinking. */
+ ID id;
+
+ /** Function-curves (FCurve). */
+ ListBase curves;
+ /** Legacy data - Action Channels (bActionChannel) in pre-2.5 animation system. */
+ ListBase chanbase DNA_DEPRECATED;
+ /** Groups of function-curves (bActionGroup). */
+ ListBase groups;
+ /** Markers local to the Action (used to provide Pose-Libraries). */
+ ListBase markers;
+
+ /** Settings for this action. */
+ int flag;
+ /** Index of the active marker. */
+ int active_marker;
+
+ /**
+ * Type of ID-blocks that action can be assigned to
+ * (if 0, will be set to whatever ID first evaluates it).
+ */
+ int idroot;
+ char _pad[4];
} bAction;
-
/* Flags for the action */
typedef enum eAction_Flags {
- /* flags for displaying in UI */
- ACT_COLLAPSED = (1 << 0),
- ACT_SELECTED = (1 << 1),
-
- /* flags for evaluation/editing */
- ACT_MUTED = (1 << 9),
- ACT_PROTECTED = (1 << 10),
- ACT_DISABLED = (1 << 11),
+ /* flags for displaying in UI */
+ ACT_COLLAPSED = (1 << 0),
+ ACT_SELECTED = (1 << 1),
+
+ /* flags for evaluation/editing */
+ ACT_MUTED = (1 << 9),
+ ACT_PROTECTED = (1 << 10),
+ ACT_DISABLED = (1 << 11),
} eAction_Flags;
-
/* ************************************************ */
/* Action/Dopesheet Editor */
/* Storage for Dopesheet/Grease-Pencil Editor data */
typedef struct bDopeSheet {
- /** Currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil). */
- ID *source;
- /** Cache for channels (only initialized when pinned). */ // XXX not used!
- ListBase chanbase;
-
- /** Object group for option to only include objects that belong to this Collection. */
- struct Collection *filter_grp;
- /** String to search for in displayed names of F-Curves, or NlaTracks/GP Layers/etc. */
- char searchstr[64];
-
- /** Flags to use for filtering data. */
- int filterflag;
- int filterflag2;
- /** Standard flags. */
- int flag;
-
- /** `index + 1` of channel to rename - only gets set by renaming operator. */
- int renameIndex;
+ /** Currently ID_SCE (for Dopesheet), and ID_SC (for Grease Pencil). */
+ ID *source;
+ /** Cache for channels (only initialized when pinned). */ // XXX not used!
+ ListBase chanbase;
+
+ /** Object group for option to only include objects that belong to this Collection. */
+ struct Collection *filter_grp;
+ /** String to search for in displayed names of F-Curves, or NlaTracks/GP Layers/etc. */
+ char searchstr[64];
+
+ /** Flags to use for filtering data. */
+ int filterflag;
+ int filterflag2;
+ /** Standard flags. */
+ int flag;
+
+ /** `index + 1` of channel to rename - only gets set by renaming operator. */
+ int renameIndex;
} bDopeSheet;
-
/* DopeSheet filter-flag */
typedef enum eDopeSheet_FilterFlag {
- /* general filtering */
- /** only include channels relating to selected data */
- ADS_FILTER_ONLYSEL = (1 << 0),
-
- /* temporary filters */
- /** for 'Drivers' editor - only include Driver data from AnimData */
- ADS_FILTER_ONLYDRIVERS = (1 << 1),
- /** for 'NLA' editor - only include NLA data from AnimData */
- ADS_FILTER_ONLYNLA = (1 << 2),
- /** for Graph Editor - used to indicate whether to include a filtering flag or not */
- ADS_FILTER_SELEDIT = (1 << 3),
-
- /* general filtering */
- /** for 'DopeSheet' Editors - include 'summary' line */
- ADS_FILTER_SUMMARY = (1 << 4),
-
- /* datatype-based filtering */
- ADS_FILTER_NOSHAPEKEYS = (1 << 6),
- ADS_FILTER_NOMESH = (1 << 7),
- /** for animdata on object level, if we only want to concentrate on materials/etc. */
- ADS_FILTER_NOOBJ = (1 << 8),
- ADS_FILTER_NOLAT = (1 << 9),
- ADS_FILTER_NOCAM = (1 << 10),
- ADS_FILTER_NOMAT = (1 << 11),
- ADS_FILTER_NOLAM = (1 << 12),
- ADS_FILTER_NOCUR = (1 << 13),
- ADS_FILTER_NOWOR = (1 << 14),
- ADS_FILTER_NOSCE = (1 << 15),
- ADS_FILTER_NOPART = (1 << 16),
- ADS_FILTER_NOMBA = (1 << 17),
- ADS_FILTER_NOARM = (1 << 18),
- ADS_FILTER_NONTREE = (1 << 19),
- ADS_FILTER_NOTEX = (1 << 20),
- ADS_FILTER_NOSPK = (1 << 21),
- ADS_FILTER_NOLINESTYLE = (1 << 22),
- ADS_FILTER_NOMODIFIERS = (1 << 23),
- ADS_FILTER_NOGPENCIL = (1 << 24),
- /* NOTE: all new datablock filters will have to go in filterflag2 (see below) */
-
- /* NLA-specific filters */
- /** if the AnimData block has no NLA data, don't include to just show Action-line */
- ADS_FILTER_NLA_NOACT = (1 << 25),
-
- /* general filtering 3 */
- /** include 'hidden' channels too (i.e. those from hidden Objects/Bones) */
- ADS_FILTER_INCL_HIDDEN = (1 << 26),
- /** show only F-Curves which are disabled/have errors - for debugging drivers */
- ADS_FILTER_ONLY_ERRORS = (1 << 28),
-
- /* GPencil Mode */
- /** GP Mode - Only show datablocks used in the scene */
- ADS_FILTER_GP_3DONLY = (1 << 29),
-
- /** combination filters (some only used at runtime) */
- ADS_FILTER_NOOBDATA = (ADS_FILTER_NOCAM | ADS_FILTER_NOMAT | ADS_FILTER_NOLAM | ADS_FILTER_NOCUR | ADS_FILTER_NOPART | ADS_FILTER_NOARM | ADS_FILTER_NOSPK | ADS_FILTER_NOMODIFIERS),
+ /* general filtering */
+ /** only include channels relating to selected data */
+ ADS_FILTER_ONLYSEL = (1 << 0),
+
+ /* temporary filters */
+ /** for 'Drivers' editor - only include Driver data from AnimData */
+ ADS_FILTER_ONLYDRIVERS = (1 << 1),
+ /** for 'NLA' editor - only include NLA data from AnimData */
+ ADS_FILTER_ONLYNLA = (1 << 2),
+ /** for Graph Editor - used to indicate whether to include a filtering flag or not */
+ ADS_FILTER_SELEDIT = (1 << 3),
+
+ /* general filtering */
+ /** for 'DopeSheet' Editors - include 'summary' line */
+ ADS_FILTER_SUMMARY = (1 << 4),
+
+ /* datatype-based filtering */
+ ADS_FILTER_NOSHAPEKEYS = (1 << 6),
+ ADS_FILTER_NOMESH = (1 << 7),
+ /** for animdata on object level, if we only want to concentrate on materials/etc. */
+ ADS_FILTER_NOOBJ = (1 << 8),
+ ADS_FILTER_NOLAT = (1 << 9),
+ ADS_FILTER_NOCAM = (1 << 10),
+ ADS_FILTER_NOMAT = (1 << 11),
+ ADS_FILTER_NOLAM = (1 << 12),
+ ADS_FILTER_NOCUR = (1 << 13),
+ ADS_FILTER_NOWOR = (1 << 14),
+ ADS_FILTER_NOSCE = (1 << 15),
+ ADS_FILTER_NOPART = (1 << 16),
+ ADS_FILTER_NOMBA = (1 << 17),
+ ADS_FILTER_NOARM = (1 << 18),
+ ADS_FILTER_NONTREE = (1 << 19),
+ ADS_FILTER_NOTEX = (1 << 20),
+ ADS_FILTER_NOSPK = (1 << 21),
+ ADS_FILTER_NOLINESTYLE = (1 << 22),
+ ADS_FILTER_NOMODIFIERS = (1 << 23),
+ ADS_FILTER_NOGPENCIL = (1 << 24),
+ /* NOTE: all new datablock filters will have to go in filterflag2 (see below) */
+
+ /* NLA-specific filters */
+ /** if the AnimData block has no NLA data, don't include to just show Action-line */
+ ADS_FILTER_NLA_NOACT = (1 << 25),
+
+ /* general filtering 3 */
+ /** include 'hidden' channels too (i.e. those from hidden Objects/Bones) */
+ ADS_FILTER_INCL_HIDDEN = (1 << 26),
+ /** show only F-Curves which are disabled/have errors - for debugging drivers */
+ ADS_FILTER_ONLY_ERRORS = (1 << 28),
+
+ /* GPencil Mode */
+ /** GP Mode - Only show datablocks used in the scene */
+ ADS_FILTER_GP_3DONLY = (1 << 29),
+
+ /** combination filters (some only used at runtime) */
+ ADS_FILTER_NOOBDATA = (ADS_FILTER_NOCAM | ADS_FILTER_NOMAT | ADS_FILTER_NOLAM |
+ ADS_FILTER_NOCUR | ADS_FILTER_NOPART | ADS_FILTER_NOARM |
+ ADS_FILTER_NOSPK | ADS_FILTER_NOMODIFIERS),
} eDopeSheet_FilterFlag;
/* DopeSheet filter-flags - Overflow (filterflag2) */
typedef enum eDopeSheet_FilterFlag2 {
- ADS_FILTER_NOCACHEFILES = (1 << 1),
+ ADS_FILTER_NOCACHEFILES = (1 << 1),
} eDopeSheet_FilterFlag2;
/* DopeSheet general flags */
typedef enum eDopeSheet_Flag {
- /** when summary is shown, it is collapsed, so all other channels get hidden */
- ADS_FLAG_SUMMARY_COLLAPSED = (1 << 0),
- /** show filters for datablocks */
- ADS_FLAG_SHOW_DBFILTERS = (1 << 1),
-
- /** use fuzzy/partial string matches when ADS_FILTER_BY_FCU_NAME is enabled
- * (WARNING: expensive operation) */
- ADS_FLAG_FUZZY_NAMES = (1 << 2),
- /** do not sort datablocks (mostly objects) by name (NOTE: potentially expensive operation) */
- ADS_FLAG_NO_DB_SORT = (1 << 3),
+ /** when summary is shown, it is collapsed, so all other channels get hidden */
+ ADS_FLAG_SUMMARY_COLLAPSED = (1 << 0),
+ /** show filters for datablocks */
+ ADS_FLAG_SHOW_DBFILTERS = (1 << 1),
+
+ /** use fuzzy/partial string matches when ADS_FILTER_BY_FCU_NAME is enabled
+ * (WARNING: expensive operation) */
+ ADS_FLAG_FUZZY_NAMES = (1 << 2),
+ /** do not sort datablocks (mostly objects) by name (NOTE: potentially expensive operation) */
+ ADS_FLAG_NO_DB_SORT = (1 << 3),
} eDopeSheet_Flag;
-
-
typedef struct SpaceAction_Runtime {
- char flag;
- char _pad0[7];
+ char flag;
+ char _pad0[7];
} SpaceAction_Runtime;
/* Action Editor Space. This is defined here instead of in DNA_space_types.h */
typedef struct SpaceAction {
- struct SpaceLink *next, *prev;
- /** Storage of regions for inactive spaces. */
- ListBase regionbase;
- char spacetype;
- char link_flag;
- char _pad0[6];
- /* End 'SpaceLink' header. */
-
- /** Copied to region. */
- View2D v2d DNA_DEPRECATED;
-
- /** The currently active action. */
- bAction *action;
- /** The currently active context (when not showing action). */
- bDopeSheet ads;
-
- /** For Time-Slide transform mode drawing - current frame?. */
- float timeslide;
-
- short flag;
- /* Editing context */
- char mode;
- /* Storage for sub-space types. */
- char mode_prev;
- /** Automatic keyframe snapping mode . */
- char autosnap;
- /** (eTimeline_Cache_Flag). */
- char cache_display;
- char _pad1[6];
-
- SpaceAction_Runtime runtime;
+ struct SpaceLink *next, *prev;
+ /** Storage of regions for inactive spaces. */
+ ListBase regionbase;
+ char spacetype;
+ char link_flag;
+ char _pad0[6];
+ /* End 'SpaceLink' header. */
+
+ /** Copied to region. */
+ View2D v2d DNA_DEPRECATED;
+
+ /** The currently active action. */
+ bAction *action;
+ /** The currently active context (when not showing action). */
+ bDopeSheet ads;
+
+ /** For Time-Slide transform mode drawing - current frame?. */
+ float timeslide;
+
+ short flag;
+ /* Editing context */
+ char mode;
+ /* Storage for sub-space types. */
+ char mode_prev;
+ /** Automatic keyframe snapping mode . */
+ char autosnap;
+ /** (eTimeline_Cache_Flag). */
+ char cache_display;
+ char _pad1[6];
+
+ SpaceAction_Runtime runtime;
} SpaceAction;
/* SpaceAction flag */
typedef enum eSAction_Flag {
- /* during transform (only set for TimeSlide) */
- SACTION_MOVING = (1 << 0),
- /* show sliders */
- SACTION_SLIDERS = (1 << 1),
- /* draw time in seconds instead of time in frames */
- SACTION_DRAWTIME = (1 << 2),
- /* don't filter action channels according to visibility */
- //SACTION_NOHIDE = (1 << 3), // XXX deprecated... old animation system
- /* don't kill overlapping keyframes after transform */
- SACTION_NOTRANSKEYCULL = (1 << 4),
- /* don't include keyframes that are out of view */
- //SACTION_HORIZOPTIMISEON = (1 << 5), // XXX deprecated... old irrelevant trick
- /* show pose-markers (local to action) in Action Editor mode */
- SACTION_POSEMARKERS_SHOW = (1 << 6),
- /* don't draw action channels using group colors (where applicable) */
- SACTION_NODRAWGCOLORS = (1 << 7),
- /* don't draw current frame number beside frame indicator */
- SACTION_NODRAWCFRANUM = (1 << 8),
- /* don't perform realtime updates */
- SACTION_NOREALTIMEUPDATES = (1 << 10),
- /* move markers as well as keyframes */
- SACTION_MARKERS_MOVE = (1 << 11),
- /* show interpolation type */
- SACTION_SHOW_INTERPOLATION = (1 << 12),
- /* show extremes */
- SACTION_SHOW_EXTREMES = (1 << 13),
- /* show vertical line markers */
- SACTION_SHOW_MARKER_LINES = (1 << 14),
+ /* during transform (only set for TimeSlide) */
+ SACTION_MOVING = (1 << 0),
+ /* show sliders */
+ SACTION_SLIDERS = (1 << 1),
+ /* draw time in seconds instead of time in frames */
+ SACTION_DRAWTIME = (1 << 2),
+ /* don't filter action channels according to visibility */
+ //SACTION_NOHIDE = (1 << 3), // XXX deprecated... old animation system
+ /* don't kill overlapping keyframes after transform */
+ SACTION_NOTRANSKEYCULL = (1 << 4),
+ /* don't include keyframes that are out of view */
+ //SACTION_HORIZOPTIMISEON = (1 << 5), // XXX deprecated... old irrelevant trick
+ /* show pose-markers (local to action) in Action Editor mode */
+ SACTION_POSEMARKERS_SHOW = (1 << 6),
+ /* don't draw action channels using group colors (where applicable) */
+ SACTION_NODRAWGCOLORS = (1 << 7),
+ /* don't draw current frame number beside frame indicator */
+ SACTION_NODRAWCFRANUM = (1 << 8),
+ /* don't perform realtime updates */
+ SACTION_NOREALTIMEUPDATES = (1 << 10),
+ /* move markers as well as keyframes */
+ SACTION_MARKERS_MOVE = (1 << 11),
+ /* show interpolation type */
+ SACTION_SHOW_INTERPOLATION = (1 << 12),
+ /* show extremes */
+ SACTION_SHOW_EXTREMES = (1 << 13),
+ /* show vertical line markers */
+ SACTION_SHOW_MARKER_LINES = (1 << 14),
} eSAction_Flag;
-
/* SpaceAction_Runtime.flag */
typedef enum eSAction_Runtime_Flag {
- /** Temporary flag to force channel selections to be synced with main */
- SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC = (1 << 0),
+ /** Temporary flag to force channel selections to be synced with main */
+ SACTION_RUNTIME_FLAG_NEED_CHAN_SYNC = (1 << 0),
} eSAction_Runtime_Flag;
/* SpaceAction Mode Settings */
typedef enum eAnimEdit_Context {
- /* action on the active object */
- SACTCONT_ACTION = 0,
- /* list of all shapekeys on the active object, linked with their F-Curves */
- SACTCONT_SHAPEKEY = 1,
- /* editing of gpencil data */
- SACTCONT_GPENCIL = 2,
- /* dopesheet (default) */
- SACTCONT_DOPESHEET = 3,
- /* mask */
- SACTCONT_MASK = 4,
- /* cache file */
- SACTCONT_CACHEFILE = 5,
- /* timeline - replacement for the standalone "timeline editor" */
- SACTCONT_TIMELINE = 6,
+ /* action on the active object */
+ SACTCONT_ACTION = 0,
+ /* list of all shapekeys on the active object, linked with their F-Curves */
+ SACTCONT_SHAPEKEY = 1,
+ /* editing of gpencil data */
+ SACTCONT_GPENCIL = 2,
+ /* dopesheet (default) */
+ SACTCONT_DOPESHEET = 3,
+ /* mask */
+ SACTCONT_MASK = 4,
+ /* cache file */
+ SACTCONT_CACHEFILE = 5,
+ /* timeline - replacement for the standalone "timeline editor" */
+ SACTCONT_TIMELINE = 6,
} eAnimEdit_Context;
/* SpaceAction AutoSnap Settings (also used by other Animation Editors) */
typedef enum eAnimEdit_AutoSnap {
- /* no auto-snap */
- SACTSNAP_OFF = 0,
- /* snap to 1.0 frame/second intervals */
- SACTSNAP_STEP = 1,
- /* snap to actual frames/seconds (nla-action time) */
- SACTSNAP_FRAME = 2,
- /* snap to nearest marker */
- SACTSNAP_MARKER = 3,
- /* snap to actual seconds (nla-action time) */
- SACTSNAP_SECOND = 4,
- /* snap to 1.0 second increments */
- SACTSNAP_TSTEP = 5,
+ /* no auto-snap */
+ SACTSNAP_OFF = 0,
+ /* snap to 1.0 frame/second intervals */
+ SACTSNAP_STEP = 1,
+ /* snap to actual frames/seconds (nla-action time) */
+ SACTSNAP_FRAME = 2,
+ /* snap to nearest marker */
+ SACTSNAP_MARKER = 3,
+ /* snap to actual seconds (nla-action time) */
+ SACTSNAP_SECOND = 4,
+ /* snap to 1.0 second increments */
+ SACTSNAP_TSTEP = 5,
} eAnimEdit_AutoSnap;
/* SAction->cache_display */
typedef enum eTimeline_Cache_Flag {
- TIME_CACHE_DISPLAY = (1 << 0),
- TIME_CACHE_SOFTBODY = (1 << 1),
- TIME_CACHE_PARTICLES = (1 << 2),
- TIME_CACHE_CLOTH = (1 << 3),
- TIME_CACHE_SMOKE = (1 << 4),
- TIME_CACHE_DYNAMICPAINT = (1 << 5),
- TIME_CACHE_RIGIDBODY = (1 << 6),
+ TIME_CACHE_DISPLAY = (1 << 0),
+ TIME_CACHE_SOFTBODY = (1 << 1),
+ TIME_CACHE_PARTICLES = (1 << 2),
+ TIME_CACHE_CLOTH = (1 << 3),
+ TIME_CACHE_SMOKE = (1 << 4),
+ TIME_CACHE_DYNAMICPAINT = (1 << 5),
+ TIME_CACHE_RIGIDBODY = (1 << 6),
} eTimeline_Cache_Flag;
-
/* ************************************************ */
/* Legacy Data */
@@ -924,33 +915,33 @@ typedef enum eTimeline_Cache_Flag {
* to the position of the group in the list, and their position within the group.
*/
typedef struct bActionChannel {
- struct bActionChannel *next, *prev;
- /** Action Group this Action Channel belongs to. */
- bActionGroup *grp;
-
- /** IPO block this action channel references. */
- struct Ipo *ipo;
- /** Constraint Channels (when Action Channel represents an Object or Bone). */
- ListBase constraintChannels;
-
- /** Settings accessed via bitmapping. */
- int flag;
- /** Channel name, MAX_NAME. */
- char name[64];
- /** Temporary setting - may be used to indicate group that channel belongs to during syncing. */
- int temp;
+ struct bActionChannel *next, *prev;
+ /** Action Group this Action Channel belongs to. */
+ bActionGroup *grp;
+
+ /** IPO block this action channel references. */
+ struct Ipo *ipo;
+ /** Constraint Channels (when Action Channel represents an Object or Bone). */
+ ListBase constraintChannels;
+
+ /** Settings accessed via bitmapping. */
+ int flag;
+ /** Channel name, MAX_NAME. */
+ char name[64];
+ /** Temporary setting - may be used to indicate group that channel belongs to during syncing. */
+ int temp;
} bActionChannel;
/* Action Channel flags (ONLY USED FOR DO_VERSIONS...) */
typedef enum eActionChannelFlag {
- ACHAN_SELECTED = (1 << 0),
- ACHAN_HIGHLIGHTED = (1 << 1),
- ACHAN_HIDDEN = (1 << 2),
- ACHAN_PROTECTED = (1 << 3),
- ACHAN_EXPANDED = (1 << 4),
- ACHAN_SHOWIPO = (1 << 5),
- ACHAN_SHOWCONS = (1 << 6),
- ACHAN_MOVED = (1u << 31),
+ ACHAN_SELECTED = (1 << 0),
+ ACHAN_HIGHLIGHTED = (1 << 1),
+ ACHAN_HIDDEN = (1 << 2),
+ ACHAN_PROTECTED = (1 << 3),
+ ACHAN_EXPANDED = (1 << 4),
+ ACHAN_SHOWIPO = (1 << 5),
+ ACHAN_SHOWCONS = (1 << 6),
+ ACHAN_MOVED = (1u << 31),
} eActionChannelFlag;
-#endif /* __DNA_ACTION_TYPES_H__ */
+#endif /* __DNA_ACTION_TYPES_H__ */