From bf57258895f2f80af1b86ab81d1589a6db594bac Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 20 Sep 2020 12:59:11 +0200 Subject: [PATCH] #1005 Check degenerate edges on trimmed linear curves bounded by parameter value as well. --- src/ifcgeom/IfcGeomWires.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ifcgeom/IfcGeomWires.cpp b/src/ifcgeom/IfcGeomWires.cpp index dd6c54de20..87fb2b28b0 100644 --- a/src/ifcgeom/IfcGeomWires.cpp +++ b/src/ifcgeom/IfcGeomWires.cpp @@ -591,7 +591,13 @@ bool IfcGeom::Kernel::convert(const IfcSchema::IfcTrimmedCurve* l, TopoDS_Wire& } else { BRepBuilderAPI_MakeEdge me (curve,flts[0],flts[1]); e = me.Edge(); - } + TopoDS_Vertex v0, v1; + TopExp::Vertices(e, v0, v1); + if (v0.IsSame(v1)) { + Logger::Warning("Skipping degenerate linear segment", l); + return false; + } + } } else if ( trim_cartesian_failed && (has_pnts[0] && has_pnts[1]) ) { e = BRepBuilderAPI_MakeEdge(pnts[0], pnts[1]).Edge(); }