Class InterpolationUtil

java.lang.Object
kr.toxicity.model.api.util.InterpolationUtil

@Internal public final class InterpolationUtil extends Object
Interpolation util
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static interface 
    Vector point builder
  • Method Summary

    Modifier and Type
    Method
    Description
    static float
    alpha(float p0, float p1, float alpha)
    Finds alpha value
    static @NotNull org.joml.Vector3f
    bezier(float time, float startTime, float endTime, @NotNull org.joml.Vector3f startValue, @NotNull org.joml.Vector3f endValue, @Nullable org.joml.Vector3f bezierLeftTime, @Nullable org.joml.Vector3f bezierLeftValue, @Nullable org.joml.Vector3f bezierRightTime, @Nullable org.joml.Vector3f bezierRightValue)
    Interpolates two vectors as bezier
    static @NotNull @Unmodifiable List<AnimationMovement>
    buildAnimation(@NotNull List<VectorPoint> position, @NotNull List<VectorPoint> rotation, @NotNull List<VectorPoint> scale, @NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet points)
    Builds animation movement
    static @NotNull org.joml.Vector3f
    catmull_rom(@NotNull org.joml.Vector3f p0, @NotNull org.joml.Vector3f p1, @NotNull org.joml.Vector3f p2, @NotNull org.joml.Vector3f p3, float t)
    Interpolates four vectors as catmull-rom.
    static void
    insertLerpFrame(@NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet frames)
    Inserts lerp frame to given set
    static void
    insertLerpFrame(@NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet frames, float frame)
    Inserts lerp frame to given set
    interpolatorFor(@NotNull List<VectorPoint> vectors)
    Creates interpolator
    static float
    lerp(float p0, float p1, float alpha)
    Lerps two point
    static @NotNull org.joml.Vector3f
    lerp(@NotNull org.joml.Vector3f p0, @NotNull org.joml.Vector3f p1, float alpha)
    Lerps two point
    static float
    roundTime(float time)
    Rounds float to frame time

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • buildAnimation

      @NotNull public static @NotNull @Unmodifiable List<AnimationMovement> buildAnimation(@NotNull @NotNull List<VectorPoint> position, @NotNull @NotNull List<VectorPoint> rotation, @NotNull @NotNull List<VectorPoint> scale, @NotNull @NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet points)
      Builds animation movement
      Parameters:
      position - position point
      rotation - rotation point
      scale - scale point
      points - keyframe time set
      Returns:
      animation movement list
    • interpolatorFor

      @NotNull public static @NotNull InterpolationUtil.VectorPointBuilder interpolatorFor(@NotNull @NotNull List<VectorPoint> vectors)
      Creates interpolator
      Parameters:
      vectors - target vector list
      Returns:
      point builder
    • roundTime

      public static float roundTime(float time)
      Rounds float to frame time
      Parameters:
      time - time
      Returns:
      rounded time
    • insertLerpFrame

      public static void insertLerpFrame(@NotNull @NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet frames)
      Inserts lerp frame to given set
      Parameters:
      frames - target set
    • insertLerpFrame

      public static void insertLerpFrame(@NotNull @NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet frames, float frame)
      Inserts lerp frame to given set
      Parameters:
      frames - target set
      frame - frame
    • alpha

      public static float alpha(float p0, float p1, float alpha)
      Finds alpha value
      Parameters:
      p0 - p0
      p1 - p1
      alpha - target value between p0 and p1
      Returns:
      alpha (0..1)
    • lerp

      @NotNull public static @NotNull org.joml.Vector3f lerp(@NotNull @NotNull org.joml.Vector3f p0, @NotNull @NotNull org.joml.Vector3f p1, float alpha)
      Lerps two point
      Parameters:
      p0 - p0
      p1 - p1
      alpha - alpha
      Returns:
      lerped vector
    • lerp

      public static float lerp(float p0, float p1, float alpha)
      Lerps two point
      Parameters:
      p0 - p0
      p1 - p1
      alpha - alpha
      Returns:
      lerped point
    • bezier

      @NotNull public static @NotNull org.joml.Vector3f bezier(float time, float startTime, float endTime, @NotNull @NotNull org.joml.Vector3f startValue, @NotNull @NotNull org.joml.Vector3f endValue, @Nullable @Nullable org.joml.Vector3f bezierLeftTime, @Nullable @Nullable org.joml.Vector3f bezierLeftValue, @Nullable @Nullable org.joml.Vector3f bezierRightTime, @Nullable @Nullable org.joml.Vector3f bezierRightValue)
      Interpolates two vectors as bezier
      Parameters:
      time - time
      startTime - start time
      endTime - end time
      startValue - start value
      endValue - end value
      bezierLeftTime - bezier left time
      bezierLeftValue - bezier left value
      bezierRightTime - bezier right time
      bezierRightValue - bezier right value
      Returns:
      interpolated vector
    • catmull_rom

      @NotNull public static @NotNull org.joml.Vector3f catmull_rom(@NotNull @NotNull org.joml.Vector3f p0, @NotNull @NotNull org.joml.Vector3f p1, @NotNull @NotNull org.joml.Vector3f p2, @NotNull @NotNull org.joml.Vector3f p3, float t)
      Interpolates four vectors as catmull-rom.
      Parameters:
      p0 - p0
      p1 - p1
      p2 - p2
      p3 - p3
      t - alpha
      Returns:
      interpolated vector