public static glTFExtensionImport ForTest() { var extensionExport = new glTFExtensionExport(); glTFExtension extension = extensionExport; glTF_KHR_materials_unlit.Serialize(ref extension); return(extensionExport.Deserialize()); }
/// <summary> /// Json化 /// </summary> /// <param name="f"></param> /// <param name="v"></param> public static void GenSerialize(this JsonFormatter f, glTFExtension v) { if (v != null) { v.Serialize(f); return; } throw new NotImplementedException(); }
public static void Serialize(ref glTFExtension materialExtensions, float value) { var f = new JsonFormatter(); f.BeginMap(); f.Key(nameof(emissiveStrength)); f.Value(value); f.EndMap(); glTFExtensionExport.GetOrCreate(ref materialExtensions).Add(ExtensionName, f.GetStore().Bytes); }
T GetExtension <T>(UniGLTF.glTFExtension extensions, UniJSON.Utf8String key, Func <JsonNode, T> deserializer) { if (extensions is UniGLTF.glTFExtensionImport import) { foreach (var kv in import.ObjectItems()) { if (kv.Key.GetUtf8String() == key) { return(deserializer(kv.Value)); } } } return(default);
public static bool TryGet(glTFExtension src, out glTF_KHR_materials_emissive_strength extension) { if (src is UniGLTF.glTFExtensionImport extensions) { foreach (var kv in extensions.ObjectItems()) { if (kv.Key.GetUtf8String() == ExtensionNameUtf8) { extension = Deserialize(kv.Value); return(true); } } } extension = default; return(false); }
public static bool TryDeserializeExtensions <T>(this UniGLTF.glTFExtension extension, string extensionName, Func <JsonNode, T> deserializer, out T vci) { if (extension is glTFExtensionImport import) { foreach (var kv in import.ObjectItems()) { if (kv.Key.GetString() == extensionName) { vci = deserializer(kv.Value); return(true); } } } vci = default; return(false); }
public static glTFExtensionExport GetOrCreate(ref glTFExtension extension) { if (extension is glTFExtensionExport exported) { // get return(exported); } if (extension != null) { // glTFExtensionImport ? throw new NotImplementedException(); } // or create exported = new glTFExtensionExport(); extension = exported; return(exported); }
public static void Serialize(ref glTFExtension materialExtensions) { glTFExtensionExport.GetOrCreate(ref materialExtensions).Add(ExtensionName, new ArraySegment <byte>(Raw)); }