0030778: [Regression to 7.3.0] Extrema raises exception StdFail_InfiniteSolutions
authormsv <msv@opencascade.com>
Thu, 5 Sep 2019 15:09:06 +0000 (18:09 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 6 Sep 2019 15:26:44 +0000 (18:26 +0300)
The exception StdFail_InfiniteSolutions has been suppressed in all Points() methods.

20 files changed:
src/Extrema/Extrema_ECC.hxx
src/Extrema/Extrema_ECC2d.hxx
src/Extrema/Extrema_ECC2d_0.cxx
src/Extrema/Extrema_ECC_0.cxx
src/Extrema/Extrema_ExtCC.cxx
src/Extrema/Extrema_ExtCC.hxx
src/Extrema/Extrema_ExtCC2d.cxx
src/Extrema/Extrema_ExtCC2d.hxx
src/Extrema/Extrema_ExtCS.cxx
src/Extrema/Extrema_ExtElC.cxx
src/Extrema/Extrema_ExtElC.hxx
src/Extrema/Extrema_ExtElC2d.cxx
src/Extrema/Extrema_ExtElC2d.hxx
src/Extrema/Extrema_ExtElCS.cxx
src/Extrema/Extrema_ExtElCS.hxx
src/Extrema/Extrema_ExtElSS.cxx
src/Extrema/Extrema_ExtElSS.hxx
src/Extrema/Extrema_ExtSS.cxx
src/Extrema/Extrema_GenExtCC.gxx
tests/bugs/modalg_7/bug30778 [new file with mode: 0644]

index 0147465dfd537837da95f80931032e650eb0ac64..aecd8220e00cfe90e4456ffb1fcd2138c86a15a8 100644 (file)
@@ -28,9 +28,7 @@
 #include <Standard_Address.hxx>
 #include <TColgp_HArray1OfPnt.hxx>
 #include <Standard_Integer.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class Adaptor3d_Curve;
 class Extrema_CurveTool;
 class Extrema_POnCurv;
@@ -38,7 +36,6 @@ class gp_Pnt;
 class gp_Vec;
 
 
-
 class Extrema_ECC 
 {
 public:
index 6949b3d9ac27df00789e7dd65a43e2b34abeaf73..fd4ad016c605cc255317a7a0cbe9ff23875ea06b 100644 (file)
@@ -28,9 +28,7 @@
 #include <Standard_Address.hxx>
 #include <TColgp_HArray1OfPnt2d.hxx>
 #include <Standard_Integer.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class Adaptor2d_Curve2d;
 class Extrema_Curve2dTool;
 class Extrema_POnCurv2d;
@@ -38,7 +36,6 @@ class gp_Pnt2d;
 class gp_Vec2d;
 
 
-
 class Extrema_ECC2d 
 {
 public:
index 0e989c44e761a7a9c54c2c1fc9a49178b5bb5f50..93a06c2bcb807982fe765fc12ec60abf5f911528 100644 (file)
@@ -16,9 +16,6 @@
 
 #include <Extrema_ECC2d.hxx>
 
-#include <StdFail_InfiniteSolutions.hxx>
-#include <StdFail_NotDone.hxx>
-#include <Standard_OutOfRange.hxx>
 #include <Adaptor2d_Curve2d.hxx>
 #include <Extrema_Curve2dTool.hxx>
 #include <Extrema_ExtPC2d.hxx>
index 50b5c0615356527f3fb2397f04ebd1639f74a742..4ef949e18938029728a072188621f3f7d5e52609 100644 (file)
@@ -16,9 +16,6 @@
 
 #include <Extrema_ECC.hxx>
 
-#include <StdFail_InfiniteSolutions.hxx>
-#include <StdFail_NotDone.hxx>
-#include <Standard_OutOfRange.hxx>
 #include <Adaptor3d_Curve.hxx>
 #include <Extrema_CurveTool.hxx>
 #include <Extrema_ExtPC.hxx>
index da1d0007be79c5db0982f45295019b95a4c6974e..ed7dd9010473da679f639bf63be727f00a581679 100644 (file)
@@ -43,7 +43,6 @@
 #include <Standard_NotImplemented.hxx>
 #include <Standard_NullObject.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 #include <TColStd_Array1OfReal.hxx>
 #include <TColStd_ListIteratorOfListOfTransient.hxx>
@@ -327,11 +326,6 @@ void Extrema_ExtCC::Points(const Standard_Integer N,
                            Extrema_POnCurv& P1,
                            Extrema_POnCurv& P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
index d8d17f123cd6fb9296f9122ad2daeb8908bbf67e..d2ee29c0f54eb86edb7d3e5cd86046c74a800db1 100644 (file)
@@ -29,9 +29,7 @@
 #include <Standard_Address.hxx>
 #include <Standard_Real.hxx>
 #include <gp_Pnt.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class Adaptor3d_Curve;
 class Extrema_POnCurv;
 class gp_Pnt;
index ba2b88053ca213871a383f05846651d26a5230d2..eee89c65babf973404b19445282810947d6085cb 100644 (file)
 #include <GeomAbs_CurveType.hxx>
 #include <gp_Pnt2d.hxx>
 #include <Precision.hxx>
-#include <Standard_Failure.hxx>
-#include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 
 Extrema_ExtCC2d::Extrema_ExtCC2d()
index fe7bc96efb6c1b2c5a02e2beea571e8da4251f37..43267b29f784cb5700046f0dbf7e3a2fa43b9eb5 100644 (file)
@@ -28,9 +28,7 @@
 #include <Standard_Address.hxx>
 #include <Standard_Real.hxx>
 #include <gp_Pnt2d.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class Adaptor2d_Curve2d;
 class Extrema_POnCurv2d;
 class gp_Pnt2d;
index 05b65eaa45b8d42daf8d399a02075f016c8a66ad..c50a6b28c3d0a8e4a962403c7e18c3e727db229d 100644 (file)
 #include <gp_Sphere.hxx>
 #include <gp_Torus.hxx>
 #include <Precision.hxx>
-#include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <Standard_TypeMismatch.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 #include <TColStd_Array1OfReal.hxx>
 
@@ -497,11 +494,6 @@ void Extrema_ExtCS::Points(const Standard_Integer N,
                            Extrema_POnCurv&       P1,
                            Extrema_POnSurf&       P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
index c3d08e2a980ecbc4a4bc867fdf7da68bb49b999a..b1e0a8f6444672828a73dd4f75bc2129b06a5494 100644 (file)
@@ -36,9 +36,7 @@
 #include <math_DirectPolynomialRoots.hxx>
 #include <math_TrigonometricFunctionRoots.hxx>
 #include <Precision.hxx>
-#include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 
 #include <stdio.h>
@@ -1100,11 +1098,6 @@ void Extrema_ExtElC::Points (const Standard_Integer N,
                             Extrema_POnCurv& P1, 
                             Extrema_POnCurv& P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
index c6e720cec275520468dad3631702688e6408496f..28d1e28fef7a0db7413c90ccc655ffbda2b779c9 100644 (file)
@@ -25,9 +25,7 @@
 #include <Standard_Integer.hxx>
 #include <Standard_Real.hxx>
 #include <Extrema_POnCurv.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class gp_Lin;
 class gp_Circ;
 class gp_Elips;
index 99274b745bdc9c8c177a5bda2498c748f9b2ac93..4a136903692b62ee764d041007e3d0c59d20aff1 100644 (file)
@@ -27,9 +27,7 @@
 #include <math_DirectPolynomialRoots.hxx>
 #include <math_TrigonometricFunctionRoots.hxx>
 #include <Precision.hxx>
-#include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 
 //=======================================================================
@@ -459,11 +457,6 @@ void Extrema_ExtElC2d::Points (const Standard_Integer N,
                               Extrema_POnCurv2d& P1, 
                               Extrema_POnCurv2d& P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt()) { throw Standard_OutOfRange(); }
   P1 = myPoint[N-1][0];
   P2 = myPoint[N-1][1];
index 708149b9bcd091f42652120e3f4b7ea993b2b955..891e0b6ed3f6667a0fbb76fe5a7d2075dd654be9 100644 (file)
@@ -25,9 +25,7 @@
 #include <Standard_Integer.hxx>
 #include <Standard_Real.hxx>
 #include <Extrema_POnCurv2d.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class gp_Lin2d;
 class gp_Circ2d;
 class gp_Elips2d;
index 63d0a917a3bddde0435b3373ad40a2ec3de4cf12..937f7c3badef0369a69e6a673011b1e01b161419 100644 (file)
@@ -37,7 +37,6 @@
 #include <Precision.hxx>
 #include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 #include <TColStd_ListOfInteger.hxx>
 
@@ -827,11 +826,6 @@ void Extrema_ExtElCS::Points(const Standard_Integer N,
                             Extrema_POnCurv& P1,
                             Extrema_POnSurf& P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
index a28c8d59bce8ade3ee908c85debc6ba61a5eb634..fe61099cf0f6d5bc374e83fa7acf422f6772085e 100644 (file)
@@ -27,9 +27,7 @@
 #include <Extrema_HArray1OfPOnCurv.hxx>
 #include <Extrema_HArray1OfPOnSurf.hxx>
 #include <Standard_Real.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class gp_Lin;
 class gp_Pln;
 class gp_Cylinder;
index 4aad73f56a5d47e74bdf19c2764f47f3282ddc1c..e4fe6b1170497fddf70f0b62b6d29e0be079573f 100644 (file)
@@ -24,7 +24,6 @@
 #include <Precision.hxx>
 #include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 
 Extrema_ExtElSS::Extrema_ExtElSS()
@@ -165,11 +164,6 @@ void Extrema_ExtElSS::Points(const Standard_Integer N,
                             Extrema_POnSurf&       P1,
                             Extrema_POnSurf&       P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
index c34405760b5906fd1096803a82f7e9cb37a7b01b..2cb990eeaa947495def95b8b5eef487d4eb990c9 100644 (file)
@@ -26,9 +26,7 @@
 #include <TColStd_HArray1OfReal.hxx>
 #include <Extrema_HArray1OfPOnSurf.hxx>
 #include <Standard_Real.hxx>
-class StdFail_InfiniteSolutions;
-class StdFail_NotDone;
-class Standard_OutOfRange;
+
 class gp_Pln;
 class gp_Sphere;
 class gp_Cylinder;
index 8675df6cdcf193182305f2c1b290cddcaccd4524..d1bfc113b5adabf3ff25c51e2962077c3aab055f 100644 (file)
 #include <gp_Pln.hxx>
 #include <gp_Pnt.hxx>
 #include <Precision.hxx>
-#include <Standard_NotImplemented.hxx>
 #include <Standard_OutOfRange.hxx>
-#include <Standard_TypeMismatch.hxx>
-#include <StdFail_InfiniteSolutions.hxx>
 #include <StdFail_NotDone.hxx>
 
 Extrema_ExtSS::Extrema_ExtSS() 
@@ -263,11 +260,6 @@ void Extrema_ExtSS::Points(const Standard_Integer N,
                           Extrema_POnSurf&       P1,
                           Extrema_POnSurf&       P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
index 2c7767eca26b01379d69e42e0c0dd73724e12601..969a5b85aeac7003f2b0225515eb379482c8eac0 100644 (file)
@@ -658,11 +658,6 @@ void Extrema_GenExtCC::Points(const Standard_Integer N,
                               POnC& P1,
                               POnC& P2) const
 {
-  if (IsParallel())
-  {
-    throw StdFail_InfiniteSolutions();
-  }
-
   if (N < 1 || N > NbExt())
   {
     throw Standard_OutOfRange();
diff --git a/tests/bugs/modalg_7/bug30778 b/tests/bugs/modalg_7/bug30778
new file mode 100644 (file)
index 0000000..3171360
--- /dev/null
@@ -0,0 +1,17 @@
+puts "========"
+puts "0030778: \[Regression to 7.3.0\] Extrema raises excep-tion StdFail_InfiniteSolutions"
+puts "========"
+puts ""
+
+restore [locate_data_file bug30778.brep] a
+explode a
+pcurve c1 a_1 a_3
+pcurve c2 a_2 a_3
+trim c1 c1 0.0833292423088664 1
+trim c2 c2 0 0.91666977216245
+
+set out [2dextrema c1 c2]
+
+regexp {distance = ([0-9+-.eE]*)} $out full dist
+
+checkreal distance $dist 0 1e-9 0