docs: private void drawTicks() {
          double  sinValue;
          double  cosValue;
          double  startAngle             = 180;
          double  angleStep              = 360 / 60;
          Point2D center                 = new Point2D(size * 0.5, size * 0.5);
          Color   hourTickMarkColor      = getSkinnable().getHourTickMarkColor();
          Color   minuteTickMarkColor    = getSkinnable().getMinuteTickMarkColor();
          boolean hourTickMarksVisible   = getSkinnable().isHourTickMarksVisible();
          boolean minuteTickMarksVisible = getSkinnable().isMinuteTickMarksVisible();
          tickCtx.clearRect(0, 0, size, size);
          tickCtx.setLineCap(StrokeLineCap.ROUND);
          for (double angle = 0, counter = 0 ; Double.compare(counter, 59) <= 0 ; angle -= angleStep, counter++) {
              sinValue = Math.sin(Math.toRadians(angle + startAngle));
              cosValue = Math.cos(Math.toRadians(angle + startAngle));
  
              Point2D innerPoint       = new Point2D(center.getX() + size * 0.405 * sinValue, center.getY() + size * 0.405 * cosValue);
              Point2D innerMinutePoint = new Point2D(center.getX() + size * 0.435 * sinValue, center.getY() + size * 0.435 * cosValue);
              Point2D outerPoint       = new Point2D(center.getX() + size * 0.465 * sinValue, center.getY() + size * 0.465 * cosValue);
  
              if (counter % 5 == 0) {
                  // Draw hour tickmark
                  tickCtx.setStroke(hourTickMarkColor);
                  if (hourTickMarksVisible) {
                      tickCtx.setLineWidth(size * 0.01);
                      tickCtx.strokeLine(innerPoint.getX(), innerPoint.getY(), outerPoint.getX(), outerPoint.getY());
                  } else if (minuteTickMarksVisible) {
                      tickCtx.setLineWidth(size * 0.005);
                      tickCtx.strokeLine(innerMinutePoint.getX(), innerMinutePoint.getY(), outerPoint.getX(), outerPoint.getY());
                  }
              } else if (counter % 1 == 0 && minuteTickMarksVisible) {
                  // Draw minute tickmark
                  tickCtx.setLineWidth(size * 0.005);
                  tickCtx.setStroke(minuteTickMarkColor);
                  tickCtx.strokeLine(innerMinutePoint.getX(), innerMinutePoint.getY(), outerPoint.getX(), outerPoint.getY());
              }
          }
      }