# Class RotPosScaleTCBSplinePathInterpolator

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.TCBSplinePathInterpolator
com.sun.j3d.utils.behaviors.interpolators.RotPosScaleTCBSplinePathInterpolator

public class RotPosScaleTCBSplinePathInterpolator extends TCBSplinePathInterpolator
RotPosScaleTCBSplinePathInterpolator 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.

Since:
  Java3D 1.1

## Field Summary

### Fields inherited from class TCBSplinePathInterpolator

`currentU, keyFrames, lowerKnot, upperKnot`

### Fields inherited from class TransformInterpolator

`axis, axisInverse, target`

### Fields inherited from class Interpolator

`defaultWakeupCriterion`

### Fields inherited from class 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
Description
`RotPosScaleTCBSplinePathInterpolator(Alpha alpha, TransformGroup target, Transform3D axisOfTransform, TCBKeyFrame[] keys)`
Constructs a new RotPosScaleTCBSplinePathInterpolator object that varies the rotation, translation, and scale of the target TransformGroup's transform.

## Method Summary

Modifier and Type
Method
Description
`Node`
`cloneNode(boolean forceDuplicate)`
Used to create a new instance of the 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 RotPosScaleTCBSplinePathInterpolator 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)`

### Methods inherited from class TCBSplinePathInterpolator

`computePathInterpolation, computePathInterpolation, getArrayLength, getKeyFrame`

### Methods inherited from class TransformInterpolator

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

### Methods inherited from class Interpolator

`getAlpha, initialize, setAlpha`

### Methods inherited from class Behavior

`getEnable, getNumSchedulingIntervals, getSchedulingBoundingLeaf, getSchedulingBounds, getSchedulingInterval, getView, getWakeupCondition, postId, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, setSchedulingInterval, wakeupOn`

### Methods inherited from class Node

`cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, getBounds, getBoundsAutoCompute, getCollidable, getLocale, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable`

### Methods inherited from class SceneGraphObject

`clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### RotPosScaleTCBSplinePathInterpolator

public RotPosScaleTCBSplinePathInterpolator(Alpha alpha, TransformGroup target, Transform3D axisOfTransform, TCBKeyFrame[] keys)
Constructs a new RotPosScaleTCBSplinePathInterpolator 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 Details

### 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()`

### 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)
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(Node, boolean)`
  - `NodeComponent.setDuplicateOnCloneTree(boolean)`

### duplicateNode

public void duplicateNode(Node originalNode, boolean forceDuplicate)
Copies RotPosScaleTCBSplinePathInterpolator 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 `TCBSplinePathInterpolator`
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(Node, boolean)`
  - `Node.cloneTree()`
  - `NodeComponent.setDuplicateOnCloneTree(boolean)`