## 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. 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:

- Constant attenuation
- Linear attenuation
- Quadratic attenuation

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

The constant attenuation factor
The Linear attenuation factor times the distance between the light and the vertex being illuminated
The quadratic attenuation factor times the square of the distance between the light and the vertex

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_LOCALE_READ, ALLOW_PARENT_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, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable`

Methods inherited from class javax.media.j3d.SceneGraphObject
`clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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:
  position : (0,0,0)
  attenuation : (1,0,0)

### 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)`

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.