javax.media.j3d

## Class PathInterpolator

- 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.TransformInterpolator
            - - javax.media.j3d.PathInterpolator

- Direct Known Subclasses:
    PositionPathInterpolator, RotationPathInterpolator, RotPosPathInterpolator, RotPosScalePathInterpolator

      public abstract class PathInterpolator
      extends TransformInterpolator

  PathInterpolator behavior. This class defines the base class for all Path Interpolators. Subclasses have access to the computePathInterpolation() method, which computes the currentInterpolationValue given the current time and alpha. The method also computes the currentKnotIndex, which is based on the currentInterpolationValue. The currentInterpolationValue is calculated by linearly interpolating among a series of predefined knots (using the value generated by the specified Alpha object). The first knot must have a value of 0.0 and the last knot must have a value of 1.0. An intermediate knot with index k must have a value strictly greater than any knot with index less than k.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected float` | `currentInterpolationValue` This value is the ratio between knot values indicated by the currentKnotIndex variable.
    `protected int` | `currentKnotIndex` This value is the index of the current base knot value, as determined by the alpha function.

    - ### Fields inherited from class javax.media.j3d.TransformInterpolator

      `axis, axisInverse, target`

    - ### 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
    `PathInterpolator(Alpha alpha, float[] knots)` Deprecated. As of Java 3D version 1.3, replaced by `PathInterpolator(Alpha, TransformGroup, float[])`
    `PathInterpolator(Alpha alpha, TransformGroup target, float[] knots)` Constructs a new PathInterpolator object that interpolates between the knot values in the knots array.
    `PathInterpolator(Alpha alpha, TransformGroup target, Transform3D axisOfTransform, float[] knots)` Constructs a new PathInterpolator object that interpolates between the knot values in the knots array.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `computePathInterpolation()` Deprecated. As of Java 3D version 1.3, replaced by `computePathInterpolation(float)`
    `protected void` | `computePathInterpolation(float alphaValue)` Computes the base knot index and interpolation value given the specified value of alpha and the knots[] array.
    `int` | `getArrayLengths()` Retrieves the length of the knots array.
    `float` | `getKnot(int index)` Retrieves the knot at the specified index.
    `void` | `getKnots(float[] knots)` Copies the array of knots from this interpolator into the specified array.
    `void` | `setKnot(int index, float knot)` Sets the knot at the specified index for this interpolator.
    `protected void` | `setKnots(float[] knots)` Replaces the existing array of knot values with the specified array.

    - ### Methods inherited from class javax.media.j3d.TransformInterpolator

      `computeTransform, getTarget, getTransformAxis, processStimulus, setTarget, setTransformAxis, updateNodeReferences`

    - ### 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

      `cloneNode, 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`

- - ### Field Detail

    - #### currentInterpolationValue

          protected float currentInterpolationValue

      This value is the ratio between knot values indicated by the currentKnotIndex variable. So if a subclass wanted to interpolate between knot values, it would use the currentKnotIndex to get the bounding knots for the "real" value, then use the currentInterpolationValue to interpolate between the knots. To calculate this variable, a subclass needs to call the `computePathInterpolation(alphaValue)` method from the subclass's computeTransform() method. Then this variable will hold a valid value which can be used in further calculations by the subclass.

    - #### currentKnotIndex

          protected int currentKnotIndex

      This value is the index of the current base knot value, as determined by the alpha function. A subclass wishing to interpolate between bounding knots would use this index and the one following it, and would use the currentInterpolationValue variable as the ratio between these indices. To calculate this variable, a subclass needs to call the `computePathInterpolation(alphaValue)` method from the subclass's computeTransform() method. Then this variable will hold a valid value which can be used in further calculations by the subclass.

  - ### Constructor Detail

    - #### PathInterpolator

          public PathInterpolator(Alpha alpha,
                          float[] knots)

      Deprecated. As of Java 3D version 1.3, replaced by `PathInterpolator(Alpha, TransformGroup, float[])`
      Constructs a new PathInterpolator object that interpolates between the knot values in the knots array. The array of knots is copied into this PathInterpolator object.
      Parameters:
        `alpha` - the alpha object for this interpolator.
        `knots` - an array of knot values that specify interpolation points.

    - #### PathInterpolator

          public PathInterpolator(Alpha alpha,
                          TransformGroup target,
                          float[] knots)

      Constructs a new PathInterpolator object that interpolates between the knot values in the knots array. The array of knots is copied into this PathInterpolator object.
      Parameters:
        `alpha` - the alpha object for this interpolator.
        `target` - the transformgroup node effected by this pathInterpolator
        `knots` - an array of knot values that specify interpolation points.
      Since:
        Java 3D 1.3

    - #### PathInterpolator

          public PathInterpolator(Alpha alpha,
                          TransformGroup target,
                          Transform3D axisOfTransform,
                          float[] knots)

      Constructs a new PathInterpolator object that interpolates between the knot values in the knots array. The array of knots is copied into this PathInterpolator object.
      Parameters:
        `alpha` - the alpha object for this interpolator.
        `target` - the transform node effected by this positionInterpolator
        `axisOfTransform` - the transform that defines the local coordinate
        `knots` - an array of knot values that specify interpolation points.
      Since:
        Java 3D 1.3

  - ### Method Detail

    - #### getArrayLengths

          public int getArrayLengths()

      Retrieves the length of the knots array.
      Returns:
        the array length

    - #### setKnot

          public void setKnot(int index,
                     float knot)

      Sets the knot at the specified index for this interpolator.
      Parameters:
        `index` - the index to be changed
        `knot` - the new knot value

    - #### getKnot

          public float getKnot(int index)

      Retrieves the knot at the specified index.
      Parameters:
        `index` - the index of the value requested
      Returns:
        the interpolator's knot value at the associated index

    - #### setKnots

          protected void setKnots(float[] knots)

      Replaces the existing array of knot values with the specified array. The array of knots is copied into this interpolator object. Prior to calling this method, subclasses should verify that the lengths of the new knots array and subclass-specific parameter arrays are the same.
      Parameters:
        `knots` - a new array of knot values that specify interpolation points.
      Since:
        Java 3D 1.2

    - #### getKnots

          public void getKnots(float[] knots)

      Copies the array of knots from this interpolator into the specified array. The array must be large enough to hold all of the knots.
      Parameters:
        `knots` - array that will receive the knots.
      Since:
        Java 3D 1.2

    - #### computePathInterpolation

          protected void computePathInterpolation(float alphaValue)

      Computes the base knot index and interpolation value given the specified value of alpha and the knots[] array. If the index is 0 and there should be no interpolation, both the index variable and the interpolation variable are set to 0. Otherwise, currentKnotIndex is set to the lower index of the two bounding knot points and the currentInterpolationValue variable is set to the ratio of the alpha value between these two bounding knot points.
      Parameters:
        `alphaValue` - alpha value between 0.0 and 1.0
      Since:
        Java 3D 1.3

    - #### computePathInterpolation

          protected void computePathInterpolation()

      Deprecated. As of Java 3D version 1.3, replaced by `computePathInterpolation(float)`

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