Ejemplo n.º 1
0
    public IEnumerator LoadObjectFromDiskCR(string path, MeshLoader loader, GCodeHandler mc)
    {
        int layernum = 0;

        //create object to put all mesh types in
        var objectName = loader.GetObjectNameFromPath(path);

        var rootFolderOfObject = loader.dataPath + "/" + objectName;

        mc.RootForObject.transform.localPosition = Vector3.zero;
        mc.RootForObject.transform.localScale    = Vector3.one;
        mc.RootForObject.transform.localRotation = Quaternion.identity;

        SortedDictionary <int, List <string> > sortedLayers = new SortedDictionary <int, List <string> >();

        foreach (var folder in Directory.GetDirectories(rootFolderOfObject))
        {
            var files = Directory.GetFiles(folder);
            foreach (var file in Directory.GetFiles(folder))
            {
                var l = Convert.ToInt32(file.Substring(file.LastIndexOf(@" ") + 1, file.LastIndexOf(".") - file.LastIndexOf(@" ") - 1));
                if (!sortedLayers.ContainsKey(l))
                {
                    sortedLayers.Add(l, new List <string>());
                    sortedLayers[l].Add(file);
                }
                else
                {
                    sortedLayers[l].Add(file);
                }
            }
        }


        foreach (var layers in sortedLayers)
        {
            foreach (var file in layers.Value)
            {
                var typeString = file.Substring(file.LastIndexOf(@"\") + 1, file.LastIndexOf(' ') - file.LastIndexOf(@"\") - 1);
                mc.CreateTypeObject(typeString);


                var layername = file.Substring(file.LastIndexOf(@"\") + 1, file.LastIndexOf(".") - file.LastIndexOf(@"\") - 1);

                //get mesh from file
                var mesh = MeshSerializer.DeserializeMesh(File.ReadAllBytes(file));


                //get the biggest layer number
                var l = mc.createLayerObject(layername, typeString, mesh);
                if (l > layernum)
                {
                    layernum = l;
                }
            }
            yield return(null);
        }

        mc.endloading(layernum);
    }
Ejemplo n.º 2
0
 internal void createBlankObject(string savePath)
 {
     //create a parent for the objects we create now
     RootForObject = new GameObject(loader.GetObjectNameFromPath(savePath));
     RootForObject.transform.SetParent(transform);
     RootForObject.transform.localPosition = Vector3.zero;
     RootForObject.transform.localScale    = Vector3.one;
     RootForObject.transform.localRotation = Quaternion.identity;
 }