@Override
  public @NotNull T scale(float scale) {
    if (scale == getScale()) {
      //noinspection unchecked
      return (T)this;
    }

    if (scaledIconCache == null || scaledIconCache.getScale() != scale) {
      scaledIconCache = copy();
      scaledIconCache.setScale(OBJ_SCALE.of(scale));
    }
    return scaledIconCache;
  }
@Override
  public @NotNull T scale(float scale)