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/primitive3d_manipulator.c')
-rw-r--r--source/blender/editors/manipulator_library/manipulator_types/primitive3d_manipulator.c37
1 files changed, 14 insertions, 23 deletions
diff --git a/source/blender/editors/manipulator_library/manipulator_types/primitive3d_manipulator.c b/source/blender/editors/manipulator_library/manipulator_types/primitive3d_manipulator.c
index 6a7fde5a5b5..44878a24430 100644
--- a/source/blender/editors/manipulator_library/manipulator_types/primitive3d_manipulator.c
+++ b/source/blender/editors/manipulator_library/manipulator_types/primitive3d_manipulator.c
@@ -27,8 +27,6 @@
*
* \brief Manipulator with primitive drawing type (plane, cube, etc.).
* Currently only plane primitive supported without own handling, use with operator only.
- *
- * TODO: use matrix_space
*/
#include "BIF_gl.h"
@@ -90,23 +88,21 @@ static void manipulator_primitive_draw_intern(
wmManipulator *mpr, const bool UNUSED(select),
const bool highlight)
{
- float col_inner[4], col_outer[4];
- float mat[4][4];
+ float color_inner[4], color_outer[4];
+ float matrix_final[4][4];
const int draw_style = RNA_enum_get(mpr->ptr, "draw_style");
- manipulator_color_get(mpr, highlight, col_outer);
- copy_v4_v4(col_inner, col_outer);
- col_inner[3] *= 0.5f;
+ manipulator_color_get(mpr, highlight, color_outer);
+ copy_v4_v4(color_inner, color_outer);
+ color_inner[3] *= 0.5f;
- copy_m4_m4(mat, mpr->matrix_basis);
- mul_mat3_m4_fl(mat, mpr->scale_final);
+ WM_manipulator_calc_matrix_final(mpr, matrix_final);
gpuPushMatrix();
- gpuMultMatrix(mat);
+ gpuMultMatrix(matrix_final);
glEnable(GL_BLEND);
- gpuMultMatrix(mpr->matrix_offset);
- manipulator_primitive_draw_geom(col_inner, col_outer, draw_style);
+ manipulator_primitive_draw_geom(color_inner, color_outer, draw_style);
glDisable(GL_BLEND);
gpuPopMatrix();
@@ -114,19 +110,15 @@ static void manipulator_primitive_draw_intern(
if (mpr->interaction_data) {
ManipulatorInteraction *inter = mpr->interaction_data;
- copy_v4_fl(col_inner, 0.5f);
- copy_v3_fl(col_outer, 0.5f);
- col_outer[3] = 0.8f;
-
- copy_m4_m4(mat, inter->init_matrix);
- mul_mat3_m4_fl(mat, inter->init_scale);
+ copy_v4_fl(color_inner, 0.5f);
+ copy_v3_fl(color_outer, 0.5f);
+ color_outer[3] = 0.8f;
gpuPushMatrix();
- gpuMultMatrix(mat);
+ gpuMultMatrix(inter->init_matrix_final);
glEnable(GL_BLEND);
- gpuMultMatrix(mpr->matrix_offset);
- manipulator_primitive_draw_geom(col_inner, col_outer, draw_style);
+ manipulator_primitive_draw_geom(color_inner, color_outer, draw_style);
glDisable(GL_BLEND);
gpuPopMatrix();
@@ -158,8 +150,7 @@ static void manipulator_primitive_invoke(
{
ManipulatorInteraction *inter = MEM_callocN(sizeof(ManipulatorInteraction), __func__);
- copy_m4_m4(inter->init_matrix, mpr->matrix_basis);
- inter->init_scale = mpr->scale_final;
+ WM_manipulator_calc_matrix_final(mpr, inter->init_matrix_final);
mpr->interaction_data = inter;
}