package com.nilunder.bdx.utils; public class Color extends com.badlogic.gdx.graphics.Color { public static final Color CLEAR = new Color(com.badlogic.gdx.graphics.Color.CLEAR); public static final Color BLACK = new Color(com.badlogic.gdx.graphics.Color.BLACK); public static final Color WHITE = new Color(com.badlogic.gdx.graphics.Color.WHITE); public static final Color LIGHT_GRAY = new Color(com.badlogic.gdx.graphics.Color.LIGHT_GRAY); public static final Color GRAY = new Color(com.badlogic.gdx.graphics.Color.GRAY); public static final Color DARK_GRAY = new Color(com.badlogic.gdx.graphics.Color.DARK_GRAY); public static final Color BLUE = new Color(com.badlogic.gdx.graphics.Color.BLUE); public static final Color NAVY = new Color(com.badlogic.gdx.graphics.Color.NAVY); public static final Color ROYAL = new Color(com.badlogic.gdx.graphics.Color.ROYAL); public static final Color SLATE = new Color(com.badlogic.gdx.graphics.Color.SLATE); public static final Color SKY = new Color(com.badlogic.gdx.graphics.Color.SKY); public static final Color CYAN = new Color(com.badlogic.gdx.graphics.Color.CYAN); public static final Color TEAL = new Color(com.badlogic.gdx.graphics.Color.TEAL); public static final Color GREEN = new Color(com.badlogic.gdx.graphics.Color.GREEN); public static final Color CHARTREUSE = new Color(com.badlogic.gdx.graphics.Color.CHARTREUSE); public static final Color LIME = new Color(com.badlogic.gdx.graphics.Color.LIME); public static final Color FOREST = new Color(com.badlogic.gdx.graphics.Color.FOREST); public static final Color OLIVE = new Color(com.badlogic.gdx.graphics.Color.OLIVE); public static final Color YELLOW = new Color(com.badlogic.gdx.graphics.Color.YELLOW); public static final Color GOLD = new Color(com.badlogic.gdx.graphics.Color.GOLD); public static final Color GOLDENROD = new Color(com.badlogic.gdx.graphics.Color.GOLDENROD); public static final Color ORANGE = new Color(com.badlogic.gdx.graphics.Color.ORANGE); public static final Color BROWN = new Color(com.badlogic.gdx.graphics.Color.BROWN); public static final Color TAN = new Color(com.badlogic.gdx.graphics.Color.TAN); public static final Color FIREBRICK = new Color(com.badlogic.gdx.graphics.Color.FIREBRICK); public static final Color RED = new Color(com.badlogic.gdx.graphics.Color.RED); public static final Color SCARLET = new Color(com.badlogic.gdx.graphics.Color.SCARLET); public static final Color CORAL = new Color(com.badlogic.gdx.graphics.Color.CORAL); public static final Color SALMON = new Color(com.badlogic.gdx.graphics.Color.SALMON); public static final Color PINK = new Color(com.badlogic.gdx.graphics.Color.PINK); public static final Color MAGENTA = new Color(com.badlogic.gdx.graphics.Color.MAGENTA); public static final Color PURPLE = new Color(com.badlogic.gdx.graphics.Color.PURPLE); public static final Color VIOLET = new Color(com.badlogic.gdx.graphics.Color.VIOLET); public static final Color MAROON = new Color(com.badlogic.gdx.graphics.Color.MAROON); public Color() {super();} public Color(int rgba8888) { super(rgba8888); } public Color(float r, float g, float b, float a) { super(r, g, b, a); } public Color(com.badlogic.gdx.graphics.Color color) { super(color); } public Color setAlpha(float alphaValue){ a = alphaValue; return clamp(); } public Color subAlpha(float alphaValue){ a -= alphaValue; return clamp(); } public Color addAlpha(float alphaValue){ a += alphaValue; return clamp(); } public Color mulAlpha(float mulAmount){ a *= mulAmount; return clamp(); } public Color subColor(float value) { sub(value, value, value, 0); return clamp(); } public Color addColor(float value) { add(value, value, value, 0); return clamp(); } public Color mulColor(float mulAmount) { mul(mulAmount, mulAmount, mulAmount, 1); return clamp(); } public Color HSV(float hue, float sat, float val){ float i = (float) Math.floor(hue * 6.0f); float f = hue * 6 - i; float p = val * (1 - sat); float q = val * (1 - f * sat); float t = val * (1 - (1 - f) * sat); switch((int) i % 6){ case 0: r = val; g = t; b = p; break; case 1: r = q; g = val; b = p; break; case 2: r = p; g = val; b = t; break; case 3: r = p; g = q; b = val; break; case 4: r = t; g = p; b = val; break; case 5: r = val; g = p; b = q; break; } return clamp(); } public float[] HSV(){ float max = Math.max(r, Math.max(g, b)); float min = Math.min(r, Math.min(g, b)); float h, s, v = max; float d = max - min; s = max == 0 ? 0 : d / max; if(max == min){ h = 0; // achromatic }else{ if (max == r) h = (g - b) / d + (g < b ? 6 : 0); else if (max == g) h = (b - r) / d + 2; else h = (r - g) / d + 4; h /= 6; } return new float[]{h, s, v}; } public Color hue(float hue){ float[] hsv = HSV(); return HSV(hue, hsv[1], hsv[2]); } public float hue(){ return HSV()[0]; } public Color sat(float sat){ float[] hsv = HSV(); return HSV(hsv[0], sat, hsv[2]); } public float sat(){ return HSV()[1]; } public Color val(float val){ float[] hsv = HSV(); return HSV(hsv[0], hsv[1], val); } public float val(){ return HSV()[2]; } // Overriding GDX Functions with BDX ones that return the new Color class public Color set(com.badlogic.gdx.graphics.Color color) { super.set(color); return this; } public Color mul(com.badlogic.gdx.graphics.Color color) { super.mul(color); return this; } public Color mul(float value) { super.mul(value); return this; } public Color add(com.badlogic.gdx.graphics.Color color) { super.add(color); return this; } public Color sub(com.badlogic.gdx.graphics.Color color) { super.sub(color); return this; } public Color clamp() { super.clamp(); return this; } public Color set(float r, float g, float b, float a) { super.set(r, g, b, a); return this; } public Color set(int rgba) { super.set(rgba); return this; } public Color add(float r, float g, float b, float a) { super.add(r, g, b, a); return this; } public Color sub(float r, float g, float b, float a) { super.sub(r, g, b, a); return this; } public Color mul(float r, float g, float b, float a) { super.mul(r, g, b, a); return this; } public Color lerp(com.badlogic.gdx.graphics.Color target, float t) { super.lerp(target, t); return this; } public Color lerp(float r, float g, float b, float a, float t) { super.lerp(r, g, b, a, t); return this; } public Color premultiplyAlpha() { super.premultiplyAlpha(); return this; } public static Color valueOf(String hex) { return new Color(com.badlogic.gdx.graphics.Color.valueOf(hex)); } }