public void drawMesh() { Triangle3D tri = container.draw(); List <Vector3> vertices = new List <Vector3> (); List <int> triangles = new List <int> (); List <Vector2> uvs = new List <Vector2> (); for (int i = 0; i < tri.vertices.Count; i++) { vertices.Add(tri.vertices[i].pos); triangles.Add(i); uvs.Add(Vector2.zero); } // mesh if (mesh == null) { mesh = new Mesh(); mesh.name = "generateMesh"; } mesh.Clear(); mesh.vertices = vertices.ToArray(); mesh.triangles = triangles.ToArray(); mesh.uv = uvs.ToArray(); //mesh.SetIndices(triangles.ToArray(), MeshTopology.Triangles, 0); mesh.RecalculateNormals(); meshFilter.mesh = mesh; }
void drawMesh() { List <Triangle3D> triangles3D = new List <Triangle3D> (); for (int i = 0; i < meshes.Count; i++) { PVector center = (PVector)centers [i]; HE_Mesh mesh = (HE_Mesh)meshes [i]; /* * //mesh.drawEdges(); * foreach (HE_Edge e in mesh.edges) { * Vector3 p0 = e.halfEdge.vert.pos; * Vector3 p1 = e.halfEdge.pair.vert.pos; * Debug.DrawLine (p0 + center.pos * 0.2f, p1 + center.pos * 0.2f, Color.red); * } */ Triangle3D tri = mesh.draw(); triangles3D.Add(tri); } List <Vector3> vertices = new List <Vector3> (); List <int> triangles = new List <int> (); List <Vector2> uvs = new List <Vector2> (); int indexCount = 0; for (int i = 0; i < triangles3D.Count; i++) { Triangle3D tri = triangles3D [i]; PVector center = (PVector)centers [i]; for (int n = 0; n < tri.vertices.Count; n++) { HE_Vertex hV = tri.vertices [n]; vertices.Add(hV.pos + center.pos * 0.2f); triangles.Add(indexCount); uvs.Add(Vector2.zero); indexCount++; } } if (generateMesh == null) { generateMesh = new Mesh(); generateMesh.name = "generateMesh"; } generateMesh.Clear(false); generateMesh.vertices = vertices.ToArray(); generateMesh.triangles = triangles.ToArray(); generateMesh.uv = uvs.ToArray(); //generateMesh.SetIndices(triangles.ToArray(), MeshTopology.Triangles, 0); generateMesh.RecalculateNormals(); meshFilter.mesh = generateMesh; //Material tempmaterial = new Material(lineshader); //renderer.material = tempmaterial; }