occt: master d3578357

Author Committer Branch Timestamp Parent
emv bugmaster master 2018-05-16 09:12:09 master fb60181a
Changeset 0029711: General Fuse operation produces invalid result

The following improvements have been introduced in Boolean Operations algorithm s:
1. UBTree is replaced with EBTree in Boolean operations to be able to add/remove elements into the tree of bounding boxes.
2. Repeated (nested) intersection of sub-shapes is performed with argument vertices whose tolerances increased during the operation.
3. The algorithms of Edge/Edge and Edge/Face intersection have been improved for the cases when the intersection point is located close to the edge boundaries .
4. New procedure has been implemented to ensure forced creation of Edge/Face common blocks in cases when the edge is really close to the face.
5. Post-processing of Face/Face intersection results has been improved.
6. Extension of the planar faces for Plane/Plane intersection is avoided.
7. Builder Face now better classifies potentially internal edges relatively to new faces with filtering by bounding boxes.

Side effect changes:
1. IntTools_ShrunkRange now keeps the length of the valid range of the edge.
2. The method BOPDS_DS::UpdateEdgeTolerance() has been removed as unused (replaced by the BOPAlgo_PaveFiller::UpdateEdgeTolerance()).

Test case for the issue 0029900.
Test case for the issue 0029711.
Adjustments of the existing test cases.

Avoid using uninitialized variables.
mod - src/BOPAlgo/BOPAlgo.msg Diff File
mod - src/BOPAlgo/BOPAlgo_Alerts.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_BOPAlgo_msg.pxx Diff File
mod - src/BOPAlgo/BOPAlgo_BuilderFace.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_BuilderSolid.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Builder_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller.hxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Tools.cxx Diff File
mod - src/BOPAlgo/BOPAlgo_Tools.hxx Diff File
mod - src/BOPDS/BOPDS_CommonBlock.cxx Diff File
mod - src/BOPDS/BOPDS_CommonBlock.hxx Diff File
mod - src/BOPDS/BOPDS_DS.cxx Diff File
mod - src/BOPDS/BOPDS_DS.hxx Diff File
mod - src/BOPDS/BOPDS_DS.lxx Diff File
mod - src/BOPDS/BOPDS_Iterator.cxx Diff File
mod - src/BOPDS/BOPDS_Iterator.hxx Diff File
mod - src/BOPTest/BOPTest_DebugCommands.cxx Diff File
mod - src/BOPTools/BOPTools_AlgoTools.cxx Diff File
mod - src/BOPTools/BOPTools_BoxBndTree.hxx Diff File
mod - src/IntTools/IntTools_Context.cxx Diff File
mod - src/IntTools/IntTools_EdgeFace.cxx Diff File
mod - src/IntTools/IntTools_FaceFace.cxx Diff File
mod - src/IntTools/IntTools_ShrunkRange.cxx Diff File
mod - src/IntTools/IntTools_ShrunkRange.hxx Diff File
mod - tests/boolean/bcut_complex/F2 Diff File
mod - tests/boolean/bfuse_complex/F5 Diff File
mod - tests/boolean/bfuse_complex/Q2 Diff File
mod - tests/boolean/bsection/R8 Diff File
mod - tests/bugs/modalg_1/buc60703_3 Diff File
mod - tests/bugs/modalg_2/bug472_3 Diff File
mod - tests/bugs/modalg_6/bug26619 Diff File
mod - tests/bugs/modalg_7/bug23660 Diff File
mod - tests/bugs/modalg_7/bug27049 Diff File
mod - tests/bugs/modalg_7/bug28113_2 Diff File
mod - tests/bugs/modalg_7/bug28123 Diff File
mod - tests/bugs/modalg_7/bug28393_1 Diff File
add - tests/bugs/modalg_7/bug29711 Diff File
add - tests/bugs/modalg_7/bug29900 Diff File
mod - tests/bugs/moddata_2/bug26_2 Diff File