]> 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)
committermsv <msv@opencascade.com>
Fri, 24 Jun 2022 16:40:01 +0000 (19:40 +0300)
src/BRepMesh/BRepMesh_ModelPreProcessor.cxx

index 2a6d20badb42345a7a6646a96f8a8e6911edd245..ea189746bee4aeefe89db5c515547f3368f84f36 100644 (file)
@@ -118,7 +118,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;
       }
@@ -127,7 +127,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)
@@ -145,7 +145,7 @@ namespace
             }
           }
           return;
-        } 
+        }
       }
     }