Class InterpolationUtil
java.lang.Object
kr.toxicity.model.api.util.InterpolationUtil
Interpolation util
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceVector point builderstatic final recordVector result -
Method Summary
Modifier and TypeMethodDescriptionstatic floatalpha(float p0, float p1, float alpha) Finds alpha valuestatic @NotNull org.joml.Vector3fbezier(float alpha, @NotNull org.joml.Vector3f start, @NotNull org.joml.Vector3f end, @NotNull org.joml.Vector3f bezierRightTime, @NotNull org.joml.Vector3f bezierRightValue, @NotNull org.joml.Vector3f bezierLeftTime, @NotNull org.joml.Vector3f bezierLeftValue) Interpolates two vectors as bezierstatic @NotNull AnimationKeyframebuildAnimation(@NotNull List<VectorPoint> position, @NotNull List<VectorPoint> rotation, @NotNull List<VectorPoint> scale, boolean rotationGlobal, @NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet points) Builds animation keyframestatic @NotNull org.joml.Vector3fcatmull_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 voidinsertLerpFrame(@NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet frames) Inserts lerp frame to given setstatic voidinsertLerpFrame(@NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet frames, float frame) Inserts lerp frame to given setstatic @NotNull InterpolationUtil.VectorPointBuilderinterpolatorFor(@NotNull List<VectorPoint> vectors) Creates interpolatorstatic floatlerp(float p0, float p1, float alpha) Lerps two pointstatic @NotNull org.joml.Vector3flerp(@NotNull org.joml.Vector3f p0, @NotNull org.joml.Vector3f p1, float alpha) Lerps two pointstatic @NotNull org.joml.Vector3flerp(@NotNull org.joml.Vector3f p0, @NotNull org.joml.Vector3f p1, float alpha, @NotNull org.joml.Vector3f dest) Lerps two pointstatic floatroundTime(float time) Rounds float to frame time
-
Method Details
-
buildAnimation
@NotNull public static @NotNull AnimationKeyframe buildAnimation(@NotNull @NotNull List<VectorPoint> position, @NotNull @NotNull List<VectorPoint> rotation, @NotNull @NotNull List<VectorPoint> scale, boolean rotationGlobal, @NotNull @NotNull it.unimi.dsi.fastutil.floats.FloatSortedSet points) Builds animation keyframe- Parameters:
position- position pointrotation- rotation pointscale- scale pointrotationGlobal- rotation globalpoints- keyframe time set- Returns:
- animation keyframe
-
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 setframe- frame
-
alpha
public static float alpha(float p0, float p1, float alpha) Finds alpha value- Parameters:
p0- p0p1- p1alpha- 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- p0p1- p1alpha- alpha- Returns:
- lerped vector
-
lerp
@NotNull public static @NotNull org.joml.Vector3f lerp(@NotNull @NotNull org.joml.Vector3f p0, @NotNull @NotNull org.joml.Vector3f p1, float alpha, @NotNull @NotNull org.joml.Vector3f dest) Lerps two point- Parameters:
p0- p0p1- p1alpha- alphadest- destination vector- Returns:
- lerped vector
-
lerp
public static float lerp(float p0, float p1, float alpha) Lerps two point- Parameters:
p0- p0p1- p1alpha- alpha- Returns:
- lerped point
-
bezier
@NotNull public static @NotNull org.joml.Vector3f bezier(float alpha, @NotNull @NotNull org.joml.Vector3f start, @NotNull @NotNull org.joml.Vector3f end, @NotNull @NotNull org.joml.Vector3f bezierRightTime, @NotNull @NotNull org.joml.Vector3f bezierRightValue, @NotNull @NotNull org.joml.Vector3f bezierLeftTime, @NotNull @NotNull org.joml.Vector3f bezierLeftValue) Interpolates two vectors as bezier- Parameters:
alpha- alpha timestart- start keyframeend- end keyframebezierRightTime- bezier right timebezierRightValue- bezier right valuebezierLeftTime- bezier left timebezierLeftValue- bezier left 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- p0p1- p1p2- p2p3- p3t- alpha- Returns:
- interpolated vector
-