public void PasteTriangles() { for (int i = 0; i < triangles.Count; i++) { int triangleIndex = triangles[i]; int triangleMaterialIndex = i / 3; PasteVertex pasteVertex = PasteVertexOfTriangleIndex(triangleIndex); mesh.triangles.AddTriangleVertexIndex(pasteVertex.indexInMesh, pasteVertex.instance, triangleMaterials[triangleMaterialIndex]); } mesh.triangles.trianglesChanged = true; }
public void WallCopyPasteEdges(List <Edge> copyExteriorEdges, Copy copy) { for (int i = 0; i < copyExteriorEdges.Count; i++) { Edge edge = copyExteriorEdges[i]; CopyVertex copyVertexA = copy.CopyVertexOfVertex(edge.a); CopyVertex copyVertexB = copy.CopyVertexOfVertex(edge.b); PasteVertex pasteVertexA = copy.PasteVertexOfCopyVertex(copyVertexA); PasteVertex pasteVertexB = copy.PasteVertexOfCopyVertex(copyVertexB); Vertex a = mesh.vertices.vertices[copyVertexA.indexFromMesh]; Vertex b = mesh.vertices.vertices[pasteVertexA.indexInMesh]; Vertex c = mesh.vertices.vertices[pasteVertexB.indexInMesh]; Vertex d = mesh.vertices.vertices[copyVertexB.indexFromMesh]; mesh.triangles.AddQuadByVertices(d.instance, c.instance, b.instance, a.instance, edge.materialIndex); } }
public void PasteVertices(bool noOffset = false) { foreach (CopyVertex copyVertex in vertices) { PasteVertex pasteVertex = new PasteVertex(); pasteVertex.copyVertex = copyVertex; Vector3 pastePosition = copyVertex.position; if (!noOffset) { pastePosition = pastePosition + mesh.transform.rotation * new Vector3(0, 0, 0.01f); } GameObject vertexInstance = mesh.vertices.CreateVertexInstanceByLocalPosition(pastePosition); int indexInMesh = mesh.vertices.AddVertexWithInstance(pastePosition, vertexInstance, false); pasteVertex.instance = vertexInstance; pasteVertex.indexInMesh = indexInMesh; pasteVertices.Add(pasteVertex); } //meshController.verticesManager.BuildVertices(); }