Fix the issue with point skipping in svg export

This commit is contained in:
tamasmeszaros 2022-04-26 15:08:06 +02:00
parent dea3c2cea3
commit be78bdf5ff

View File

@ -84,15 +84,16 @@ void append_svg(std::string &buf, const Polygon &poly)
buf += decimal_from(c.x(), intbuf); buf += decimal_from(c.x(), intbuf);
buf += " "sv; buf += " "sv;
buf += decimal_from(c.y(), intbuf); buf += decimal_from(c.y(), intbuf);
buf += " m"sv; buf += " l "sv;
for (auto &p : poly) { for (const Point &p : poly) {
auto d = p - c; Point d = p - c;
if (d.squaredNorm() == 0) continue; if (d.x() == 0 && d.y() == 0)
continue;
buf += " "sv; buf += " "sv;
buf += decimal_from(p.x() - c.x(), intbuf); buf += decimal_from(p.x() - c.x(), intbuf);
buf += " "sv; buf += " "sv;
buf += decimal_from(p.y() - c.y(), intbuf); buf += decimal_from(d.y(), intbuf);
c = p; c = p;
} }
buf += " z\""sv; // mark path as closed buf += " z\""sv; // mark path as closed