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 0147465..aecd822 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 6949b3d..fd4ad01 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 0e989c4..93a06c2 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 50b5c06..4ef949e 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 da1d000..ed7dd90 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 d8d17f1..d2ee29c 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 ba2b880..eee89c6 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 fe7bc96..43267b2 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 05b65ea..c50a6b2 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 c3d08e2..b1e0a8f 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 c6e720c..28d1e28 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 99274b7..4a13690 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 708149b..891e0b6 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 63d0a91..937f7c3 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 a28c8d5..fe61099 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 4aad73f..e4fe6b1 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 c344057..2cb990e 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 8675df6..d1bfc11 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 2c7767e..969a5b8 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