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