diff --git a/src/ifcconvert/SvgSerializer.cpp b/src/ifcconvert/SvgSerializer.cpp index e6bf1b1d70..7e46036597 100644 --- a/src/ifcconvert/SvgSerializer.cpp +++ b/src/ifcconvert/SvgSerializer.cpp @@ -66,14 +66,23 @@ void SvgSerializer::write(path_object& p, const TopoDS_Wire& wire) { bool first = true; util::string_buffer path; - path.add(" DynamicType(); + bool conical = (ty == STANDARD_TYPE(Geom_Circle) || ty == STANDARD_TYPE(Geom_Ellipse)); + bool closed = ALMOST_THE_SAME(u1 + PI2, u2); + if (conical && closed) { + std::stringstream ss; + ss << "Full circles and ellipses currently not supported (id " + << p.first << ")"; + Logger::Warning(ss.str()); + } + + const bool reversed = edge.Orientation() == TopAbs_REVERSED; gp_Pnt p1, p2; curve->D0(u1, p1); @@ -84,6 +93,7 @@ void SvgSerializer::write(path_object& p, const TopoDS_Wire& wire) { } if (first) { + path.add(" DynamicType(); if (ty == STANDARD_TYPE(Geom_Circle) || ty == STANDARD_TYPE(Geom_Ellipse)) { Handle(Geom_Conic) conic = Handle(Geom_Conic)::DownCast(curve);