Android Open Source - min3d Color4 Managed






From Project

Back to project page min3d.

License

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.

Java Source Code

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;
  }

  
}




Java Source Code List

com.min3d.ApplicationTest.java
com.min3d.ExampleAccelerometer.java
com.min3d.ExampleAnimatedTexture.java
com.min3d.ExampleAnimatingVertices.java
com.min3d.ExampleAssigningTexturesDynamically.java
com.min3d.ExampleCamera.java
com.min3d.ExampleFog.java
com.min3d.ExampleFromScratch.java
com.min3d.ExampleInsideLayout.java
com.min3d.ExampleKeyframeAnimation.java
com.min3d.ExampleLightProperties.java
com.min3d.ExampleLoad3DSFile.java
com.min3d.ExampleLoadMD2File.java
com.min3d.ExampleLoadObjFileMultiple.java
com.min3d.ExampleLoadObjFile.java
com.min3d.ExampleMipMap.java
com.min3d.ExampleMostMinimal.java
com.min3d.ExampleMultiTexture.java
com.min3d.ExampleMultipleLights.java
com.min3d.ExampleRenderType.java
com.min3d.ExampleRotatingPlanets.java
com.min3d.ExampleSubsetOfFaces.java
com.min3d.ExampleTextureOffset.java
com.min3d.ExampleTextureWrap.java
com.min3d.ExampleTextures.java
com.min3d.ExampleTransparentGlSurface.java
com.min3d.ExampleVertexColors.java
com.min3d.ExampleVerticesVariations.java
com.min3d.ScratchActivity.java
com.min3d.SplashActivity.java
com.min3d.lib.AParser.java
com.min3d.lib.ApplicationTest.java
com.min3d.lib.IParser.java
com.min3d.lib.LittleEndianDataInputStream.java
com.min3d.lib.MD2Parser.java
com.min3d.lib.Max3DSParser.java
com.min3d.lib.Min3d.java
com.min3d.lib.ObjParser.java
com.min3d.lib.ParseObjectData.java
com.min3d.lib.ParseObjectFace.java
com.min3d.lib.Parser.java
com.min3d.lib.Shared.java
com.min3d.lib.Utils.java
com.min3d.lib.animation.AnimationObject3d.java
com.min3d.lib.animation.KeyFrame.java
com.min3d.lib.core.Color4BufferList.java
com.min3d.lib.core.FacesBufferedList.java
com.min3d.lib.core.ManagedLightList.java
com.min3d.lib.core.Number3dBufferList.java
com.min3d.lib.core.Object3dContainer.java
com.min3d.lib.core.Object3d.java
com.min3d.lib.core.RenderCaps.java
com.min3d.lib.core.RendererActivity.java
com.min3d.lib.core.Renderer.java
com.min3d.lib.core.Scene.java
com.min3d.lib.core.TextureList.java
com.min3d.lib.core.TextureManager.java
com.min3d.lib.core.UvBufferList.java
com.min3d.lib.core.Vertices.java
com.min3d.lib.interfaces.IDirtyManaged.java
com.min3d.lib.interfaces.IDirtyParent.java
com.min3d.lib.interfaces.IObject3dContainer.java
com.min3d.lib.interfaces.ISceneController.java
com.min3d.lib.objectPrimitives.Box.java
com.min3d.lib.objectPrimitives.HollowCylinder.java
com.min3d.lib.objectPrimitives.Rectangle.java
com.min3d.lib.objectPrimitives.SkyBox.java
com.min3d.lib.objectPrimitives.Sphere.java
com.min3d.lib.objectPrimitives.Torus.java
com.min3d.lib.vos.AbstractDirtyManaged.java
com.min3d.lib.vos.BooleanManaged.java
com.min3d.lib.vos.CameraVo.java
com.min3d.lib.vos.Color4Managed.java
com.min3d.lib.vos.Color4.java
com.min3d.lib.vos.Face.java
com.min3d.lib.vos.FloatManaged.java
com.min3d.lib.vos.FogType.java
com.min3d.lib.vos.FrustumManaged.java
com.min3d.lib.vos.LightType.java
com.min3d.lib.vos.Light.java
com.min3d.lib.vos.Number3dManaged.java
com.min3d.lib.vos.Number3d.java
com.min3d.lib.vos.RenderType.java
com.min3d.lib.vos.ShadeModelManaged.java
com.min3d.lib.vos.ShadeModel.java
com.min3d.lib.vos.TexEnvxVo.java
com.min3d.lib.vos.TextureVo.java
com.min3d.lib.vos.Uv.java
com.min3d.lib.vos.Vertex3d.java