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);
              }
          }
  
          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.getCurrentValue()));
          valueText.setTextOrigin(VPos.CENTER);
          valueText.setFill(gauge.getValueColor());
          Helper.enableNode(valueText, gauge.isValueVisible());
  
          minValue = gauge.getMinValue();
          minText  = new Text(String.format(locale, otherFormatString, minValue));
          minText.setTextOrigin(VPos.CENTER);
          minText.setFill(gauge.getValueColor());
  
          maxText = new Text(String.format(locale, otherFormatString, gauge.getMaxValue()));
          maxText.setTextOrigin(VPos.CENTER);
          maxText.setFill(gauge.getValueColor());
  
          boolean tickLabelsVisible = gauge.getTickLabelsVisible();
          Helper.enableNode(minText, tickLabelsVisible);
          Helper.enableNode(maxText, tickLabelsVisible);
  
          innerShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.3), 30.0, 0.0, 0.0, 10.0);
  
          barBackgroundStart          = new MoveTo(0, 0.675 * PREFERRED_HEIGHT);
          barBackgroundOuterArc       = new ArcTo(0.675 * PREFERRED_HEIGHT, 0.675 * PREFERRED_HEIGHT, 0, PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT, true, true);
          barBackgroundLineToInnerArc = new LineTo(0.72222 * PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT);
          barBackgroundInnerArc       = new ArcTo(0.3 * PREFERRED_HEIGHT, 0.3 * PREFERRED_HEIGHT, 0, 0.27778 * PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT, false, 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(gauge.getBarBackgroundColor());
          barBackground.setStroke(gauge.getBorderPaint());
          barBackground.setEffect(gauge.isShadowsEnabled() ? innerShadow : null);
  
          dataBarStart          = new MoveTo(0, 0.675 * PREFERRED_HEIGHT);
          dataBarOuterArc       = new ArcTo(0.675 * PREFERRED_HEIGHT, 0.675 * PREFERRED_HEIGHT, 0, 0, 0, false, true);
          dataBarLineToInnerArc = new LineTo(0.27778 * PREFERRED_WIDTH, 0.675 * PREFERRED_HEIGHT);
          dataBarInnerArc       = new ArcTo(0.3 * PREFERRED_HEIGHT, 0.3 * PREFERRED_HEIGHT, 0, 0, 0, false, 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(gauge.getBarColor());
          dataBar.setStroke(gauge.getBorderPaint());
          dataBar.setEffect(gauge.isShadowsEnabled() ? innerShadow : null);
  
          threshold = new Line();
          threshold.setStrokeLineCap(StrokeLineCap.BUTT);
          Helper.enableNode(threshold, gauge.isThresholdVisible());
  
          thresholdText = new Text(String.format(locale, formatString, gauge.getThreshold()));
          Helper.enableNode(thresholdText, gauge.isThresholdVisible());
  
          pane = new Pane(unitText, titleText, valueText, minText, maxText, barBackground, dataBar, threshold, thresholdText);
          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);
      }