Beispiel #1
0
    void createlayer(List <List <Vector3> > tmpmoves, string meshname, MeshLoader loader)
    {
        List <Vector3> newVertices  = new List <Vector3>();
        List <Vector3> newNormals   = new List <Vector3>();
        List <Vector2> newUV        = new List <Vector2>();
        List <int>     newTriangles = new List <int>();
        List <Dictionary <int, Dictionary <int, int> > > neighbours = new List <Dictionary <int, Dictionary <int, int> > >();

        for (int tmpmvn = 0; tmpmvn < tmpmoves.Count; tmpmvn++)
        {
            List <Vector3> tmpmove = tmpmoves[tmpmvn];

            if (tmpmove.Count > 1)
            {
                createMesh(ref newVertices, ref tmpmove, ref newNormals, ref newUV, ref newTriangles);
            }
        }
        MeshCreatorInput mci = new MeshCreatorInput
        {
            meshname     = meshname,
            newUV        = newUV.ToArray(),
            newNormals   = newNormals.ToArray(),
            newVertices  = newVertices.ToArray(),
            newTriangles = newTriangles.ToArray()
        };

        meshCreatorInputQueue.Enqueue(mci);
        createdLayers++;
    }
Beispiel #2
0
 internal void Update(GCodeHandler source, MeshLoader loader)
 {
     if (meshCreatorInputQueue.Count > 0)
     {
         MeshCreatorInput mci = meshCreatorInputQueue.Dequeue();
         source.createmesh(mci.meshname, mci.newVertices, mci.newNormals, mci.newUV, mci.newTriangles, source.RootForObject.transform);
     }
 }