0029712: Extrema algorithm raises exception
authornbv <nbv@opencascade.com>
Fri, 20 Apr 2018 14:00:48 +0000 (17:00 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 14 Jun 2018 11:03:05 +0000 (14:03 +0300)
commit638ad7f3c53b5277ab66413c677749b5d3c11453
treeda56c13a8fb261bdd50694fd6024adaaad8d35ad
parent395a5977d54f4ab826706207882c2233b020d57d
0029712: Extrema algorithm raises exception

1. Extrema algorithm calls Curve-surface intersector. This intersector returns flag about infinite solution (in spite of extrema's returning not-parallel status correctly - axes of considered cylinder and circle are not parallel). In this case, attempt of obtaining number of intersection points leads to exception.

So, the fix adds check of infinite solution after the intersection algorithm.

2. The methods IsDone(), IsParallel(), NbExt(), SquareDistance() and Points() (of Extrema_* classes) have been corrected to make them consistent to the documentation.

3. Revision of some Extrema_* classes has been made in order to avoid places with uninitialized variables.

4. Currently Extrema does not store any points in case when the arguments are parallel. It stores the distance only.

5. Some cases on Extrema-algo have been moved from "fclasses"-group to "modalg"-group.
84 files changed:
dox/dev_guides/upgrade/upgrade.md
src/BRepClass3d/BRepClass3d_BndBoxTree.cxx
src/BRepClass3d/BRepClass3d_BndBoxTree.hxx
src/BRepClass3d/BRepClass3d_SClassifier.cxx
src/Bnd/Bnd_Range.hxx
src/Extrema/Extrema_ExtCC.cxx
src/Extrema/Extrema_ExtCC.hxx
src/Extrema/Extrema_ExtCS.cxx
src/Extrema/Extrema_ExtElC.cxx
src/Extrema/Extrema_ExtElC2d.cxx
src/Extrema/Extrema_ExtElCS.cxx
src/Extrema/Extrema_ExtElSS.cxx
src/Extrema/Extrema_ExtPElC.cxx
src/Extrema/Extrema_ExtPElC2d.cxx
src/Extrema/Extrema_ExtPElS.cxx
src/Extrema/Extrema_ExtPExtS.cxx
src/Extrema/Extrema_ExtPRevS.cxx
src/Extrema/Extrema_ExtPS.cxx
src/Extrema/Extrema_ExtSS.cxx
src/Extrema/Extrema_GExtPC.gxx
src/Extrema/Extrema_GLocateExtPC.gxx
src/Extrema/Extrema_GenExtCC.gxx
src/Extrema/Extrema_GenExtCS.cxx
src/Extrema/Extrema_GenExtPC.gxx
src/Extrema/Extrema_GenExtPS.cxx
src/Extrema/Extrema_GenExtSS.cxx
src/Extrema/Extrema_GenLocateExtPC.gxx
src/Extrema/Extrema_LocateExtCC.cxx
src/Extrema/Extrema_LocateExtCC2d.cxx
src/Extrema/Extrema_Point.gxx
src/GeometryTest/GeometryTest_APICommands.cxx
src/ProjLib/ProjLib_CompProjectedCurve.cxx
tests/bugs/modalg_7/bug29712_1 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_10 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_11 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_12 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_13 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_14 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_15 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_16 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_17 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_18 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_19 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_2 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_20 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_21 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_22 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_23 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_24 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_25 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_26 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_27 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_28 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_29 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_3 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_30 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_31 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_32 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_33 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_34 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_35 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_36 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_37 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_38 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_39 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_4 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_40 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_41 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_42 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_43 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_5 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_6 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_7 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_8 [new file with mode: 0644]
tests/lowalgos/extcc/bug29712_9 [new file with mode: 0644]
tests/lowalgos/extss/bug29712_44 [new file with mode: 0644]
tests/perf/fclasses/bug26184_1 [deleted file]
tests/perf/fclasses/bug26184_2 [deleted file]
tests/perf/fclasses/bug27131 [deleted file]
tests/perf/fclasses/bug27371 [deleted file]
tests/perf/modalg/bug26184_1 [new file with mode: 0644]
tests/perf/modalg/bug26184_2 [new file with mode: 0644]
tests/perf/modalg/bug27131 [new file with mode: 0644]
tests/perf/modalg/bug27371 [new file with mode: 0644]