toSegments method

  1. @override
List<Segment> toSegments()
override

Converts this shape to path segments.

Implementation

@override
List<Segment> toSegments() {
  const factor = ((-1 + sqrt2) / 3) * 4;
  final d = radius * factor;

  return [
    MoveSegment(end: center.translate(-radius, 0)),
    CubicSegment(
        control1: center.translate(-radius, -d),
        control2: center.translate(-d, -radius),
        end: center.translate(0, -radius),
        tag: SegmentTags.top),
    CubicSegment(
        control1: center.translate(d, -radius),
        control2: center.translate(radius, -d),
        end: center.translate(radius, 0),
        tag: SegmentTags.right),
    CubicSegment(
        control1: center.translate(radius, d),
        control2: center.translate(d, radius),
        end: center.translate(0, radius),
        tag: SegmentTags.bottom),
    CubicSegment(
        control1: center.translate(-d, radius),
        control2: center.translate(-radius, d),
        end: center.translate(-radius, 0),
        tag: SegmentTags.left),
    CloseSegment(),
  ];
}