]> OCCT Git - occt-copy.git/commit
0028284: Avoid classification of sub-shapes of arguments of BOPs relatively solids...
authoremv <emv@opencascade.com>
Mon, 9 Jan 2017 06:50:03 +0000 (09:50 +0300)
committeremv <emv@opencascade.com>
Fri, 7 Jul 2017 07:02:51 +0000 (10:02 +0300)
commitf9388a0378950198ca36cefe5ad64ba520a620ad
tree2a3e1ad9535f6c52bff5feb1ff64bbe04f07b608
parent9660b7dc3602b7d806273b6c8230f584b4e9c879
0028284: Avoid classification of sub-shapes of arguments of BOPs relatively solids during Intersection phase

1. The methods PerformVZ, PerformEZ, PerformFZ and PerformZZ have been transferred from BOPAlgo_PaveFiller to BOPAlgo_CheckerSI class
to perform intersection of sub-shapes with solids only in self-intersection mode.

2. The checks for solids built from the same (shared) faces have been added into methods building the result of Boolean operations -
BOPAlgo_BOP::BuildRC() and BOPAlgo_BOP::BuildSolid().

3. Since the NonDestructive mode is now natively supported by the BOPAlgo_PaveFiller the methods providing the support of this mode by CheckerSI
(BOPAlgo_CheckerSI::PrepareCopy() and BOPAlgo_CheckerSI::PostTreatCopy()) are not needed and have been removed.

4. The pairs of sub-shapes with interfering bounding boxes are now sorted before real intersection to guarantee the constant order of
intersection of sub-shapes and produce more stable result. The class BOPDS_PassKey has been replaced with simpler class BOPDS_Pair.

5. The class BOPDS_SubIterator has been refactored.

6. Test cases for the issue.

7. Adjustment of the test case boolean volumemaker D2.
40 files changed:
dox/dev_guides/upgrade/upgrade.md
src/BOPAlgo/BOPAlgo_ArgumentAnalyzer.cxx
src/BOPAlgo/BOPAlgo_BOP.cxx
src/BOPAlgo/BOPAlgo_CheckerSI.cxx
src/BOPAlgo/BOPAlgo_CheckerSI.hxx
src/BOPAlgo/BOPAlgo_CheckerSI_1.cxx [new file with mode: 0644]
src/BOPAlgo/BOPAlgo_PaveFiller.cxx
src/BOPAlgo/BOPAlgo_PaveFiller.hxx
src/BOPAlgo/BOPAlgo_PaveFiller_1.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_10.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_11.cxx [deleted file]
src/BOPAlgo/BOPAlgo_PaveFiller_2.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_3.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_4.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_5.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_6.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_7.cxx
src/BOPAlgo/BOPAlgo_PaveFiller_9.cxx
src/BOPAlgo/FILES
src/BOPDS/BOPDS_DS.cxx
src/BOPDS/BOPDS_DS.hxx
src/BOPDS/BOPDS_DS.lxx
src/BOPDS/BOPDS_Iterator.cxx
src/BOPDS/BOPDS_Iterator.hxx
src/BOPDS/BOPDS_IteratorSI.cxx
src/BOPDS/BOPDS_MapOfPair.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_Pair.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_PairMapHasher.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_SubIterator.cxx
src/BOPDS/BOPDS_SubIterator.hxx
src/BOPDS/BOPDS_VectorOfPair.hxx [new file with mode: 0644]
src/BOPDS/BOPDS_VectorOfVectorOfPair.hxx [new file with mode: 0644]
src/BOPDS/FILES
src/BOPTest/BOPTest_CheckCommands.cxx
src/BOPTest/BOPTest_DebugCommands.cxx
tests/boolean/volumemaker/D2
tests/bugs/modalg_1/bug10232
tests/bugs/modalg_6/bug28284_1 [new file with mode: 0644]
tests/bugs/modalg_6/bug28284_2 [new file with mode: 0644]
tests/bugs/modalg_6/bug28284_3 [new file with mode: 0644]