Exemplo n.º 1
0
        public static MapsMesh TransformMesh2MapsMesh(ref Mesh mesh, int U)
        {
            int[]       tris = mesh.triangles;
            List <Vert> vs   = new List <Vert>();

            for (int i = 0; i < mesh.vertexCount; i++)
            {
                vs.Add(new Vert(i));
            }

            List <Triangle> mmaptris = new List <Triangle>();
            List <Edge>     edges    = new List <Edge>();

            for (int i = 0; i < tris.GetLength(0) / 3; i++)
            {
                int ind1 = tris[i * 3];
                int ind2 = tris[i * 3 + 1];
                int ind3 = tris[i * 3 + 2];

                mmaptris.Add(new Triangle(ind1, ind2, ind3));
            }
            Topologies topo = new Topologies(vs, edges, mmaptris);
            List <int> fp   = makeFeaturePoints(ref mesh, U);

            return(new MapsMesh(new List <Vector3>(mesh.vertices), topo, fp));
        }
Exemplo n.º 2
0
        public MapsMesh(List <Vector3> ps, Topologies topo, List <int> fps)
        {
            P             = ps;
            K             = topo;
            featurePoints = fps;
            bijection     = new List <Dictionary <int, float> >();

            for (int i = 0; i < P.Count; i++)
            {
                bijection.Add(new Dictionary <int, float>());
                bijection[i].Add(i, 1.0f);
            }
        }