target/generated-sources/template/com/flowpowered/math/GenericMath.java
public static double triLerp(double x, double y, double z, double q000, double q001,
                                 double q010, double q011, double q100, double q101, double q110, double q111,
                                 double x1, double x2, double y1, double y2, double z1, double z2) {
        double q00 = lerp(x, x1, x2, q000, q100);
        double q01 = lerp(x, x1, x2, q010, q110);
        double q10 = lerp(x, x1, x2, q001, q101);
        double q11 = lerp(x, x1, x2, q011, q111);
        double q0 = lerp(y, y1, y2, q00, q10);
        double q1 = lerp(y, y1, y2, q01, q11);
        return lerp(z, z1, z2, q0, q1);
    }
public static double triLerp(double x, double y, double z, double q000, double q001,
                                 double q010, double q011, double q100, double q101, double q110, double q111,
                                 double x1, double x2, double y1, double y2, double z1, double z2) {
        double q00 = lerp(x, x1, x2, q000, q100);
        double q01 = lerp(x, x1, x2, q010, q110);
        double q10 = lerp(x, x1, x2, q001, q101);
        double q11 = lerp(x, x1, x2, q011, q111);
        double q0 = lerp(y, y1, y2, q00, q10);
        double q1 = lerp(y, y1, y2, q01, q11);
        return lerp(z, z1, z2, q0, q1);
    }
public static double triLerp ( double x , double y , double z , double q000 , double q001 , double q010 , double q011 , double q100 , double q101 , double q110 , double q111 , double x1 , double x2 , double y1 , double y2 , double z1 , double z2 ) { double q00 = lerp ( x , x1 , x2 , q000 , q100 ) ; double q01 = lerp ( x , x1 , x2 , q010 , q110 ) ; double q10 = lerp ( x , x1 , x2 , q001 , q101 ) ; double q11 = lerp ( x , x1 , x2 , q011 , q111 ) ; double q0 = lerp ( y , y1 , y2 , q00 , q10 ) ; double q1 = lerp ( y , y1 , y2 , q01 , q11 ) ; return lerp ( z , z1 , z2 , q0 , q1 ) ; }
Calculates the value at x,y,z using trilinear interpolation

@param x the X coord of the value to interpolate
@param y the Y coord of the value to interpolate
@param z the Z coord of the value to interpolate
@param q000 the first known value (x1, y1, z1)
@param q001 the second known value (x1, y2, z1)
@param q010 the third known value (x1, y1, z2)
@param q011 the fourth known value (x1, y2, z2)
@param q100 the fifth known value (x2, y1, z1)
@param q101 the sixth known value (x2, y2, z1)
@param q110 the seventh known value (x2, y1, z2)
@param q111 the eighth known value (x2, y2, z2)
@param x1 the X coord of q000, q001, q010 and q011
@param x2 the X coord of q100, q101, q110 and q111
@param y1 the Y coord of q000, q010, q100 and q110
@param y2 the Y coord of q001, q011, q101 and q111
@param z1 the Z coord of q000, q001, q100 and q101
@param z2 the Z coord of q010, q011, q110 and q111
@return the interpolated value
Calculates the value at x y z using trilinear interpolation