com.jme.light
Class Light

java.lang.Object
  extended by com.jme.light.Light
All Implemented Interfaces:
Savable, java.io.Serializable
Direct Known Subclasses:
DirectionalLight, PointLight

public abstract class Light
extends java.lang.Object
implements java.io.Serializable, Savable

Light defines the attributes of a light element. This class is abstract and intended to be subclassed by specific lighting types. A light will illuminate portions of the scene by assigning its properties to the objects in the scene. This will affect the objects color values, depending on the color of the ambient, diffuse and specular light components. Ambient light defines the general light of the scene, that is the intensity and color of lighting if no particular lights are affecting it. Diffuse lighting defines the reflection of light on matte surfaces. Specular lighting defines the reflection of light on shiny surfaces.

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

Nested Class Summary
static class Light.Type
           
 
Field Summary
protected  boolean shadowCaster
          when true, indicates the lights in this lightState will cast shadows.
 
Constructor Summary
Light()
          Constructor instantiates a new Light object.
 
Method Summary
 void copyFrom(Light light)
          Copies the light values from the given light into this Light.
 ColorRGBA getAmbient()
          getAmbient returns the ambient color value for this light.
 java.lang.Class<? extends Light> getClassTag()
           
 float getConstant()
          getConstant returns the value for the constant attenuation.
 ColorRGBA getDiffuse()
          getDiffuse returns the diffuse color value for this light.
 int getLightMask()
           
 float getLinear()
          getLinear returns the value for the linear attenuation.
 float getQuadratic()
          getQuadratic returns the value for the quadratic attentuation.
 ColorRGBA getSpecular()
          getSpecular returns the specular color value for this light.
abstract  Light.Type getType()
          getType returns the type of the light that has been created.
 boolean isAttenuate()
          isAttenuate returns true if attenuation is to be used for this light.
 boolean isEnabled()
          isEnabled returns true if the light is enabled, false otherwise.
 boolean isShadowCaster()
           
 void popLightMask()
          Recalls the light mask from a back store or 0 if none was pushed.
 void pushLightMask()
          Saves the light mask to a back store.
 void read(JMEImporter e)
           
 void setAmbient(ColorRGBA ambient)
          setAmbient sets the ambient color value for this light.
 void setAttenuate(boolean attenuate)
          setAttenuate sets if attenuation is to be used.
 void setConstant(float constant)
          setConstant sets the value for the constant attentuation.
 void setDiffuse(ColorRGBA diffuse)
          setDiffuse sets the diffuse color value for this light.
 void setEnabled(boolean value)
          setEnabled sets the light on or off.
 void setLightMask(int lightMask)
          setLightMask sets what attributes of this light to apply as an int comprised of bitwise |'ed values from LightState.Mask_XXXX.
 void setLinear(float linear)
          setLinear sets the value for the linear attentuation.
 void setQuadratic(float quadratic)
          setQuadratic sets the value for the quadratic attenuation.
 void setShadowCaster(boolean mayCastShadows)
           
 void setSpecular(ColorRGBA specular)
          setSpecular sets the specular color value for this light.
 void write(JMEExporter e)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

shadowCaster

protected boolean shadowCaster
when true, indicates the lights in this lightState will cast shadows.

Constructor Detail

Light

public Light()
Constructor instantiates a new Light object. All light color values are set to white.

Method Detail

getType

public abstract Light.Type getType()
getType returns the type of the light that has been created.

Returns:
the type of light that has been created.

getConstant

public float getConstant()
getConstant returns the value for the constant attenuation.

Returns:
the value for the constant attenuation.

setConstant

public void setConstant(float constant)
setConstant sets the value for the constant attentuation.

Parameters:
constant - the value for the constant attenuation.

getLinear

public float getLinear()
getLinear returns the value for the linear attenuation.

Returns:
the value for the linear attenuation.

setLinear

public void setLinear(float linear)
setLinear sets the value for the linear attentuation.

Parameters:
linear - the value for the linear attenuation.

getQuadratic

public float getQuadratic()
getQuadratic returns the value for the quadratic attentuation.

Returns:
the value for the quadratic attenuation.

setQuadratic

public void setQuadratic(float quadratic)
setQuadratic sets the value for the quadratic attenuation.

Parameters:
quadratic - the value for the quadratic attenuation.

isAttenuate

public boolean isAttenuate()
isAttenuate returns true if attenuation is to be used for this light.

Returns:
true if attenuation is to be used, false otherwise.

setAttenuate

public void setAttenuate(boolean attenuate)
setAttenuate sets if attenuation is to be used. True sets it on, false otherwise.

Parameters:
attenuate - true to use attenuation, false not to.

isEnabled

public boolean isEnabled()
isEnabled returns true if the light is enabled, false otherwise.

Returns:
true if the light is enabled, false if it is not.

setEnabled

public void setEnabled(boolean value)
setEnabled sets the light on or off. True turns it on, false turns it off.

Parameters:
value - true to turn the light on, false to turn it off.

getSpecular

public ColorRGBA getSpecular()
getSpecular returns the specular color value for this light.

Returns:
the specular color value of the light.

setSpecular

public void setSpecular(ColorRGBA specular)
setSpecular sets the specular color value for this light.

Parameters:
specular - the specular color value of the light.

getDiffuse

public ColorRGBA getDiffuse()
getDiffuse returns the diffuse color value for this light.

Returns:
the diffuse color value for this light.

setDiffuse

public void setDiffuse(ColorRGBA diffuse)
setDiffuse sets the diffuse color value for this light.

Parameters:
diffuse - the diffuse color value for this light.

getAmbient

public ColorRGBA getAmbient()
getAmbient returns the ambient color value for this light.

Returns:
the ambient color value for this light.

setAmbient

public void setAmbient(ColorRGBA ambient)
setAmbient sets the ambient color value for this light.

Parameters:
ambient - the ambient color value for this light.

getLightMask

public int getLightMask()
Returns:
Returns the lightMask - default is 0 or not masked.

setLightMask

public void setLightMask(int lightMask)
setLightMask sets what attributes of this light to apply as an int comprised of bitwise |'ed values from LightState.Mask_XXXX. LightMask.MASK_GLOBALAMBIENT is ignored.

Parameters:
lightMask - The lightMask to set.

pushLightMask

public void pushLightMask()
Saves the light mask to a back store. That backstore is recalled with popLightMask. Despite the name, this is not a stack and additional pushes will simply overwrite the backstored value.


popLightMask

public void popLightMask()
Recalls the light mask from a back store or 0 if none was pushed.

See Also:
pushLightMask()

isShadowCaster

public boolean isShadowCaster()
Returns:
Returns whether this light is able to cast shadows.

setShadowCaster

public void setShadowCaster(boolean mayCastShadows)
Parameters:
mayCastShadows - true if this light can be used to derive shadows (when used in conjunction with a shadow pass.)

copyFrom

public void copyFrom(Light light)
Copies the light values from the given light into this Light.

Parameters:
light - the Light to copy from.

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 Light> getClassTag()
Specified by:
getClassTag in interface Savable