[Bf-blender-cvs] [bac9c2dc7db] blender2.8: Manipulator: utility to get matrix w/o offset
Campbell Barton
noreply at git.blender.org
Mon May 14 23:23:33 CEST 2018
Commit: bac9c2dc7db1861400f5b37758eb23cdb9fb7325
Author: Campbell Barton
Date: Mon May 14 23:15:15 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBbac9c2dc7db1861400f5b37758eb23cdb9fb7325
Manipulator: utility to get matrix w/o offset
===================================================================
M source/blender/editors/manipulator_library/manipulator_types/cage2d_manipulator.c
M source/blender/windowmanager/manipulators/WM_manipulator_api.h
M source/blender/windowmanager/manipulators/intern/wm_manipulator.c
===================================================================
diff --git a/source/blender/editors/manipulator_library/manipulator_types/cage2d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/cage2d_manipulator.c
index 784c03be949..fe748f33d35 100644
--- a/source/blender/editors/manipulator_library/manipulator_types/cage2d_manipulator.c
+++ b/source/blender/editors/manipulator_library/manipulator_types/cage2d_manipulator.c
@@ -66,16 +66,6 @@
#define MANIPULATOR_RESIZER_SIZE 10.0f
#define MANIPULATOR_MARGIN_OFFSET_SCALE 1.5f
-static void manipulator_calc_matrix_final_no_offset(
- const wmManipulator *mpr, float orig_matrix_final_no_offset[4][4])
-{
- float mat_identity[4][4];
- struct WM_ManipulatorMatrixParams params = {NULL};
- unit_m4(mat_identity);
- params.matrix_offset = mat_identity;
- WM_manipulator_calc_matrix_final_params(mpr, ¶ms, orig_matrix_final_no_offset);
-}
-
static void manipulator_calc_rect_view_scale(
const wmManipulator *mpr, const float dims[2], float scale[2])
{
@@ -88,7 +78,7 @@ static void manipulator_calc_rect_view_scale(
asp[1] = dims[0] / dims[1];
}
float x_axis[3], y_axis[3];
- manipulator_calc_matrix_final_no_offset(mpr, matrix_final_no_offset);
+ WM_manipulator_calc_matrix_final_no_offset(mpr, matrix_final_no_offset);
mul_v3_mat3_m4v3(x_axis, matrix_final_no_offset, mpr->matrix_offset[0]);
mul_v3_mat3_m4v3(y_axis, matrix_final_no_offset, mpr->matrix_offset[1]);
@@ -841,7 +831,7 @@ static int manipulator_cage2d_invoke(
RectTransformInteraction *data = MEM_callocN(sizeof(RectTransformInteraction), "cage_interaction");
copy_m4_m4(data->orig_matrix_offset, mpr->matrix_offset);
- manipulator_calc_matrix_final_no_offset(mpr, data->orig_matrix_final_no_offset);
+ WM_manipulator_calc_matrix_final_no_offset(mpr, data->orig_matrix_final_no_offset);
if (manipulator_window_project_2d(
C, mpr, (const float[2]){UNPACK2(event->mval)}, 2, false, data->orig_mouse) == 0)
diff --git a/source/blender/windowmanager/manipulators/WM_manipulator_api.h b/source/blender/windowmanager/manipulators/WM_manipulator_api.h
index 748cc18480f..b88956ac28d 100644
--- a/source/blender/windowmanager/manipulators/WM_manipulator_api.h
+++ b/source/blender/windowmanager/manipulators/WM_manipulator_api.h
@@ -125,8 +125,11 @@ struct WM_ManipulatorMatrixParams {
void WM_manipulator_calc_matrix_final_params(
const struct wmManipulator *mpr, const struct WM_ManipulatorMatrixParams *params,
float r_mat[4][4]);
+void WM_manipulator_calc_matrix_final_no_offset(
+ const struct wmManipulator *mpr, float r_mat[4][4]);
-void WM_manipulator_calc_matrix_final(const struct wmManipulator *mpr, float r_mat[4][4]);
+void WM_manipulator_calc_matrix_final(
+ const struct wmManipulator *mpr, float r_mat[4][4]);
/* properties */
void WM_manipulator_properties_create_ptr(struct PointerRNA *ptr, struct wmManipulatorType *wt);
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator.c b/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
index 42232950cc4..f5a8746f807 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator.c
@@ -598,6 +598,22 @@ void WM_manipulator_calc_matrix_final_params(
mul_m4_m4m4(r_mat, matrix_space, final_matrix);
}
+void WM_manipulator_calc_matrix_final_no_offset(const wmManipulator *mpr, float r_mat[4][4])
+{
+ float mat_identity[4][4];
+ unit_m4(mat_identity);
+
+ WM_manipulator_calc_matrix_final_params(
+ mpr,
+ &((struct WM_ManipulatorMatrixParams) {
+ .matrix_space = NULL,
+ .matrix_basis = NULL,
+ .matrix_offset = mat_identity,
+ .scale_final = NULL,
+ }), r_mat
+ );
+}
+
void WM_manipulator_calc_matrix_final(const wmManipulator *mpr, float r_mat[4][4])
{
WM_manipulator_calc_matrix_final_params(
More information about the Bf-blender-cvs
mailing list