javax.media.j3d
Class PointLight

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
Direct Known Subclasses:
SpotLight

public class PointLight
extends Light

The PointLight object specifies an attenuated light source at a fixed point in space that radiates light equally in all directions away from the light source. PointLight has the same attributes as a Light node, with the addition of location and attenuation parameters.

A point light contributes to diffuse and specular reflections, which in turn depend on the orientation and position of a surface. A point light does not contribute to ambient reflections.

A PointLight is attenuated by multiplying the contribution of the light by an attenuation factor. The attenuation factor causes the the PointLight's brightness to decrease as distance from the light source increases. A PointLight's attenuation factor contains three values:

A PointLight is attenuated by the reciprocal of the sum of:

By default, the constant attenuation value is 1 and the other two values are 0, resulting in no attenuation.


Field Summary
static int ALLOW_ATTENUATION_READ
          Specifies that this PointLight node allows reading its attenuation information.
static int ALLOW_ATTENUATION_WRITE
          Specifies that this PointLight node allows writing its attenuation information.
static int ALLOW_POSITION_READ
          Specifies that this PointLight node allows reading its position information.
static int ALLOW_POSITION_WRITE
          Specifies that this PointLight node allows writing its position information.
 
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
PointLight()
          Constructs a PointLight node with default parameters.
PointLight(boolean lightOn, Color3f color, Point3f position, Point3f attenuation)
          Constructs and initializes a point light.
PointLight(Color3f color, Point3f position, Point3f attenuation)
          Constructs and initializes a point light.
 
Method Summary
 Node cloneNode(boolean forceDuplicate)
          Used to create a new instance of the node.
 void getAttenuation(Point3f attenuation)
          Gets this Light's current attenuation values and places it in the parameter specified.
 void getPosition(Point3f position)
          Gets this Light's current position and places it in the parameter specified.
 void setAttenuation(float constant, float linear, float quadratic)
          Sets this Light's current attenuation values and places it in the parameter specified.
 void setAttenuation(Point3f attenuation)
          Sets this Light's current attenuation values and places it in the parameter specified.
 void setPosition(float x, float y, float z)
          Set light position.
 void setPosition(Point3f position)
          Set light position.
 
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_POSITION_READ

public static final int ALLOW_POSITION_READ
Specifies that this PointLight node allows reading its position information.

See Also:
Constant Field Values

ALLOW_POSITION_WRITE

public static final int ALLOW_POSITION_WRITE
Specifies that this PointLight node allows writing its position information.

See Also:
Constant Field Values

ALLOW_ATTENUATION_READ

public static final int ALLOW_ATTENUATION_READ
Specifies that this PointLight node allows reading its attenuation information.

See Also:
Constant Field Values

ALLOW_ATTENUATION_WRITE

public static final int ALLOW_ATTENUATION_WRITE
Specifies that this PointLight node allows writing its attenuation information.

See Also:
Constant Field Values
Constructor Detail

PointLight

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


PointLight

public PointLight(Color3f color,
                  Point3f position,
                  Point3f attenuation)
Constructs and initializes a point light.

Parameters:
color - the color of the light source
position - the position of the light in three-space
attenuation - the attenutation (constant, linear, quadratic) of the light

PointLight

public PointLight(boolean lightOn,
                  Color3f color,
                  Point3f position,
                  Point3f attenuation)
Constructs and initializes a point light.

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
Method Detail

setPosition

public void setPosition(Point3f position)
Set light position.

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

setPosition

public void setPosition(float x,
                        float y,
                        float z)
Set light position.

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

getPosition

public void getPosition(Point3f position)
Gets this Light's current position and places it in the parameter specified.

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

setAttenuation

public void setAttenuation(Point3f attenuation)
Sets this Light's current attenuation values and places it in the parameter specified.

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

setAttenuation

public void setAttenuation(float constant,
                           float linear,
                           float quadratic)
Sets this Light's current attenuation values and places it in the parameter specified.

Parameters:
constant - the light's constant attenuation
linear - the light's linear attenuation
quadratic - the light's quadratic attenuation
Throws:
CapabilityNotSetException - if appropriate capability is not set and this object is part of live or compiled scene graph

getAttenuation

public void getAttenuation(Point3f attenuation)
Gets this Light's current attenuation values and places it in the parameter specified.

Parameters:
attenuation - the vector that will receive the attenuation values
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 Node
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)