mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-11-11 16:19:17 +05:00
0023419 note (0021712). Simplify complex compounds.
This commit is contained in:
parent
0c782492c0
commit
4947a3ae95
@ -342,16 +342,30 @@ TopoDS_Shape GEOMImpl_BooleanDriver::makeCompoundShellFromFaces
|
||||
if (theShape.ShapeType() != TopAbs_COMPOUND)
|
||||
return theShape;
|
||||
|
||||
BRep_Builder B;
|
||||
TopoDS_Compound aFaces;
|
||||
B.MakeCompound(aFaces);
|
||||
|
||||
// simplify compound structure for
|
||||
// Mantis issue 0023419 (note 0021712)
|
||||
TopExp_Explorer aExp;
|
||||
TopTools_MapOfShape aMapFaces;
|
||||
aExp.Init(theShape, TopAbs_FACE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
const TopoDS_Shape& aFace = aExp.Current();
|
||||
if (aMapFaces.Add(aFace)) {
|
||||
B.Add(aFaces, aFace);
|
||||
}
|
||||
}
|
||||
|
||||
BOPCol_ListOfShape aListShapes;
|
||||
BOPTools_AlgoTools::MakeConnexityBlocks(theShape, TopAbs_EDGE, TopAbs_FACE, aListShapes);
|
||||
BOPTools_AlgoTools::MakeConnexityBlocks(aFaces, TopAbs_EDGE, TopAbs_FACE, aListShapes);
|
||||
|
||||
if (aListShapes.IsEmpty())
|
||||
return theShape;
|
||||
|
||||
TopoDS_Compound aResult;
|
||||
BRep_Builder B;
|
||||
B.MakeCompound(aResult);
|
||||
TopExp_Explorer aExp;
|
||||
BOPCol_ListIteratorOfListOfShape anIter(aListShapes);
|
||||
|
||||
for (; anIter.More(); anIter.Next()) {
|
||||
|
Loading…
Reference in New Issue
Block a user