bmesh_intersect_edges: Improve detection of the best_face

`lambda_a` made it more restricted than it should be.
This commit is contained in:
Germano Cavalcante 2020-01-27 17:43:12 -03:00
parent 9291558b63
commit 944956aba8
1 changed files with 4 additions and 6 deletions

View File

@ -119,21 +119,19 @@ static bool bm_vert_pair_share_splittable_face_cb(BMFace *UNUSED(f),
float co[3];
float dir[3];
float lambda_a;
float lambda_b;
copy_v3_v3(co, l_a->prev->v->co);
sub_v3_v3v3(dir, l_a->next->v->co, co);
if (isect_ray_ray_v3(v_a_co, v_a_b_dir, co, dir, &lambda_a, &lambda_b)) {
if (IN_RANGE(lambda_a, range_min, range_max) && IN_RANGE(lambda_b, range_min, range_max)) {
if (isect_ray_ray_v3(v_a_co, v_a_b_dir, co, dir, NULL, &lambda_b)) {
if (IN_RANGE(lambda_b, range_min, range_max)) {
return true;
}
else {
copy_v3_v3(co, l_b->prev->v->co);
sub_v3_v3v3(dir, l_b->next->v->co, co);
if (isect_ray_ray_v3(v_a_co, v_a_b_dir, co, dir, &lambda_a, &lambda_b)) {
return IN_RANGE(lambda_a, range_min, range_max) &&
IN_RANGE(lambda_b, range_min, range_max);
if (isect_ray_ray_v3(v_a_co, v_a_b_dir, co, dir, NULL, &lambda_b)) {
return IN_RANGE(lambda_b, range_min, range_max);
}
}
}