Example #1
0
        private Int32 exportModel(object sender, object argument)
        {
            List <object> arguments = (List <object>)argument;

            ModelExporter      modelExporter = (ModelExporter)arguments[0];
            string             directory     = (String)arguments[1];
            List <String>      fileNames     = (List <String>)arguments[2];
            ModelExportOptions exportOptions = (ModelExportOptions)arguments[3];

            BackgroundWorker backgroundWorker = (BackgroundWorker)sender;

            Int32 result = 0;

            for (Int32 i = 0; i < fileNames.Count; ++i)
            {
                string fileName = fileNames[i];

                MemoryStream memoryStream = AssetManager.Instance.CreateAssetMemoryStreamByName(fileName);

                if (memoryStream == null)
                {
                    continue;
                }

                Model model = Model.LoadFromStream(fileName, memoryStream);

                if (model == null)
                {
                    continue;
                }

                modelExporter.ExportModelToDirectoryWithExportOptions(model, directory, exportOptions);

                Int32 percent = (Int32)(((Single)i / (Single)fileNames.Count) * 100);

                backgroundWorker.ReportProgress(percent, fileName);

                ++result;
            }

            return(result);
        }