occt: master cc93bf2c

Author Committer Branch Timestamp Parent
nbv bugmaster master 2016-12-15 14:22:00 master 14077ce9
Changeset 0028222: Intersection of two cylinders fails

1. The reason of exception has been eliminated.

2. Algorithm in IntPatch_WLineTool::JoinWLines(...) method has been modified in order to forbid join curves in the point where more than two intersection lines meet. More over, joining is forbidden if local curvature in the connection point is too big (see function CheckArgumentsToJoin(...) in the file IntPatch_WLineTool.cxx).

3. Interface of IntPatch_WLineTool::JoinWLines(...) method has been modified in order to reduce number of arguments.

4. Small corrections in IsSeamOrBound(...) static function has been made. Namely, check has been added if two boundaries are in the same period region but are too far each to other (see IntPatch_WLineTool.cxx, IsSeamOrBound(...) function, line # 532).

5. "Reversed" flag has been made local. Now, it is pure local characteristic: the algorithm decides itself, shall we reverse the argument order. This correction makes the algorithm more commutative (see issue 0025404). However, IntPatch_WLineTool::JoinWLines(...) method can return non-commutative result.

6. Algorithm of searching small intersection curves has been improved.

7. New methods have been added in Bnd_Range class.

Some test cases have been adjusted according to their new behavior.

1. tests\bugs\modalg_6\bug26310_3
   tests\bugs\modalg_6\bug26310_4
   tests\bugs\moddata_2\bug235
   tests\perf\modalg\bug26310_1
   tests\bugs\modalg_5\bug24915

Logic of these cases has been changed. Mover over, additional check has been added in "bug26310_1" test case. Therefore, its performance will be slower than on the current MASTER.

2. tests\bugs\modalg_5\bug25292*

Scripts have been rewritten in order to make it more readable. Logic of these cases has not been changed.
mod - src/Bnd/Bnd_Range.cxx Diff File
mod - src/Bnd/Bnd_Range.hxx Diff File
mod - src/ElCLib/ElCLib.cxx Diff File
mod - src/IntPatch/IntPatch_ImpImpIntersection_1.gxx Diff File
mod - src/IntPatch/IntPatch_ImpImpIntersection_2.gxx Diff File
mod - src/IntPatch/IntPatch_ImpImpIntersection_4.gxx Diff File
mod - src/IntPatch/IntPatch_Intersection.cxx Diff File
mod - src/IntPatch/IntPatch_WLineTool.cxx Diff File
mod - src/IntPatch/IntPatch_WLineTool.hxx Diff File
mod - tests/bugs/modalg_5/bug24915 Diff File
mod - tests/bugs/modalg_5/bug25292_11 Diff File
mod - tests/bugs/modalg_5/bug25292_12 Diff File
mod - tests/bugs/modalg_5/bug25292_15 Diff File
mod - tests/bugs/modalg_5/bug25292_16 Diff File
mod - tests/bugs/modalg_5/bug25292_21 Diff File
mod - tests/bugs/modalg_5/bug25292_22 Diff File
mod - tests/bugs/modalg_5/bug25292_25 Diff File
mod - tests/bugs/modalg_5/bug25292_26 Diff File
mod - tests/bugs/modalg_5/bug25292_31 Diff File
mod - tests/bugs/modalg_5/bug25292_32 Diff File
mod - tests/bugs/modalg_5/bug25292_33 Diff File
mod - tests/bugs/modalg_5/bug25292_34 Diff File
mod - tests/bugs/modalg_5/bug25292_35 Diff File
mod - tests/bugs/modalg_5/bug25292_36 Diff File
mod - tests/bugs/modalg_6/bug26310_3 Diff File
mod - tests/bugs/modalg_6/bug26310_4 Diff File
mod - tests/bugs/modalg_6/bug27310_1 Diff File
mod - tests/bugs/modalg_6/bug27310_2 Diff File
mod - tests/bugs/modalg_6/bug27856_2 Diff File
mod - tests/bugs/modalg_6/bug28009_2 Diff File
add - tests/bugs/modalg_6/bug28222_1 Diff File
add - tests/bugs/modalg_6/bug28222_2 Diff File
add - tests/bugs/modalg_6/bug28222_3 Diff File
add - tests/bugs/modalg_6/bug28706 Diff File
mod - tests/bugs/moddata_2/bug235 Diff File
mod - tests/perf/modalg/bug26310_1 Diff File