javax.media.j3d
Class PointLight

java.lang.Object
  |
  +--javax.media.j3d.SceneGraphObject
        |
        +--javax.media.j3d.Node
              |
              +--javax.media.j3d.Leaf
                    |
                    +--javax.media.j3d.Light
                          |
                          +--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.


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_PICK, 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 duplicateNode(Node originalNode, boolean forceDuplicate)
          Copies all node information from originalNode into the current 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, insertScope, numScopes, removeScope, setColor, setEnable, setInfluencingBoundingLeaf, setInfluencingBounds, setScope, updateNodeReferences
 
Methods inherited from class javax.media.j3d.Node
cloneTree, cloneTree, cloneTree, getBounds, getBoundsAutoCompute, getCollidable, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable
 
Methods inherited from class javax.media.j3d.SceneGraphObject
clearCapability, duplicateSceneGraphObject, getCapability, getUserData, isCompiled, isLive, setCapability, 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.

ALLOW_POSITION_WRITE

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

ALLOW_ATTENUATION_READ

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

ALLOW_ATTENUATION_WRITE

public static final int ALLOW_ATTENUATION_WRITE
Specifies that this PointLight node allows writing its attenuation information.
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 final 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 final 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 final 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 final 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 final 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 final 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)

duplicateNode

public void duplicateNode(Node originalNode,
                          boolean forceDuplicate)
Copies all node information from originalNode into the current node. This method is called from the cloneNode method which is, in turn, called by the cloneTree method.

For any NodeComponent objects contained by the object being duplicated, each NodeComponent object's duplicateOnCloneTree value is used to determine whether the NodeComponent should be duplicated in the new node or if just a reference to the current node should be placed in the new node. This flag can be overridden by setting the forceDuplicate parameter in the cloneTree method to true.

Overrides:
duplicateNode in class Node
Parameters:
originalNode - the original node to duplicate.
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), NodeComponent.setDuplicateOnCloneTree(boolean)