/** * @param ch the character to convert * @return the actual color */ public static Color toColor(char ch) { int rgb = ch - FIRST_COLOR; int r = (rgb >> 8) & 0xF; int g = (rgb >> 4) & 0xF; int b = (rgb >> 0) & 0xF; return new Color(r << 4, g << 4, b << 4); }
@Override public String toString() { return toHex(); }
@Override public void render(BufferedImage img, Region region) { ObjectFacet2D<E> facet = region.getFacet(facetClass); int width = img.getWidth(); int height = img.getHeight(); ColorModel colorModel = img.getColorModel(); ColorBlender blender = ColorBlenders.forColorModel(ColorModels.RGBA, colorModel); DataBufferInt dataBuffer = (DataBufferInt) img.getRaster().getDataBuffer(); for (int z = 0; z < height; z++) { for (int x = 0; x < width; x++) { Color src = getColor(facet, x, z); if (src != null) { int blend = blender.get(src.rgba()); dataBuffer.setElem(z * width + x, blend); } } } }
public float af() { return a() / 255.f; }
@Test public void testAlterAlpha() { color = color.alterAlpha(72); assertEquals(72, color.a()); }
@Test public void testAlterGreen() { color = color.alterGreen(72); assertEquals(72, color.g()); }
public float rf() { return r() / 255.f; }
public float gf() { return g() / 255.f; }
public float bf() { return b() / 255.f; }
@Test public void testAlterAlphaThrowsWhenColorLargerThanUpperBound() { expectedException.expect(IllegalArgumentException.class); color.alterAlpha(256); } }
/** * Stores the color with (4 + 4 + 4) = 12 bit accuracy as Unicode char * @param color the color * @return the unicode char * @deprecated use {@link FontColor#getColored(String, Color)} instead */ @Deprecated public static char toChar(org.terasology.rendering.nui.Color color) { return toChar(color.r(), color.g(), color.b()); }
public MeshBuilder addColor(Color c1, Color... colors) { meshData.getColors().add(c1.rf()); meshData.getColors().add(c1.gf()); meshData.getColors().add(c1.bf()); meshData.getColors().add(c1.af()); for (Color c : colors) { meshData.getColors().add(c.rf()); meshData.getColors().add(c.gf()); meshData.getColors().add(c.bf()); meshData.getColors().add(c.af()); } return this; }
@Override public void render(BufferedImage img, Region region) { FloraFacet treeFacet = region.getFacet(FloraFacet.class); Graphics2D g = img.createGraphics(); int width = img.getWidth(); ColorModel colorModel = img.getColorModel(); ColorBlender blender = ColorBlenders.forColorModel(ColorModels.RGBA, colorModel); DataBufferInt dataBuffer = (DataBufferInt) img.getRaster().getDataBuffer(); for (Entry<BaseVector3i, FloraType> entry : treeFacet.getRelativeEntries().entrySet()) { FloraType treeGen = entry.getValue(); int wx = entry.getKey().getX(); int wz = entry.getKey().getZ(); Color color = colorFunc.apply(treeGen); int src = color.rgba(); int dst = dataBuffer.getElem(wz * width + wx); int mix = blender.blend(src, dst); dataBuffer.setElem(wz * width + wx, mix); } g.dispose(); }
@Test public void testGetAlpha() { assertEquals(255, color.a()); }