From 8cc48c488f107473be46323a4ec949567d2ebe9b Mon Sep 17 00:00:00 2001 From: bgbsww Date: Thu, 9 Nov 2023 08:16:46 -0500 Subject: [PATCH] Defend against surface not created from invalid face --- src/Mod/Part/App/Tools.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Mod/Part/App/Tools.cpp b/src/Mod/Part/App/Tools.cpp index 0463cf576a..b66da45f32 100644 --- a/src/Mod/Part/App/Tools.cpp +++ b/src/Mod/Part/App/Tools.cpp @@ -65,6 +65,7 @@ # endif #endif +#include #include #include "Tools.h" @@ -640,8 +641,10 @@ Handle (Poly_Triangulation) Part::Tools::triangulationOfFace(const TopoDS_Face& selectRange(v1, v2); Handle(Geom_Surface) surface = BRep_Tool::Surface(face); + if ( surface.IsNull() ) { + FC_THROWM(Base::CADKernelError, "Cannot create surface from face"); + } BRepBuilderAPI_MakeFace mkBuilder(surface, u1, u2, v1, v2, Precision::Confusion() ); - TopoDS_Shape shape = mkBuilder.Shape(); shape.Location(loc);