CesiumExtensions.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace SharpGLTF
  5. {
  6. public static class CesiumExtensions
  7. {
  8. #region API
  9. public static IEnumerable<SchemaProcessor> GetExtensionsProcessors()
  10. {
  11. yield return new CesiumPrimitiveOutlineExtension();
  12. yield return new ExtMeshFeaturesExtension();
  13. yield return new ExtInstanceFeaturesExtension();
  14. yield return new ExtStructuralMetadataExtension();
  15. }
  16. #endregion
  17. #region root paths
  18. /// <summary>
  19. /// Program directory
  20. /// </summary>
  21. public static string ProgramDirectory => System.IO.Path.GetDirectoryName(typeof(CesiumExtensions).Assembly.Location);
  22. /// <summary>
  23. /// Directory where the schema is downloaded and used as source
  24. /// </summary>
  25. public static string LocalRepoDirectory => System.IO.Path.Combine(ProgramDirectory, "glTF");
  26. #endregion
  27. #region extension paths
  28. private static string VendorSchemaDir => System.IO.Path.Combine(LocalRepoDirectory, "extensions", "2.0", "Vendor");
  29. internal static string VendorExtensionPath(string ext, string json)
  30. {
  31. return System.IO.Path.Combine(VendorSchemaDir, ext, "schema", json);
  32. }
  33. internal static string CustomExtensionsPath(string ext, string json)
  34. {
  35. return System.IO.Path.Combine(ProgramDirectory, "Schemas", ext, "schema", json);
  36. }
  37. #endregion
  38. #region code generation output paths
  39. /// <summary>
  40. /// directory within the solution where the generated code is emitted
  41. /// </summary>
  42. public static string CesiumProjectDirectory => "src\\SharpGLTF.Ext.3DTiles\\Schema2\\Generated";
  43. public static string CesiumNameSpace => "SharpGLTF.Schema2.Tiles3D";
  44. #endregion
  45. }
  46. }