package com.skcraft.playblock.util; /** * Math utility functions. */ public final class MathUtils { private MathUtils() { } /** * Clamp a value between two bounds (inclusive). * * @param value * the value * @param min * the minimum * @param max * the maximum * @return the clamped value */ public static float clamp(float value, float min, float max) { return value < min ? min : (value > max ? max : value); } /** * Quadratic ease-in function. * * @param t * time * @param b * initial value * @param c * change in value * @param d * duration * @return the value */ public static double easeInQuad(double t, double b, double c, double d) { if (t <= 0) return b; if (t > d) return b + c; t /= d; return c * t * t + b; } /** * Cubic ease-in/out function. * * @param t * time * @param b * initial value * @param c * change in value * @param d * duration * @return the value */ public static double easeInOutCubic(double t, double b, double c, double d) { if (t <= 0) return b; if (t > d) return b + c; t /= d / 2; if (t < 1) return c / 2 * t * t * t + b; t -= 2; return c / 2 * (t * t * t + 2) + b; } }