code: @Override
      public final AbstractGauge init(int WIDTH, int HEIGHT) {
          final int GAUGE_WIDTH = isFrameVisible() ? WIDTH : getGaugeBounds().width;
          final int GAUGE_HEIGHT = isFrameVisible() ? HEIGHT : getGaugeBounds().height;
  
          if (GAUGE_WIDTH <= 1 || GAUGE_HEIGHT <= 1) {
              return this;
          }
  
          if (!isFrameVisible()) {
              setFramelessOffset(-getGaugeBounds().width * 0.0841121495, -getGaugeBounds().width * 0.0841121495);
          } else {
              setFramelessOffset(getGaugeBounds().x, getGaugeBounds().y);
          }
  
          if (frameImage != null) {
              frameImage.flush();
          }
          frameImage = create_FRAME_Image(GAUGE_WIDTH);
  
          if (backgroundImage != null) {
              backgroundImage.flush();
          }
          backgroundImage = create_BACKGROUND_Image(GAUGE_WIDTH);
  
          if (tickmarksImage != null) {
              tickmarksImage.flush();
          }
          tickmarksImage = create_TICKMARKS_Image(GAUGE_WIDTH);
  
          if (planeImage != null) {
              planeImage.flush();
          }
          planeImage = create_AIRPLANE_Image(GAUGE_WIDTH);
  
          if (foregroundImage != null) {
              foregroundImage.flush();
          }
          switch (getFrameType()) {
              case SQUARE:
                  foregroundImage = FOREGROUND_FACTORY.createLinearForeground(GAUGE_WIDTH, GAUGE_WIDTH, false);
                  break;
  
              case ROUND:
  
              default:
                  foregroundImage = FOREGROUND_FACTORY.createRadialForeground(GAUGE_WIDTH, false, getForegroundType());
                  break;
          }
  
          if (disabledImage != null) {
              disabledImage.flush();
          }
          disabledImage = create_DISABLED_Image(GAUGE_WIDTH);
  
          return this;
      }
docs: <editor-fold defaultstate="collapsed" desc="Initialization">