getOuterPath function

  1. @override
Path getOuterPath(
  1. Rect rect,
  2. BorderRadius borderRadius,
  3. double smoothingRadius, {
  4. TextDirection? textDirection,
})

Implementation

@override
  Path getOuterPath(Rect rect, BorderRadius borderRadius, double smoothingRadius, {TextDirection? textDirection}) {
    final outerRect = rect;
    final radius = borderRadius +
      SmoothBorderRadius.all(
        SmoothRadius(
          cornerRadius: BorderSide.none.width,
          cornerSmoothing: smoothingRadius,
        )
      );

    if ([radius.bottomLeft, radius.bottomRight, radius.topLeft, radius.topRight]
        .every((x) => (x as SmoothRadius).cornerSmoothing == 0.0)) {
      return Path()..addRRect(radius.resolve(textDirection).toRRect(outerRect));
    }

    return toPath(outerRect, radius, smoothingRadius);
  }