javax.media.j3d
Class SpotLight

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Leaf
              extended by javax.media.j3d.Light
                  extended by javax.media.j3d.PointLight
                      extended by javax.media.j3d.SpotLight

public class SpotLight
extends PointLight

The SpotLight object specifies an attenuated light source at a fixed point in space that radiates light in a specified direction from the light source. A SpotLight has the same attributes as a PointLight node, with the addition of the following:

A spot light contributes to diffuse and specular reflections, which depend on the orientation and position of an object's surface. A spot light does not contribute to ambient reflections.


Field Summary
static int ALLOW_CONCENTRATION_READ
          Specifies that the Node allows reading its spot lights concentration information.
static int ALLOW_CONCENTRATION_WRITE
          Specifies that the Node allows writing to its spot lights concentration information.
static int ALLOW_DIRECTION_READ
          Specifies that the Node allows reading its spot lights direction information.
static int ALLOW_DIRECTION_WRITE
          Specifies that the Node allows writing to its spot lights direction information.
static int ALLOW_SPREAD_ANGLE_READ
          Specifies that the Node allows reading its spot lights spread angle information.
static int ALLOW_SPREAD_ANGLE_WRITE
          Specifies that the Node allows writing to its spot lights spread angle information.
 
Fields inherited from class javax.media.j3d.PointLight
ALLOW_ATTENUATION_READ, ALLOW_ATTENUATION_WRITE, ALLOW_POSITION_READ, ALLOW_POSITION_WRITE
 
Fields inherited from class javax.media.j3d.Light
ALLOW_COLOR_READ, ALLOW_COLOR_WRITE, ALLOW_INFLUENCING_BOUNDS_READ, ALLOW_INFLUENCING_BOUNDS_WRITE, ALLOW_SCOPE_READ, ALLOW_SCOPE_WRITE, ALLOW_STATE_READ, ALLOW_STATE_WRITE
 
Fields inherited from class javax.media.j3d.Node
ALLOW_AUTO_COMPUTE_BOUNDS_READ, ALLOW_AUTO_COMPUTE_BOUNDS_WRITE, ALLOW_BOUNDS_READ, ALLOW_BOUNDS_WRITE, ALLOW_COLLIDABLE_READ, ALLOW_COLLIDABLE_WRITE, ALLOW_LOCAL_TO_VWORLD_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
 
Constructor Summary
SpotLight()
          Constructs a SpotLight node with default parameters.
SpotLight(boolean lightOn, Color3f color, Point3f position, Point3f attenuation, Vector3f direction, float spreadAngle, float concentration)
          Constructs and initializes a SpotLight node using the specified parameters.
SpotLight(Color3f color, Point3f position, Point3f attenuation, Vector3f direction, float spreadAngle, float concentration)
          Constructs and initializes a SpotLight node using the specified parameters.
 
Method Summary
 Node cloneNode(boolean forceDuplicate)
          Used to create a new instance of the node.
 float getConcentration()
          Gets spot light concentration.
 void getDirection(Vector3f direction)
          Gets this Light's current direction and places it in the parameter specified.
 float getSpreadAngle()
          Gets spot light spread angle.
 void setConcentration(float concentration)
          Sets spot light concentration.
 void setDirection(float x, float y, float z)
          Sets light direction.
 void setDirection(Vector3f direction)
          Sets this Light's current direction and places it in the parameter specified.
 void setSpreadAngle(float spreadAngle)
          Sets spot light spread angle.
 
Methods inherited from class javax.media.j3d.PointLight
getAttenuation, getPosition, setAttenuation, setAttenuation, setPosition, setPosition
 
Methods inherited from class javax.media.j3d.Light
addScope, getAllScopes, getColor, getEnable, getInfluencingBoundingLeaf, getInfluencingBounds, getScope, indexOfScope, insertScope, numScopes, removeAllScopes, removeScope, removeScope, setColor, setEnable, setInfluencingBoundingLeaf, setInfluencingBounds, setScope, updateNodeReferences
 
Methods inherited from class javax.media.j3d.Node
cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, duplicateNode, getBounds, getBoundsAutoCompute, getCollidable, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ALLOW_SPREAD_ANGLE_WRITE

public static final int ALLOW_SPREAD_ANGLE_WRITE
Specifies that the Node allows writing to its spot lights spread angle information.

See Also:
Constant Field Values

ALLOW_SPREAD_ANGLE_READ

public static final int ALLOW_SPREAD_ANGLE_READ
Specifies that the Node allows reading its spot lights spread angle information.

See Also:
Constant Field Values

ALLOW_CONCENTRATION_WRITE

public static final int ALLOW_CONCENTRATION_WRITE
Specifies that the Node allows writing to its spot lights concentration information.

See Also:
Constant Field Values

ALLOW_CONCENTRATION_READ

public static final int ALLOW_CONCENTRATION_READ
Specifies that the Node allows reading its spot lights concentration information.

See Also:
Constant Field Values

ALLOW_DIRECTION_WRITE

public static final int ALLOW_DIRECTION_WRITE
Specifies that the Node allows writing to its spot lights direction information.

See Also:
Constant Field Values

ALLOW_DIRECTION_READ

public static final int ALLOW_DIRECTION_READ
Specifies that the Node allows reading its spot lights direction information.

See Also:
Constant Field Values
Constructor Detail

SpotLight

public SpotLight()
Constructs a SpotLight node with default parameters. The default values are as follows:


SpotLight

public SpotLight(Color3f color,
                 Point3f position,
                 Point3f attenuation,
                 Vector3f direction,
                 float spreadAngle,
                 float concentration)
Constructs and initializes a SpotLight node using the specified parameters.

Parameters:
color - the color of the light source
position - the position of the light in three-space
attenuation - the attenuation (constant, linear, quadratic) of the light
direction - the direction of the light
spreadAngle - the spread angle of the light
concentration - the concentration of the light

SpotLight

public SpotLight(boolean lightOn,
                 Color3f color,
                 Point3f position,
                 Point3f attenuation,
                 Vector3f direction,
                 float spreadAngle,
                 float concentration)
Constructs and initializes a SpotLight node using the specified parameters.

Parameters:
lightOn - flag indicating whether this light is on or off
color - the color of the light source
position - the position of the light in three-space
attenuation - the attenuation (constant, linear, quadratic) of the light
direction - the direction of the light
spreadAngle - the spread angle of the light
concentration - the concentration of the light
Method Detail

setSpreadAngle

public void setSpreadAngle(float spreadAngle)
Sets spot light spread angle.

Parameters:
spreadAngle - the new spread angle for spot light
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph.

getSpreadAngle

public float getSpreadAngle()
Gets spot light spread angle.

Returns:
the new spread angle for spot light. The value returned is the clamped value.
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setConcentration

public void setConcentration(float concentration)
Sets spot light concentration.

Parameters:
concentration - the new concentration for spot light
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getConcentration

public float getConcentration()
Gets spot light concentration.

Returns:
the new concentration for spot light
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setDirection

public void setDirection(float x,
                         float y,
                         float z)
Sets light direction.

Parameters:
x - the new X direction
y - the new Y direction
z - the new Z direction
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

setDirection

public void setDirection(Vector3f direction)
Sets this Light's current direction and places it in the parameter specified.

Parameters:
direction - the vector that will receive this node's direction
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getDirection

public void getDirection(Vector3f direction)
Gets this Light's current direction and places it in the parameter specified.

Parameters:
direction - the vector that will receive this node's direction
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

cloneNode

public Node cloneNode(boolean forceDuplicate)
Used to create a new instance of the node. This routine is called by cloneTree to duplicate the current node.

Overrides:
cloneNode in class PointLight
Parameters:
forceDuplicate - when set to true, causes the duplicateOnCloneTree flag to be ignored. When false, the value of each node's duplicateOnCloneTree variable determines whether NodeComponent data is duplicated or copied.
See Also:
Node.cloneTree(), Node.cloneNode(boolean), Node.duplicateNode(javax.media.j3d.Node, boolean), NodeComponent.setDuplicateOnCloneTree(boolean)