1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-24 13:50:49 +03:00

0028259: Method MakeBlocksCnx is duplicated in two different places in BOPAlgo

The methods BOPAlgo_Tools::MakeBlocksCnx(), BOPAlgo_Tools::MakeBlocks() and static method MakeBlocksCnx in BOPAlgo_Builder_2.cxx have been replaced with the new template method BOPAlgo_Tools::MakeBlocks(). The blocks of connected elements are now stored into the list of list instead of data map.
All methods BOPAlgo_Tools::FillMap() have been replaced with the new template method BOPAlgo_Tools::FillMap().

Making the Pave Block with the smallest index of original edge to be the first in the Common Block (i.e. the representing Pave Block).

The following improvements have been made in Boolean Operations algorithm to avoid regressions:
- When updating the existing common block update its pave blocks in a way that the parameters of the paves should be valid for the original edge (bugs/modalg_5/bug24809);
- When trying to reduce the tolerance of the section edge check the tolerance of all Face/Face interferences that created this edge (boolean/volumemaker/C4,D2);
- Avoid producing the different Pave Blocks for the same section edge (boolean/volumemaker/D6);

Adjustment of the test cases.
This commit is contained in:
emv
2017-04-30 01:09:36 +03:00
committed by bugmaster
parent 884cafd893
commit edfa30deef
22 changed files with 305 additions and 641 deletions

View File

@@ -31,11 +31,13 @@ class BOPDS_CommonBlock;
DEFINE_STANDARD_HANDLE(BOPDS_CommonBlock, MMgt_TShared)
//! The class BOPDS_CommonBlock is to store
//! the information about pave blocks that have
//! geometry coincidence (in terms of a tolerance) with
//! a) other pave block(s)
//! b) face(s)
//! The class BOPDS_CommonBlock is to store the information
//! about pave blocks that have geometrical coincidence
//! (in terms of a tolerance) with:<br>
//! a) other pave block(s);<br>
//! b) face(s).<br>
//! First pave block in the common block (real pave block)
//! is always a pave block with the minimal index of the original edge.
class BOPDS_CommonBlock : public MMgt_TShared
{
@@ -62,7 +64,7 @@ public:
//! Adds the list of pave blocks <aLPB>
//! to the list of pave blocks
//! of the common block
Standard_EXPORT void AddPaveBlocks (const BOPDS_ListOfPaveBlock& aLPB);
Standard_EXPORT void SetPaveBlocks (const BOPDS_ListOfPaveBlock& aLPB);
//! Modifier