From 45a3ad0168f1d5f59d7deca71738c4746ad1e6f3 Mon Sep 17 00:00:00 2001 From: agv Date: Fri, 26 Nov 2021 19:48:53 +0300 Subject: [PATCH] 0032692: Mesh - In BRepMesh_ModelPreProcessor avoid crashes with problematic topology --- src/BRepMesh/BRepMesh_ModelPreProcessor.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx b/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx index 80722d0313..264d02c891 100644 --- a/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx +++ b/src/BRepMesh/BRepMesh_ModelPreProcessor.cxx @@ -110,7 +110,7 @@ namespace void operator()(const Standard_Integer theFaceIndex) const { const IMeshData::IFaceHandle& aDFace = myModel->GetFace(theFaceIndex); - if (aDFace->GetSurface()->GetType() != GeomAbs_Cone) + if (aDFace->GetSurface()->GetType() != GeomAbs_Cone || aDFace->WiresNb() == 0) { return; } @@ -119,7 +119,7 @@ namespace for (Standard_Integer aEdgeIdx = 0; aEdgeIdx < aDWire->EdgesNb() - 1; ++aEdgeIdx) { const IMeshData::IEdgePtr& aDEdge = aDWire->GetEdge (aEdgeIdx); - + if (aDEdge->GetPCurve(aDFace.get(), TopAbs_FORWARD) != aDEdge->GetPCurve(aDFace.get(), TopAbs_REVERSED)) { if (aDEdge->GetCurve()->ParametersNb() == 2) @@ -137,7 +137,7 @@ namespace } } return; - } + } } } -- 2.39.5