Fix: Edge Slide: Vertex destination not matching edges intersection

Before version 4.1, the vertex destination during edge sliding for two
independent edges was always the midpoint of the vertices closest to
those edges.

In version 4.1, this behavior was improved to calculate the destination
based on the intersection of the edges. However, when the faces were
coplanar, the behavior would revert to the previous midpoint
calculation instead of using the intersection.

This fix ensures that the vertex destination consistently aligns with
the intersection point, even when the faces are coplanar.
This commit is contained in:
Germano Cavalcante
2024-10-07 14:32:33 -03:00
parent 580e0af309
commit 49ab0bb844

View File

@@ -2605,8 +2605,8 @@ Array<TransDataEdgeSlideVert> transform_mesh_edge_slide_data_create(const TransD
float3 &dst2 = dst;
float3 &dst3 = next.fdata[best_dir].dst;
float3 isect0, isect1;
if (isect_line_line_epsilon_v3(dst0, dst1, dst2, dst3, isect0, isect1, FLT_EPSILON) ==
2)
if (isect_line_line_epsilon_v3(dst0, dst1, dst2, dst3, isect0, isect1, FLT_EPSILON) !=
0)
{
curr.fdata[best_dir].dst = math::midpoint(isect0, isect1);
}