summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/VRM/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/glTFExtensions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/VRM/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/glTFExtensions.cs')
-rw-r--r--Assets/ThirdParty/VRM/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/glTFExtensions.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/Assets/ThirdParty/VRM/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/glTFExtensions.cs b/Assets/ThirdParty/VRM/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/glTFExtensions.cs
new file mode 100644
index 00000000..20b649bc
--- /dev/null
+++ b/Assets/ThirdParty/VRM/VRM/UniGLTF/Scripts/Format/ExtensionsAndExtras/glTFExtensions.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Linq;
+using System.Reflection;
+using UniJSON;
+
+
+namespace UniGLTF
+{
+ #region Base
+ public class JsonSerializeMembersAttribute : Attribute { }
+
+ public class PartialExtensionBase<T> : JsonSerializableBase
+ {
+ protected override void SerializeMembers(GLTFJsonFormatter f)
+ {
+ foreach (var method in this.GetType().GetMethods(BindingFlags.Instance |
+ BindingFlags.Public | BindingFlags.NonPublic))
+ {
+ if (method.GetCustomAttributes(typeof(JsonSerializeMembersAttribute), true).Any())
+ {
+ method.Invoke(this, new[] { f });
+ }
+ }
+ }
+
+ public int __count
+ {
+ get
+ {
+ return typeof(T).GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
+ .Where(x => x.GetCustomAttributes(typeof(JsonSerializeMembersAttribute), true).Any())
+ .Count();
+ }
+ }
+ }
+
+ [ItemJsonSchema(ValueType = ValueNodeType.Object)]
+ //[JsonSchema(MinProperties = 1)]
+ public partial class ExtensionsBase<T> : PartialExtensionBase<T>
+ {
+ }
+
+ //[JsonSchema(MinProperties = 1)]
+ public partial class ExtraBase<T> : PartialExtensionBase<T>
+ {
+ }
+ #endregion
+
+ [Serializable]
+ public partial class glTF_extensions : ExtensionsBase<glTF_extensions> { }
+
+ [Serializable]
+ public partial class gltf_extras : ExtraBase<gltf_extras> { }
+}