AgiExtensions.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace SharpGLTF
  5. {
  6. public static class AgiExtensions
  7. {
  8. #region API
  9. public static IEnumerable<SchemaProcessor> GetExtensionsProcessors()
  10. {
  11. yield return new AgiArticulationsExtension();
  12. yield return new AgiStkMetadataExtension();
  13. }
  14. #endregion
  15. #region root paths
  16. /// <summary>
  17. /// Program directory
  18. /// </summary>
  19. public static string ProgramDirectory => System.IO.Path.GetDirectoryName(typeof(AgiExtensions).Assembly.Location);
  20. /// <summary>
  21. /// Directory where the schema is downloaded and used as source
  22. /// </summary>
  23. public static string LocalRepoDirectory => System.IO.Path.Combine(ProgramDirectory, "glTF");
  24. #endregion
  25. #region extension paths
  26. private static string VendorSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Vendor");
  27. internal static string VendorExtensionPath(string ext, string json)
  28. {
  29. return System.IO.Path.Combine(VendorSchemaDir, ext, "schema", json);
  30. }
  31. #endregion
  32. #region code generation output paths
  33. public static string AgiProjectDirectory => "src\\SharpGLTF.Ext.Agi\\Schema2\\Generated";
  34. public static string AgiNameSpace => "SharpGLTF.Schema2.AGI";
  35. #endregion
  36. }
  37. }