mirror of
https://github.com/Open-Cascade-SAS/OCCT.git
synced 2026-09-05 12:17:50 +08:00
0026408: Exception during fixshape procedure.
Attached invalid shape is represented by solid containing one face twice. Protection from such case was added in ShapeFix_Shell class. Creation of COMPSOLID was modified for case when shells composing COMPSOLID have the same shared faces in order to prevent hanging. Small modification.Protection to avoid exception Test-case for issue #26408
This commit is contained in:
@@ -863,8 +863,16 @@ Standard_Boolean ShapeFix_Shell::FixFaceOrientation(const TopoDS_Shell& shell,co
|
||||
myShell = shell;
|
||||
myShape = shell;
|
||||
Standard_Integer aNumMultShell =0;
|
||||
for (TopoDS_Iterator iter(shell); iter.More(); iter.Next())
|
||||
Lface.Append(iter.Value());
|
||||
Standard_Integer nbF = 0;
|
||||
TopTools_MapOfShape aMapAdded;
|
||||
for (TopoDS_Iterator iter(shell); iter.More(); iter.Next(),nbF++)
|
||||
{
|
||||
if(aMapAdded.Add(iter.Value()))
|
||||
Lface.Append(iter.Value());
|
||||
}
|
||||
if(Lface.Length() < nbF)
|
||||
done = Standard_True;
|
||||
|
||||
TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces;
|
||||
TopExp::MapShapesAndAncestors(myShell,TopAbs_EDGE,TopAbs_FACE,aMapEdgeFaces);
|
||||
TopTools_MapOfShape aMapMultiConnectEdges;
|
||||
|
||||
Reference in New Issue
Block a user