0028775: Code duplication removal across the BOPAlgo_PaveFiller algorithm IR-2017-06-08
authoremv <emv@opencascade.com>
Sat, 29 Apr 2017 22:09:36 +0000 (01:09 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 9 Jun 2017 10:01:32 +0000 (13:01 +0300)
commit8ae442a8cbcd50d4c59a7024b198646123387579
tree1daf813e7603f5ad2ff6baf7ee04f8ec093c922f
parentf5b7241978a9c2b1033e5e837f5dd7b1db9d69c2
0028775: Code duplication removal across the BOPAlgo_PaveFiller algorithm

The methods PerformVerticesEE() and PerformVerticesEF() of the class BOPAlgo_PaveFiller have been replaced with the new PerformNewVertices() method.

While splitting the Pave Blocks with extra paves, check that the new Pave Blocks have the valid intersection range. If the new Pave Block does not have such range do not create it and unify its vertices making SD vertex.

Re-computation of the Shrunk Data for the modified Pave Blocks. The new method BOPDS_DS::IsValidShrunkData(const Handle(BOPDS_PaveBlock)& thePB) has been implemented to check that the Shrunk Data of the Pave Block is still valid. It may become invalid in case the tolerance values of the vertices of the Pave Block have been modified.

The test case bugs/modalg_6/bug27448_2 has been marked as BAD, because it uses the invalid shapes as inputs for BOP.

Test cases for the issue 0028690.
22 files changed:
src/BOPAlgo/BOPAlgo_PaveFiller.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.hxx
src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx
src/BOPAlgo/BOPAlgo_Tools.cxx
src/BOPAlgo/BOPAlgo_Tools.hxx
src/BOPCol/BOPCol_IndexedDataMapOfShapeReal.hxx [new file with mode: 0644]
src/BOPCol/FILES
src/BOPDS/BOPDS_DS.cxx
src/BOPDS/BOPDS_DS.hxx
tests/bugs/modalg_1/bug10232
tests/bugs/modalg_2/bug472_3
tests/bugs/modalg_6/bug27448_2
tests/bugs/modalg_6/bug28690 [new file with mode: 0644]
tests/bugs/modalg_6/bug28690_1 [new file with mode: 0644]
tests/bugs/modalg_6/bug28690_2 [new file with mode: 0644]
tests/bugs/modalg_6/bug28690_3 [new file with mode: 0644]
tests/bugs/modalg_6/bug28775 [new file with mode: 0644]