fix for knife when clipping was enabled, The knife would not snap to edges/verts outside the clip area but the geometry would still get cut
This commit is contained in:
@@ -1181,7 +1181,6 @@ static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
|
||||
result = results = BLI_bvhtree_overlap(tree, tree2, &tot);
|
||||
|
||||
for (i = 0; i < tot; i++, result++) {
|
||||
float p[3];
|
||||
BMLoop *l1;
|
||||
BMFace *hitf;
|
||||
ListBase *lst;
|
||||
@@ -1200,7 +1199,7 @@ static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
|
||||
}
|
||||
|
||||
if (isect_line_tri_v3(kfe->v1->cageco, kfe->v2->cageco, v1, v2, v3, &lambda, NULL)) {
|
||||
float no[3], view[3], sp[3];
|
||||
float p[3], no[3], view[3], sp[3];
|
||||
|
||||
interp_v3_v3v3(p, kfe->v1->cageco, kfe->v2->cageco, lambda);
|
||||
|
||||
@@ -1215,6 +1214,11 @@ static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ((kcd->vc.rv3d->rflag & RV3D_CLIPPING) &&
|
||||
ED_view3d_clipping_test(kcd->vc.rv3d, p, TRUE))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
knife_project_v3(kcd, p, sp);
|
||||
ED_view3d_unproject(mats, view, sp[0], sp[1], 0.0f);
|
||||
|
Reference in New Issue
Block a user