## javax.media.j3d
Class SwitchValueInterpolator

    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.SwitchValueInterpolator

    public class SwitchValueInterpolator

extends Interpolator

SwitchValueInterpolator behavior. This class defines a behavior that modifies the selected child of the target switch node by linearly interpolating between a pair of specified child index values (using the value generated by the specified Alpha object).

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_LOCALE_READ, ALLOW_PARENT_READ, ALLOW_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING`

Constructor Summary
`SwitchValueInterpolator(Alpha alpha, Switch target)` Constructs a SwitchValueInterpolator behavior that varies its target Switch node's child index between 0 and n-1, where n is the number of children in the target Switch node.
`SwitchValueInterpolator(Alpha alpha, Switch target, int firstChildIndex, int lastChildIndex)` Constructs a SwitchValueInterpolator behavior that varies its target Switch node's child index between the two values provided.

Method Summary
`Node` `cloneNode(boolean forceDuplicate)` Used to create a new instance of the node.
`int` `getFirstChildIndex()` This method retrieves this interpolator's firstChildIndex.
`int` `getLastChildIndex()` This method retrieves this interpolator's lastSwitchIndex.
`Switch` `getTarget()` This method retrieves this interpolator's target Switch node reference.
`void` `processStimulus(java.util.Enumeration criteria)` This method is invoked by the behavior scheduler every frame.
`void` `setFirstChildIndex(int firstIndex)` This method sets the firstChildIndex for this interpolator.
`void` `setLastChildIndex(int lastIndex)` This method sets the lastChildIndex for this interpolator.
`void` `setTarget(Switch target)` This method sets the target for this interpolator.
`void` `updateNodeReferences(NodeReferenceTable referenceTable)` Callback used to allow a node to check if any nodes 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, 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`

Constructor Detail

### SwitchValueInterpolator

    public SwitchValueInterpolator(Alpha alpha,
                                   Switch target)

  Constructs a SwitchValueInterpolator behavior that varies its target Switch node's child index between 0 and n-1, where n is the number of children in the target Switch node.

  Parameters:
    `alpha` - the alpha object for this interpolator
    `target` - the Switch node affected by this interpolator

### SwitchValueInterpolator

    public SwitchValueInterpolator(Alpha alpha,
                                   Switch target,
                                   int firstChildIndex,
                                   int lastChildIndex)

  Constructs a SwitchValueInterpolator behavior that varies its target Switch node's child index between the two values provided.

  Parameters:
    `alpha` - the alpha object for this interpolator
    `target` - the Switch node affected by this interpolator
    `firstChildIndex` - the index of first child in the Switch node to select
    `lastChildIndex` - the index of last child in the Switch node to select

Method Detail

### setFirstChildIndex

    public void setFirstChildIndex(int firstIndex)

  This method sets the firstChildIndex for this interpolator.

  Parameters:
    `firstIndex` - the new index for the first child

### getFirstChildIndex

    public int getFirstChildIndex()

  This method retrieves this interpolator's firstChildIndex.

  Returns:
    the interpolator's firstChildIndex

### setLastChildIndex

    public void setLastChildIndex(int lastIndex)

  This method sets the lastChildIndex for this interpolator.

  Parameters:
    `lastIndex` - the new index for the last child

### getLastChildIndex

    public int getLastChildIndex()

  This method retrieves this interpolator's lastSwitchIndex.

  Returns:
    the interpolator's maximum scale value

### setTarget

    public void setTarget(Switch target)

  This method sets the target for this interpolator.

  Parameters:
    `target` - the target Switch node

### getTarget

    public Switch getTarget()

  This method retrieves this interpolator's target Switch node reference.

  Returns:
    the interpolator's target Switch node

### 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 child index value and updates the specified Switch node with this new child index value.

  Specified by:
    `processStimulus` in class `Behavior`
  Parameters:
    `criteria` - an enumeration of the criteria that triggered this 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 nodes 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 node references by using the `getNewObjectReference` method found in the `NodeReferenceTable` object. If a match is found, a reference to the corresponding Node 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 node 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`

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