animateStadium static method

OnAnimatePath<Offset> animateStadium(
  1. Offset o,
  2. double direction,
  3. double r
)

Implementation

static OnAnimatePath<Offset> animateStadium(
    Offset o, double direction, double r) {
  Offset topOf(Offset p) =>
      p.direct(direction - DoubleExtension.radian_angle90, r);
  Offset bottomOf(Offset p) =>
      p.direct(direction + DoubleExtension.radian_angle90, r);
  final oTop = topOf(o);
  final oBottom = bottomOf(o);

  final radius = Radius.circular(r);
  return (current) => (size) => Path()
    ..arcFromStartToEnd(oBottom, oTop, radius: radius)
    ..lineToPoint(topOf(current))
    ..arcToPoint(bottomOf(current), radius: radius)
    ..lineToPoint(oBottom);
}