public static Boolean isCenter(RubikPosition Position) { return((Position == (Cube3D.RubikPosition.TopLayer | Cube3D.RubikPosition.MiddleSlice | Cube3D.RubikPosition.MiddleSlice_Sides)) || (Position == (Cube3D.RubikPosition.BottomLayer | Cube3D.RubikPosition.MiddleSlice | Cube3D.RubikPosition.MiddleSlice_Sides)) || (Position == (Cube3D.RubikPosition.LeftSlice | Cube3D.RubikPosition.MiddleSlice | Cube3D.RubikPosition.MiddleLayer)) || (Position == (Cube3D.RubikPosition.RightSlice | Cube3D.RubikPosition.MiddleSlice | Cube3D.RubikPosition.MiddleLayer)) || (Position == (Cube3D.RubikPosition.FrontSlice | Cube3D.RubikPosition.MiddleSlice_Sides | Cube3D.RubikPosition.MiddleLayer)) || (Position == (Cube3D.RubikPosition.BackSlice | Cube3D.RubikPosition.MiddleSlice_Sides | Cube3D.RubikPosition.MiddleLayer))); }
public static Boolean isCorner(RubikPosition Position) { return((Position == (RubikPosition.TopLayer | RubikPosition.FrontSlice | RubikPosition.LeftSlice)) || (Position == (RubikPosition.TopLayer | RubikPosition.FrontSlice | RubikPosition.RightSlice)) || (Position == (RubikPosition.TopLayer | RubikPosition.BackSlice | RubikPosition.LeftSlice)) || (Position == (RubikPosition.TopLayer | RubikPosition.BackSlice | RubikPosition.RightSlice)) || (Position == (RubikPosition.BottomLayer | RubikPosition.FrontSlice | RubikPosition.LeftSlice)) || (Position == (RubikPosition.BottomLayer | RubikPosition.FrontSlice | RubikPosition.RightSlice)) || (Position == (RubikPosition.BottomLayer | RubikPosition.BackSlice | RubikPosition.LeftSlice)) || (Position == (RubikPosition.BottomLayer | RubikPosition.BackSlice | RubikPosition.RightSlice))); }
public static RubikPosition getCommonLayer(RubikPosition a, RubikPosition b, RubikPosition exclude) { for (int i = 0; i < 9; i++) { RubikPosition l = (Cube3D.RubikPosition)Math.Pow(2, i); if (a.HasFlag(l) && b.HasFlag(l) && l != exclude) { return(l); } } return(RubikPosition.None); }
public Cube3D(Point3D location, double scale, RubikPosition position) { //Stack<Color> colorStack = new Stack<Color>(colors); Faces = UniCube.genFaces(position); Faces.ToList().ForEach(f => { //f.Color = colorStack.Pop(); //color f.Edges.ToList().ForEach(e => { e.X *= scale; e.Y *= scale; e.Z *= scale; //scale e.X += location.X; e.Y += location.Y; e.Z += location.Z; //translate }); }); Position = position; }
public static Boolean isEdge(RubikPosition Position) { return((Position == (RubikPosition.TopLayer | RubikPosition.FrontSlice | RubikPosition.MiddleSlice_Sides)) || (Position == (RubikPosition.TopLayer | RubikPosition.BackSlice | RubikPosition.MiddleSlice_Sides)) || (Position == (RubikPosition.TopLayer | RubikPosition.RightSlice | RubikPosition.MiddleSlice)) || (Position == (RubikPosition.TopLayer | RubikPosition.LeftSlice | RubikPosition.MiddleSlice)) || (Position == (RubikPosition.MiddleLayer | RubikPosition.FrontSlice | RubikPosition.RightSlice)) || (Position == (RubikPosition.MiddleLayer | RubikPosition.FrontSlice | RubikPosition.LeftSlice)) || (Position == (RubikPosition.MiddleLayer | RubikPosition.BackSlice | RubikPosition.RightSlice)) || (Position == (RubikPosition.MiddleLayer | RubikPosition.BackSlice | RubikPosition.LeftSlice)) || (Position == (RubikPosition.BottomLayer | RubikPosition.FrontSlice | RubikPosition.MiddleSlice_Sides)) || (Position == (RubikPosition.BottomLayer | RubikPosition.BackSlice | RubikPosition.MiddleSlice_Sides)) || (Position == (RubikPosition.BottomLayer | RubikPosition.RightSlice | RubikPosition.MiddleSlice)) || (Position == (RubikPosition.BottomLayer | RubikPosition.LeftSlice | RubikPosition.MiddleSlice))); }
public Cube3D(IEnumerable <Face3D> faces, RubikPosition position) { Faces = faces; Position = position; }