[bos #32155] EDF 25230 - face non planar

This commit is contained in:
jfa 2024-03-25 13:44:54 +00:00
parent d72c6cd028
commit cd72f3fcf6

View File

@ -531,10 +531,24 @@ Standard_Integer GEOMImpl_ShapeDriver::Execute(Handle(TFunction_Logbook)& log) c
Handle(TopTools_HSequenceOfShape) aSeqClosedWires = new TopTools_HSequenceOfShape; Handle(TopTools_HSequenceOfShape) aSeqClosedWires = new TopTools_HSequenceOfShape;
Handle(TopTools_HSequenceOfShape) aSeqOpenWires = new TopTools_HSequenceOfShape; Handle(TopTools_HSequenceOfShape) aSeqOpenWires = new TopTools_HSequenceOfShape;
for (ind = 1; ind <= aSeqWiresOut->Length(); ind++) { for (ind = 1; ind <= aSeqWiresOut->Length(); ind++) {
if (aSeqWiresOut->Value(ind).Closed()) TopoDS_Shape aWireShape = aSeqWiresOut->Value(ind);
aSeqClosedWires->Append(aSeqWiresOut->Value(ind)); if (aWireShape.Closed()) {
else TopoDS_Wire aWire = TopoDS::Wire(aWireShape);
aSeqOpenWires->Append(aSeqWiresOut->Value(ind)); BRepTools_WireExplorer wexp (aWire);
if (wexp.More()) {
TopoDS_Edge anEdge = wexp.Current();
wexp.Next();
if (!wexp.More()) { // one edge in the wire
if (BRep_Tool::Degenerated(anEdge) || !BRep_Tool::IsGeometric(anEdge)) {
continue;
}
}
}
aSeqClosedWires->Append(aWireShape);
}
else {
aSeqOpenWires->Append(aWireShape);
}
} }
if (aSeqClosedWires->Length() < 1) { if (aSeqClosedWires->Length() < 1) {