com.jme.renderer
Class ColorRGBA

java.lang.Object
  extended bycom.jme.renderer.ColorRGBA
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable

public class ColorRGBA
extends java.lang.Object
implements java.io.Externalizable

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,v 1.17 2004/09/14 21:52:20 mojomonkey Exp $
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 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).
 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).
 
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.
 void clamp()
          clamp insures that all values are between 0 and 1.
 java.lang.Object clone()
          clone creates a new ColorRGBA object containing the same data as this one.
 boolean equals(java.lang.Object o)
          equals returns true if this color is logically equivalent to a given color.
 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.
static ColorRGBA randomColor()
          randomColor is a utility method that generates a random color.
 void readExternal(java.io.ObjectInput in)
          Used with serialization.
 void 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.
 java.lang.String toString()
          toString returns the string representation of this color.
 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).


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 void 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.

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

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

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]

Returns:
the string representation of this color.

clone

public java.lang.Object clone()
clone creates a new ColorRGBA object containing the same data as this one.

Returns:
the color that is the same as this.

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.

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.

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 -
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 -
Throws:
java.io.IOException
See Also:
Externalizable