void InitializeFace(ref Cube newCube, ref Cube oldCube, string face) { switch (face) { case "minY": newCube.vertices[4] = oldCube.vertices[0]; newCube.vertices[16] = oldCube.vertices[8]; newCube.vertices[5] = oldCube.vertices[1]; newCube.vertices[17] = oldCube.vertices[9]; newCube.vertices[6] = oldCube.vertices[2]; newCube.vertices[18] = oldCube.vertices[10]; newCube.vertices[7] = oldCube.vertices[3]; newCube.vertices[19] = oldCube.vertices[11]; newCube.UpdateFace(); break; case "maxY": newCube.vertices[0] = oldCube.vertices[4]; newCube.vertices[8] = oldCube.vertices[16]; newCube.vertices[1] = oldCube.vertices[5]; newCube.vertices[9] = oldCube.vertices[17]; newCube.vertices[2] = oldCube.vertices[6]; newCube.vertices[10] = oldCube.vertices[18]; newCube.vertices[3] = oldCube.vertices[7]; newCube.vertices[11] = oldCube.vertices[19]; newCube.UpdateFace(); break; case "minX": newCube.vertices[5] = oldCube.vertices[4]; newCube.vertices[13] = oldCube.vertices[12]; newCube.vertices[1] = oldCube.vertices[0]; newCube.vertices[9] = oldCube.vertices[11]; newCube.vertices[14] = oldCube.vertices[15]; newCube.vertices[6] = oldCube.vertices[7]; newCube.vertices[17] = oldCube.vertices[19]; newCube.vertices[2] = oldCube.vertices[3]; newCube.UpdateFace(); break; case "maxX": newCube.vertices[4] = oldCube.vertices[5]; newCube.vertices[12] = oldCube.vertices[13]; newCube.vertices[0] = oldCube.vertices[1]; newCube.vertices[11] = oldCube.vertices[9]; newCube.vertices[15] = oldCube.vertices[14]; newCube.vertices[7] = oldCube.vertices[6]; newCube.vertices[19] = oldCube.vertices[17]; newCube.vertices[3] = oldCube.vertices[2]; newCube.UpdateFace(); break; case "minZ": newCube.vertices[0] = oldCube.vertices[3]; newCube.vertices[8] = oldCube.vertices[10]; newCube.vertices[1] = oldCube.vertices[2]; newCube.vertices[13] = oldCube.vertices[14]; newCube.vertices[5] = oldCube.vertices[6]; newCube.vertices[16] = oldCube.vertices[18]; newCube.vertices[4] = oldCube.vertices[7]; newCube.vertices[12] = oldCube.vertices[15]; newCube.UpdateFace(); break; case "maxZ": newCube.vertices[3] = oldCube.vertices[0]; newCube.vertices[10] = oldCube.vertices[8]; newCube.vertices[2] = oldCube.vertices[1]; newCube.vertices[14] = oldCube.vertices[13]; newCube.vertices[6] = oldCube.vertices[5]; newCube.vertices[18] = oldCube.vertices[16]; newCube.vertices[7] = oldCube.vertices[4]; newCube.vertices[15] = oldCube.vertices[12]; newCube.UpdateFace(); break; } }
void UpdateEdges(ref Cube c) { for (int i = 0; i < Model.Count; i++) { Cube c1 = Model[i]; if (c.TransCube.edges[0].Equals(c1.TransCube.edges[1])) { c.edges[0].Set(ref c1.edges[1]); } if (c.TransCube.edges[0].Equals(c1.TransCube.edges[2])) { c.edges[0].Set(ref c1.edges[2]); } if (c.TransCube.edges[0].Equals(c1.TransCube.edges[3])) { c.edges[0].Set(ref c1.edges[3]); } if (c.TransCube.edges[1].Equals(c1.TransCube.edges[2])) { c.edges[1].Set(ref c1.edges[2]); } if (c.TransCube.edges[1].Equals(c1.TransCube.edges[3])) { c.edges[1].Set(ref c1.edges[3]); } if (c.TransCube.edges[1].Equals(c1.TransCube.edges[0])) { c.edges[1].Set(ref c1.edges[0]); } if (c.TransCube.edges[2].Equals(c1.TransCube.edges[3])) { c.edges[2].Set(ref c1.edges[3]); } if (c.TransCube.edges[2].Equals(c1.TransCube.edges[0])) { c.edges[2].Set(ref c1.edges[0]); } if (c.TransCube.edges[2].Equals(c1.TransCube.edges[1])) { c.edges[2].Set(ref c1.edges[1]); } if (c.TransCube.edges[3].Equals(c1.TransCube.edges[0])) { c.edges[3].Set(ref c1.edges[0]); } if (c.TransCube.edges[3].Equals(c1.TransCube.edges[1])) { c.edges[3].Set(ref c1.edges[1]); } if (c.TransCube.edges[3].Equals(c1.TransCube.edges[2])) { c.edges[3].Set(ref c1.edges[2]); } if (c.TransCube.edges[4].Equals(c1.TransCube.edges[8])) { c.edges[4].Set(ref c1.edges[8]); } if (c.TransCube.edges[4].Equals(c1.TransCube.edges[10])) { c.edges[4].Set(ref c1.edges[10]); } if (c.TransCube.edges[4].Equals(c1.TransCube.edges[6])) { c.edges[4].Set(ref c1.edges[6]); } if (c.TransCube.edges[5].Equals(c1.TransCube.edges[9])) { c.edges[5].Set(ref c1.edges[9]); } if (c.TransCube.edges[5].Equals(c1.TransCube.edges[7])) { c.edges[5].Set(ref c1.edges[7]); } if (c.TransCube.edges[5].Equals(c1.TransCube.edges[11])) { c.edges[5].Set(ref c1.edges[11]); } if (c.TransCube.edges[6].Equals(c1.TransCube.edges[4])) { c.edges[6].Set(ref c1.edges[4]); } if (c.TransCube.edges[6].Equals(c1.TransCube.edges[10])) { c.edges[6].Set(ref c1.edges[10]); } if (c.TransCube.edges[6].Equals(c1.TransCube.edges[8])) { c.edges[6].Set(ref c1.edges[8]); } if (c.TransCube.edges[7].Equals(c1.TransCube.edges[9])) { c.edges[7].Set(ref c1.edges[9]); } if (c.TransCube.edges[7].Equals(c1.TransCube.edges[5])) { c.edges[7].Set(ref c1.edges[5]); } if (c.TransCube.edges[7].Equals(c1.TransCube.edges[11])) { c.edges[7].Set(ref c1.edges[11]); } if (c.TransCube.edges[8].Equals(c1.TransCube.edges[4])) { c.edges[8].Set(ref c1.edges[4]); } if (c.TransCube.edges[8].Equals(c1.TransCube.edges[6])) { c.edges[8].Set(ref c1.edges[6]); } if (c.TransCube.edges[8].Equals(c1.TransCube.edges[10])) { c.edges[8].Set(ref c1.edges[10]); } if (c.TransCube.edges[9].Equals(c1.TransCube.edges[11])) { c.edges[9].Set(ref c1.edges[11]); } if (c.TransCube.edges[9].Equals(c1.TransCube.edges[7])) { c.edges[9].Set(ref c1.edges[7]); } if (c.TransCube.edges[9].Equals(c1.TransCube.edges[5])) { c.edges[9].Set(ref c1.edges[5]); } if (c.TransCube.edges[10].Equals(c1.TransCube.edges[6])) { c.edges[10].Set(ref c1.edges[6]); } if (c.TransCube.edges[10].Equals(c1.TransCube.edges[8])) { c.edges[10].Set(ref c1.edges[8]); } if (c.TransCube.edges[10].Equals(c1.TransCube.edges[4])) { c.edges[10].Set(ref c1.edges[4]); } if (c.TransCube.edges[11].Equals(c1.TransCube.edges[7])) { c.edges[11].Set(ref c1.edges[7]); } if (c.TransCube.edges[11].Equals(c1.TransCube.edges[5])) { c.edges[11].Set(ref c1.edges[5]); } if (c.TransCube.edges[11].Equals(c1.TransCube.edges[9])) { c.edges[11].Set(ref c1.edges[9]); } } foreach (Cube t in Model) { t.VertexToEdges(); } c.VertexToEdges(); c.UpdateFace(); }
void InitializeEdge(ref Cube edited, ref Cube c, int edge) { switch (edge) { case 1: if (((edited.TransCube.vertices[0].Equals(c.TransCube.vertices[7])) && (edited.TransCube.vertices[1].Equals(c.TransCube.vertices[6])))) { edited.vertices[0] = c.vertices[7]; edited.vertices[1] = c.vertices[6]; edited.vertices[8] = c.vertices[18]; edited.UpdateFace(); } break; case 2: if (((edited.TransCube.vertices[1].Equals(c.TransCube.vertices[4])) && (edited.TransCube.vertices[2].Equals(c.TransCube.vertices[7])))) { edited.vertices[1] = c.vertices[4]; edited.vertices[2] = c.vertices[7]; edited.vertices[9] = c.vertices[19]; edited.UpdateFace(); } break; case 3: if (((edited.TransCube.vertices[2].Equals(c.TransCube.vertices[5])) && (edited.TransCube.vertices[3].Equals(c.TransCube.vertices[4])))) { edited.vertices[2] = c.vertices[5]; edited.vertices[3] = c.vertices[4]; edited.vertices[10] = c.vertices[16]; edited.UpdateFace(); } break; case 4: if (((edited.TransCube.vertices[0].Equals(c.TransCube.vertices[5])) && (edited.TransCube.vertices[3].Equals(c.TransCube.vertices[6])))) { edited.vertices[0] = c.vertices[5]; edited.vertices[3] = c.vertices[6]; edited.vertices[11] = c.vertices[17]; edited.UpdateFace(); } break; case 5: if (((edited.TransCube.vertices[4].Equals(c.TransCube.vertices[3])) && (edited.TransCube.vertices[5].Equals(c.TransCube.vertices[2])))) { edited.vertices[4] = c.vertices[3]; edited.vertices[5] = c.vertices[2]; edited.vertices[16] = c.vertices[10]; edited.UpdateFace(); } break; case 6: if (((edited.TransCube.vertices[5].Equals(c.TransCube.vertices[0])) && (edited.TransCube.vertices[6].Equals(c.TransCube.vertices[3])))) { edited.vertices[5] = c.vertices[0]; edited.vertices[6] = c.vertices[3]; edited.vertices[17] = c.vertices[11]; edited.UpdateFace(); } break; case 7: if (((edited.TransCube.vertices[7].Equals(c.TransCube.vertices[0])) && (edited.TransCube.vertices[6].Equals(c.TransCube.vertices[1])))) { edited.vertices[7] = c.vertices[0]; edited.vertices[6] = c.vertices[1]; edited.vertices[18] = c.vertices[8]; edited.UpdateFace(); } break; case 8: if (((edited.TransCube.vertices[4].Equals(c.TransCube.vertices[1])) && (edited.TransCube.vertices[7].Equals(c.TransCube.vertices[2])))) { edited.vertices[4] = c.vertices[1]; edited.vertices[7] = c.vertices[2]; edited.vertices[19] = c.vertices[9]; edited.UpdateFace(); } break; case 9: if (((edited.TransCube.vertices[0].Equals(c.TransCube.vertices[2])) && (edited.TransCube.vertices[4].Equals(c.TransCube.vertices[6])))) { edited.vertices[0] = c.vertices[2]; edited.vertices[4] = c.vertices[6]; edited.vertices[12] = c.vertices[14]; edited.UpdateFace(); } break; case 10: if (((edited.TransCube.vertices[5].Equals(c.TransCube.vertices[7])) && (edited.TransCube.vertices[1].Equals(c.TransCube.vertices[3])))) { edited.vertices[5] = c.vertices[7]; edited.vertices[1] = c.vertices[3]; edited.vertices[13] = c.vertices[15]; edited.UpdateFace(); } break; case 11: if (((edited.TransCube.vertices[6].Equals(c.TransCube.vertices[4])) && (edited.TransCube.vertices[2].Equals(c.TransCube.vertices[0])))) { edited.vertices[6] = c.vertices[4]; edited.vertices[2] = c.vertices[0]; edited.vertices[14] = c.vertices[12]; edited.UpdateFace(); } break; case 12: if (((edited.TransCube.vertices[7].Equals(c.TransCube.vertices[5])) && (edited.TransCube.vertices[3].Equals(c.TransCube.vertices[1])))) { edited.vertices[7] = c.vertices[5]; edited.vertices[3] = c.vertices[1]; edited.vertices[15] = c.vertices[13]; edited.UpdateFace(); } break; } }