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:
Diffstat (limited to 'source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c')
-rw-r--r--source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c
index 605c089f818..7b17a67c9f3 100644
--- a/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c
+++ b/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c
@@ -152,22 +152,14 @@ static void grab3d_draw_intern(
const bool select, const bool highlight)
{
float col[4];
- float final_matrix[4][4];
+ float matrix_final[4][4];
manipulator_color_get(mpr, highlight, col);
- copy_m4_m4(final_matrix, mpr->matrix_basis);
- if (mpr->flag & WM_MANIPULATOR_DRAW_OFFSET_SCALE) {
- mul_mat3_m4_fl(final_matrix, mpr->scale_final);
- }
- mul_m4_m4m4(final_matrix, final_matrix, mpr->matrix_offset);
- if ((mpr->flag & WM_MANIPULATOR_DRAW_OFFSET_SCALE) == 0) {
- mul_mat3_m4_fl(final_matrix, mpr->scale_final);
- }
+ WM_manipulator_calc_matrix_final(mpr, matrix_final);
gpuPushMatrix();
- gpuMultMatrix(mpr->matrix_space);
- gpuMultMatrix(final_matrix);
+ gpuMultMatrix(matrix_final);
glEnable(GL_BLEND);
grab_geom_draw(mpr, col, select);
@@ -177,18 +169,14 @@ static void grab3d_draw_intern(
if (mpr->interaction_data) {
GrabInteraction *inter = mpr->interaction_data;
- copy_m4_m4(final_matrix, inter->init_matrix_basis);
- if (mpr->flag & WM_MANIPULATOR_DRAW_OFFSET_SCALE) {
- mul_mat3_m4_fl(final_matrix, inter->init_scale_final);
- }
- mul_m4_m4m4(final_matrix, final_matrix, mpr->matrix_offset);
- if ((mpr->flag & WM_MANIPULATOR_DRAW_OFFSET_SCALE) == 0) {
- mul_mat3_m4_fl(final_matrix, inter->init_scale_final);
- }
+ WM_manipulator_calc_matrix_final_params(
+ mpr, &((struct WM_ManipulatorMatrixParams) {
+ .matrix_basis = inter->init_matrix_basis,
+ .scale_final = &inter->init_scale_final,
+ }), matrix_final);
gpuPushMatrix();
- gpuMultMatrix(mpr->matrix_space);
- gpuMultMatrix(final_matrix);
+ gpuMultMatrix(matrix_final);
glEnable(GL_BLEND);
grab_geom_draw(mpr, (const float [4]){0.5f, 0.5f, 0.5f, 0.5f}, select);
glDisable(GL_BLEND);