com.sun.j3d.utils.behaviors.interpolators
Class KBSplinePathInterpolator
java.lang.Object
|
+--javax.media.j3d.SceneGraphObject
|
+--javax.media.j3d.Node
|
+--javax.media.j3d.Leaf
|
+--javax.media.j3d.Behavior
|
+--javax.media.j3d.Interpolator
|
+--com.sun.j3d.utils.behaviors.interpolators.KBSplinePathInterpolator
- Direct Known Subclasses:
- KBRotPosScaleSplinePathInterpolator
- public abstract class KBSplinePathInterpolator
- extends Interpolator
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
|
protected int |
lowerKnot
|
protected int |
upperKnot
|
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_PICKABLE_READ, ALLOW_PICKABLE_WRITE, ENABLE_COLLISION_REPORTING, ENABLE_PICK_REPORTING |
Method Summary |
protected void |
computePathInterpolation()
This method computes the bounding knot indices and interpolation value
"CurrentU" given the current value of alpha and the knots[] array. |
void |
duplicateNode(Node originalNode,
boolean forceDuplicate)
Copies all node 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. |
Methods inherited from class javax.media.j3d.Behavior |
getEnable, getSchedulingBoundingLeaf, getSchedulingBounds, getView, postId, processStimulus, setEnable, setSchedulingBoundingLeaf, setSchedulingBounds, updateNodeReferences, wakeupOn |
Methods inherited from class javax.media.j3d.Node |
cloneNode, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, cloneTree, getBounds, getBoundsAutoCompute, getCollidable, getLocalToVworld, getLocalToVworld, getParent, getPickable, setBounds, setBoundsAutoCompute, setCollidable, setPickable |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
keyFrames
protected KBKeyFrame[] keyFrames
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
upperKnot
protected int upperKnot
KBSplinePathInterpolator
public KBSplinePathInterpolator(Alpha alpha,
KBKeyFrame[] keys)
- Constructs a new KBSplinePathInterpolator object that interpolates
between keyframes. 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 interpolatorkeys
- an array of KBKeyFrame. Requires at least two key frames.
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
computePathInterpolation
protected void computePathInterpolation()
- This method computes the bounding knot indices and interpolation value
"CurrentU" given the current value of alpha and the knots[] array.
duplicateNode
public void duplicateNode(Node originalNode,
boolean forceDuplicate)
- Description copied from class:
Node
- Copies all node information from
originalNode
into
the current node. This method is called from the
cloneNode
method which is, in turn, called by the
cloneTree
method.
For any NodeComponent
objects
contained by the object being duplicated, each NodeComponent
object's duplicateOnCloneTree
value is used to determine
whether the NodeComponent
should be duplicated in the new node
or if just a reference to the current node should be placed in the
new node. This flag can be overridden by setting the
forceDuplicate
parameter in the cloneTree
method to true
.
NOTE: Applications should not call this method directly.
It should only be called by the cloneNode method.
- Overrides:
duplicateNode
in class Node
- Following copied from class:
javax.media.j3d.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.- See Also:
Group.cloneNode(boolean)
,
Node.duplicateNode(javax.media.j3d.Node, boolean)
,
Node.cloneTree()
,
NodeComponent.setDuplicateOnCloneTree(boolean)