diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-08-30 10:53:32 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-08-30 11:04:42 +0300 |
commit | 8b23549d479fab753ca11f4ebde5880c8a209878 (patch) | |
tree | 10ad16350a142e1528b962814e1538cf279fb530 /source/blender/editors/manipulator_library/manipulator_types | |
parent | d34dac10706506efb3d7d43553a2d0278eb0ae3d (diff) |
Manipulator: run callback when calculating the final matrix
Diffstat (limited to 'source/blender/editors/manipulator_library/manipulator_types')
3 files changed, 6 insertions, 24 deletions
diff --git a/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c index 5c984de2e27..21ebbba46cf 100644 --- a/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c +++ b/source/blender/editors/manipulator_library/manipulator_types/arrow3d_manipulator.c @@ -184,16 +184,11 @@ static void arrow_draw_intern(ArrowManipulator3D *arrow, const bool select, cons { wmManipulator *mpr = &arrow->manipulator; float color[4]; - float matrix_basis_adjust[4][4]; float matrix_final[4][4]; manipulator_color_get(mpr, highlight, color); - manipulator_arrow_matrix_basis_get(mpr, matrix_basis_adjust); - WM_manipulator_calc_matrix_final_params( - mpr, &((struct WM_ManipulatorMatrixParams) { - .matrix_basis = matrix_basis_adjust, - }), matrix_final); + WM_manipulator_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); diff --git a/source/blender/editors/manipulator_library/manipulator_types/dial3d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/dial3d_manipulator.c index 257ccfa88d8..f637b098cca 100644 --- a/source/blender/editors/manipulator_library/manipulator_types/dial3d_manipulator.c +++ b/source/blender/editors/manipulator_library/manipulator_types/dial3d_manipulator.c @@ -96,7 +96,9 @@ typedef struct DialInteraction { #define DIAL_WIDTH 1.0f #define DIAL_RESOLUTION 32 - +/** + * We can't use this for the #wmManipulatorType.matrix_basis_get callback, it conflicts with depth picking. + */ static void dial_calc_matrix(const wmManipulator *mpr, float mat[4][4]) { float rot[3][3]; 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 37ad31db642..fd1f5a0cf25 100644 --- a/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c +++ b/source/blender/editors/manipulator_library/manipulator_types/grab3d_manipulator.c @@ -175,15 +175,7 @@ static void grab3d_draw_intern( float matrix_align[4][4]; manipulator_color_get(mpr, highlight, color); - - { - float matrix_basis_adjust[4][4]; - manipulator_grab_matrix_basis_get(mpr, matrix_basis_adjust); - WM_manipulator_calc_matrix_final_params( - mpr, &((struct WM_ManipulatorMatrixParams) { - .matrix_basis = matrix_basis_adjust, - }), matrix_final); - } + WM_manipulator_calc_matrix_final(mpr, matrix_final); gpuPushMatrix(); gpuMultMatrix(matrix_final); @@ -293,14 +285,7 @@ static int manipulator_grab_invoke( } #endif - { - float matrix_basis_adjust[4][4]; - manipulator_grab_matrix_basis_get(mpr, matrix_basis_adjust); - WM_manipulator_calc_matrix_final_params( - mpr, &((struct WM_ManipulatorMatrixParams) { - .matrix_basis = matrix_basis_adjust, - }), inter->init_matrix_final); - } + WM_manipulator_calc_matrix_final(mpr, inter->init_matrix_final); mpr->interaction_data = inter; |