Back to project page min3d.
The source code is released under:
MIT License
If you think the Android project min3d listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.min3d.lib.vos; //from w w w .j a v a 2s.c o m import com.min3d.lib.Utils; import com.min3d.lib.interfaces.IDirtyParent; import java.nio.FloatBuffer; /** * Same functionality as Color4, but uses proper accessors to r,g,b, and a properties, * rather than VO-style public variables, so that 'dirty flag' can be managed properly. * * It is also backed by a FloatBuffer. */ public class Color4Managed extends AbstractDirtyManaged { private short _r; private short _g; private short _b; private short _a; private FloatBuffer _fb; public Color4Managed(IDirtyParent $parent) { super($parent); _r = (short)255; _g = (short)255; _b = (short)255; _a = (short)255; _fb = this.toFloatBuffer(); setDirtyFlag(); } public Color4Managed(short $r, short $g, short $b, short $a, IDirtyParent $parent) { super($parent); _r = $r; _g = $g; _b = $b; _a = $a; _fb = this.toFloatBuffer(); setDirtyFlag(); } /** * Convenience method which casts the int arguments to short for you. */ public Color4Managed(int $r, int $g, int $b, int $a, IDirtyParent $parent) { super($parent); _r = (short)$r; _g = (short)$g; _b = (short)$b; _a = (short)$a; _fb = this.toFloatBuffer(); setDirtyFlag(); } /** * Convenience method to set all properties in one line. */ public void setAll(short $r, short $g, short $b, short $a) { _r = $r; _g = $g; _b = $b; _a = $a; setDirtyFlag(); } public void setAll(int $r, int $g, int $b, int $a) { setAll((short)$r, (short)$g, (short)$b, (short)$a); } public Color4 toColor4() { return new Color4(_r,_g,_b,_a); } /** * Convenience method to set all properties off one 32-bit rgba value */ public void setAll(long $argb32) { _a = (short) (($argb32 >> 24) & 0x000000FF); _r = (short) (($argb32 >> 16) & 0x000000FF); _g = (short) (($argb32 >> 8) & 0x000000FF); _b = (short) (($argb32) & 0x000000FF); setDirtyFlag(); } public void setAll(Color4 $color) { setAll($color.r, $color.g, $color.b, $color.a); } public short r() { return _r; } public void r(short $r) { _r = $r; setDirtyFlag(); } public short g() { return _g; } public void g(short $g) { _g = $g; setDirtyFlag(); } public short b() { return _b; } public void b(short $b) { _b = $b; setDirtyFlag(); } public short a() { return _a; } public void a(short $a) { _a = $a; setDirtyFlag(); } /** * Convenience method */ public FloatBuffer toFloatBuffer() { return Utils.makeFloatBuffer4( (float) r() / 255f, (float) g() / 255f, (float) b() / 255f, (float) a() / 255f ); } /** * Convenience method */ public void toFloatBuffer(FloatBuffer $floatBuffer) { $floatBuffer.position(0); $floatBuffer.put((float)r() / 255f); $floatBuffer.put((float)g() / 255f); $floatBuffer.put((float)b() / 255f); $floatBuffer.put((float)a() / 255f); $floatBuffer.position(0); } // /** * Used by Renderer */ public FloatBuffer floatBuffer() { return _fb; } /** * Used by Renderer */ public void commitToFloatBuffer() { this.toFloatBuffer(_fb); } @Override public String toString() { return "r:" + _r + ", g:" + _g + ", b:" + _b + ", a:" + _a; } }