drawBar method

  1. @visibleForTesting
void drawBar(
  1. CanvasWrapper canvasWrapper,
  2. Path barPath,
  3. LineChartBarData barData,
  4. PaintHolder<LineChartData> holder,
)

draw the main bar line by the barPath

Implementation

@visibleForTesting
void drawBar(
  CanvasWrapper canvasWrapper,
  Path barPath,
  LineChartBarData barData,
  PaintHolder<LineChartData> holder,
) {
  if (!barData.show) {
    return;
  }
  final viewSize = canvasWrapper.size;

  _barPaint
    ..strokeCap = barData.isStrokeCapRound ? StrokeCap.round : StrokeCap.butt
    ..strokeJoin =
        barData.isStrokeJoinRound ? StrokeJoin.round : StrokeJoin.miter;

  final rectAroundTheLine = Rect.fromLTRB(
    getPixelX(barData.mostLeftSpot.x, viewSize, holder),
    getPixelY(barData.mostTopSpot.y, viewSize, holder),
    getPixelX(barData.mostRightSpot.x, viewSize, holder),
    getPixelY(barData.mostBottomSpot.y, viewSize, holder),
  );
  _barPaint
    ..setColorOrGradient(
      barData.color,
      barData.gradient,
      rectAroundTheLine,
    )
    ..maskFilter = null
    ..strokeWidth = barData.barWidth
    ..transparentIfWidthIsZero();

  barPath = barPath.toDashedPath(barData.dashArray);
  canvasWrapper.drawPath(barPath, _barPaint);
}