com.jme.renderer
Class ColorRGBA

java.lang.Object
  extended by com.jme.renderer.ColorRGBA
All Implemented Interfaces:
Savable, java.io.Externalizable, java.io.Serializable, java.lang.Cloneable

public class ColorRGBA
extends java.lang.Object
implements java.io.Externalizable, Savable, java.lang.Cloneable

ColorRGBA defines a color made from a collection of red, green and blue values. An alpha value determines is transparency. All values must be between 0 and 1. If any value is set higher or lower than these constraints they are clamped to the min or max. That is, if a value smaller than zero is set the value clamps to zero. If a value higher than 1 is passed, that value is clamped to 1. However, because the attributes r, g, b, a are public for efficiency reasons, they can be directly modified with invalid values. The client should take care when directly addressing the values. A call to clamp will assure that the values are within the constraints.

Version:
$Id: ColorRGBA.java 4131 2009-03-19 20:15:28Z blaine.dev $
Author:
Mark Powell
See Also:
Serialized Form

Field Summary
 float a
          the alpha component of the color.
 float b
          the blue component of the color.
static ColorRGBA black
          the color black (0,0,0).
static ColorRGBA blue
          the color blue (0,0,1).
static ColorRGBA brown
          the color brown (65/255, 40/255, 25/255).
static ColorRGBA cyan
          the color cyan (0,1,1).
static ColorRGBA darkGray
          the color gray (.2,.2,.2).
 float g
          The green component of the color.
static ColorRGBA gray
          the color gray (.5,.5,.5).
static ColorRGBA green
          the color green (0,1,0).
static ColorRGBA lightGray
          the color gray (.8,.8,.8).
static ColorRGBA magenta
          the color magenta (1,0,1).
static ColorRGBA orange
          the color orange (251/255, 130/255,0).
static ColorRGBA pink
          the color pink (1, 0.68, 0.68).
 float r
          The red component of the color.
static ColorRGBA red
          the color red (1,0,0).
static ColorRGBA white
          the color white (1,1,1).
static ColorRGBA yellow
          the color yellow (1,1,0).
 
Constructor Summary
ColorRGBA()
          Constructor instantiates a new ColorRGBA object.
ColorRGBA(ColorRGBA rgba)
          Copy constructor creates a new ColorRGBA object, based on a provided color.
ColorRGBA(float r, float g, float b, float a)
          Constructor instantiates a new ColorRGBA object.
 
Method Summary
 ColorRGBA add(ColorRGBA c)
          Adds each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA.
 ColorRGBA addLocal(ColorRGBA c)
          Multiplies each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA.
 int asIntARGB()
           
 int asIntRGBA()
           
 void clamp()
          clamp insures that all values are between 0 and 1.
 ColorRGBA clone()
           
 boolean equals(java.lang.Object o)
          equals returns true if this color is logically equivalent to a given color.
 void fromIntARGB(int color)
           
 void fromIntRGBA(int color)
           
 java.lang.Class<? extends ColorRGBA> getClassTag()
           
 float[] getColorArray()
          getColorArray retrieves the color values of this object as a four element float array.
 float[] getColorArray(float[] store)
          Stores the current r/g/b/a values into the tempf array.
 int hashCode()
          hashCode returns a unique code for this color object based on it's values.
 void interpolate(ColorRGBA beginColor, ColorRGBA finalColor, float changeAmnt)
          Sets this color to the interpolation by changeAmnt from beginColor to finalColor this=(1-changeAmnt)*beginColor + changeAmnt * finalColor
 void interpolate(ColorRGBA finalColor, float changeAmnt)
          Sets this color to the interpolation by changeAmnt from this to the finalColor this=(1-changeAmnt)*this + changeAmnt * finalColor
 ColorRGBA mult(ColorRGBA c)
          Multiplies each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA.
 ColorRGBA multLocal(float scalar)
          Multiplies each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA.
static ColorRGBA randomColor()
          randomColor is a utility method that generates a random color.
 void read(JMEImporter e)
           
 void readExternal(java.io.ObjectInput in)
          Used with serialization.
 ColorRGBA set(ColorRGBA rgba)
          set sets the values of this color to those set by a parameter color.
 void set(float r, float g, float b, float a)
          set sets the RGBA values of this color.
 float[] toArray(float[] floats)
          Saves this ColorRGBA into the given float[] object.
 java.lang.String toString()
          toString returns the string representation of this color.
 void write(JMEExporter e)
           
 void writeExternal(java.io.ObjectOutput out)
          Used with serialization.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

black

public static final ColorRGBA black
the color black (0,0,0).


white

public static final ColorRGBA white
the color white (1,1,1).


darkGray

public static final ColorRGBA darkGray
the color gray (.2,.2,.2).


gray

public static final ColorRGBA gray
the color gray (.5,.5,.5).


lightGray

public static final ColorRGBA lightGray
the color gray (.8,.8,.8).


red

public static final ColorRGBA red
the color red (1,0,0).


green

public static final ColorRGBA green
the color green (0,1,0).


blue

public static final ColorRGBA blue
the color blue (0,0,1).


yellow

public static final ColorRGBA yellow
the color yellow (1,1,0).


magenta

public static final ColorRGBA magenta
the color magenta (1,0,1).


cyan

public static final ColorRGBA cyan
the color cyan (0,1,1).


orange

public static final ColorRGBA orange
the color orange (251/255, 130/255,0).


brown

public static final ColorRGBA brown
the color brown (65/255, 40/255, 25/255).


pink

public static final ColorRGBA pink
the color pink (1, 0.68, 0.68).


r

public float r
The red component of the color.


g

public float g
The green component of the color.


b

public float b
the blue component of the color.


a

public float a
the alpha component of the color. 0 is transparent and 1 is opaque

Constructor Detail

ColorRGBA

public ColorRGBA()
Constructor instantiates a new ColorRGBA object. This color is the default "white" with all values 1.


ColorRGBA

public ColorRGBA(float r,
                 float g,
                 float b,
                 float a)
Constructor instantiates a new ColorRGBA object. The values are defined as passed parameters. These values are then clamped to insure that they are between 0 and 1.

Parameters:
r - the red component of this color.
g - the green component of this color.
b - the blue component of this color.
a - the alpha component of this color.

ColorRGBA

public ColorRGBA(ColorRGBA rgba)
Copy constructor creates a new ColorRGBA object, based on a provided color.

Parameters:
rgba - the ColorRGBA object to copy.
Method Detail

set

public void set(float r,
                float g,
                float b,
                float a)
set sets the RGBA values of this color. The values are then clamped to insure that they are between 0 and 1.

Parameters:
r - the red component of this color.
g - the green component of this color.
b - the blue component of this color.
a - the alpha component of this color.

set

public ColorRGBA set(ColorRGBA rgba)
set sets the values of this color to those set by a parameter color.

Parameters:
rgba - ColorRGBA the color to set this color to.
Returns:
this

clamp

public void clamp()
clamp insures that all values are between 0 and 1. If any are less than 0 they are set to zero. If any are more than 1 they are set to one.


getColorArray

public float[] getColorArray()
getColorArray retrieves the color values of this object as a four element float array.

Returns:
the float array that contains the color elements.

getColorArray

public float[] getColorArray(float[] store)
Stores the current r/g/b/a values into the tempf array. The tempf array must have a length of 4 or greater, or an array index out of bounds exception will be thrown.

Parameters:
store - The array of floats to store the values into.
Returns:
The float[] after storage.

interpolate

public void interpolate(ColorRGBA finalColor,
                        float changeAmnt)
Sets this color to the interpolation by changeAmnt from this to the finalColor this=(1-changeAmnt)*this + changeAmnt * finalColor

Parameters:
finalColor - The final color to interpolate towards
changeAmnt - An amount between 0.0 - 1.0 representing a precentage change from this towards finalColor

interpolate

public void interpolate(ColorRGBA beginColor,
                        ColorRGBA finalColor,
                        float changeAmnt)
Sets this color to the interpolation by changeAmnt from beginColor to finalColor this=(1-changeAmnt)*beginColor + changeAmnt * finalColor

Parameters:
beginColor - The begining color (changeAmnt=0)
finalColor - The final color to interpolate towards (changeAmnt=1)
changeAmnt - An amount between 0.0 - 1.0 representing a precentage change from beginColor towards finalColor

randomColor

public static ColorRGBA randomColor()
randomColor is a utility method that generates a random color.

Returns:
a random color.

mult

public ColorRGBA mult(ColorRGBA c)
Multiplies each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA. Used as a way of combining colors and lights.

Parameters:
c - The color to multiply.
Returns:
The new ColorRGBA. this*c

multLocal

public ColorRGBA multLocal(float scalar)
Multiplies each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA. Used as a way of combining colors and lights.

Parameters:
scalar - scalar to multiply with
Returns:
The new ColorRGBA. this*c

add

public ColorRGBA add(ColorRGBA c)
Adds each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA.

Parameters:
c - The color to add.
Returns:
The new ColorRGBA. this+c

addLocal

public ColorRGBA addLocal(ColorRGBA c)
Multiplies each r/g/b/a of this color by the r/g/b/a of the given color and returns the result as a new ColorRGBA. Used as a way of combining colors and lights.

Parameters:
c - The color to multiply.
Returns:
The new ColorRGBA. this*c

toString

public java.lang.String toString()
toString returns the string representation of this color. The format of the string is:
com.jme.ColorRGBA: [R=RR.RRRR, G=GG.GGGG, B=BB.BBBB, A=AA.AAAA]

Overrides:
toString in class java.lang.Object
Returns:
the string representation of this color.

clone

public ColorRGBA clone()
Overrides:
clone in class java.lang.Object

toArray

public float[] toArray(float[] floats)
Saves this ColorRGBA into the given float[] object.

Parameters:
floats - The float[] to take this ColorRGBA. If null, a new float[4] is created.
Returns:
The array, with R, G, B, A float values in that order

equals

public boolean equals(java.lang.Object o)
equals returns true if this color is logically equivalent to a given color. That is, if the values of the two colors are the same. False is returned otherwise.

Overrides:
equals in class java.lang.Object
Parameters:
o - the object to compare againts.
Returns:
true if the colors are equal, false otherwise.

hashCode

public int hashCode()
hashCode returns a unique code for this color object based on it's values. If two colors are logically equivalent, they will return the same hash code value.

Overrides:
hashCode in class java.lang.Object
Returns:
the hash code value of this color.

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Used with serialization. Not to be called manually.

Specified by:
readExternal in interface java.io.Externalizable
Parameters:
in - where to read from
Throws:
java.io.IOException
java.lang.ClassNotFoundException
See Also:
Externalizable

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Used with serialization. Not to be called manually. *

Specified by:
writeExternal in interface java.io.Externalizable
Parameters:
out - where to write to
Throws:
java.io.IOException
See Also:
Externalizable

write

public void write(JMEExporter e)
           throws java.io.IOException
Specified by:
write in interface Savable
Throws:
java.io.IOException

read

public void read(JMEImporter e)
          throws java.io.IOException
Specified by:
read in interface Savable
Throws:
java.io.IOException

getClassTag

public java.lang.Class<? extends ColorRGBA> getClassTag()
Specified by:
getClassTag in interface Savable

asIntARGB

public int asIntARGB()

asIntRGBA

public int asIntRGBA()

fromIntARGB

public void fromIntARGB(int color)

fromIntRGBA

public void fromIntRGBA(int color)