public static Arrow ReOrient(this CubieFace face, Arrow direction) { face.Check(direction); if (face.Cubie.Dot(direction) > 0) { return(face.Face.Negate()); } return(direction); }
public static CubieFace Neighbour(this CubieFace face, Arrow direction) { face.Check(direction); if (face.Cubie.Dot(direction) > 0) { return(new CubieFace(face.Cubie, direction)); } var cubie = face.Cubie.Add(direction); return(new CubieFace(cubie, face.Face)); }