lib/svg/path: swap out large if-else for switch
Some checks failed
Test / test (push) Failing after 2m30s
Some checks failed
Test / test (push) Failing after 2m30s
This commit is contained in:
@@ -572,27 +572,35 @@ class Path extends ListBase<SvgPath> {
|
|||||||
parts.add("M ${coord(segment.start)}");
|
parts.add("M ${coord(segment.start)}");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (segment is Line) {
|
switch (segment) {
|
||||||
parts.add("L ${coord(segment.end)}");
|
case Line _:
|
||||||
} else if (segment is CubicBezier) {
|
parts.add("L ${coord(segment.end)}");
|
||||||
if (segment.isSmoothFrom(previousSegment)) {
|
break;
|
||||||
parts.add("S ${coord(segment.control2)} ${coord(segment.end)}");
|
|
||||||
} else {
|
case CubicBezier _:
|
||||||
|
if (segment.isSmoothFrom(previousSegment)) {
|
||||||
|
parts.add("S ${coord(segment.control2)} ${coord(segment.end)}");
|
||||||
|
} else {
|
||||||
|
parts.add(
|
||||||
|
"C ${coord(segment.control1)} ${coord(segment.control2)} ${coord(segment.end)}",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case QuadraticBezier _:
|
||||||
|
if (segment.isSmoothFrom(previousSegment)) {
|
||||||
|
parts.add("T ${coord(segment.end)}");
|
||||||
|
} else {
|
||||||
|
parts.add("Q ${coord(segment.control)} ${coord(segment.end)}");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case Arc _:
|
||||||
parts.add(
|
parts.add(
|
||||||
"C ${coord(segment.control1)} ${coord(segment.control2)} ${coord(segment.end)}",
|
"A ${coord(segment.radius)} ${formatNumber(segment.rotation)} "
|
||||||
|
"${segment.arc ? 1 : 0},${segment.sweep ? 1 : 0} ${coord(segment.end)}",
|
||||||
);
|
);
|
||||||
}
|
break;
|
||||||
} else if (segment is QuadraticBezier) {
|
|
||||||
if (segment.isSmoothFrom(previousSegment)) {
|
|
||||||
parts.add("T ${coord(segment.end)}");
|
|
||||||
} else {
|
|
||||||
parts.add("Q ${coord(segment.control)} ${coord(segment.end)}");
|
|
||||||
}
|
|
||||||
} else if (segment is Arc) {
|
|
||||||
parts.add(
|
|
||||||
"A ${coord(segment.radius)} ${formatNumber(segment.rotation)} "
|
|
||||||
"${segment.arc ? 1 : 0},${segment.sweep ? 1 : 0} ${coord(segment.end)}",
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
currentPos = segment.end;
|
currentPos = segment.end;
|
||||||
|
Reference in New Issue
Block a user