Beispiel #1
0
    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;
    }
Beispiel #2
0
    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;
    }