Class 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 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)