From 708c2a6b74a3e499114023af605ce55b2b5af0df Mon Sep 17 00:00:00 2001 From: Elobo <60601422+Elobo68@users.noreply.github.com> Date: Wed, 15 Apr 2026 09:34:16 +0200 Subject: [PATCH 1/2] Repair ifcclash order --- src/ifcgeom/kernels/opencascade/IfcGeomTree.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h index 46e0f067317..a3d84b30140 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h +++ b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h @@ -1101,6 +1101,9 @@ namespace IfcGeom { is_manifold = true; clash intersection = test_intersection(task.b, task.a, tolerance, check_all); if (intersection.clash_type != -1) { + //We invert the result, in order to keep the initial order, otherwise, it's all mixed. + result = {intersection.clash_type,intersection.b,intersection.a,intersection.distance,intersection.p1,intersection.p2} + // Replace the clash result if any of these criteria apply: // - We don't have a clash yet // - Our previous clash is piercing, and our new one is a protrusion From 9338bcebfdb0ce5accab47e035b2113113e3fcf9 Mon Sep 17 00:00:00 2001 From: Elobo <60601422+Elobo68@users.noreply.github.com> Date: Wed, 15 Apr 2026 10:15:32 +0200 Subject: [PATCH 2/2] Invert P2 and P1 --- src/ifcgeom/kernels/opencascade/IfcGeomTree.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h index a3d84b30140..6f2326fce15 100644 --- a/src/ifcgeom/kernels/opencascade/IfcGeomTree.h +++ b/src/ifcgeom/kernels/opencascade/IfcGeomTree.h @@ -1102,7 +1102,7 @@ namespace IfcGeom { clash intersection = test_intersection(task.b, task.a, tolerance, check_all); if (intersection.clash_type != -1) { //We invert the result, in order to keep the initial order, otherwise, it's all mixed. - result = {intersection.clash_type,intersection.b,intersection.a,intersection.distance,intersection.p1,intersection.p2} + result = {intersection.clash_type,intersection.b,intersection.a,intersection.distance,intersection.p2,intersection.p1} // Replace the clash result if any of these criteria apply: // - We don't have a clash yet