mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Fix T37510 Knife missed cuts on small faces.
For very thin faces, knife sometimes missed cutting a few. Problem was that a test for edges being totally inside a face was being applied in inappropriate circumstances. An assumed invariant about the knife hit structure is not true when actually in the middle of making cuts. Also make a 'big epsilon' a little smaller, though don't think that was the problem in this bug.
This commit is contained in:
parent
d4ad050632
commit
c1be7e12ee
1 changed files with 2 additions and 2 deletions
|
|
@ -77,7 +77,7 @@
|
|||
|
||||
#define KNIFE_FLT_EPS 0.00001f
|
||||
#define KNIFE_FLT_EPS_SQUARED (KNIFE_FLT_EPS * KNIFE_FLT_EPS)
|
||||
#define KNIFE_FLT_EPSBIG 0.001f
|
||||
#define KNIFE_FLT_EPSBIG 0.0005f
|
||||
|
||||
typedef struct KnifeColors {
|
||||
unsigned char line[3];
|
||||
|
|
@ -653,7 +653,7 @@ static void knife_add_single_cut(KnifeTool_OpData *kcd, KnifeLineHit *lh1, Knife
|
|||
}
|
||||
|
||||
/* Check if edge actually lies within face (might not, if this face is concave) */
|
||||
if (lh1->v && lh2->v) {
|
||||
if ((lh1->v && !lh1->kfe) && (lh2->v && !lh2->kfe)) {
|
||||
if (!knife_verts_edge_in_face(lh1->v, lh2->v, f)) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue