Constants.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace SharpGLTF
  5. {
  6. static class Constants
  7. {
  8. #region root paths
  9. public static string RemoteSchemaRepo = "https://github.com/KhronosGroup/glTF.git";
  10. /// <summary>
  11. /// Program directory
  12. /// </summary>
  13. public static string ProgramDirectory => System.IO.Path.GetDirectoryName(typeof(Program).Assembly.Location);
  14. /// <summary>
  15. /// Directory where the schema is downloaded and used as source
  16. /// </summary>
  17. public static string LocalRepoDirectory => System.IO.Path.Combine(ProgramDirectory, "glTF");
  18. #endregion
  19. #region main schema paths
  20. /// <summary>
  21. /// Directory of the main schema within the download repo directory
  22. /// </summary>
  23. public static string MainSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "specification", "2.0", "schema");
  24. /// <summary>
  25. /// schema source code file path
  26. /// </summary>
  27. public static string MainSchemaFile => System.IO.Path.Combine(MainSchemaDir, "glTF.schema.json");
  28. #endregion
  29. #region extension paths
  30. private static string ArchivedSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Archived");
  31. private static string KhronosSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Khronos");
  32. private static string VendorSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Vendor");
  33. internal static string ArchivedExtensionPath(string ext, string json)
  34. {
  35. return System.IO.Path.Combine(ArchivedSchemaDir, ext, "schema", json);
  36. }
  37. internal static string KhronosExtensionPath(string ext, string json)
  38. {
  39. return System.IO.Path.Combine(KhronosSchemaDir, ext, "schema", json);
  40. }
  41. internal static string VendorExtensionPath(string ext, string json)
  42. {
  43. return System.IO.Path.Combine(VendorSchemaDir, ext, "schema", json);
  44. }
  45. internal static string CustomExtensionsPath(string ext, string json)
  46. {
  47. return System.IO.Path.Combine(ProgramDirectory, "Schemas", ext, "schema", json);
  48. }
  49. #endregion
  50. #region code generation output paths
  51. /// <summary>
  52. /// directory within the solution where the generated code is emitted
  53. /// </summary>
  54. public static string TargetProjectDirectory => "src\\SharpGLTF.Core\\Schema2\\Generated";
  55. public static string CesiumProjectDirectory => "src\\SharpGLTF.Ext.3DTiles\\Schema2\\Generated";
  56. public static string AgiProjectDirectory => "src\\SharpGLTF.Ext.Agi\\Schema2\\Generated";
  57. /// <summary>
  58. /// namespace of the emitted generated code
  59. /// </summary>
  60. public static string OutputNamespace => "SharpGLTF.Schema2";
  61. public static string CesiumNameSpace => "SharpGLTF.Schema2.Tiles3D";
  62. public static string AgiNameSpace => "SharpGLTF.Schema2.AGI";
  63. #endregion
  64. }
  65. }