public RubikCube(int rank_num = 3, int edge = 150) { rank = rank_num; double temp = rank_num * edge / 2.0; // initial cuboids cuboids = new Cuboid[rank, rank, rank]; ForEach((i, j, k) => { var cub = new Cuboid(edge, edge, edge); cub.MoveBy(i * edge - temp, j * edge - temp, k * edge - temp); cub.DrawingLine = true; cub.FillingFace = false; cuboids[i, j, k] = cub; }); // default center is 0,0,0 center = new Point3D(0, 0, 0); }