0029368: Incorrect intersection state of the intersection point of two 2d curves
authormsv <msv@opencascade.com>
Mon, 11 Dec 2017 15:00:19 +0000 (18:00 +0300)
committerapn <apn@opencascade.com>
Wed, 17 Jan 2018 13:43:31 +0000 (16:43 +0300)
commit4bc805bfc68d535cb5b5d0334ccb6b7db24ef173
treef20327ac4d602bffbef742a0cea38f5f28a6ca92
parent14abe5dc8181e514f3dc7adb328a95fa4f489f53
0029368: Incorrect intersection state of the intersection point of two 2d curves

In the algorithm math_FunctionRoots, improve the case when it is needed to find the extremum of the function. Earlier, to solve this task the method of gold section was used. With the patch, firstly the algorithm tries to find zero value of the derivative function. In most cases it gives precise result. Secondly, the algorithm tries to find zero value of the function using the old approach. The algorithm chooses the best solution among two computed by different methods.

In the method PutStickPavesOnCurve of BOPAlgo_PaveFiller, forbid putting a vertex to the end of the curve if this end already has a vertex assigned to it. This allows getting rid of unwanted colliding of vertices.

In the method UpdatePaveBlocks of BOPAlgo_PaveFiller, make the check for micro edges more precise.

New category of tests "lowalgos" has been added. Tests for low level algorithms are to be put there. "2dinter" is a new group of tests in this category.

Introduction of the new key for "2dintersect" command, allowing printing the intersection state for each point.
It has the following syntax now:
"2dintersect curve1 [curve2] [-tol tol] [-state]"
Options:
-tol - allows changing the intersection tolerance (default value is 1.e-3);
-state - allows printing the intersection state for each point.

Correct the test case bugs/modalg_7/bug28274 to make proper checks of the result.
20 files changed:
dox/user_guides/draw_test_harness/draw_test_harness.md
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/GeomliteTest/GeomliteTest_API2dCommands.cxx
src/math/math_FunctionRoots.cxx
tests/bugs/modalg_5/bug23706_43
tests/bugs/modalg_5/bug23706_48
tests/bugs/modalg_6/bug25593
tests/bugs/modalg_6/bug26938_3
tests/bugs/modalg_6/bug26938_4
tests/bugs/modalg_7/bug28274
tests/bugs/modalg_7/bug28385_11 [new file with mode: 0644]
tests/bugs/moddata_2/bug23587
tests/bugs/moddata_3/bug25876
tests/lowalgos/2dinter/A1 [new file with mode: 0644]
tests/lowalgos/2dinter/A2 [new file with mode: 0644]
tests/lowalgos/begin [new file with mode: 0644]
tests/lowalgos/end [new file with mode: 0644]
tests/lowalgos/grids.list [new file with mode: 0644]
tests/lowalgos/parse.rules [new file with mode: 0644]