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);
              }
          }
  
          sectionCanvas = new Canvas(PREFERRED_WIDTH, PREFERRED_HEIGHT);
          sectionCtx    = sectionCanvas.getGraphicsContext2D();
  
          barBackground = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.4, PREFERRED_HEIGHT * 0.4, gauge.getStartAngle() + 150, ANGLE_RANGE);
          barBackground.setType(ArcType.OPEN);
          barBackground.setStroke(gauge.getBarBackgroundColor());
          barBackground.setStrokeWidth(PREFERRED_WIDTH * 0.125);
          barBackground.setStrokeLineCap(StrokeLineCap.BUTT);
          barBackground.setFill(null);
  
          bar = new Arc(PREFERRED_WIDTH * 0.5, PREFERRED_HEIGHT * 0.5, PREFERRED_WIDTH * 0.4, PREFERRED_HEIGHT * 0.4, gauge.getStartAngle() + 90, 0);
          bar.setType(ArcType.OPEN);
          bar.setStroke(gauge.getBarColor());
          bar.setStrokeWidth(PREFERRED_WIDTH * 0.125);
          bar.setStrokeLineCap(StrokeLineCap.BUTT);
          bar.setFill(null);
  
          titleText = new Text(gauge.getTitle());
          titleText.setFill(gauge.getTitleColor());
          Helper.enableNode(titleText, !gauge.getTitle().isEmpty());
  
          valueText = new Text();
          valueText.setStroke(null);
          valueText.setFill(gauge.getValueColor());
          Helper.enableNode(valueText, gauge.isValueVisible());
  
          unitText = new Text();
          unitText.setStroke(null);
          unitText.setFill(gauge.getUnitColor());
          Helper.enableNode(unitText, gauge.isValueVisible() && !gauge.getUnit().isEmpty());
  
          pane = new Pane(barBackground, sectionCanvas, titleText, valueText, unitText, bar);
  
          getChildren().setAll(pane);
      }