hitTestStroke function

bool hitTestStroke(
  1. Offset point,
  2. List<Offset> points,
  3. double thickness, {
  4. double hitPadding = 0,
})

Returns true if point hits the polyline points with thickness.

Implementation

bool hitTestStroke(
  Offset point,
  List<Offset> points,
  double thickness, {
  double hitPadding = 0,
}) {
  if (points.isEmpty) return false;
  if (points.length == 1) {
    final baseThickness = thickness < 0 ? 0 : thickness;
    final radius = baseThickness / 2 + hitPadding + kHitSlop;
    return (point - points.first).distance <= radius;
  }
  final baseThickness = thickness < 0 ? 0 : thickness;
  final effectiveThickness = baseThickness + 2 * (hitPadding + kHitSlop);
  for (var i = 0; i < points.length - 1; i++) {
    if (hitTestLine(point, points[i], points[i + 1], effectiveThickness)) {
      return true;
    }
  }
  return false;
}