drawHighlightCircle method

void drawHighlightCircle(
  1. Canvas c,
  2. MPPointF point,
  3. double innerRadius,
  4. double outerRadius,
  5. Color fillColor,
  6. Color strokeColor,
  7. double strokeWidth,
)

Implementation

void drawHighlightCircle(
    Canvas c,
    MPPointF point,
    double innerRadius,
    double outerRadius,
    Color fillColor,
    Color strokeColor,
    double strokeWidth) {
  c.save();

  outerRadius = Utils.convertDpToPixel(outerRadius);
  innerRadius = Utils.convertDpToPixel(innerRadius);

  if (fillColor != ColorUtils.colorNone) {
    Path p = mDrawHighlightCirclePathBuffer;
    p.reset();
    p.addOval(Rect.fromLTRB(point.x - outerRadius, point.y - outerRadius,
        point.x + outerRadius, point.y + outerRadius));
//      p.addCircle(point.x, point.y, outerRadius, Path.Direction.CW);
    if (innerRadius > 0.0) {
      p.addOval(Rect.fromLTRB(point.x - innerRadius, point.y - innerRadius,
          point.x + innerRadius, point.y + innerRadius));
//        p.addCircle(point.x, point.y, innerRadius, Path.Direction.CCW);
    }
    _highlightCirclePaint
      ?..color = fillColor
      ..style = PaintingStyle.fill;
    c.drawPath(p, _highlightCirclePaint!);
  }

  if (strokeColor != ColorUtils.colorNone) {
    _highlightCirclePaint
      ?..color = strokeColor
      ..style = PaintingStyle.stroke
      ..strokeWidth = Utils.convertDpToPixel(strokeWidth);
    c.drawCircle(
        Offset(point.x, point.y), outerRadius, _highlightCirclePaint!);
  }

  c.restore();
}