lib/svg/path: swap out large if-else for switch
Some checks failed
Test / test (push) Failing after 2m30s

This commit is contained in:
2025-08-04 23:05:58 +02:00
parent 417db6ab0c
commit 039c7e2693

View File

@@ -572,9 +572,12 @@ class Path extends ListBase<SvgPath> {
parts.add("M ${coord(segment.start)}"); parts.add("M ${coord(segment.start)}");
} }
if (segment is Line) { switch (segment) {
case Line _:
parts.add("L ${coord(segment.end)}"); parts.add("L ${coord(segment.end)}");
} else if (segment is CubicBezier) { break;
case CubicBezier _:
if (segment.isSmoothFrom(previousSegment)) { if (segment.isSmoothFrom(previousSegment)) {
parts.add("S ${coord(segment.control2)} ${coord(segment.end)}"); parts.add("S ${coord(segment.control2)} ${coord(segment.end)}");
} else { } else {
@@ -582,17 +585,22 @@ class Path extends ListBase<SvgPath> {
"C ${coord(segment.control1)} ${coord(segment.control2)} ${coord(segment.end)}", "C ${coord(segment.control1)} ${coord(segment.control2)} ${coord(segment.end)}",
); );
} }
} else if (segment is QuadraticBezier) { break;
case QuadraticBezier _:
if (segment.isSmoothFrom(previousSegment)) { if (segment.isSmoothFrom(previousSegment)) {
parts.add("T ${coord(segment.end)}"); parts.add("T ${coord(segment.end)}");
} else { } else {
parts.add("Q ${coord(segment.control)} ${coord(segment.end)}"); parts.add("Q ${coord(segment.control)} ${coord(segment.end)}");
} }
} else if (segment is Arc) { break;
case Arc _:
parts.add( parts.add(
"A ${coord(segment.radius)} ${formatNumber(segment.rotation)} " "A ${coord(segment.radius)} ${formatNumber(segment.rotation)} "
"${segment.arc ? 1 : 0},${segment.sweep ? 1 : 0} ${coord(segment.end)}", "${segment.arc ? 1 : 0},${segment.sweep ? 1 : 0} ${coord(segment.end)}",
); );
break;
} }
currentPos = segment.end; currentPos = segment.end;