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

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.