Class TweenTransforms

java.lang.Object
jme3utilities.wes.TweenTransforms
All Implemented Interfaces:
Cloneable

public class TweenTransforms extends Object implements Cloneable
Tweening techniques for time sequences of JME transforms.
  • Constructor Summary

    Constructors
    Constructor
    Description
    A no-arg constructor to avoid javadoc warnings from JDK 18.
  • Method Summary

    Modifier and Type
    Method
    Description
    Create a deep copy of this object.
    Read the technique for rotations.
    Read the technique for scales.
    Read the technique for translations.
    com.jme3.math.Transform
    interpolate(float time, float[] times, float duration, com.jme3.math.Vector3f[] translations, com.jme3.math.Quaternion[] rotations, com.jme3.math.Vector3f[] scales, com.jme3.math.Transform fallback, com.jme3.math.Transform storeResult)
    Interpolate between keyframes using these techniques.
    com.jme3.math.Transform
    interpolate(float time, com.jme3.anim.TransformTrack track, float duration, com.jme3.math.Transform storeResult)
    Interpolate between keyframes in a TransformTrack using these techniques.
    com.jme3.math.Transform
    interpolate(float time, com.jme3.animation.Track track, float duration, com.jme3.math.Transform fallback, com.jme3.math.Transform storeResult)
    Interpolate between keyframes in a bone/spatial track using these techniques.
    com.jme3.animation.Track
    resample(com.jme3.animation.Track oldTrack, float[] newTimes, float duration)
    Copy a bone/spatial track, resampling at the specified times using these techniques.
    com.jme3.animation.Track
    resampleAtRate(com.jme3.animation.Track oldTrack, float sampleRate, float duration)
    Copy a bone/spatial track, resampling it at the specified rate using these techniques.
    com.jme3.animation.Track
    resampleToNumber(com.jme3.animation.Track oldTrack, int numSamples, float duration)
    Copy a bone/spatial track, resampling to the specified number of samples using these techniques.
    void
    Alter the technique for rotations.
    void
    Alter the technique for scales.
    void
    Alter the technique for translations.
    com.jme3.math.Transform
    transform(com.jme3.animation.Track track, float time, float duration, com.jme3.math.Transform fallback, com.jme3.math.Transform storeResult)
    Calculate the transform for the specified time and bone/spatial track using these techniques.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TweenTransforms

      public TweenTransforms()
      A no-arg constructor to avoid javadoc warnings from JDK 18.
  • Method Details

    • getTweenRotations

      public TweenRotations getTweenRotations()
      Read the technique for rotations.
      Returns:
      enum (not null)
    • getTweenScales

      public TweenVectors getTweenScales()
      Read the technique for scales.
      Returns:
      enum (not null)
    • getTweenTranslations

      public TweenVectors getTweenTranslations()
      Read the technique for translations.
      Returns:
      enum (not null)
    • interpolate

      public com.jme3.math.Transform interpolate(float time, com.jme3.animation.Track track, float duration, com.jme3.math.Transform fallback, com.jme3.math.Transform storeResult)
      Interpolate between keyframes in a bone/spatial track using these techniques.
      Parameters:
      time - (in seconds, ≥0, ≤duration)
      track - input bone/spatial track (not null, unaffected)
      duration - animation duration (in seconds, >0)
      fallback - values to use for missing track data (may be null, unaffected)
      storeResult - storage for the result (modified if not null)
      Returns:
      transform (either storeResult or a new instance)
    • interpolate

      public com.jme3.math.Transform interpolate(float time, com.jme3.anim.TransformTrack track, float duration, com.jme3.math.Transform storeResult)
      Interpolate between keyframes in a TransformTrack using these techniques.
      Parameters:
      time - (in seconds)
      track - the input track (not null, unaffected)
      duration - the animation-clip duration (in seconds) NOT the track duration!
      storeResult - storage for the result (modified if not null)
      Returns:
      the transform (either storeResult or a new instance)
    • interpolate

      public com.jme3.math.Transform interpolate(float time, float[] times, float duration, com.jme3.math.Vector3f[] translations, com.jme3.math.Quaternion[] rotations, com.jme3.math.Vector3f[] scales, com.jme3.math.Transform fallback, com.jme3.math.Transform storeResult)
      Interpolate between keyframes using these techniques.
      Parameters:
      time - (in seconds, ≥0, ≤duration)
      times - keyframe times (in seconds, not null, unaffected)
      duration - animation duration (in seconds, >0)
      translations - (may be null, unaffected, same length as times)
      rotations - (may be null, unaffected, same length as times)
      scales - (may be null, unaffected, same length as times)
      fallback - values to use for missing track data (may be null, unaffected)
      storeResult - storage for the result (modified if not null)
      Returns:
      transform (either storeResult or a new instance)
    • resample

      public com.jme3.animation.Track resample(com.jme3.animation.Track oldTrack, float[] newTimes, float duration)
      Copy a bone/spatial track, resampling at the specified times using these techniques.
      Parameters:
      oldTrack - input bone/spatial track (not null, unaffected)
      newTimes - sample times (not null, alias created)
      duration - animation duration (in seconds, ≥0)
      Returns:
      a new instance
    • resampleAtRate

      public com.jme3.animation.Track resampleAtRate(com.jme3.animation.Track oldTrack, float sampleRate, float duration)
      Copy a bone/spatial track, resampling it at the specified rate using these techniques.
      Parameters:
      oldTrack - input bone/spatial track (not null, unaffected)
      sampleRate - sample rate (in frames per second, >0)
      duration - animation duration (in seconds, ≥0)
      Returns:
      a new instance
    • resampleToNumber

      public com.jme3.animation.Track resampleToNumber(com.jme3.animation.Track oldTrack, int numSamples, float duration)
      Copy a bone/spatial track, resampling to the specified number of samples using these techniques.
      Parameters:
      oldTrack - input bone/spatial track (not null, unaffected)
      numSamples - number of samples (≥2)
      duration - animation duration (in seconds, >0)
      Returns:
      a new instance
    • setTweenRotations

      public void setTweenRotations(TweenRotations newTechnique)
      Alter the technique for rotations.
      Parameters:
      newTechnique - (not null)
    • setTweenScales

      public void setTweenScales(TweenVectors newTechnique)
      Alter the technique for scales.
      Parameters:
      newTechnique - (not null)
    • setTweenTranslations

      public void setTweenTranslations(TweenVectors newTechnique)
      Alter the technique for translations.
      Parameters:
      newTechnique - (not null)
    • transform

      public com.jme3.math.Transform transform(com.jme3.animation.Track track, float time, float duration, com.jme3.math.Transform fallback, com.jme3.math.Transform storeResult)
      Calculate the transform for the specified time and bone/spatial track using these techniques.
      Parameters:
      track - input bone/spatial track (not null, unaffected)
      time - animation time input (in seconds)
      duration - (in seconds)
      fallback - values to use for missing track data (may be null, unaffected)
      storeResult - storage for the result (modified if not null)
      Returns:
      a transform (either storeResult or a new instance)
    • clone

      Create a deep copy of this object.
      Overrides:
      clone in class Object
      Returns:
      a new object, equivalent to this one
      Throws:
      CloneNotSupportedException - if superclass isn't cloneable