using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SharpGLTF { /// /// Encapsulates the access to test files. /// class ExampleFiles { #region lifecycle public ExampleFiles(string workingDirectory) { _WorkingDirectory = workingDirectory; _KhronosSchemaDir = System.IO.Path.Combine(_WorkingDirectory, "glTF-Schema"); _KhronosValidatorDir = System.IO.Path.Combine(_WorkingDirectory, "glTF-Validator"); _KhronosSampleModelsDir = System.IO.Path.Combine(_WorkingDirectory, "glTF-Sample-Assets"); _BabylonJsMeshesDir = System.IO.Path.Combine(_WorkingDirectory, "BabylonJS-Assets"); _BabylonJsPlaygroundDir = System.IO.Path.Combine(_WorkingDirectory, "BabylonJS-PlaygroundScenes"); _PollyModelsDir = System.IO.Path.Combine(_WorkingDirectory, "glTF-Blender-Exporter"); _UniVRMModelsDir = System.IO.Path.Combine(_WorkingDirectory, "UniVRM"); } public void DownloadReferenceModels() { Console.WriteLine("Downloading reference files... It might take a while, please, wait..."); var dstPath = System.IO.Path.Combine(_WorkingDirectory, "GeneratedReferenceModels", "v_0_6_1.zip"); _GeneratedModelsDir = DownloadUtils.DownloadFile("https://github.com/KhronosGroup/glTF-Asset-Generator/releases/download/v0.6.1/GeneratedAssets-0.6.1.zip", dstPath); dstPath = System.IO.Path.Combine(_UniVRMModelsDir, "AliciaSolid_vrm-0.51.vrm"); DownloadUtils.DownloadFile("https://github.com/vrm-c/UniVRM/raw/master/Tests/Models/Alicia_vrm-0.51/AliciaSolid_vrm-0.51.vrm", dstPath); Console.WriteLine("Checking out test files... It might take a while, please, wait..."); DownloadUtils.SyncronizeGitRepository("https://github.com/KhronosGroup/glTF.git", _KhronosSchemaDir); DownloadUtils.SyncronizeGitRepository("https://github.com/KhronosGroup/glTF-Validator.git", _KhronosValidatorDir); DownloadUtils.SyncronizeGitRepository("https://github.com/KhronosGroup/glTF-Sample-Assets.git", _KhronosSampleModelsDir); DownloadUtils.SyncronizeGitRepository("https://github.com/BabylonJS/Assets.git", _BabylonJsMeshesDir); // DownloadUtils.SyncronizeGitRepository("https://github.com/BabylonJS/MeshesLibrary.git", _BabylonJsMeshesDir); // DownloadUtils.SyncronizeGitRepository("https://github.com/BabylonJS/Babylon.js.git", _BabylonJsPlaygroundDir); DownloadUtils.SyncronizeGitRepository("https://github.com/KhronosGroup/glTF-Blender-Exporter.git", _PollyModelsDir); Console.WriteLine("... Download Completed."); } #endregion #region data private readonly string _WorkingDirectory; private readonly string _KhronosSchemaDir; private readonly string _KhronosValidatorDir; private readonly string _KhronosSampleModelsDir; private readonly string _PollyModelsDir; private readonly string _UniVRMModelsDir; private readonly string _BabylonJsMeshesDir; private readonly string _BabylonJsPlaygroundDir; private readonly string[] _BabylonJsInvalidFiles = Array.Empty(); private string _GeneratedModelsDir; #endregion } }