diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/blenkernel/BKE_armature.h | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (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/blenkernel/BKE_armature.h')
-rw-r--r-- | source/blender/blenkernel/BKE_armature.h | 368 |
1 files changed, 195 insertions, 173 deletions
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h index d9a1064d740..50457c5b3f0 100644 --- a/source/blender/blenkernel/BKE_armature.h +++ b/source/blender/blenkernel/BKE_armature.h @@ -37,67 +37,85 @@ struct bPose; struct bPoseChannel; typedef struct PoseTarget { - struct PoseTarget *next, *prev; + struct PoseTarget *next, *prev; - struct bConstraint *con; /* the constraint of this target */ - int tip; /* index of tip pchan in PoseTree */ + struct bConstraint *con; /* the constraint of this target */ + int tip; /* index of tip pchan in PoseTree */ } PoseTarget; typedef struct PoseTree { - struct PoseTree *next, *prev; + struct PoseTree *next, *prev; - int type; /* type of IK that this serves (CONSTRAINT_TYPE_KINEMATIC or ..._SPLINEIK) */ - int totchannel; /* number of pose channels */ + int type; /* type of IK that this serves (CONSTRAINT_TYPE_KINEMATIC or ..._SPLINEIK) */ + int totchannel; /* number of pose channels */ - struct ListBase targets; /* list of targets of the tree */ - struct bPoseChannel **pchan; /* array of pose channels */ - int *parent; /* and their parents */ + struct ListBase targets; /* list of targets of the tree */ + struct bPoseChannel **pchan; /* array of pose channels */ + int *parent; /* and their parents */ - float (*basis_change)[3][3]; /* basis change result from solver */ - int iterations; /* iterations from the constraint */ - int stretch; /* disable stretching */ + float (*basis_change)[3][3]; /* basis change result from solver */ + int iterations; /* iterations from the constraint */ + int stretch; /* disable stretching */ } PoseTree; -/* Core armature functionality */ +/* Core armature functionality */ #ifdef __cplusplus extern "C" { #endif struct bArmature *BKE_armature_add(struct Main *bmain, const char *name); struct bArmature *BKE_armature_from_object(struct Object *ob); -int BKE_armature_bonelist_count(struct ListBase *lb); +int BKE_armature_bonelist_count(struct ListBase *lb); void BKE_armature_bonelist_free(struct ListBase *lb); void BKE_armature_free(struct bArmature *arm); void BKE_armature_make_local(struct Main *bmain, struct bArmature *arm, const bool lib_local); -void BKE_armature_copy_data(struct Main *bmain, struct bArmature *arm_dst, const struct bArmature *arm_src, const int flag); +void BKE_armature_copy_data(struct Main *bmain, + struct bArmature *arm_dst, + const struct bArmature *arm_src, + const int flag); struct bArmature *BKE_armature_copy(struct Main *bmain, const struct bArmature *arm); /* Bounding box. */ struct BoundBox *BKE_armature_boundbox_get(struct Object *ob); -bool BKE_pose_minmax(struct Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select); +bool BKE_pose_minmax( + struct Object *ob, float r_min[3], float r_max[3], bool use_hidden, bool use_select); int bone_autoside_name(char name[64], int strip_number, short axis, float head, float tail); -struct Bone *BKE_armature_find_bone_name(struct bArmature *arm, const char *name); +struct Bone *BKE_armature_find_bone_name(struct bArmature *arm, const char *name); struct GHash *BKE_armature_bone_from_name_map(struct bArmature *arm); -bool BKE_armature_bone_flag_test_recursive(const struct Bone *bone, int flag); +bool BKE_armature_bone_flag_test_recursive(const struct Bone *bone, int flag); -float distfactor_to_bone(const float vec[3], const float b1[3], const float b2[3], float r1, float r2, float rdist); +float distfactor_to_bone( + const float vec[3], const float b1[3], const float b2[3], float r1, float r2, float rdist); void BKE_armature_where_is(struct bArmature *arm); -void BKE_armature_where_is_bone(struct Bone *bone, struct Bone *prevbone, const bool use_recursion); +void BKE_armature_where_is_bone(struct Bone *bone, + struct Bone *prevbone, + const bool use_recursion); void BKE_pose_clear_pointers(struct bPose *pose); void BKE_pose_remap_bone_pointers(struct bArmature *armature, struct bPose *pose); void BKE_pchan_rebuild_bbone_handles(struct bPose *pose, struct bPoseChannel *pchan); -void BKE_pose_rebuild(struct Main *bmain, struct Object *ob, struct bArmature *arm, const bool do_id_user); +void BKE_pose_rebuild(struct Main *bmain, + struct Object *ob, + struct bArmature *arm, + const bool do_id_user); void BKE_pose_where_is(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob); -void BKE_pose_where_is_bone(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct bPoseChannel *pchan, float ctime, bool do_extra); +void BKE_pose_where_is_bone(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *ob, + struct bPoseChannel *pchan, + float ctime, + bool do_extra); void BKE_pose_where_is_bone_tail(struct bPoseChannel *pchan); /* get_objectspace_bone_matrix has to be removed still */ -void get_objectspace_bone_matrix(struct Bone *bone, float M_accumulatedMatrix[4][4], int root, int posed); +void get_objectspace_bone_matrix(struct Bone *bone, + float M_accumulatedMatrix[4][4], + int root, + int posed); void vec_roll_to_mat3(const float vec[3], const float roll, float mat[3][3]); void vec_roll_to_mat3_normalized(const float nor[3], const float roll, float mat[3][3]); void mat3_to_vec_roll(const float mat[3][3], float r_vec[3], float *r_roll); @@ -106,12 +124,24 @@ void mat3_vec_to_roll(const float mat[3][3], const float vec[3], float *r_roll); /* Common Conversions Between Co-ordinate Spaces */ void BKE_armature_mat_world_to_pose(struct Object *ob, float inmat[4][4], float outmat[4][4]); void BKE_armature_loc_world_to_pose(struct Object *ob, const float inloc[3], float outloc[3]); -void BKE_armature_mat_pose_to_bone(struct bPoseChannel *pchan, float inmat[4][4], float outmat[4][4]); -void BKE_armature_loc_pose_to_bone(struct bPoseChannel *pchan, const float inloc[3], float outloc[3]); -void BKE_armature_mat_bone_to_pose(struct bPoseChannel *pchan, float inmat[4][4], float outmat[4][4]); -void BKE_armature_mat_pose_to_delta(float delta_mat[4][4], float pose_mat[4][4], float arm_mat[4][4]); - -void BKE_armature_mat_pose_to_bone_ex(struct Depsgraph *depsgraph, struct Object *ob, struct bPoseChannel *pchan, float inmat[4][4], float outmat[4][4]); +void BKE_armature_mat_pose_to_bone(struct bPoseChannel *pchan, + float inmat[4][4], + float outmat[4][4]); +void BKE_armature_loc_pose_to_bone(struct bPoseChannel *pchan, + const float inloc[3], + float outloc[3]); +void BKE_armature_mat_bone_to_pose(struct bPoseChannel *pchan, + float inmat[4][4], + float outmat[4][4]); +void BKE_armature_mat_pose_to_delta(float delta_mat[4][4], + float pose_mat[4][4], + float arm_mat[4][4]); + +void BKE_armature_mat_pose_to_bone_ex(struct Depsgraph *depsgraph, + struct Object *ob, + struct bPoseChannel *pchan, + float inmat[4][4], + float outmat[4][4]); void BKE_pchan_mat3_to_rot(struct bPoseChannel *pchan, float mat[3][3], bool use_compat); void BKE_pchan_apply_mat4(struct bPoseChannel *pchan, float mat[4][4], bool use_comat); @@ -124,193 +154,186 @@ void BKE_bone_offset_matrix_get(const struct Bone *bone, float offs_bone[4][4]); /* Transformation inherited from the parent bone. These matrices apply the effects of * HINGE/NO_SCALE/NO_LOCAL_LOCATION options over the pchan loc/rot/scale transformations. */ typedef struct BoneParentTransform { - float rotscale_mat[4][4]; /* parent effect on rotation & scale pose channels */ - float loc_mat[4][4]; /* parent effect on location pose channel */ + float rotscale_mat[4][4]; /* parent effect on rotation & scale pose channels */ + float loc_mat[4][4]; /* parent effect on location pose channel */ } BoneParentTransform; /* Matrix-like algebra operations on the transform */ void BKE_bone_parent_transform_clear(struct BoneParentTransform *bpt); void BKE_bone_parent_transform_invert(struct BoneParentTransform *bpt); -void BKE_bone_parent_transform_combine( - const struct BoneParentTransform *in1, const struct BoneParentTransform *in2, - struct BoneParentTransform *result); +void BKE_bone_parent_transform_combine(const struct BoneParentTransform *in1, + const struct BoneParentTransform *in2, + struct BoneParentTransform *result); -void BKE_bone_parent_transform_apply( - const struct BoneParentTransform *bpt, const float inmat[4][4], float outmat[4][4]); +void BKE_bone_parent_transform_apply(const struct BoneParentTransform *bpt, + const float inmat[4][4], + float outmat[4][4]); /* Get the current parent transformation for the given pose bone. */ -void BKE_bone_parent_transform_calc_from_pchan( - const struct bPoseChannel *pchan, - struct BoneParentTransform *r_bpt); -void BKE_bone_parent_transform_calc_from_matrices( - int bone_flag, const float offs_bone[4][4], const float parent_arm_mat[4][4], const float parent_pose_mat[4][4], - struct BoneParentTransform *r_bpt); +void BKE_bone_parent_transform_calc_from_pchan(const struct bPoseChannel *pchan, + struct BoneParentTransform *r_bpt); +void BKE_bone_parent_transform_calc_from_matrices(int bone_flag, + const float offs_bone[4][4], + const float parent_arm_mat[4][4], + const float parent_pose_mat[4][4], + struct BoneParentTransform *r_bpt); /* Rotation Mode Conversions - Used for PoseChannels + Objects... */ -void BKE_rotMode_change_values(float quat[4], float eul[3], float axis[3], float *angle, short oldMode, short newMode); +void BKE_rotMode_change_values( + float quat[4], float eul[3], float axis[3], float *angle, short oldMode, short newMode); /* B-Bone support */ -#define MAX_BBONE_SUBDIV 32 +#define MAX_BBONE_SUBDIV 32 typedef struct Mat4 { - float mat[4][4]; + float mat[4][4]; } Mat4; typedef struct BBoneSplineParameters { - int segments; - float length; + int segments; + float length; - /* Non-uniform scale correction. */ - bool do_scale; - float scale[3]; + /* Non-uniform scale correction. */ + bool do_scale; + float scale[3]; - /* Handle control bone data. */ - bool use_prev, prev_bbone; - bool use_next, next_bbone; + /* Handle control bone data. */ + bool use_prev, prev_bbone; + bool use_next, next_bbone; - float prev_h[3], next_h[3]; - float prev_mat[4][4], next_mat[4][4]; + float prev_h[3], next_h[3]; + float prev_mat[4][4], next_mat[4][4]; - /* Control values. */ - float ease1, ease2; - float roll1, roll2; - float scaleIn, scaleOut; - float curveInX, curveInY, curveOutX, curveOutY; + /* Control values. */ + float ease1, ease2; + float roll1, roll2; + float scaleIn, scaleOut; + float curveInX, curveInY, curveOutX, curveOutY; } BBoneSplineParameters; -void BKE_pchan_bbone_handles_get( - struct bPoseChannel *pchan, struct bPoseChannel **r_prev, struct bPoseChannel **r_next); -void BKE_pchan_bbone_spline_params_get( - struct bPoseChannel *pchan, const bool rest, struct BBoneSplineParameters *r_param); - -void BKE_pchan_bbone_spline_setup( - struct bPoseChannel *pchan, const bool rest, const bool for_deform, Mat4 *result_array); - -void BKE_pchan_bbone_handles_compute( - const BBoneSplineParameters *param, - float h1[3], float *r_roll1, - float h2[3], float *r_roll2, - bool ease, bool offsets); -int BKE_pchan_bbone_spline_compute( - struct BBoneSplineParameters *param, const bool for_deform, Mat4 *result_array); - -void BKE_pchan_bbone_segments_cache_compute( - struct bPoseChannel *pchan); -void BKE_pchan_bbone_segments_cache_copy( - struct bPoseChannel *pchan, struct bPoseChannel *pchan_from); - -void BKE_pchan_bbone_deform_segment_index(const struct bPoseChannel *pchan, float pos, int *r_index, float *r_blend_next); +void BKE_pchan_bbone_handles_get(struct bPoseChannel *pchan, + struct bPoseChannel **r_prev, + struct bPoseChannel **r_next); +void BKE_pchan_bbone_spline_params_get(struct bPoseChannel *pchan, + const bool rest, + struct BBoneSplineParameters *r_param); + +void BKE_pchan_bbone_spline_setup(struct bPoseChannel *pchan, + const bool rest, + const bool for_deform, + Mat4 *result_array); + +void BKE_pchan_bbone_handles_compute(const BBoneSplineParameters *param, + float h1[3], + float *r_roll1, + float h2[3], + float *r_roll2, + bool ease, + bool offsets); +int BKE_pchan_bbone_spline_compute(struct BBoneSplineParameters *param, + const bool for_deform, + Mat4 *result_array); + +void BKE_pchan_bbone_segments_cache_compute(struct bPoseChannel *pchan); +void BKE_pchan_bbone_segments_cache_copy(struct bPoseChannel *pchan, + struct bPoseChannel *pchan_from); + +void BKE_pchan_bbone_deform_segment_index(const struct bPoseChannel *pchan, + float pos, + int *r_index, + float *r_blend_next); /* like EBONE_VISIBLE */ -#define PBONE_VISIBLE(arm, bone) ( \ - CHECK_TYPE_INLINE(arm, bArmature *), \ - CHECK_TYPE_INLINE(bone, Bone *), \ - (((bone)->layer & (arm)->layer) && !((bone)->flag & BONE_HIDDEN_P)) \ - ) +#define PBONE_VISIBLE(arm, bone) \ + (CHECK_TYPE_INLINE(arm, bArmature *), \ + CHECK_TYPE_INLINE(bone, Bone *), \ + (((bone)->layer & (arm)->layer) && !((bone)->flag & BONE_HIDDEN_P))) #define PBONE_SELECTABLE(arm, bone) \ - (PBONE_VISIBLE(arm, bone) && !((bone)->flag & BONE_UNSELECTABLE)) - + (PBONE_VISIBLE(arm, bone) && !((bone)->flag & BONE_UNSELECTABLE)) /* context.selected_pose_bones */ #define FOREACH_PCHAN_SELECTED_IN_OBJECT_BEGIN(_ob, _pchan) \ - for (bPoseChannel *_pchan = (_ob)->pose->chanbase.first; _pchan; _pchan = _pchan->next) { \ - if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone) && ((_pchan)->bone->flag & BONE_SELECTED)) { + for (bPoseChannel *_pchan = (_ob)->pose->chanbase.first; _pchan; _pchan = _pchan->next) { \ + if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone) && \ + ((_pchan)->bone->flag & BONE_SELECTED)) { #define FOREACH_PCHAN_SELECTED_IN_OBJECT_END \ - } \ - } ((void)0) + } \ + } \ + ((void)0) /* context.visible_pose_bones */ #define FOREACH_PCHAN_VISIBLE_IN_OBJECT_BEGIN(_ob, _pchan) \ - for (bPoseChannel *_pchan = (_ob)->pose->chanbase.first; _pchan; _pchan = _pchan->next) { \ - if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone)) { + for (bPoseChannel *_pchan = (_ob)->pose->chanbase.first; _pchan; _pchan = _pchan->next) { \ + if (PBONE_VISIBLE(((bArmature *)(_ob)->data), (_pchan)->bone)) { #define FOREACH_PCHAN_VISIBLE_IN_OBJECT_END \ - } \ - } ((void)0) - + } \ + } \ + ((void)0) /* Evaluation helpers */ struct bKinematicConstraint; struct bPose; struct bSplineIKConstraint; -struct bPoseChannel *BKE_armature_ik_solver_find_root( - struct bPoseChannel *pchan, - struct bKinematicConstraint *data); -struct bPoseChannel *BKE_armature_splineik_solver_find_root( - struct bPoseChannel *pchan, - struct bSplineIKConstraint *data); +struct bPoseChannel *BKE_armature_ik_solver_find_root(struct bPoseChannel *pchan, + struct bKinematicConstraint *data); +struct bPoseChannel *BKE_armature_splineik_solver_find_root(struct bPoseChannel *pchan, + struct bSplineIKConstraint *data); void BKE_pose_splineik_init_tree(struct Scene *scene, struct Object *ob, float ctime); -void BKE_splineik_execute_tree( - struct Depsgraph *depsgraph, struct Scene *scene, - struct Object *ob, struct bPoseChannel *pchan_root, float ctime); +void BKE_splineik_execute_tree(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *ob, + struct bPoseChannel *pchan_root, + float ctime); void BKE_pose_pchan_index_rebuild(struct bPose *pose); -void BKE_pose_eval_init( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object); - -void BKE_pose_eval_init_ik( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object); - -void BKE_pose_eval_bone( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object, - int pchan_index); - -void BKE_pose_constraints_evaluate( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object, - int pchan_index); - -void BKE_pose_bone_done( - struct Depsgraph *depsgraph, - struct Object *object, - int pchan_index); - -void BKE_pose_eval_bbone_segments( - struct Depsgraph *depsgraph, - struct Object *object, - int pchan_index); - -void BKE_pose_iktree_evaluate( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object, - int rootchan_index); - -void BKE_pose_splineik_evaluate( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object, - int rootchan_index); - -void BKE_pose_eval_done( - struct Depsgraph *depsgraph, - struct Object *object); - -void BKE_pose_eval_cleanup( - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *object); - -void BKE_pose_eval_proxy_init(struct Depsgraph *depsgraph, - struct Object *object); -void BKE_pose_eval_proxy_done(struct Depsgraph *depsgraph, - struct Object *object); -void BKE_pose_eval_proxy_cleanup(struct Depsgraph *depsgraph, - struct Object *object); - -void BKE_pose_eval_proxy_copy_bone( - struct Depsgraph *depsgraph, - struct Object *object, - int pchan_index); +void BKE_pose_eval_init(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *object); + +void BKE_pose_eval_init_ik(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *object); + +void BKE_pose_eval_bone(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *object, + int pchan_index); + +void BKE_pose_constraints_evaluate(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *object, + int pchan_index); + +void BKE_pose_bone_done(struct Depsgraph *depsgraph, struct Object *object, int pchan_index); + +void BKE_pose_eval_bbone_segments(struct Depsgraph *depsgraph, + struct Object *object, + int pchan_index); + +void BKE_pose_iktree_evaluate(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *object, + int rootchan_index); + +void BKE_pose_splineik_evaluate(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *object, + int rootchan_index); + +void BKE_pose_eval_done(struct Depsgraph *depsgraph, struct Object *object); + +void BKE_pose_eval_cleanup(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Object *object); + +void BKE_pose_eval_proxy_init(struct Depsgraph *depsgraph, struct Object *object); +void BKE_pose_eval_proxy_done(struct Depsgraph *depsgraph, struct Object *object); +void BKE_pose_eval_proxy_cleanup(struct Depsgraph *depsgraph, struct Object *object); + +void BKE_pose_eval_proxy_copy_bone(struct Depsgraph *depsgraph, + struct Object *object, + int pchan_index); /* BBOne deformation cache. * @@ -318,8 +341,7 @@ void BKE_pose_eval_proxy_copy_bone( * used by armature_deform_verts(). */ struct ObjectBBoneDeform; -struct ObjectBBoneDeform * BKE_armature_cached_bbone_deformation_get( - struct Object *object); +struct ObjectBBoneDeform *BKE_armature_cached_bbone_deformation_get(struct Object *object); void BKE_armature_cached_bbone_deformation_free_data(struct Object *object); void BKE_armature_cached_bbone_deformation_free(struct Object *object); void BKE_armature_cached_bbone_deformation_update(struct Object *object); |