com.sun.j3d.utils.behaviors.interpolators
Class KBSplinePathInterpolator

java.lang.Object
  extended by javax.media.j3d.SceneGraphObject
      extended by javax.media.j3d.Node
          extended by javax.media.j3d.Leaf
              extended by javax.media.j3d.Behavior
                  extended by javax.media.j3d.Interpolator
                      extended by javax.media.j3d.TransformInterpolator
                          extended by com.sun.j3d.utils.behaviors.interpolators.KBSplinePathInterpolator
Direct Known Subclasses:
KBRotPosScaleSplinePathInterpolator

public abstract class KBSplinePathInterpolator
extends TransformInterpolator

KBSplinePathInterpolator behavior. This class defines the base class for all Kochanek-Bartels (also known as TCB or Tension-Continuity-Bias) Spline Path Interpolators.

Since:
Java3D 1.2

Field Summary
protected  float currentU
          This value is the distance between knots value which can be used in further calculations by the subclass.
protected  KBKeyFrame[] keyFrames
          An array of KBKeyFrame for interpolator
protected  int lowerKnot
          The lower knot
protected  int upperKnot
          The upper knot
 
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
KBSplinePathInterpolator(Alpha alpha, KBKeyFrame[] keys)
          Deprecated. As of Java 3D version 1.3, replaced by KBSplinePathInterpolator(Alpha, TransformGroup, TCBKeyFrame[])
KBSplinePathInterpolator(Alpha alpha, TransformGroup target, KBKeyFrame[] keys)
          Constructs a new KBSplinePathInterpolator object that interpolates between keyframes with specified alpha, target and an default axisOfTranform set to identity.
KBSplinePathInterpolator(Alpha alpha, TransformGroup target, Transform3D axisOfTransform, KBKeyFrame[] keys)
          Constructs a new KBSplinePathInterpolator object that interpolates between keyframes with specified alpha, target and axisOfTransform.
 
Method Summary
protected  void computePathInterpolation()
          Deprecated. As of Java 3D version 1.3, replaced by computePathInterpolation(float)
protected  void computePathInterpolation(float alphaValue)
          This method computes the bounding knot indices and interpolation value "CurrentU" given the current value of the knots[] array and the specified alpha value
 void duplicateNode(Node originalNode, boolean forceDuplicate)
          Copies all KBSplinePathInterpolator information from originalNode into the current node.
 int getArrayLength()
          This method retrieves the length of the key frame array.
 KBKeyFrame getKeyFrame(int index)
          This method retrieves the key frame at the specified index.
 void setKeyFrame(int index, KBKeyFrame keyFrame)
          Set the key frame at the specified index to keyFrame
 void setKeyFrames(KBKeyFrame[] keyFrames)
          Set allthe key frames
 
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, 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

keyFrames

protected KBKeyFrame[] keyFrames
An array of KBKeyFrame for interpolator


currentU

protected float currentU
This value is the distance between knots value which can be used in further calculations by the subclass.


lowerKnot

protected int lowerKnot
The lower knot


upperKnot

protected int upperKnot
The upper knot

Constructor Detail

KBSplinePathInterpolator

public KBSplinePathInterpolator(Alpha alpha,
                                KBKeyFrame[] keys)
Deprecated. As of Java 3D version 1.3, replaced by KBSplinePathInterpolator(Alpha, TransformGroup, TCBKeyFrame[])


KBSplinePathInterpolator

public KBSplinePathInterpolator(Alpha alpha,
                                TransformGroup target,
                                KBKeyFrame[] keys)
Constructs a new KBSplinePathInterpolator object that interpolates between keyframes with specified alpha, target and an default axisOfTranform set to identity. It takes at least two key frames. 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. Once this constructor has all the valid key frames it creates its own list of key fames that duplicates the first key frame at the beginning of the list and the last key frame at the end of the list.

Parameters:
alpha - the alpha object for this interpolator
target - the TransformGroup node affected by this interpolator
keys - an array of KBKeyFrame. Requires at least two key frames.
Since:
Java 3D 1.3

KBSplinePathInterpolator

public KBSplinePathInterpolator(Alpha alpha,
                                TransformGroup target,
                                Transform3D axisOfTransform,
                                KBKeyFrame[] keys)
Constructs a new KBSplinePathInterpolator object that interpolates between keyframes with specified alpha, target and axisOfTransform. It takes at least two key frames. 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. Once this constructor has all the valid key frames it creates its own list of key fames that duplicates the first key frame at the beginning of the list and the last key frame at the end of the list.

Parameters:
alpha - the alpha object for this interpolator
target - the TransformGroup node affected by this interpolator
axisOfTransform - the transform that defines the local coordinate
keys - an array of KBKeyFrame. Requires at least two key frames
Since:
Java 3D 1.3
Method Detail

getArrayLength

public int getArrayLength()
This method retrieves the length of the key frame array.

Returns:
the number of key frames

getKeyFrame

public KBKeyFrame getKeyFrame(int index)
This method retrieves the key frame at the specified index.

Parameters:
index - the index of the key frame requested
Returns:
the key frame at the associated index

setKeyFrame

public void setKeyFrame(int index,
                        KBKeyFrame keyFrame)
Set the key frame at the specified index to keyFrame

Parameters:
index - Index of the key frame to change
keyFrame - The new key frame
Since:
Java 3D 1.3

setKeyFrames

public void setKeyFrames(KBKeyFrame[] keyFrames)
Set allthe key frames

Parameters:
keyFrames - The new key frame
Since:
Java 3D 1.3

computePathInterpolation

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


computePathInterpolation

protected void computePathInterpolation(float alphaValue)
This method computes the bounding knot indices and interpolation value "CurrentU" given the current value of the knots[] array and the specified alpha value

Parameters:
alphaValue - alpha value between 0.0 and 1.0
Since:
Java 3D 1.3

duplicateNode

public void duplicateNode(Node originalNode,
                          boolean forceDuplicate)
Copies all KBSplinePathInterpolator 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 Node
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.