From 0301e2fb1bb6f997da3dd330d34f60ce7d4a38cb Mon Sep 17 00:00:00 2001 From: aothms Date: Wed, 2 Dec 2015 10:17:59 +0100 Subject: [PATCH] Emit an error message on extrusions with negative height or under model precision --- src/ifcgeom/IfcGeomShapes.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcGeomShapes.cpp b/src/ifcgeom/IfcGeomShapes.cpp index 896863805d..1ee17e9221 100644 --- a/src/ifcgeom/IfcGeomShapes.cpp +++ b/src/ifcgeom/IfcGeomShapes.cpp @@ -99,10 +99,15 @@ #include "../ifcgeom/IfcGeom.h" bool IfcGeom::Kernel::convert(const IfcSchema::IfcExtrudedAreaSolid* l, TopoDS_Shape& shape) { + const double height = l->Depth() * getValue(GV_LENGTH_UNIT); + if (height < getValue(GV_PRECISION)) { + Logger::Message(Logger::LOG_ERROR, "Non-positive extrusion height encountered for:", l); + return false; + } + TopoDS_Shape face; if ( !convert_face(l->SweptArea(),face) ) return false; - const double height = l->Depth() * getValue(GV_LENGTH_UNIT); gp_Trsf trsf; IfcGeom::Kernel::convert(l->Position(),trsf);