paint method

  1. @override
String paint()
override

Implementation

@override
String paint() {
  var cx = _element.getAttribute('cx') ?? '0';
  var cy = _element.getAttribute('cy') ?? '0';
  var r = _element.getAttribute('r') ?? '0';

  var color = ColorParser(_element.getAttribute('fill'));
  var colorStr = color.parse();

  StringBuffer result = StringBuffer();

  result.writeln(
      'final Rect oval$_elementId = Rect.fromCircle(center: Offset($cx, $cy), radius: $r);');
  result.writeln('Paint paint$_elementId = Paint();');
  if (colorStr != null) {
    result.writeln('paint$_elementId.color = ${color.parse()};');
  }

  var stroke = StrokeParser(
      _element.getAttribute('stroke'),
      _element.getAttribute('stroke-width'),
      _element.getAttribute('stroke-linecap'));

  if (stroke.isStroke) {
    result.writeln('paint$_elementId.style = PaintingStyle.stroke;');

    result.writeln('paint$_elementId.color = ${stroke.strokeColor};');

    if (stroke.strokeWidth != null) {
      result.writeln('paint$_elementId.strokeWidth = ${stroke.strokeWidth};');
    }

    if (stroke.strokeCap != null) {
      result.writeln('paint$_elementId.strokeCap = ${stroke.strokeCap};');
    }
  }

  result.writeln('var path$_elementId = Path()..addOval(oval$_elementId);');

  var transform = TransformParser(_element.getAttribute('transform'));

  if(transform.isTransform) {
    result.writeln('path$_elementId = path$_elementId.transform(${transform.parse()});');
  }

  result.writeln('canvas.drawPath(path$_elementId, paint$_elementId);');
  return result.toString();
}