From: msv Date: Wed, 14 Dec 2016 07:09:38 +0000 (+0300) Subject: 0028183: Modeling - BRepExtrema_DistShapeShape does not find all solutions X-Git-Tag: V_01_2017_06_30~83 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=09a4804444b47782c3158e9e7d05bdff345aaf10;p=occt.git 0028183: Modeling - BRepExtrema_DistShapeShape does not find all solutions Disable SetSingleSolutionFlag when calling algorithm of curve-curve Extrema. Now DistShapeShape will find all solutions, even if they are located on the same pair of edges. The fix brings the speed down for the cases of coinciding curves. --- diff --git a/src/BRepExtrema/BRepExtrema_ExtCC.cxx b/src/BRepExtrema/BRepExtrema_ExtCC.cxx index e66a067431..d6fdb93077 100644 --- a/src/BRepExtrema/BRepExtrema_ExtCC.cxx +++ b/src/BRepExtrema/BRepExtrema_ExtCC.cxx @@ -69,7 +69,9 @@ void BRepExtrema_ExtCC::Perform(const TopoDS_Edge& E1) BRep_Tool::Range(E1,U1,U2); myExtCC.SetCurve (1, HC->Curve(), U1, U2); myExtCC.SetTolerance(1, Tol); - myExtCC.SetSingleSolutionFlag(Standard_True); + // If we enable SetSingleSolutionFlag Extrema will run much quicker on almost parallel curves + // (e.g. bug 27665), however some solutions will be lost, e.g. see bug 28183. + //myExtCC.SetSingleSolutionFlag(Standard_True); myExtCC.Perform(); } diff --git a/tests/bugs/moddata_3/bug28183 b/tests/bugs/moddata_3/bug28183 index 5b52bc8579..ecaace3f4b 100644 --- a/tests/bugs/moddata_3/bug28183 +++ b/tests/bugs/moddata_3/bug28183 @@ -6,8 +6,6 @@ puts "" # BRepExtrema_DistShapeShape does not find all solutions ############################################################################### -puts "TODO #28183 ALL: Error: .* solutions expected" - pload MODELING restore [locate_data_file bug28175_borders2.brep] b