renderData method

  1. @override
void renderData(
  1. Canvas canvas,
  2. ChartTransform transform,
  3. LineData lineData
)
override

Implementation

@override
void renderData(
  Canvas canvas,
  ChartTransform transform,
  LineData lineData,
) {

  if (lineData.line.isEmpty) return;

  final paint = Paint();

  final lineType = lineData.lineType;

  if (lineType.drawLine && lineData.line.length >= lineType.minPoints) {
    final hasAreaFill = lineData.areaGradient != null || lineData.areaColor != null;
    if (hasAreaFill) {
      final areaPath = _buildAreaPathBetweenFyAndY(lineData, transform);
      if (areaPath != null) {

        final tAreaPath = transform.path(areaPath);

        if (lineData.areaGradient != null) {
          paint.shader = lineData.areaGradient!.createShader(tAreaPath.getBounds());
        } else {
          paint.shader = null;
          paint.color = lineData.areaColor!;
        }

        paint.style = PaintingStyle.fill;
        canvas.drawPath(tAreaPath, paint);
      }
    }

    lineData.lineType.renderer.render(canvas, transform, lineData);
  }

  drawDataPoints(canvas, paint, transform, lineData, lineData.line);
}