forked from bartvdbraak/blender
Gizmo: use the final matrix for the dial3D clip plane
Dial3D uses the `matrix_basis` for the clip plane. This can cause inconsistencies if the gizmo has `matrix_offset` or `matrix_space`.
This commit is contained in:
parent
db4e7616f3
commit
f72d28d7e7
@ -86,8 +86,7 @@ struct Dial3dParams {
|
||||
float arc_inner_factor;
|
||||
float *clip_plane;
|
||||
};
|
||||
static void dial_3d_draw_util(const float matrix_basis[4][4],
|
||||
const float matrix_final[4][4],
|
||||
static void dial_3d_draw_util(const float matrix_final[4][4],
|
||||
const float line_width,
|
||||
const float color[4],
|
||||
const bool select,
|
||||
@ -96,7 +95,7 @@ static void dial_3d_draw_util(const float matrix_basis[4][4],
|
||||
static void dial_geom_draw(const float color[4],
|
||||
const float line_width,
|
||||
const bool select,
|
||||
const float axis_modal_mat[4][4],
|
||||
const float clip_plane_mat[4][4],
|
||||
const float clip_plane[4],
|
||||
const float arc_partial_angle,
|
||||
const float arc_inner_factor,
|
||||
@ -118,7 +117,7 @@ static void dial_geom_draw(const float color[4],
|
||||
immBindBuiltinProgram(filled ? GPU_SHADER_3D_CLIPPED_UNIFORM_COLOR :
|
||||
GPU_SHADER_3D_POLYLINE_CLIPPED_UNIFORM_COLOR);
|
||||
immUniform4fv("ClipPlane", clip_plane);
|
||||
immUniformMatrix4fv("ModelMatrix", axis_modal_mat);
|
||||
immUniformMatrix4fv("ModelMatrix", clip_plane_mat);
|
||||
}
|
||||
else {
|
||||
immBindBuiltinProgram(filled ? GPU_SHADER_3D_UNIFORM_COLOR :
|
||||
@ -432,8 +431,7 @@ static void dial_draw_intern(
|
||||
}
|
||||
}
|
||||
|
||||
dial_3d_draw_util(gz->matrix_basis,
|
||||
matrix_final,
|
||||
dial_3d_draw_util(matrix_final,
|
||||
gz->line_width,
|
||||
color,
|
||||
select,
|
||||
@ -613,8 +611,7 @@ static int gizmo_dial_invoke(bContext *UNUSED(C), wmGizmo *gz, const wmEvent *ev
|
||||
/** \name Dial Gizmo API
|
||||
* \{ */
|
||||
|
||||
static void dial_3d_draw_util(const float matrix_basis[4][4],
|
||||
const float matrix_final[4][4],
|
||||
static void dial_3d_draw_util(const float matrix_final[4][4],
|
||||
const float line_width,
|
||||
const float color[4],
|
||||
const bool select,
|
||||
@ -650,7 +647,7 @@ static void dial_3d_draw_util(const float matrix_basis[4][4],
|
||||
dial_geom_draw(color,
|
||||
line_width,
|
||||
select,
|
||||
matrix_basis,
|
||||
matrix_final,
|
||||
params->clip_plane,
|
||||
params->arc_partial_angle,
|
||||
params->arc_inner_factor,
|
||||
|
Loading…
Reference in New Issue
Block a user