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];
}
} };
}