Example #1
0
        public static glTFExtensionImport ForTest()
        {
            var           extensionExport = new glTFExtensionExport();
            glTFExtension extension       = extensionExport;

            glTF_KHR_materials_unlit.Serialize(ref extension);
            return(extensionExport.Deserialize());
        }
Example #2
0
        /// <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);
        }
Example #4
0
        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);
 }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
 public static void Serialize(ref glTFExtension materialExtensions)
 {
     glTFExtensionExport.GetOrCreate(ref materialExtensions).Add(ExtensionName, new ArraySegment <byte>(Raw));
 }