From c60e501bd269fe4c3e31d5d03810b8f164f4a055 Mon Sep 17 00:00:00 2001 From: anv Date: Fri, 28 Apr 2023 04:26:11 +0100 Subject: [PATCH] 0033369: Modeling Algorithms - BRepBuilderAPI_Transform makes invalid shape after transformation Added check to avoid setting parametric boundaries to infinity. --- src/BRepTools/BRepTools_TrsfModification.cxx | 4 ++-- tests/bugs/modalg_7/bug33369 | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 tests/bugs/modalg_7/bug33369 diff --git a/src/BRepTools/BRepTools_TrsfModification.cxx b/src/BRepTools/BRepTools_TrsfModification.cxx index 238afe6970..c8252f6caf 100644 --- a/src/BRepTools/BRepTools_TrsfModification.cxx +++ b/src/BRepTools/BRepTools_TrsfModification.cxx @@ -394,11 +394,11 @@ Standard_Boolean BRepTools_TrsfModification::NewCurve2d if(l - lc > Precision::PConfusion()) l = lc; if(Abs(l - f) < Precision::PConfusion()) { - if(Abs(f - fc) < Precision::PConfusion()) + if(Abs(f - fc) < Precision::PConfusion() && !Precision::IsInfinite(lc)) { l = lc; } - else + else if (!Precision::IsInfinite(fc)) { f = fc; } diff --git a/tests/bugs/modalg_7/bug33369 b/tests/bugs/modalg_7/bug33369 new file mode 100644 index 0000000000..ab98074f81 --- /dev/null +++ b/tests/bugs/modalg_7/bug33369 @@ -0,0 +1,11 @@ +puts "=======================================================" +puts "0033369: OCCT:Modeling Algorithms - BRepBuilderAPI_Transform makes invalid shape after transformation" +puts "=======================================================" +puts "" + +restore [locate_data_file bug33369.brep] f + +ttranslate f 1 1 1 -copy + +checkshape f +