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