]> OCCT Git - occt-copy.git/commit
0029144: BOP PaveFiller hangs in some case CR29144_3
authornbv <nbv@opencascade.com>
Fri, 22 Sep 2017 08:24:35 +0000 (11:24 +0300)
committeremv <emv@opencascade.com>
Fri, 19 Jan 2018 08:21:48 +0000 (11:21 +0300)
commitbc5aa6c1e7c84564cc50ca9b1cdd1ab68a2ed0a3
treea70cf50bc63fc6afed48c40ce15f192d92fbdfdf
parentfcca9d7cd0264593423edab813fc737829f4157e
0029144: BOP PaveFiller hangs in some case

1. Method IntWalk_PWalking::ExtendLineInCommonZone(...) now is not called if the already found intersection point is on surface boundary.
As result, the intersection line going along any boundary will never be extended. It is appropriate for high-level OCCT-algorithm because they will take the boundary (not computed line) as intersection result.

2. Method IntTools_BeanFaceIntersector::ComputeRangeFromStartPoint(...) has been corrected in order to avoid infinite loop described in the issue. The algorithm of obtaining the neighborhood of the intersection point has been improved.

3. Now, IsInside(...) static function (see BOPAlgo_BuilderFace.cxx file) does not need a 2D-curve for classified edge on the face. It allows avoiding exceptions in cases when the curve creation is impossible.

4. Post-processing has been added to join several common blocks to one. Method BOPDS_DS::RemoveCommonBlock(...) has been added in order to avoid duplication after joining.
src/BOPAlgo/BOPAlgo_BuilderFace.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPDS/BOPDS_DS.cxx
src/BOPDS/BOPDS_DS.hxx
src/BOPTools/BOPTools_AlgoTools.cxx
src/IntImpParGen/IntImpParGen_Intersector.gxx
src/IntTools/IntTools_BeanFaceIntersector.cxx
src/IntWalk/IntWalk_PWalking.cxx
tests/perf/modalg/bug29093_1 [new file with mode: 0644]
tests/perf/modalg/bug29093_2 [new file with mode: 0644]
tests/perf/modalg/bug29093_3 [new file with mode: 0644]