computeNotch method
Path
computeNotch
(Rect main, Rect fab, Offset start, Offset end)
Implementation
Path computeNotch(Rect main, Rect fab, Offset start, Offset end) {
final Rect marginFab = fab.inflate(widget.notchMargin);
if (!main.overlaps(marginFab)) return Path()..lineTo(end.dx, end.dy);
final Rect intersection = marginFab.intersect(main);
final double notchCenter = intersection.height *
(marginFab.height / 2.0) /
(marginFab.width / 2.0);
return Path()
..lineTo(marginFab.center.dx - notchCenter, main.top)
..lineTo(marginFab.left + marginFab.width / 2.0, marginFab.bottom)
..lineTo(marginFab.center.dx + notchCenter, main.top)
..lineTo(end.dx, end.dy);
}