[Bf-blender-cvs] [4b8ab16797c] soc-2021-knife-tools: Fix: Knife cut vertex sometimes placed in space
Cian Jinks
noreply at git.blender.org
Sun Sep 5 14:12:14 CEST 2021
Commit: 4b8ab16797ce255ed3618ba1ef64f9d05ca46424
Author: Cian Jinks
Date: Sun Sep 5 13:09:22 2021 +0100
Branches: soc-2021-knife-tools
https://developer.blender.org/rB4b8ab16797ce255ed3618ba1ef64f9d05ca46424
Fix: Knife cut vertex sometimes placed in space
When using relative constrained angle mode along an edge which has a face hidden from view, if a cut is added it can sometimes place the previous cut vertex in space, away from the edge.
This was caused by knife_snap_edge_constrained not working correctly when a cut is constrained along the edge it was started from.
Fixed by adding a quick check.
===================================================================
M source/blender/editors/mesh/editmesh_knife.c
===================================================================
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index 5bad09c6e9c..101a15ae636 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -3443,7 +3443,8 @@ static KnifeEdge *knife_find_closest_edge_of_face(KnifeTool_OpData *kcd,
knife_project_v2(kcd, kfe->v2->cageco, kfv2_sco);
/* Check if we're close enough and calculate 'lambda'. */
- if (kcd->is_angle_snapping || kcd->axis_constrained) {
+ /* In constrained mode calculate lambda differently, unless constrained along kcd->prev.edge */
+ if ((kcd->is_angle_snapping || kcd->axis_constrained) && (kfe != kcd->prev.edge)) {
dis_sq = curdis_sq;
if (!knife_snap_edge_constrained(kcd, sco, kfv1_sco, kfv2_sco, &dis_sq, &lambda)) {
continue;
More information about the Bf-blender-cvs
mailing list