Program.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using SharpGLTF.CodeGen;
  2. using SharpGLTF.SchemaReflection;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Reflection;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace SharpGLTF
  10. {
  11. partial class Program
  12. {
  13. #region MAIN
  14. static void Main(string[] args)
  15. {
  16. SchemaDownload.Syncronize(Constants.RemoteSchemaRepo, Constants.LocalRepoDirectory);
  17. var processors = new List<SchemaProcessor>();
  18. // ---------------------------------------------- Add Main Schema
  19. processors.Add(new MainSchemaProcessor());
  20. // ---------------------------------------------- Add extensions
  21. // material extensions
  22. processors.Add(new UnlitExtension());
  23. processors.Add(new IorExtension());
  24. processors.Add(new SheenExtension());
  25. processors.Add(new VolumeExtension());
  26. processors.Add(new SpecularExtension());
  27. processors.Add(new ClearCoatExtension());
  28. processors.Add(new DispersionExtension());
  29. processors.Add(new AnisotropyExtension());
  30. processors.Add(new IridescenceExtension());
  31. processors.Add(new TransmissionExtension());
  32. processors.Add(new DiffuseTransmissionExtension());
  33. processors.Add(new EmissiveStrengthExtension());
  34. processors.Add(new SpecularGlossinessExtension());
  35. // cesium outlines
  36. processors.Add(new CesiumPrimitiveOutlineExtension());
  37. // lights
  38. processors.Add(new LightsPunctualExtension());
  39. // gpu mesh instancing
  40. processors.Add(new MeshGpuInstancingExtension());
  41. // textures
  42. processors.Add(new TextureTransformExtension());
  43. processors.Add(new TextureDDSExtension());
  44. processors.Add(new TextureWebpExtension());
  45. processors.Add(new TextureKtx2Extension());
  46. processors.Add(new AgiArticulationsExtension());
  47. processors.Add(new AgiStkMetadataExtension());
  48. // other
  49. processors.Add(new XmpJsonLdExtension());
  50. processors.Add(new ExtMeshFeaturesExtension());
  51. processors.Add(new AnimationPointerExtension());
  52. processors.Add(new ExtInstanceFeaturesExtension());
  53. processors.Add(new ExtStructuralMetadataExtension());
  54. // ---------------------------------------------- process all files
  55. foreach (var processor in processors)
  56. {
  57. foreach (var (targetFileName, schema) in processor.Process())
  58. {
  59. System.Console.WriteLine($"Emitting {targetFileName}...");
  60. SchemaProcessing.EmitCodeFromSchema(processor.GetTargetProject(), targetFileName, schema, processors);
  61. }
  62. }
  63. }
  64. #endregion
  65. }
  66. }