/* * see license.txt */ package seventh.client.gfx; import com.badlogic.gdx.graphics.Color; import seventh.math.Vector3f; /** * @author Tony * */ public class Colors { public static int subtract(int left, int right) { int r = ( (left>>16) & 0x000000ff) - ( (right>>16) & 0x000000ff); int g = ( (left>>8) & 0x000000ff) - ( (right>>8) & 0x000000ff); int b = ( (left>>0) & 0x000000ff) - ( (right>>0) & 0x000000ff); int result = 0xff000000 | (r<<16) | (g<<8) | (b<<0); return result; } /** * Sets the Alpha component of the color * @param color * @param alpha * @return the color merged with the supplied alpha */ public static int setAlpha(int color, int alpha) { return (alpha << 24) | ((color<<8)>>>8); } public static int setAlpha(int color, float alpha) { return setAlpha(color, (int) (255f * alpha)); } /** * Converts the {@link Vector3f} into a int color * @param v * @param alpha * @return the int color rgba */ public static int toColor(Vector3f v, float alpha) { return Color.rgba8888(v.x, v.y, v.z, alpha); } public static int toColor(float r, float g, float b, float alpha) { int c = Color.rgba8888(r,g,b, alpha); return (c >>> 8) | (c<<24); } /** * Converts the {@link Vector3f} into a int color * @param v * @return the int color rgba */ public static int toColor(Vector3f v) { return Color.rgba8888(v.x, v.y, v.z, 1.0f)<<16; } public static Vector3f toVector3f(int color) { Color c = new Color(color); return new Vector3f(c.r, c.g, c.b); } }