draw method

Path draw()

Implementation

Path draw() {
  final anglePerSide = 360 / specs!.sides;

  final radius = (size!.width - specs!.borderRadiusAngle) / 2;
  final arcLength = (radius * _angleToRadian(specs!.borderRadiusAngle)) +
      (specs!.sides * 2);

  Path path = Path();

  for (var i = 0; i <= specs!.sides; i++) {
    double currentAngle = anglePerSide * i;
    bool isFirst = i == 0;

    if (specs!.borderRadiusAngle > 0) {
      _drawLineAndArc(path, currentAngle, radius, arcLength, isFirst);
    } else {
      _drawLine(path, currentAngle, radius, isFirst);
    }
  }

  return path;
}