コード例 #1
0
    private List <VA_Triangle> GetAllTriangles(Mesh mesh)
    {
        var tris      = new List <VA_Triangle>();
        var positions = mesh.vertices;

        for (var i = 0; i < mesh.subMeshCount; i++)
        {
            switch (mesh.GetTopology(i))
            {
            case MeshTopology.Triangles:
            {
                var indices = mesh.GetTriangles(i);

                for (var j = 0; j < indices.Length; j += 3)
                {
                    var triangle = new VA_Triangle(); tris.Add(triangle);

                    triangle.A = positions[indices[j + 0]];
                    triangle.B = positions[indices[j + 1]];
                    triangle.C = positions[indices[j + 2]];
                    triangle.CalculatePlanes();
                }
            }
            break;
            }
        }

        return(tris);
    }
コード例 #2
0
    private VA_Triangle GetTriangle(int triangleCount)
    {
        if (triangleCount == triangles.Count)
        {
            var triangle = new VA_Triangle();

            triangles.Add(triangle);

            return(triangle);
        }

        return(triangles[triangleCount]);
    }