package codechicken.lib.vec; public class AxisCycle { public static Transformation[] cycles = new Transformation[]{ new RedundantTransformation(), new VariableTransformation(new Matrix4(0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1)){ @Override public void apply(Vector3 vec){ double d0 = vec.x; double d1 = vec.y; double d2 = vec.z; vec.x = d2; vec.y = d0; vec.z = d1; } @Override public Transformation inverse(){ return cycles[2]; }}, new VariableTransformation(new Matrix4(0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1)){ @Override public void apply(Vector3 vec){ double d0 = vec.x; double d1 = vec.y; double d2 = vec.z; vec.x = d1; vec.y = d2; vec.z = d0; } @Override public Transformation inverse(){ return cycles[1]; }}}; }