public static M3D.Graphics.Ext3D.ModelRendering.Model LoadModelFromFile(string fileName) { return(new M3D.Graphics.Ext3D.ModelRendering.Model(ModelLoadingManager.GetModelLoader(fileName).Load(fileName), fileName)); }
private bool LoadZip(string zipFileName, ModelLoadingManager.OnModelLoadedDel loadedCallback, ModelLoadingManager.LoadFailedCallback onFailCallback) { IncFilesLoading(); var asyncZipLoadData = new ModelLoadingManager.AsyncZipLoadData(zipFileName, loadedCallback); FileStream file; try { file = File.OpenRead(zipFileName); } catch (IOException ex) { DecFilesLoading(); ShowFileLoadingExeption(ex, zipFileName, onFailCallback); return(false); } try { asyncZipLoadData.zf = new ZipFile(file); asyncZipLoadData.iconFile = null; asyncZipLoadData.extractTo = Path.Combine(Paths.PublicDataFolder, "ExtractedZipFiles", Path.GetFileNameWithoutExtension(zipFileName)); foreach (ZipEntry zipEntry in asyncZipLoadData.zf) { if (zipEntry.IsFile) { var str = Path.Combine(asyncZipLoadData.extractTo, Path.GetFileName(zipEntry.Name)); if (ModelLoadingManager.GetModelLoader(zipEntry.Name) != null) { asyncZipLoadData.modelFiles.Add(str); } else if (zipEntry.Name.EndsWith(".xml", StringComparison.OrdinalIgnoreCase)) { asyncZipLoadData.xmlFiles.Add(str); } else if (zipEntry.Name.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) || zipEntry.Name.EndsWith(".png", StringComparison.OrdinalIgnoreCase) || zipEntry.Name.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase)) { asyncZipLoadData.iconFile = str; } } } if (asyncZipLoadData.modelFiles.Count > 0) { if (asyncZipLoadData.xmlFiles.Count > 0) { printerview.RemovePrintableModels(); xmlPrinterSettingsZipFileLoaded = true; } if (!Directory.Exists(asyncZipLoadData.extractTo)) { Directory.CreateDirectory(asyncZipLoadData.extractTo); } } } catch (Exception ex) { file.Close(); DecFilesLoading(); return(false); } if (asyncZipLoadData.modelFiles.Count > 0) { libraryview.RecentModels.CopyAndAssignIconForLibrary(zipFileName, asyncZipLoadData.iconFile); ThreadPool.QueueUserWorkItem(new WaitCallback(LoadZipWorkerThread), asyncZipLoadData); return(true); } file.Close(); DecFilesLoading(); return(false); }