Example #1
0
 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)));
 }
Example #2
0
 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)));
 }
Example #3
0
 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);
 }
Example #4
0
 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;
 }
Example #5
0
 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)));
 }
Example #6
0
 public Cube3D(IEnumerable <Face3D> faces, RubikPosition position)
 {
     Faces    = faces;
     Position = position;
 }