mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-04 13:13:25 +03:00
0024385: Shape fix shape does not correct closed flag for shell
Modified test cases de/step_4/C9 and de/step_4/D1 regarding to new reference data
This commit is contained in:
@@ -871,12 +871,19 @@ Standard_Boolean ShapeFix_Shell::FixFaceOrientation(const TopoDS_Shell& shell,co
|
||||
TopTools_IndexedDataMapOfShapeListOfShape aMapEdgeFaces;
|
||||
TopExp::MapShapesAndAncestors(myShell,TopAbs_EDGE,TopAbs_FACE,aMapEdgeFaces);
|
||||
TopTools_MapOfShape aMapMultiConnectEdges;
|
||||
if(isAccountMultiConex) {
|
||||
Standard_Boolean isFreeBoundaries = Standard_False;
|
||||
for(Standard_Integer k = 1; k <= aMapEdgeFaces.Extent(); k++) {
|
||||
Standard_Integer aFaceCount = aMapEdgeFaces.FindFromIndex(k).Extent();
|
||||
//Finds multishared edges
|
||||
for(Standard_Integer k = 1; k <= aMapEdgeFaces.Extent(); k++) {
|
||||
if(aMapEdgeFaces.FindFromIndex(k).Extent() >2)
|
||||
aMapMultiConnectEdges.Add(aMapEdgeFaces.FindKey(k));
|
||||
}
|
||||
if (isAccountMultiConex && aFaceCount > 2)
|
||||
aMapMultiConnectEdges.Add(aMapEdgeFaces.FindKey(k));
|
||||
if (aFaceCount == 1)
|
||||
isFreeBoundaries = Standard_True;
|
||||
}
|
||||
if (BRep_Tool::IsClosed (myShell) == isFreeBoundaries)
|
||||
{
|
||||
myShell.Closed (!isFreeBoundaries);
|
||||
SendWarning (Message_Msg ("FixAdvShell.FixClosedFlag.MSG0"));//Shell has incorrect flag isClosed
|
||||
}
|
||||
Standard_Boolean isGetShells = Standard_True;
|
||||
//Gets possible shells with taking in account of multiconnexity.
|
||||
|
Reference in New Issue
Block a user