diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-12-02 06:32:31 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-12-02 06:37:04 +0300 |
commit | 55b31dd98ce592ef4e51a9f9edece9ade7c519db (patch) | |
tree | 290f5170ce123029d4b5eb3e801605daae7708bb /source/blender/blenkernel | |
parent | 2e392a0fdc0975e500d7ea07bfbfc781f5ddd190 (diff) | |
parent | 335e1b507b1ad0e7c2bafb2175dac15d3d1add83 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_armature.h | 30 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/armature.c | 26 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/armature_update.c | 6 |
3 files changed, 36 insertions, 26 deletions
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h index 0e356c1557f..bc91ffeb504 100644 --- a/source/blender/blenkernel/BKE_armature.h +++ b/source/blender/blenkernel/BKE_armature.h @@ -164,16 +164,26 @@ typedef struct BBoneSplineParameters { float curveInX, curveInY, curveOutX, curveOutY; } BBoneSplineParameters; -void BKE_pchan_get_bbone_handles(struct bPoseChannel *pchan, struct bPoseChannel **r_prev, struct bPoseChannel **r_next); -void BKE_pchan_get_bbone_spline_parameters(struct bPoseChannel *pchan, const bool rest, struct BBoneSplineParameters *r_param); - -void b_bone_spline_setup(struct bPoseChannel *pchan, const bool rest, Mat4 result_array[MAX_BBONE_SUBDIV]); - -void BKE_compute_b_bone_handles(const BBoneSplineParameters *param, float h1[3], float *r_roll1, float h2[3], float *r_roll2, bool ease, bool offsets); -int BKE_compute_b_bone_spline(struct BBoneSplineParameters *param, Mat4 result_array[MAX_BBONE_SUBDIV]); - -void BKE_pchan_cache_bbone_segments(struct bPoseChannel *pchan); -void BKE_pchan_copy_bbone_segments_cache(struct bPoseChannel *pchan, struct bPoseChannel *pchan_from); +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, Mat4 result_array[MAX_BBONE_SUBDIV]); + +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, Mat4 result_array[MAX_BBONE_SUBDIV]); + +void BKE_pchan_bbone_segments_cache_compute( + struct bPoseChannel *pchan); +void BKE_pchan_bbone_segments_cache_copy( + struct bPoseChannel *pchan, struct bPoseChannel *pchan_from); /* like EBONE_VISIBLE */ #define PBONE_VISIBLE(arm, bone) ( \ diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 9abd20679d8..8c32bed4a3b 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -436,7 +436,7 @@ static void equalize_bbone_bezier(float *data, int desired) } /* Get "next" and "prev" bones - these are used for handle calculations. */ -void BKE_pchan_get_bbone_handles(bPoseChannel *pchan, bPoseChannel **r_prev, bPoseChannel **r_next) +void BKE_pchan_bbone_handles_get(bPoseChannel *pchan, bPoseChannel **r_prev, bPoseChannel **r_next) { if (pchan->bone->bbone_prev_type == BBONE_HANDLE_AUTO) { /* Use connected parent. */ @@ -463,7 +463,7 @@ void BKE_pchan_get_bbone_handles(bPoseChannel *pchan, bPoseChannel **r_prev, bPo } /* Compute B-Bone spline parameters for the given channel. */ -void BKE_pchan_get_bbone_spline_parameters(struct bPoseChannel *pchan, const bool rest, struct BBoneSplineParameters *param) +void BKE_pchan_bbone_spline_params_get(struct bPoseChannel *pchan, const bool rest, struct BBoneSplineParameters *param) { bPoseChannel *next, *prev; Bone *bone = pchan->bone; @@ -487,7 +487,7 @@ void BKE_pchan_get_bbone_spline_parameters(struct bPoseChannel *pchan, const boo } } - BKE_pchan_get_bbone_handles(pchan, &prev, &next); + BKE_pchan_bbone_handles_get(pchan, &prev, &next); /* Find the handle points, since this is inside bone space, the * first point = (0, 0, 0) @@ -645,17 +645,17 @@ void BKE_pchan_get_bbone_spline_parameters(struct bPoseChannel *pchan, const boo /* Fills the array with the desired amount of bone->segments elements. * This calculation is done within unit bone space. */ -void b_bone_spline_setup(bPoseChannel *pchan, const bool rest, Mat4 result_array[MAX_BBONE_SUBDIV]) +void BKE_pchan_bbone_spline_setup(bPoseChannel *pchan, const bool rest, Mat4 result_array[MAX_BBONE_SUBDIV]) { BBoneSplineParameters param; - BKE_pchan_get_bbone_spline_parameters(pchan, rest, ¶m); + BKE_pchan_bbone_spline_params_get(pchan, rest, ¶m); - pchan->bone->segments = BKE_compute_b_bone_spline(¶m, result_array); + pchan->bone->segments = BKE_pchan_bbone_spline_compute(¶m, result_array); } /* Computes the bezier handle vectors and rolls coming from custom handles. */ -void BKE_compute_b_bone_handles(const BBoneSplineParameters *param, float h1[3], float *r_roll1, float h2[3], float *r_roll2, bool ease, bool offsets) +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) { float mat3[3][3]; float length = param->length; @@ -756,7 +756,7 @@ void BKE_compute_b_bone_handles(const BBoneSplineParameters *param, float h1[3], /* Fills the array with the desired amount of bone->segments elements. * This calculation is done within unit bone space. */ -int BKE_compute_b_bone_spline(BBoneSplineParameters *param, Mat4 result_array[MAX_BBONE_SUBDIV]) +int BKE_pchan_bbone_spline_compute(BBoneSplineParameters *param, Mat4 result_array[MAX_BBONE_SUBDIV]) { float scalemat[4][4], iscalemat[4][4]; float mat3[3][3]; @@ -772,7 +772,7 @@ int BKE_compute_b_bone_spline(BBoneSplineParameters *param, Mat4 result_array[MA length *= param->scale[1]; } - BKE_compute_b_bone_handles(param, h1, &roll1, h2, &roll2, true, true); + BKE_pchan_bbone_handles_compute(param, h1, &roll1, h2, &roll2, true, true); /* Make curve. */ CLAMP_MAX(param->segments, MAX_BBONE_SUBDIV); @@ -858,7 +858,7 @@ static void allocate_bbone_cache(bPoseChannel *pchan, int segments) } /** Compute and cache the B-Bone shape in the channel runtime struct. */ -void BKE_pchan_cache_bbone_segments(bPoseChannel *pchan) +void BKE_pchan_bbone_segments_cache_compute(bPoseChannel *pchan) { bPoseChannelRuntime *runtime = &pchan->runtime; Bone *bone = pchan->bone; @@ -876,8 +876,8 @@ void BKE_pchan_cache_bbone_segments(bPoseChannel *pchan) DualQuat *b_bone_dual_quats = runtime->bbone_dual_quats; int a; - b_bone_spline_setup(pchan, false, b_bone); - b_bone_spline_setup(pchan, true, b_bone_rest); + BKE_pchan_bbone_spline_setup(pchan, false, b_bone); + BKE_pchan_bbone_spline_setup(pchan, true, b_bone_rest); /* Compute deform matrices. */ /* first matrix is the inverse arm_mat, to bring points in local bone space @@ -901,7 +901,7 @@ void BKE_pchan_cache_bbone_segments(bPoseChannel *pchan) } /** Copy cached B-Bone segments from one channel to another */ -void BKE_pchan_copy_bbone_segments_cache(bPoseChannel *pchan, bPoseChannel *pchan_from) +void BKE_pchan_bbone_segments_cache_copy(bPoseChannel *pchan, bPoseChannel *pchan_from) { bPoseChannelRuntime *runtime = &pchan->runtime; bPoseChannelRuntime *runtime_from = &pchan_from->runtime; diff --git a/source/blender/blenkernel/intern/armature_update.c b/source/blender/blenkernel/intern/armature_update.c index f5519966ac2..1460a3cb205 100644 --- a/source/blender/blenkernel/intern/armature_update.c +++ b/source/blender/blenkernel/intern/armature_update.c @@ -728,10 +728,10 @@ void BKE_pose_eval_bbone_segments(struct Depsgraph *depsgraph, bPoseChannel *pchan = pose_pchan_get_indexed(ob, pchan_index); DEG_debug_print_eval(depsgraph, __func__, pchan->name, pchan); if (pchan->bone != NULL && pchan->bone->segments > 1) { - BKE_pchan_cache_bbone_segments(pchan); + BKE_pchan_bbone_segments_cache_compute(pchan); bArmature *arm = (bArmature *)ob->data; if (DEG_is_active(depsgraph) && arm->edbo == NULL) { - BKE_pchan_copy_bbone_segments_cache(pchan->orig_pchan, pchan); + BKE_pchan_bbone_segments_cache_copy(pchan->orig_pchan, pchan); } } } @@ -857,5 +857,5 @@ void BKE_pose_eval_proxy_copy_bone( BLI_assert(pchan != NULL); BLI_assert(pchan_from != NULL); BKE_pose_copyesult_pchan_result(pchan, pchan_from); - BKE_pchan_copy_bbone_segments_cache(pchan, pchan_from); + BKE_pchan_bbone_segments_cache_copy(pchan, pchan_from); } |