docs: private void initGraphics() {
          // Set initial size
          if (Double.compare(gauge.getPrefWidth(), 0.0) <= 0 || Double.compare(gauge.getPrefHeight(), 0.0) <= 0 ||
              Double.compare(gauge.getWidth(), 0.0) <= 0 || Double.compare(gauge.getHeight(), 0.0) <= 0) {
              if (gauge.getPrefWidth() > 0 && gauge.getPrefHeight() > 0) {
                  gauge.setPrefSize(gauge.getPrefWidth(), gauge.getPrefHeight());
              } else {
                  gauge.setPrefSize(PREFERRED_WIDTH, PREFERRED_HEIGHT);
              }
          }
  
          barColor                 = gauge.getBarColor();
          thresholdColor           = gauge.getThresholdColor();
          barBackgroundColor       = gauge.getBarBackgroundColor();
          thresholdBackgroundColor = Color.color(thresholdColor.getRed(), thresholdColor.getGreen(), thresholdColor.getBlue(), 0.25);
  
          unitText = new Text(gauge.getUnit());
          unitText.setTextOrigin(VPos.CENTER);
          unitText.setFill(gauge.getUnitColor());
          Helper.enableNode(unitText, !gauge.getUnit().isEmpty());
  
          titleText = new Text(gauge.getTitle());
          titleText.setTextOrigin(VPos.CENTER);
          titleText.setFill(gauge.getTitleColor());
          Helper.enableNode(titleText, !gauge.getTitle().isEmpty());
  
          valueText = new Text(formatNumber(gauge.getLocale(), gauge.getFormatString(), gauge.getDecimals(), gauge.getValue()));
          valueText.setTextOrigin(VPos.CENTER);
          valueText.setFill(gauge.getValueColor());
          Helper.enableNode(valueText, gauge.isValueVisible());
  
          barBackgroundStart          = new MoveTo();
          barBackgroundOuterArc       = new ArcTo(0.675 * PREFERRED_HEIGHT, 0.675 * PREFERRED_HEIGHT, 0, PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT, true, true);
          barBackgroundLineToInnerArc = new LineTo();
          barBackgroundInnerArc       = new ArcTo(0.3 * PREFERRED_HEIGHT, 0.3 * PREFERRED_HEIGHT, 0, 0.27778 * PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT, true, false);
  
          barBackground = new Path();
          barBackground.setFillRule(FillRule.EVEN_ODD);
          barBackground.getElements().add(barBackgroundStart);
          barBackground.getElements().add(barBackgroundOuterArc);
          barBackground.getElements().add(barBackgroundLineToInnerArc);
          barBackground.getElements().add(barBackgroundInnerArc);
          barBackground.getElements().add(new ClosePath());
          barBackground.setFill(barBackgroundColor);
          barBackground.setStroke(Color.TRANSPARENT);
  
          thresholdBarStart = new MoveTo();
          thresholdBarOuterArc = new ArcTo(0.675 * PREFERRED_HEIGHT, 0.675 * PREFERRED_HEIGHT, 0, PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT, false, true);
          thresholdBarLineToInnerArc = new LineTo();
          thresholdBarInnerArc = new ArcTo(0.3 * PREFERRED_HEIGHT, 0.3 * PREFERRED_HEIGHT, 0, 0.27778 * PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT, false, false);
  
          thresholdBar = new Path();
          thresholdBar.setFillRule(FillRule.EVEN_ODD);
          thresholdBar.getElements().add(thresholdBarStart);
          thresholdBar.getElements().add(thresholdBarOuterArc);
          thresholdBar.getElements().add(thresholdBarLineToInnerArc);
          thresholdBar.getElements().add(thresholdBarInnerArc);
          thresholdBar.getElements().add(new ClosePath());
          thresholdBar.setFill(thresholdBackgroundColor);
          thresholdBar.setStroke(Color.TRANSPARENT);
          
          dataBarStart          = new MoveTo();
          dataBarOuterArc       = new ArcTo(PREFERRED_WIDTH, 0.5 * PREFERRED_HEIGHT, 0, 0, 0, true, true);
          dataBarLineToInnerArc = new LineTo();
          dataBarInnerArc       = new ArcTo(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT - PREFERRED_WIDTH * 0.0625, 0, 0, 0, true, false);
  
          dataBar = new Path();
          dataBar.setFillRule(FillRule.EVEN_ODD);
          dataBar.getElements().add(dataBarStart);
          dataBar.getElements().add(dataBarOuterArc);
          dataBar.getElements().add(dataBarLineToInnerArc);
          dataBar.getElements().add(dataBarInnerArc);
          dataBar.getElements().add(new ClosePath());
          dataBar.setFill(barColor);
          dataBar.setStroke(gauge.getBorderPaint());
  
          dataBarThresholdStart          = new MoveTo();
          dataBarThresholdOuterArc       = new ArcTo(PREFERRED_WIDTH, 0.5 * PREFERRED_HEIGHT, 0, 0, 0, false, true);
          dataBarThresholdLineToInnerArc = new LineTo();
          dataBarThresholdInnerArc       = new ArcTo(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT - PREFERRED_WIDTH * 0.0625, 0, 0, 0, false, false);
  
          dataBarThreshold = new Path();
          dataBarThreshold.setFillRule(FillRule.EVEN_ODD);
          dataBarThreshold.getElements().add(dataBarThresholdStart);
          dataBarThreshold.getElements().add(dataBarThresholdOuterArc);
          dataBarThreshold.getElements().add(dataBarThresholdLineToInnerArc);
          dataBarThreshold.getElements().add(dataBarThresholdInnerArc);
          dataBarThreshold.getElements().add(new ClosePath());
          dataBarThreshold.setFill(thresholdColor);
          dataBarThreshold.setStroke(gauge.getBorderPaint());
  
          pane = new Pane(titleText,
                          valueText,
                          unitText,
                          barBackground,
                          thresholdBar,
                          dataBar,
                          dataBarThreshold);
          pane.setBorder(new Border(new BorderStroke(gauge.getBorderPaint(), BorderStrokeStyle.SOLID, CornerRadii.EMPTY, new BorderWidths(gauge.getBorderWidth()))));
          pane.setBackground(new Background(new BackgroundFill(gauge.getBackgroundPaint(), CornerRadii.EMPTY, Insets.EMPTY)));
  
          getChildren().setAll(pane);
      }