onPaint method

  1. @override
void onPaint(
  1. Canvas canvas
)
override

Draws segment in series bounds.

Implementation

@override
void onPaint(Canvas canvas) {
  _segmentRect = RRect.fromRectAndRadius(_currentPoint!.region!, Radius.zero);
  if (_seriesRenderer._chartState!._widgetNeedUpdate &&
      !_seriesRenderer._reAnimate &&
      !_seriesRenderer._chartState!._isLegendToggled &&
      _seriesRenderer._chartState!._oldSeriesRenderers.isNotEmpty &&
      _oldSeriesRenderer != null &&
      _oldSeriesRenderer!._segments.isNotEmpty &&
      _oldSeriesRenderer!._segments[0] is BubbleSegment &&
      _series.animationDuration > 0 &&
      _oldPoint != null) {
    final BubbleSegment currentSegment =
        _seriesRenderer._segments[currentSegmentIndex!] as BubbleSegment;
    final BubbleSegment? oldSegment =
        (currentSegment._oldSeriesRenderer!._segments.length - 1 >=
                currentSegmentIndex!)
            ? currentSegment._oldSeriesRenderer!
                ._segments[currentSegmentIndex!] as BubbleSegment?
            : null;
    _animateBubbleSeries(
        canvas,
        _centerX,
        _centerY,
        oldSegment?._centerX,
        oldSegment?._centerY,
        oldSegment?._size,
        animationFactor,
        _radius,
        strokePaint!,
        fillPaint!,
        _seriesRenderer);
  } else {
    canvas.drawCircle(
        Offset(_centerX, _centerY), _radius * animationFactor, fillPaint!);
    canvas.drawCircle(
        Offset(_centerX, _centerY), _radius * animationFactor, strokePaint!);
  }
}