Example #1
0
 public static Affine getAffine(double dimCube, double d0, boolean bFaceArrow, String face) {
   Affine aff;
   double d = 2d * dimCube / 3d;
   if (!bFaceArrow) {
     aff = new Affine(new Scale(80, 80, 50));
     aff.append(new Translate(-d0, -d0, d0));
   } else {
     aff = new Affine(new Scale(3, 3, 3));
     aff.append(new Translate(0, -d0, 0));
   }
   switch (face) {
     case "F":
     case "Fi":
       aff.prepend(new Rotate(face.equals("F") ? 90 : -90, Rotate.X_AXIS));
       aff.prepend(new Rotate(face.equals("F") ? 45 : -45, Rotate.Z_AXIS));
       aff.prepend(new Translate(0, 0, dimCube / 2d));
       break;
     case "B":
     case "Bi":
       aff.prepend(new Rotate(face.equals("Bi") ? 90 : -90, Rotate.X_AXIS));
       aff.prepend(new Rotate(face.equals("Bi") ? 45 : -45, Rotate.Z_AXIS));
       aff.prepend(new Translate(0, 0, -dimCube / 2d));
       break;
     case "R":
     case "Ri":
       aff.prepend(new Rotate(face.equals("Ri") ? 90 : -90, Rotate.Z_AXIS));
       aff.prepend(new Rotate(face.equals("Ri") ? 45 : -45, Rotate.X_AXIS));
       aff.prepend(new Translate(dimCube / 2d, 0, 0));
       break;
     case "L":
     case "Li":
       aff.prepend(new Rotate(face.equals("L") ? 90 : -90, Rotate.Z_AXIS));
       aff.prepend(new Rotate(face.equals("L") ? 45 : -45, Rotate.X_AXIS));
       aff.prepend(new Translate(-dimCube / 2d, 0, 0));
       break;
     case "U":
     case "Ui":
       aff.prepend(new Rotate(face.equals("Ui") ? 180 : 0, Rotate.Z_AXIS));
       aff.prepend(new Rotate(face.equals("Ui") ? 45 : -45, Rotate.Y_AXIS));
       aff.prepend(new Translate(0, dimCube / 2d, 0));
       break;
     case "D":
     case "Di":
       aff.prepend(new Rotate(face.equals("D") ? 180 : 0, Rotate.Z_AXIS));
       aff.prepend(new Rotate(face.equals("D") ? 45 : -45, Rotate.Y_AXIS));
       aff.prepend(new Translate(0, -dimCube / 2d, 0));
       break;
     case "Z":
     case "Zi":
       aff.prepend(new Rotate(face.equals("Zi") ? 180 : 0, Rotate.Y_AXIS));
       aff.prepend(new Rotate(face.equals("Zi") ? 45 : -45, Rotate.Z_AXIS));
       aff.prepend(new Translate(0, 0, d));
       break;
     case "X":
     case "Xi":
       aff.prepend(new Rotate(face.equals("X") ? 90 : -90, Rotate.Y_AXIS));
       aff.prepend(new Rotate(face.equals("Xi") ? 45 : -45, Rotate.X_AXIS));
       aff.prepend(new Translate(d, 0, 0));
       break;
     case "Y":
     case "Yi":
       aff.prepend(new Rotate(face.equals("Yi") ? 90 : -90, Rotate.X_AXIS));
       aff.prepend(new Rotate(face.equals("Yi") ? 45 : -45, Rotate.Y_AXIS));
       aff.prepend(new Translate(0, d, 0));
       break;
   }
   return aff;
 }