javax.media.j3d
Class LightRetained

java.lang.Object
  extended by javax.media.j3d.IndexedObject
      extended by javax.media.j3d.SceneGraphObjectRetained
          extended by javax.media.j3d.NodeRetained
              extended by javax.media.j3d.LeafRetained
                  extended by javax.media.j3d.LightRetained
All Implemented Interfaces:
java.lang.Cloneable, NnuId
Direct Known Subclasses:
AmbientLightRetained, DirectionalLightRetained, PointLightRetained

abstract class LightRetained
extends LeafRetained

LightRetained is an abstract class that contains instance variable common to all lights.


Field Summary
(package private)  BoundingLeafRetained boundingLeaf
          The bounding leaf reference
(package private) static int BOUNDINGLEAF_CHANGED
           
(package private) static int BOUNDS_CHANGED
           
(package private) static int CLEAR_MIRROR
           
(package private)  Color3f color
           
(package private) static int COLOR_CHANGED
           
(package private) static int ENABLE_CHANGED
           
(package private)  UnorderList environmentSets
          A list of all the EnvironmentSets that reference this light.
(package private)  boolean inImmCtx
           
(package private) static int INIT_MIRROR
           
(package private)  boolean isNeeded
           
(package private)  boolean isScoped
           
(package private)  boolean isViewScoped
           
(package private)  HashKey key
           
(package private) static int LAST_DEFINED_BIT
           
(package private)  int lightDirty
          This bitmask is set when something changes in the light
(package private)  boolean lightOn
           
(package private)  int lightType
           
(package private)  LightRetained[] mirrorLights
           
(package private)  java.util.ArrayList newlyAddedMirrorLights
          Temporary list of newly added mirror lights, during any setlive
(package private)  int numMirrorLights
           
(package private)  Bounds region
          The transformed value of the applicationRegion.
(package private)  Bounds regionOfInfluence
          The Boundary object defining the lights's region of influence.
(package private) static int SCOPE_CHANGED
           
(package private)  java.util.Vector scopes
           
(package private)  LightRetained sgLight
           
(package private)  int sgLightDirty
           
(package private) static int targetThreads
           
(package private)  HashKey tempKey
           
 
Fields inherited from class javax.media.j3d.LeafRetained
boundsDirty, switchState
 
Fields inherited from class javax.media.j3d.NodeRetained
ALTERNATEAPPEARANCE, AMBIENTLIGHT, apiBounds, BACKGROUND, BACKGROUNDSOUND, BEHAVIOR, BOUNDINGLEAF, boundsAutoCompute, BRANCHGROUP, branchGroupPaths, cachedBounds, childIndex, CLIP, collidable, CONESOUND, CONTAINS_VIEWPLATFORM, CURRENT_LOCAL_TO_VWORLD, DECALGROUP, DIRECTIONALLIGHT, EXPONENTIALFOG, geometryBackground, GROUP, inSharedGroup, LAST_LOCAL_TO_VWORLD, LINEARFOG, LINK, localBounds, locale, localToVworld, localToVworldIndex, localToVworldKeys, MODELCLIP, MORPH, nnuId, nodeId, nodeType, NUMNODES, ORDEREDGROUP, orderedId, ORIENTEDSHAPE3D, parent, parentSwitchLink, parentTransformLink, pickable, POINTLIGHT, POINTSOUND, refCount, SHAPE, SHAREDGROUP, SOUNDSCAPE, SPOTLIGHT, staticTransform, SWITCH, TRANSFORMGROUP, universe, validCachedBounds, VIEWPLATFORM, VIEWSPECIFICGROUP
 
Fields inherited from class javax.media.j3d.SceneGraphObjectRetained
DONT_MERGE, inBackgroundGroup, inSetLive, MERGE, MERGE_DONE, mergeFlag, onUpdateList, source
 
Fields inherited from class javax.media.j3d.IndexedObject
listIdx
 
Constructor Summary
LightRetained()
           
 
Method Summary
(package private)  void addScope(Group scope)
          Appends the specified scope to this node's list of scopes.
(package private)  void clearLive(SetLiveState s)
           
(package private)  void clearMirrorObject(java.lang.Object[] args)
           
protected  java.lang.Object clone()
          Clones only the retained side, internal use only
(package private)  java.util.Enumeration getAllScopes()
          Returns an enumeration object of the scope
(package private)  void getColor(Color3f color)
          Retrieves the color of this light.
(package private)  boolean getEnable()
          Returns the state of the light (on/off).
(package private)  BoundingLeaf getInfluencingBoundingLeaf()
          Get the Light's region of influence.
(package private)  Bounds getInfluencingBounds()
          Get the Light's region of influence
(package private)  boolean getInImmCtx()
          This gets the immedate mode context flag
(package private)  LightRetained getMirrorLight(HashKey key)
          This gets the mirror light for this light given the key.
(package private)  void getMirrorObjects(java.util.ArrayList leafList, HashKey key)
           
(package private)  Group getScope(int index)
          Returns the scope specified by the index.
(package private)  int indexOfScope(Group scope)
          Returns the index of the specified scope
(package private)  void initAddScope(Group scope)
          Appends the specified scope to this node's list of scopes.
(package private)  void initColor(Color3f color)
          Initialize the color of this light node.
(package private)  void initEnable(boolean state)
          Initialize the light on or off.
(package private)  void initInfluencingBoundingLeaf(BoundingLeaf region)
          Initializes the Light's region of influence to the specified Leaf node.
(package private)  void initInfluencingBounds(Bounds region)
          Initializes the Light's region of influence.
(package private)  void initInsertScope(Group scope, int index)
          Inserts the specified scope at specified index.
(package private)  J3dMessage initMessage(int num)
           
(package private)  void initMirrorObject(java.lang.Object[] args)
           
(package private)  void initRemoveAllScopes()
           
(package private)  void initRemoveScope(Group scope)
           
(package private)  void initRemoveScope(int index)
          Removes the scope at specified index.
(package private)  void initScope(Group scope, int index)
          Initializes the specified scope with the scope provided.
(package private)  void insertScope(Group scope, int index)
          Inserts the specified scope at specified index.
(package private)  void mergeTransform(TransformGroupRetained xform)
           
(package private)  int numScopes()
          Returns a count of this nodes' scopes.
(package private)  void removeAllScopes()
          Removes all the scopes from this Light's list of scopes
(package private)  void removeScope(Group scope)
          Removes the specified scope
(package private)  void removeScope(int index)
          Removes the scope at specified index.
(package private)  void sendMessage(int attrMask, java.lang.Object attr)
           
(package private)  void setColor(Color3f color)
          Sets the color of this light node and send a message
(package private)  void setEnable(boolean state)
          Turns the light on or off and send a message
(package private)  void setInfluencingBoundingLeaf(BoundingLeaf region)
          Set the Light's region of influence to the specified Leaf node.
(package private)  void setInfluencingBounds(Bounds region)
          Set the Light's region of influence and send a message
(package private)  void setInImmCtx(boolean inCtx)
          This sets the immedate mode context flag
(package private)  void setLive(SetLiveState s)
           
(package private)  void setScope(Group scope, int index)
          Replaces the specified scope with the scope provided and send a message
(package private) abstract  void update(Context ctx, int lightSlot, double scale)
          This method is implemented by each light for rendering context updates.
(package private)  void updateBoundingLeaf()
          Note: This routine will only be called on the mirror object - will update the object's cached region and transformed region
(package private)  void updateImmediateMirrorObject(java.lang.Object[] objs)
           
(package private)  void updateImmediateTransformChange()
           
(package private)  void updateMirrorObject(java.lang.Object[] objs)
           
(package private)  void updateTransformChange()
           
 
Methods inherited from class javax.media.j3d.LeafRetained
clone, updateBounds
 
Methods inherited from class javax.media.j3d.NodeRetained
computeCombineBounds, computeNonLiveLocalToVworld, dirtyBoundsCache, doSetLive, equal, findCollidableFlags, findPickableFlags, findTransformLevels, getBounds, getBoundsAutoCompute, getCollidable, getCurrentLocalToVworld, getCurrentLocalToVworld, getCurrentLocalToVworld, getEffectiveBounds, getId, getLastLocalToVworld, getLastLocalToVworld, getLastLocalToVworld, getLocalBounds, getLocale, getLocalToVworld, getLocalToVworld, getLocalToVworld, getParent, getPickable, getVirtualUniverse, isStatic, merge, notifySceneGraphChanged, processViewSpecificInfo, recombineAbove, removeNodeData, searchGeometryAtoms, setAuxData, setBounds, setBoundsAutoCompute, setCollidable, setNodeData, setParent, setPickable, transformBounds, updateCollidable, updateLocalToVworld, updatePickable
 
Methods inherited from class javax.media.j3d.SceneGraphObjectRetained
clearLive, clearLive, compile, doSetLive, getSource, handleFrequencyChange, isInSetLive, markAsLive, setCompiled, setLive, setSource, traverse
 
Methods inherited from class javax.media.j3d.IndexedObject
getIdxUsed, incIdxUsed
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENABLE_CHANGED

static final int ENABLE_CHANGED
See Also:
Constant Field Values

SCOPE_CHANGED

static final int SCOPE_CHANGED
See Also:
Constant Field Values

BOUNDS_CHANGED

static final int BOUNDS_CHANGED
See Also:
Constant Field Values

COLOR_CHANGED

static final int COLOR_CHANGED
See Also:
Constant Field Values

BOUNDINGLEAF_CHANGED

static final int BOUNDINGLEAF_CHANGED
See Also:
Constant Field Values

INIT_MIRROR

static final int INIT_MIRROR
See Also:
Constant Field Values

CLEAR_MIRROR

static final int CLEAR_MIRROR
See Also:
Constant Field Values

LAST_DEFINED_BIT

static final int LAST_DEFINED_BIT
See Also:
Constant Field Values

lightOn

boolean lightOn

color

Color3f color

scopes

java.util.Vector scopes

regionOfInfluence

Bounds regionOfInfluence
The Boundary object defining the lights's region of influence.


boundingLeaf

BoundingLeafRetained boundingLeaf
The bounding leaf reference


region

Bounds region
The transformed value of the applicationRegion.


lightDirty

int lightDirty
This bitmask is set when something changes in the light


sgLightDirty

int sgLightDirty

lightType

int lightType

isNeeded

boolean isNeeded

inImmCtx

boolean inImmCtx

sgLight

LightRetained sgLight

key

HashKey key

mirrorLights

LightRetained[] mirrorLights

numMirrorLights

int numMirrorLights

isScoped

boolean isScoped

tempKey

HashKey tempKey

environmentSets

UnorderList environmentSets
A list of all the EnvironmentSets that reference this light. Note that multiple RenderBin update thread may access this shared environmentSets simultaneously. So we use UnorderList when sync. all the operations.


isViewScoped

boolean isViewScoped

newlyAddedMirrorLights

java.util.ArrayList newlyAddedMirrorLights
Temporary list of newly added mirror lights, during any setlive


targetThreads

static final int targetThreads
See Also:
Constant Field Values
Constructor Detail

LightRetained

LightRetained()
Method Detail

initEnable

void initEnable(boolean state)
Initialize the light on or off.

Parameters:
state - true or false to enable or disable the light

setEnable

void setEnable(boolean state)
Turns the light on or off and send a message

Parameters:
state - true or false to enable or disable the light

getEnable

boolean getEnable()
Returns the state of the light (on/off).

Returns:
true if the light is on, false if the light is off.

initColor

void initColor(Color3f color)
Initialize the color of this light node.

Parameters:
color - the value of this new light color

setColor

void setColor(Color3f color)
Sets the color of this light node and send a message

Parameters:
color - the value of this new light color

getColor

void getColor(Color3f color)
Retrieves the color of this light.

Parameters:
color - the vector that will receive the color of this light

initScope

void initScope(Group scope,
               int index)
Initializes the specified scope with the scope provided.

Parameters:
scope - the new scope
index - which scope to replace

setScope

void setScope(Group scope,
              int index)
Replaces the specified scope with the scope provided and send a message

Parameters:
scope - the new scope
index - which scope to replace

initInsertScope

void initInsertScope(Group scope,
                     int index)
Inserts the specified scope at specified index.

Parameters:
scope - the new scope
index - position to insert new scope at

insertScope

void insertScope(Group scope,
                 int index)
Inserts the specified scope at specified index.

Parameters:
scope - the new scope
index - position to insert new scope at

initRemoveScope

void initRemoveScope(int index)
Removes the scope at specified index.

Parameters:
index - which scope to remove

removeScope

void removeScope(int index)
Removes the scope at specified index.

Parameters:
index - which scope to remove

removeScope

void removeScope(Group scope)
Removes the specified scope

Parameters:
scope - to be removed

initRemoveScope

void initRemoveScope(Group scope)

removeAllScopes

void removeAllScopes()
Removes all the scopes from this Light's list of scopes


initRemoveAllScopes

void initRemoveAllScopes()

getScope

Group getScope(int index)
Returns the scope specified by the index.

Parameters:
index - of the scope to be returned
Returns:
the scope at location index

getAllScopes

java.util.Enumeration getAllScopes()
Returns an enumeration object of the scope

Returns:
an enumeration object of the scope

initAddScope

void initAddScope(Group scope)
Appends the specified scope to this node's list of scopes.

Parameters:
scope - the scope to add to this node's list of scopes

addScope

void addScope(Group scope)
Appends the specified scope to this node's list of scopes.

Parameters:
scope - the scope to add to this node's list of scopes

numScopes

int numScopes()
Returns a count of this nodes' scopes.

Returns:
the number of scopes descendant from this node

indexOfScope

int indexOfScope(Group scope)
Returns the index of the specified scope

Returns:
index of the scope in this Light's list of scopes

initInfluencingBounds

void initInfluencingBounds(Bounds region)
Initializes the Light's region of influence.

Parameters:
region - a region that contains the Light's new region of influence

setInfluencingBounds

void setInfluencingBounds(Bounds region)
Set the Light's region of influence and send a message

Parameters:
region - a region that contains the Light's new region of influence

getInfluencingBounds

Bounds getInfluencingBounds()
Get the Light's region of influence

Returns:
this Light's region of influence information

initInfluencingBoundingLeaf

void initInfluencingBoundingLeaf(BoundingLeaf region)
Initializes the Light's region of influence to the specified Leaf node.


setInfluencingBoundingLeaf

void setInfluencingBoundingLeaf(BoundingLeaf region)
Set the Light's region of influence to the specified Leaf node.


getInfluencingBoundingLeaf

BoundingLeaf getInfluencingBoundingLeaf()
Get the Light's region of influence.


setInImmCtx

void setInImmCtx(boolean inCtx)
This sets the immedate mode context flag


getInImmCtx

boolean getInImmCtx()
This gets the immedate mode context flag


initMirrorObject

void initMirrorObject(java.lang.Object[] args)

update

abstract void update(Context ctx,
                     int lightSlot,
                     double scale)
This method is implemented by each light for rendering context updates. This default one does nothing.


updateImmediateMirrorObject

void updateImmediateMirrorObject(java.lang.Object[] objs)

updateMirrorObject

void updateMirrorObject(java.lang.Object[] objs)
Overrides:
updateMirrorObject in class LeafRetained

updateBoundingLeaf

void updateBoundingLeaf()
Note: This routine will only be called on the mirror object - will update the object's cached region and transformed region

Overrides:
updateBoundingLeaf in class LeafRetained

getMirrorObjects

void getMirrorObjects(java.util.ArrayList leafList,
                      HashKey key)
Overrides:
getMirrorObjects in class LeafRetained

getMirrorLight

LightRetained getMirrorLight(HashKey key)
This gets the mirror light for this light given the key.


setLive

void setLive(SetLiveState s)
Overrides:
setLive in class NodeRetained

initMessage

J3dMessage initMessage(int num)

clearLive

void clearLive(SetLiveState s)
Overrides:
clearLive in class NodeRetained

clearMirrorObject

void clearMirrorObject(java.lang.Object[] args)

clone

protected java.lang.Object clone()
Clones only the retained side, internal use only

Overrides:
clone in class SceneGraphObjectRetained

updateTransformChange

void updateTransformChange()
Overrides:
updateTransformChange in class LeafRetained

updateImmediateTransformChange

void updateImmediateTransformChange()

sendMessage

void sendMessage(int attrMask,
                 java.lang.Object attr)

mergeTransform

void mergeTransform(TransformGroupRetained xform)
Overrides:
mergeTransform in class NodeRetained


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