Package javax.media.j3d
Class SpotLight
java.lang.Object
javax.media.j3d.SceneGraphObject
javax.media.j3d.Node
javax.media.j3d.Leaf
javax.media.j3d.Light
javax.media.j3d.PointLight
javax.media.j3d.SpotLight
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:
- Direction - The axis of the cone of light. The default direction is (0.0, 0.0, -1.0). The spot light direction is significant only when the spread angle is not PI radians (which it is by default).
- Spread angle - The angle in radians between the direction axis and a ray along the edge of the cone. Note that the angle of the cone at the apex is then twice this value. The range of values is [0.0,PI/2] radians, with a special value of PI radians. Values lower than 0 are clamped to 0 and values over PI/2 are clamped to PI. The default spread angle is PI radians.
- Concentration - Specifies how quickly the light intensity attenuates as a function of the angle of radiation as measured from the direction of radiation. The light's intensity is highest at the center of the cone and is attenuated toward the edges of the cone by the cosine of the angle between the direction of the light and the direction from the light to the object being lit, raised to the power of the spot concentration exponent. The higher the concentration value, the more focused the light source. The range of values is [0.0,128.0]. The default concentration is 0.0, which provides uniform light distribution.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Specifies that the Node allows reading its spot lights concentration information.static final int
Specifies that the Node allows writing to its spot lights concentration information.static final int
Specifies that the Node allows reading its spot lights direction information.static final int
Specifies that the Node allows writing to its spot lights direction information.static final int
Specifies that the Node allows reading its spot lights spread angle information.static final int
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_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING
-
Constructor Summary
ConstructorsConstructorDescriptionConstructs a SpotLight node with default parameters.SpotLight
(boolean lightOn, javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation, javax.vecmath.Vector3f direction, float spreadAngle, float concentration) Constructs and initializes a SpotLight node using the specified parameters.SpotLight
(javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation, javax.vecmath.Vector3f direction, float spreadAngle, float concentration) Constructs and initializes a SpotLight node using the specified parameters. -
Method Summary
Modifier and TypeMethodDescriptioncloneNode
(boolean forceDuplicate) Used to create a new instance of the node.float
Gets spot light concentration.void
getDirection
(javax.vecmath.Vector3f direction) Gets this Light's current direction and places it in the parameter specified.float
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
(javax.vecmath.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, 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
-
Field Details
-
ALLOW_SPREAD_ANGLE_WRITE
public static final int ALLOW_SPREAD_ANGLE_WRITESpecifies that the Node allows writing to its spot lights spread angle information.- See Also:
-
ALLOW_SPREAD_ANGLE_READ
public static final int ALLOW_SPREAD_ANGLE_READSpecifies that the Node allows reading its spot lights spread angle information.- See Also:
-
ALLOW_CONCENTRATION_WRITE
public static final int ALLOW_CONCENTRATION_WRITESpecifies that the Node allows writing to its spot lights concentration information.- See Also:
-
ALLOW_CONCENTRATION_READ
public static final int ALLOW_CONCENTRATION_READSpecifies that the Node allows reading its spot lights concentration information.- See Also:
-
ALLOW_DIRECTION_WRITE
public static final int ALLOW_DIRECTION_WRITESpecifies that the Node allows writing to its spot lights direction information.- See Also:
-
ALLOW_DIRECTION_READ
public static final int ALLOW_DIRECTION_READSpecifies that the Node allows reading its spot lights direction information.- See Also:
-
-
Constructor Details
-
SpotLight
public SpotLight()Constructs a SpotLight node with default parameters. The default values are as follows:-
direction : (0,0,-1)
spread angle : PI radians
concentration : 0.0
-
SpotLight
public SpotLight(javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation, javax.vecmath.Vector3f direction, float spreadAngle, float concentration) Constructs and initializes a SpotLight node using the specified parameters.- Parameters:
color
- the color of the light sourceposition
- the position of the light in three-spaceattenuation
- the attenuation (constant, linear, quadratic) of the lightdirection
- the direction of the lightspreadAngle
- the spread angle of the lightconcentration
- the concentration of the light
-
SpotLight
public SpotLight(boolean lightOn, javax.vecmath.Color3f color, javax.vecmath.Point3f position, javax.vecmath.Point3f attenuation, javax.vecmath.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 offcolor
- the color of the light sourceposition
- the position of the light in three-spaceattenuation
- the attenuation (constant, linear, quadratic) of the lightdirection
- the direction of the lightspreadAngle
- the spread angle of the lightconcentration
- the concentration of the light
-
-
Method Details
-
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 directiony
- the new Y directionz
- 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(javax.vecmath.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(javax.vecmath.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
Used to create a new instance of the node. This routine is called bycloneTree
to duplicate the current node.- Overrides:
cloneNode
in classPointLight
- Parameters:
forceDuplicate
- when set totrue
, causes theduplicateOnCloneTree
flag to be ignored. Whenfalse
, the value of each node'sduplicateOnCloneTree
variable determines whether NodeComponent data is duplicated or copied.- See Also:
-