## com.sun.j3d.utils.behaviors.interpolators
Class KBRotPosScaleSplinePathInterpolator

    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
                              com.sun.j3d.utils.behaviors.interpolators.KBSplinePathInterpolator
                                  com.sun.j3d.utils.behaviors.interpolators.KBRotPosScaleSplinePathInterpolator

    public class KBRotPosScaleSplinePathInterpolator

extends KBSplinePathInterpolator

KBRotPosScaleSplinePathInterpolator behavior. This class defines a behavior that varies the rotational, translational, and scale components of its target TransformGroup by using the Kochanek-Bartels cubic spline interpolation to interpolate among a series of key frames (using the value generated by the specified Alpha object). The interpolated position, orientation, and scale are used to generate a transform in the local coordinate system of this interpolator.

Field Summary

Fields inherited from class com.sun.j3d.utils.behaviors.interpolators.KBSplinePathInterpolator
`currentU, keyFrames, lowerKnot, upperKnot`

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
`KBRotPosScaleSplinePathInterpolator(Alpha alpha, TransformGroup target, Transform3D axisOfTransform, KBKeyFrame[] keys)` Constructs a new KBRotPosScaleSplinePathInterpolator object that varies the rotation, translation, and scale of the target TransformGroup's transform.

Method Summary
`Node` `cloneNode(boolean forceDuplicate)` Copies KBRotPosScaleSplinePathInterpolator information from `originalNode` into the current node.
`void` `computeTransform(float alphaValue, Transform3D transform)` Computes the new transform for this interpolator for a given alpha value.
`void` `duplicateNode(Node originalNode, boolean forceDuplicate)` Copies KBRotPosScaleSplinePathInterpolator information from `originalNode` into the current node.
`Transform3D` `getAxisOfRotPosScale()` Deprecated. As of Java 3D version 1.3, replaced by `TransformInterpolator.getTransformAxis()`
`void` `setAxisOfRotPosScale(Transform3D axisOfRotPosScale)` Deprecated. As of Java 3D version 1.3, replaced by `TransformInterpolator.setTransformAxis(Transform3D)`
`void` `setKeyFrame(int index, KBKeyFrame keyFrame)` Set the key frame at the specified index to `keyFrame`
`void` `setKeyFrames(KBKeyFrame[] keyFrame)` Set all the key frames

Methods inherited from class com.sun.j3d.utils.behaviors.interpolators.KBSplinePathInterpolator
`computePathInterpolation, computePathInterpolation, getArrayLength, getKeyFrame`

Methods inherited from class javax.media.j3d.TransformInterpolator
`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
`cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, 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

### KBRotPosScaleSplinePathInterpolator

    public KBRotPosScaleSplinePathInterpolator(Alpha alpha,
                                               TransformGroup target,
                                               Transform3D axisOfTransform,
                                               KBKeyFrame[] keys)

  Constructs a new KBRotPosScaleSplinePathInterpolator object that varies the rotation, translation, and scale of the target TransformGroup's transform. At least 2 key frames are required for this interpolator. The first key frame's knot must have a value of 0.0 and the last knot must have a value of 1.0. An intermediate key frame with index k must have a knot value strictly greater than the knot value of a key frame with index less than k.

  Parameters:
    `alpha` - the alpha object for this interpolator
    `target` - the TransformGroup node affected by this interpolator
    `axisOfTransform` - the transform that specifies the local coordinate system in which this interpolator operates.
    `keys` - an array of key frames that defien the motion path

Method Detail

### setAxisOfRotPosScale

    public void setAxisOfRotPosScale(Transform3D axisOfRotPosScale)

  Deprecated. As of Java 3D version 1.3, replaced by `TransformInterpolator.setTransformAxis(Transform3D)`

### getAxisOfRotPosScale

    public Transform3D getAxisOfRotPosScale()

  Deprecated. As of Java 3D version 1.3, replaced by `TransformInterpolator.getTransformAxis()`

### setKeyFrame

    public void setKeyFrame(int index,
                            KBKeyFrame keyFrame)

  Set the key frame at the specified index to `keyFrame`

  Overrides:
    `setKeyFrame` in class `KBSplinePathInterpolator`
  Parameters:
    `index` - Index of the key frame to change
    `keyFrame` - The new key frame

### setKeyFrames

    public void setKeyFrames(KBKeyFrame[] keyFrame)

  Set all the key frames

  Overrides:
    `setKeyFrames` in class `KBSplinePathInterpolator`
  Parameters:
    `keyFrame` - The new key frames

### computeTransform

    public void computeTransform(float alphaValue,
                                 Transform3D transform)

  Computes the new transform for this interpolator for a given alpha value.

  Specified by:
    `computeTransform` in class `TransformInterpolator`
  Parameters:
    `alphaValue` - alpha value between 0.0 and 1.0
    `transform` - object that receives the computed transform for the specified alpha value
  Since:
    Java 3D 1.3

### cloneNode

    public Node cloneNode(boolean forceDuplicate)

  Copies KBRotPosScaleSplinePathInterpolator information from `originalNode` into the current node. This method is called from the `cloneNode` method which is, in turn, called by the `cloneTree` method.

  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.
  Throws:
    `RestrictedAccessException` - if this object is part of a live or compiled scenegraph.
  See Also:
    `Node.duplicateNode(javax.media.j3d.Node, boolean)`, `Node.cloneTree()`, `NodeComponent.setDuplicateOnCloneTree(boolean)`

### duplicateNode

    public void duplicateNode(Node originalNode,
                              boolean forceDuplicate)

  Copies KBRotPosScaleSplinePathInterpolator information from `originalNode` into the current node. This method is called from the `cloneNode` method which is, in turn, called by the `cloneTree` method.

  Overrides:
    `duplicateNode` in class `KBSplinePathInterpolator`
  Parameters:
    `originalNode` - the original node to duplicate.
    `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.
  Throws:
    `RestrictedAccessException` - if this object is part of a live or compiled scenegraph.
  See Also:
    `Node.duplicateNode(javax.media.j3d.Node, boolean)`, `Node.cloneTree()`, `NodeComponent.setDuplicateOnCloneTree(boolean)`

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