javax.media.j3d
Class ColorInterpolator

java.lang.Object
  |
  +--javax.media.j3d.SceneGraphObject
        |
        +--javax.media.j3d.Node
              |
              +--javax.media.j3d.Leaf
                    |
                    +--javax.media.j3d.Behavior
                          |
                          +--javax.media.j3d.Interpolator
                                |
                                +--javax.media.j3d.ColorInterpolator

public class ColorInterpolator
extends Interpolator

Color interpolation behavior. This class defines a behavior that modifies the ambient, emissive, diffuse, or specular color of its target material object by linearly interpolating between a pair of specified colors, using the value generated by the specified Alpha object. The behavior modifies the color specified by the Material's colorTarget attribute, one of: AMBIENT, EMISSIVE, DIFFUSE, SPECULAR, or AMBIENT_AND_DIFFUSE. The ALLOW_COMPONENT_READ bit must be set in the Material object in order for the Material's colorTarget to be read. If the Material object's ALLOW_COMPONENT_READ bit is not set, the diffuse component will be modified.

See Also:
Material

Field Summary
 
Fields inherited from class javax.media.j3d.Interpolator
defaultWakeupCriterion
 
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
ColorInterpolator(Alpha alpha, Material target)
          Constructs a trivial color interpolator with a specified target, a starting color of black, and an ending color of white.
ColorInterpolator(Alpha alpha, Material target, Color3f startColor, Color3f endColor)
          Constructs a color interpolator with the specified target, starting color, and ending color.
 
Method Summary
 Node cloneNode(boolean forceDuplicate)
          Used to create a new instance of the node.
 void getEndColor(Color3f color)
          This method retrieves this interpolator's endColor.
 void getStartColor(Color3f color)
          This method retrieves this interpolator's startColor.
 Material getTarget()
          This method retrieves this interpolator's target material component object.
 void processStimulus(java.util.Enumeration criteria)
          This method is invoked by the behavior scheduler every frame.
 void setEndColor(Color3f color)
          This method sets the endColor for this interpolator.
 void setStartColor(Color3f color)
          This method sets the startColor for this interpolator.
 void setTarget(Material target)
          This method sets the target material component object for this interpolator.
 void updateNodeReferences(NodeReferenceTable referenceTable)
          Callback used to allow a node to check if any scene graph objects referenced by that node have been duplicated via a call to cloneTree.
 
Methods inherited from class javax.media.j3d.Interpolator
getAlpha, initialize, setAlpha
 
Methods inherited from class javax.media.j3d.Behavior
getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, wakeupOn
 
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
 

Constructor Detail

ColorInterpolator

public ColorInterpolator(Alpha alpha,
                         Material target)
Constructs a trivial color interpolator with a specified target, a starting color of black, and an ending color of white.

Parameters:
alpha - the alpha object for this interpolator
target - the material component object whose color is affected by this color interpolator

ColorInterpolator

public ColorInterpolator(Alpha alpha,
                         Material target,
                         Color3f startColor,
                         Color3f endColor)
Constructs a color interpolator with the specified target, starting color, and ending color.

Parameters:
alpha - the alpha object for this interpolator
target - the material component object whose color is affected by this color interpolator
startColor - the starting color
endColor - the ending color
Method Detail

setStartColor

public void setStartColor(Color3f color)
This method sets the startColor for this interpolator.

Parameters:
color - the new start color

getStartColor

public void getStartColor(Color3f color)
This method retrieves this interpolator's startColor.

Parameters:
color - the vector that will receive the interpolator's start color

setEndColor

public void setEndColor(Color3f color)
This method sets the endColor for this interpolator.

Parameters:
color - the new end color

getEndColor

public void getEndColor(Color3f color)
This method retrieves this interpolator's endColor.

Parameters:
color - the vector that will receive the interpolator's end color

setTarget

public void setTarget(Material target)
This method sets the target material component object for this interpolator.

Parameters:
target - the material component object whose color is affected by this color interpolator

getTarget

public Material getTarget()
This method retrieves this interpolator's target material component object.

Returns:
the interpolator's target material component object

processStimulus

public void processStimulus(java.util.Enumeration criteria)
This method is invoked by the behavior scheduler every frame. It maps the alpha value that corresponds to the current time into a color value and updates the ambient, emissive, diffuse, or specular color (or both the ambient and diffuse color) of the specified target Material object with this new color value.

Specified by:
processStimulus in class Behavior
Parameters:
criteria - an enumeration of the criteria that caused the stimulus

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)

updateNodeReferences

public void updateNodeReferences(NodeReferenceTable referenceTable)
Callback used to allow a node to check if any scene graph objects referenced by that node have been duplicated via a call to cloneTree. This method is called by cloneTree after all nodes in the sub-graph have been duplicated. The cloned Leaf node's method will be called and the Leaf node can then look up any object references by using the getNewObjectReference method found in the NodeReferenceTable object. If a match is found, a reference to the corresponding object in the newly cloned sub-graph is returned. If no corresponding reference is found, either a DanglingReferenceException is thrown or a reference to the original object is returned depending on the value of the allowDanglingReferences parameter passed in the cloneTree call.

NOTE: Applications should not call this method directly. It should only be called by the cloneTree method.

Overrides:
updateNodeReferences in class Behavior
Parameters:
referenceTable - a NodeReferenceTableObject that contains the getNewObjectReference method needed to search for new object instances.
See Also:
NodeReferenceTable, Node.cloneTree(), DanglingReferenceException