|
Aviatrix3D 2.1.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.j3d.aviatrix3d.SceneGraphObject org.j3d.aviatrix3d.Node org.j3d.aviatrix3d.Leaf org.j3d.aviatrix3d.Light
public abstract class Light
Base representation of a light source that corresponds to the base set of capabilities that all lights in OpenGL have.
By default a light is not enabled and the colour is set to black. Lights also have a secondary specular value that can be provided. By default it is black (ie has no effect). An ambient component can also be provided with this light source in addition to it's derived effects.
Rendering Implementation Tips
The external data passed to the ComponentRenderable calls shall be an
Integer
instance that represents the GL identifier of the
Light (GL_LIGHT0 + i) this instance is working with.
See the EffectRenderable
interface for definition of the scoping
and effects bounds.
Internationalisation Resource Names
Field Summary | |
---|---|
protected static int |
AMBIENT_TYPE
Internal type to describe that this is a pure ambient light type |
protected float[] |
ambientColor
The colour of the light |
protected float[] |
diffuseColor
The colour of the light |
protected static int |
DIRECTIONAL_TYPE
Internal type to describe that this is a directional light type |
protected BoundingVolume |
effectBounds
A bounding volume used to restrict the scope of what the light effects. |
protected boolean |
enabled
The enabled state |
protected boolean |
globalOnly
Flag indicating whether this should be a global (true) or locally-scoped light (false). |
protected static java.lang.String |
INVALID_ALPHA_PROP
Message when the drawing mode is not a valid value |
protected static java.lang.String |
INVALID_BLUE_PROP
Message when the drawing mode is not a valid value |
protected static java.lang.String |
INVALID_GREEN_PROP
Message when the drawing mode is not a valid value |
protected static java.lang.String |
INVALID_RED_PROP
Message when the drawing mode is not a valid value |
protected static int |
POINT_TYPE
Internal type to describe that this is a point light type |
protected float[] |
specularColor
The colour of the light |
protected static int |
SPOT_TYPE
Internal type to describe that this is a spotlight light type |
Fields inherited from class org.j3d.aviatrix3d.Node |
---|
bounds, implicitBounds, INVALID_BOUNDS, parent |
Fields inherited from class org.j3d.aviatrix3d.SceneGraphObject |
---|
alive, LISTENER_SET_TIMING_ERR_PROP, updateHandler |
Fields inherited from interface org.j3d.aviatrix3d.rendering.LeafCullable |
---|
AUDIO_CULLABLE, CLIP_CULLABLE, FOG_CULLABLE, GEOMETRY_CULLABLE, LIGHT_CULLABLE, OVERRIDE_CULLABLE |
Constructor Summary | |
---|---|
protected |
Light(int type)
Creates a light with the colour and specular colour set to black. |
protected |
Light(int type,
float[] diffuse)
Create a light with the given base diffuse colour.Colour must be in the range [0, 1] otherwise an exception is generated. |
Method Summary | |
---|---|
protected int |
compareColor3(float[] a,
float[] b)
Compare 2 color arrays of length 3 for equality |
int |
compareTo(Light l)
Compares this object with the specified object for order. |
int |
compareTo(java.lang.Object o)
Compares this object with the specified object for order. |
void |
getAmbientColor(float[] col)
Retrieve the current colour value from the light. |
int |
getCullableType()
Get the type that this cullable represents. |
void |
getDiffuseColor(float[] col)
Retrieve the current diffuse colour value from the light. |
BoundingVolume |
getEffectBounds()
Get the current bounding volume that this light effects. |
Renderable |
getRenderable()
Get the child renderable of this object. |
void |
getSpecularColor(float[] col)
Retrieve the current colour value from the light. |
boolean |
isEnabled()
Get the current enabled state of the light. |
boolean |
isGlobalOnly()
Get the current setting of the global-only flag. |
void |
setAmbientColor(float[] col)
Set the ambient colour to the new value. |
void |
setDiffuseColor(float[] col)
Set the diffuse colour component to the new value. |
void |
setEffectBounds(BoundingVolume bounds)
Set the bounds that will effect the range of this light. |
void |
setEnabled(boolean state)
Set the enabled state of the light. |
void |
setGlobalOnly(boolean state)
Set the global scope state of the light. |
void |
setSpecularColor(float[] col)
Set the colour to the new value. |
Methods inherited from class org.j3d.aviatrix3d.Node |
---|
boundsChanged, checkForCyclicParent, getBounds, getParent, markBoundsDirty, recomputeBounds, removeParent, requestBoundsUpdate, setBounds, setParent, updateBounds, updateParentBounds |
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject |
---|
checkForCyclicChild, dataChanged, getAppUpdateWriteTimingMessage, getBoundsWriteTimingMessage, getDataWriteTimingMessage, getUserData, isLive, setLive, setUpdateHandler, setUserData |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.j3d.aviatrix3d.rendering.LeafCullable |
---|
getBounds |
Methods inherited from interface org.j3d.aviatrix3d.rendering.ComponentRenderable |
---|
postRender, render |
Methods inherited from interface org.j3d.aviatrix3d.rendering.Renderable |
---|
equals |
Field Detail |
---|
protected static final java.lang.String INVALID_RED_PROP
protected static final java.lang.String INVALID_GREEN_PROP
protected static final java.lang.String INVALID_BLUE_PROP
protected static final java.lang.String INVALID_ALPHA_PROP
protected static final int SPOT_TYPE
protected static final int POINT_TYPE
protected static final int DIRECTIONAL_TYPE
protected static final int AMBIENT_TYPE
protected float[] ambientColor
protected float[] diffuseColor
protected float[] specularColor
protected boolean enabled
protected boolean globalOnly
protected BoundingVolume effectBounds
globalOnly
state. The bounds are in the local
coordinate system of this light.
Constructor Detail |
---|
protected Light(int type)
type
- The type of light that this one isprotected Light(int type, float[] diffuse) throws java.lang.IllegalArgumentException
type
- The type of light that this one isdiffuse
- The diffuse colour value to use
java.lang.IllegalArgumentException
- The colour value is out of rangeMethod Detail |
---|
public int getCullableType()
getCullableType
in interface LeafCullable
public Renderable getRenderable()
getRenderable
in interface LeafCullable
public boolean isEnabled()
isEnabled
in interface CascadeRenderable
public boolean isGlobalOnly()
isGlobalOnly
in interface EffectRenderable
public BoundingVolume getEffectBounds()
getEffectBounds
in interface EffectRenderable
public int compareTo(java.lang.Object o) throws java.lang.ClassCastException
Derived classes should extend this one to add the extra comparisons needed.
compareTo
in interface java.lang.Comparable
o
- The object to be compared
java.lang.ClassCastException
- The specified object's type prevents it from
being compared to this Objectpublic void setEnabled(boolean state) throws InvalidWriteTimingException
state
- The new state of the light
InvalidWriteTimingException
- An attempt was made to write outside
of the NodeUpdateListener data changed callback methodpublic void setGlobalOnly(boolean state) throws InvalidWriteTimingException
state
- The new state of the light
InvalidWriteTimingException
- An attempt was made to write outside
of the NodeUpdateListener data changed callback methodpublic void setEffectBounds(BoundingVolume bounds) throws InvalidWriteTimingException
bounds
- A volume to use or null to clear
InvalidWriteTimingException
- An attempt was made to write outside
of the NodeUpdateListener data changed callback methodpublic void setAmbientColor(float[] col) throws java.lang.IllegalArgumentException, InvalidWriteTimingException
col
- The new colour value to use
java.lang.IllegalArgumentException
- The colour value is out of range
InvalidWriteTimingException
- An attempt was made to write outside
of the NodeUpdateListener data changed callback methodpublic void getAmbientColor(float[] col)
col
- An array to copy the colour value intopublic void setDiffuseColor(float[] col) throws java.lang.IllegalArgumentException, InvalidWriteTimingException
col
- The new colour value to use
java.lang.IllegalArgumentException
- The colour value is out of range
InvalidWriteTimingException
public void getDiffuseColor(float[] col)
col
- An array to copy the colour value intopublic void setSpecularColor(float[] col) throws java.lang.IllegalArgumentException, InvalidWriteTimingException
col
- The new colour value to use
java.lang.IllegalArgumentException
- The colour value is out of range
InvalidWriteTimingException
- An attempt was made to write outside
of the NodeUpdateListener data changed callback methodpublic void getSpecularColor(float[] col)
col
- An array to copy the colour value intopublic int compareTo(Light l)
l
- The light instance to be compared
protected int compareColor3(float[] a, float[] b)
a
- The first colour array to checkb
- The first colour array to check
|
Aviatrix3D 2.1.0 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |