]> OCCT Git - occt.git/commitdiff
0032692: Mesh - In BRepMesh_ModelPreProcessor avoid crashes with problematic topology
authoragv <agv@opencascade.com>
Fri, 26 Nov 2021 16:48:53 +0000 (19:48 +0300)
committeragv <agv@opencascade.com>
Fri, 26 Nov 2021 22:52:10 +0000 (01:52 +0300)
src/BRepMesh/BRepMesh_ModelPreProcessor.cxx

index 80722d0313584ec805991d4004053b02e7dc262f..264d02c8916e23ecb692a98f19c4a2d15d9affba 100644 (file)
@@ -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;
-        } 
+        }
       }
     }