Exemplo n.º 1
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => name);
            f.Key("primitives"); f.Value(primitives);
            f.EndMap();
            return(f.ToString());
        }
Exemplo n.º 2
0
 protected override void SerializeMembers(JsonFormatter f)
 {
     f.Key("targetNames");
     f.BeginList();
     foreach (var x in targetNames)
     {
         f.Value(x);
     }
     f.EndList();
 }
        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);
        }
Exemplo n.º 4
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (!String.IsNullOrEmpty(name))
            {
                f.Key("name"); f.Value(name);
            }
            if (pbrMetallicRoughness != null)
            {
                f.Key("pbrMetallicRoughness"); f.Value(pbrMetallicRoughness);
            }
            if (normalTexture != null)
            {
                f.Key("normalTexture"); f.Value(normalTexture);
            }
            if (occlusionTexture != null)
            {
                f.Key("occlusionTexture"); f.Value(occlusionTexture);
            }
            if (emissiveTexture != null)
            {
                f.Key("emissiveTexture"); f.Value(emissiveTexture);
            }
            if (emissiveFactor != null)
            {
                f.Key("emissiveFactor"); f.Value(emissiveFactor);
            }
            f.EndMap();
            return(f.ToString());
        }
Exemplo n.º 5
0
        public static glTFExtension Serialize(params string[] args)
        {
            var f = new JsonFormatter();

            f.BeginList();
            foreach (var arg in args)
            {
                // エスケープとかあるし
                f.Value(arg);
            }
            f.EndList();

            return(new glTFExtensionExport().Add(ExtraName, f.GetStore().Bytes));
        }
Exemplo n.º 6
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            if (!string.IsNullOrEmpty(name))
            {
                f.KeyValue(() => name);
            }
            if (children != null && children.Any())
            {
                f.Key("children"); f.BeginList();
                foreach (var child in children)
                {
                    f.Value(child);
                }
                f.EndList();
            }
            if (matrix != null)
            {
                f.KeyValue(() => matrix);
            }
            if (translation != null)
            {
                f.KeyValue(() => translation);
            }
            if (rotation != null)
            {
                f.KeyValue(() => rotation);
            }
            if (scale != null)
            {
                f.KeyValue(() => scale);
            }

            if (mesh >= 0)
            {
                f.KeyValue(() => mesh);
            }
            if (skin >= 0)
            {
                f.KeyValue(() => skin);
            }
            if (camera >= 0)
            {
                f.KeyValue(() => camera);
            }
            f.EndMap();
            return(f.ToString());
        }
Exemplo n.º 7
0
        public static void Serialize_gltf_buffers_ITEM(JsonFormatter f, glTFBuffer value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.uri))
            {
                f.Key("uri");
                f.Value(value.uri);
            }

            if (value.byteLength >= 1)
            {
                f.Key("byteLength");
                f.Value(value.byteLength);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Exemplo n.º 8
0
        public static void Serialize_gltf_accessors__sparse_indices(JsonFormatter f, glTFSparseIndices value)
        {
            f.BeginMap();


            if (value.bufferView >= 0)
            {
                f.Key("bufferView");
                f.Value(value.bufferView);
            }

            if (value.byteOffset >= 0)
            {
                f.Key("byteOffset");
                f.Value(value.byteOffset);
            }

            if (true)
            {
                f.Key("componentType");
                f.Value((int)value.componentType);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 9
0
        public static void Serialize_gltf_textures_ITEM(JsonFormatter f, glTFTexture value)
        {
            f.BeginMap();


            if (value.sampler >= 0)
            {
                f.Key("sampler");
                f.Value(value.sampler);
            }

            if (value.source >= 0)
            {
                f.Key("source");
                f.Value(value.source);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Exemplo n.º 10
0
        public static void Serialize_gltf_materials__occlusionTexture(JsonFormatter f, glTFMaterialOcclusionTextureInfo value)
        {
            f.BeginMap();


            if (value.strength >= 0)
            {
                f.Key("strength");
                f.Value(value.strength);
            }

            if (value.index >= 0)
            {
                f.Key("index");
                f.Value(value.index);
            }

            if (value.texCoord >= 0)
            {
                f.Key("texCoord");
                f.Value(value.texCoord);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 11
0
        public static void Serialize_gltf_materials__normalTexture(JsonFormatter f, glTFMaterialNormalTextureInfo value)
        {
            f.BeginMap();


            if (true)
            {
                f.Key("scale");
                f.Value(value.scale);
            }

            if (value.index >= 0)
            {
                f.Key("index");
                f.Value(value.index);
            }

            if (value.texCoord >= 0)
            {
                f.Key("texCoord");
                f.Value(value.texCoord);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 12
0
        public static void Serialize_gltf_animations__samplers_ITEM(JsonFormatter f, glTFAnimationSampler value)
        {
            f.BeginMap();


            if (value.input >= 0)
            {
                f.Key("input");
                f.Value(value.input);
            }

            if (!string.IsNullOrEmpty(value.interpolation))
            {
                f.Key("interpolation");
                f.Value(value.interpolation);
            }

            if (value.output >= 0)
            {
                f.Key("output");
                f.Value(value.output);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 13
0
        public static void Serialize_gltf_bufferViews_ITEM(JsonFormatter f, glTFBufferView value)
        {
            f.BeginMap();


            if (value.buffer >= 0)
            {
                f.Key("buffer");
                f.Value(value.buffer);
            }

            if (value.byteOffset >= 0)
            {
                f.Key("byteOffset");
                f.Value(value.byteOffset);
            }

            if (value.byteLength >= 1)
            {
                f.Key("byteLength");
                f.Value(value.byteLength);
            }

            if (value.byteStride >= 4 && false)
            {
                f.Key("byteStride");
                f.Value(value.byteStride);
            }

            if (true && value.target != 0)
            {
                f.Key("target");
                f.Value((int)value.target);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            f.EndMap();
        }
Exemplo n.º 14
0
        protected override void SerializeMembers(JsonFormatter f)
        {
            if (children != null && children.Any())
            {
                f.Key("children"); f.BeginList();
                foreach (var child in children)
                {
                    f.Value(child);
                }
                f.EndList();
            }

            if (!string.IsNullOrEmpty(name))
            {
                f.KeyValue(() => name);
            }
            if (matrix != null)
            {
                f.KeyValue(() => matrix);
            }
            if (translation != null)
            {
                f.KeyValue(() => translation);
            }
            if (rotation != null)
            {
                f.KeyValue(() => rotation);
            }
            if (scale != null)
            {
                f.KeyValue(() => scale);
            }

            if (mesh >= 0)
            {
                f.KeyValue(() => mesh);
            }
            if (camera >= 0)
            {
                f.KeyValue(() => camera);
            }
            if (skin >= 0)
            {
                f.KeyValue(() => skin);
                f.KeyValue(() => extras);
            }
        }
Exemplo n.º 15
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => buffer);
            f.KeyValue(() => byteOffset);
            f.KeyValue(() => byteLength);
            if (target != glBufferTarget.NONE)
            {
                f.Key("target"); f.Value((int)target);
            }
            if (target == glBufferTarget.ARRAY_BUFFER)
            {
                f.KeyValue(() => byteStride);
            }
            f.EndMap();
            return(f.ToString());
        }
Exemplo n.º 16
0
        public string ToJson()
        {
            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => bufferView);
            f.KeyValue(() => byteOffset);
            f.KeyValue(() => type);
            f.Key("componentType"); f.Value((int)componentType);
            f.KeyValue(() => count);
            if (max != null && max.Any())
            {
                f.KeyValue(() => max);
            }
            if (min != null && min.Any())
            {
                f.KeyValue(() => min);
            }
            f.EndMap();
            return(f.ToString());
        }
Exemplo n.º 17
0
        protected override void SerializeMembers(JsonFormatter f)
        {
            f.KeyValue(() => bufferView);
            f.KeyValue(() => byteOffset);
            f.KeyValue(() => type);
            f.Key("componentType"); f.Value((int)componentType);
            f.KeyValue(() => count);
            if (max != null && max.Any())
            {
                f.KeyValue(() => max);
            }
            if (min != null && min.Any())
            {
                f.KeyValue(() => min);
            }

            if (sparse != null && sparse.count > 0)
            {
                f.KeyValue(() => sparse);
            }
        }
Exemplo n.º 18
0
        public static void Serialize(glTFMesh gltfMesh, IEnumerable <string> targetNames)
        {
            // targetNames
            var f = new JsonFormatter();

            f.BeginList();
            foreach (var n in targetNames)
            {
                f.Value(n);
            }
            f.EndList();
            var targetNamesJson = f.GetStore().Bytes;

            var meshExtras = glTFExtensionExport.GetOrCreate(ref gltfMesh.extras);

            meshExtras.Add(ExtraName, targetNamesJson);

            foreach (var prim in gltfMesh.primitives)
            {
                var primExtras = glTFExtensionExport.GetOrCreate(ref prim.extras);
                primExtras.Add(ExtraName, targetNamesJson);
            }
        }
Exemplo n.º 19
0
        public static void Serialize_gltf_animations_ITEM(JsonFormatter f, glTFAnimation value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.channels != null && value.channels.Count >= 1)
            {
                f.Key("channels");
                Serialize_gltf_animations__channels(f, value.channels);
            }

            if (value.samplers != null && value.samplers.Count >= 1)
            {
                f.Key("samplers");
                Serialize_gltf_animations__samplers(f, value.samplers);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 20
0
        public static void Serialize_gltf_meshes_ITEM(JsonFormatter f, glTFMesh value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.primitives != null && value.primitives.Count >= 1)
            {
                f.Key("primitives");
                Serialize_gltf_meshes__primitives(f, value.primitives);
            }

            if (value.weights != null && value.weights.Length >= 1)
            {
                f.Key("weights");
                Serialize_gltf_meshes__weights(f, value.weights);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 21
0
        public static void Serialize_gltf_accessors__sparse(JsonFormatter f, glTFSparse value)
        {
            f.BeginMap();


            if (value.count >= 1)
            {
                f.Key("count");
                f.Value(value.count);
            }

            if (value.indices != null)
            {
                f.Key("indices");
                Serialize_gltf_accessors__sparse_indices(f, value.indices);
            }

            if (value.values != null)
            {
                f.Key("values");
                Serialize_gltf_accessors__sparse_values(f, value.values);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 22
0
        public static void Serialize_gltf_nodes_ITEM(JsonFormatter f, glTFNode value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.children != null && value.children.Length >= 1)
            {
                f.Key("children");
                Serialize_gltf_nodes__children(f, value.children);
            }

            if (value.matrix != null && value.matrix.Length >= 16)
            {
                f.Key("matrix");
                Serialize_gltf_nodes__matrix(f, value.matrix);
            }

            if (value.translation != null && value.translation.Length >= 3 && !value.translation.SequenceEqual(new float[] { 0, 0, 0 }))
            {
                f.Key("translation");
                Serialize_gltf_nodes__translation(f, value.translation);
            }

            if (value.rotation != null && value.rotation.Length >= 4 && !value.rotation.SequenceEqual(new float[] { 0, 0, 0, 1 }))
            {
                f.Key("rotation");
                Serialize_gltf_nodes__rotation(f, value.rotation);
            }

            if (value.scale != null && value.scale.Length >= 3 && !value.scale.SequenceEqual(new float[] { 1, 1, 1 }))
            {
                f.Key("scale");
                Serialize_gltf_nodes__scale(f, value.scale);
            }

            if (value.mesh >= 0)
            {
                f.Key("mesh");
                f.Value(value.mesh);
            }

            if (value.skin >= 0)
            {
                f.Key("skin");
                f.Value(value.skin);
            }

            if (value.weights != null && value.weights.Length >= 1)
            {
                f.Key("weights");
                Serialize_gltf_nodes__weights(f, value.weights);
            }

            if (value.camera >= 0)
            {
                f.Key("camera");
                f.Value(value.camera);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 23
0
        protected override void SerializeMembers(JsonFormatter f)
        {
            f.KeyValue(() => asset);

            // buffer
            if (buffers.Any())
            {
                f.KeyValue(() => buffers);
            }
            if (bufferViews.Any())
            {
                f.Key("bufferViews"); f.Value(bufferViews);
            }
            if (accessors.Any())
            {
                f.Key("accessors"); f.Value(accessors);
            }

            // materials
            if (images.Any())
            {
                f.Key("images"); f.Value(images);
                if (samplers.Count == 0)
                {
                    samplers.Add(new glTFTextureSampler());
                }
            }

            if (samplers.Any())
            {
                f.Key("samplers"); f.Value(samplers);
            }

            if (textures.Any())
            {
                f.Key("textures"); f.Value(textures);
            }
            if (materials.Any())
            {
                f.Key("materials"); f.Value(materials);
            }

            // meshes
            if (meshes.Any())
            {
                f.KeyValue(() => meshes);
            }
            if (skins.Any())
            {
                f.KeyValue(() => skins);
            }

            // scene
            if (nodes.Any())
            {
                f.KeyValue(() => nodes);
            }
            if (scenes.Any())
            {
                f.KeyValue(() => scenes);
            }

            // animations
            if (animations.Any())
            {
                f.Key("animations"); f.Value(animations);
            }
        }
Exemplo n.º 24
0
 protected override void SerializeMembers(JsonFormatter f)
 {
     f.KeyValue(() => bufferView);
     f.KeyValue(() => byteOffset);
     f.Key("componentType"); f.Value((int)componentType);
 }
Exemplo n.º 25
0
 static void CopyJson(IReadOnlyList <string> extensionUsed, JsonFormatter dst, JsonNode src, int level)
 {
     if (src.IsArray())
     {
         dst.BeginList();
         foreach (var v in src.ArrayItems())
         {
             CopyJson(extensionUsed, dst, v, level + 1);
         }
         dst.EndList();
     }
     else if (src.IsMap())
     {
         if (level == 0)
         {
             // 最上層だけ extensionsUsed の処理をする
             var done = false;
             dst.BeginMap();
             foreach (var kv in src.ObjectItems())
             {
                 var key = kv.Key.GetString();
                 if (key == EXTENSION_USED_KEY)
                 {
                     if (extensionUsed.Count == 0)
                     {
                         // skip
                     }
                     else
                     {
                         dst.Key(key);
                         // replace
                         dst.BeginList();
                         foreach (var ex in extensionUsed)
                         {
                             dst.Value(ex);
                         }
                         dst.EndList();
                         // 処理済
                     }
                     done = true;
                 }
                 else
                 {
                     dst.Key(key);
                     CopyJson(extensionUsed, dst, kv.Value, level + 1);
                 }
             }
             if (!done && level == 0 && extensionUsed.Count > 0)
             {
                 // add
                 dst.Key(EXTENSION_USED_KEY);
                 dst.BeginList();
                 foreach (var ex in extensionUsed)
                 {
                     dst.Value(ex);
                 }
                 dst.EndList();
             }
             dst.EndMap();
         }
         else
         {
             dst.BeginMap();
             foreach (var kv in src.ObjectItems())
             {
                 dst.Key(kv.Key.GetUtf8String());
                 CopyJson(extensionUsed, dst, kv.Value, level + 1);
             }
             dst.EndMap();
         }
     }
     else
     {
         // leaf
         dst.Value(src);
     }
 }
Exemplo n.º 26
0
        public static void Serialize_gltf_accessors_ITEM(JsonFormatter f, glTFAccessor value)
        {
            f.BeginMap();


            if (value.bufferView >= 0)
            {
                f.Key("bufferView");
                f.Value(value.bufferView);
            }

            if (value.byteOffset >= 0)
            {
                f.Key("byteOffset");
                f.Value(value.byteOffset);
            }

            if (!string.IsNullOrEmpty(value.type))
            {
                f.Key("type");
                f.Value(value.type);
            }

            if (true)
            {
                f.Key("componentType");
                f.Value((int)value.componentType);
            }

            if (value.count >= 1)
            {
                f.Key("count");
                f.Value(value.count);
            }

            if (value.max != null && value.max.Length >= 1)
            {
                f.Key("max");
                Serialize_gltf_accessors__max(f, value.max);
            }

            if (value.min != null && value.min.Length >= 1)
            {
                f.Key("min");
                Serialize_gltf_accessors__min(f, value.min);
            }

            if (true)
            {
                f.Key("normalized");
                f.Value(value.normalized);
            }

            if (value.sparse != null)
            {
                f.Key("sparse");
                Serialize_gltf_accessors__sparse(f, value.sparse);
            }

            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 27
0
        public static void Serialize_gltf_materials_ITEM(JsonFormatter f, glTFMaterial value)
        {
            f.BeginMap();


            if (!string.IsNullOrEmpty(value.name))
            {
                f.Key("name");
                f.Value(value.name);
            }

            if (value.pbrMetallicRoughness != null)
            {
                f.Key("pbrMetallicRoughness");
                Serialize_gltf_materials__pbrMetallicRoughness(f, value.pbrMetallicRoughness);
            }

            if (value.normalTexture != null)
            {
                f.Key("normalTexture");
                Serialize_gltf_materials__normalTexture(f, value.normalTexture);
            }

            if (value.occlusionTexture != null)
            {
                f.Key("occlusionTexture");
                Serialize_gltf_materials__occlusionTexture(f, value.occlusionTexture);
            }

            if (value.emissiveTexture != null)
            {
                f.Key("emissiveTexture");
                Serialize_gltf_materials__emissiveTexture(f, value.emissiveTexture);
            }

            if (value.emissiveFactor != null && value.emissiveFactor.Length >= 3)
            {
                f.Key("emissiveFactor");
                Serialize_gltf_materials__emissiveFactor(f, value.emissiveFactor);
            }

            if (!string.IsNullOrEmpty(value.alphaMode))
            {
                f.Key("alphaMode");
                f.Value(value.alphaMode);
            }

            if (value.alphaCutoff >= 0 && value.alphaMode == "MASK")
            {
                f.Key("alphaCutoff");
                f.Value(value.alphaCutoff);
            }

            if (true)
            {
                f.Key("doubleSided");
                f.Value(value.doubleSided);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }
Exemplo n.º 28
0
        public static void Serialize(JsonFormatter f, glTF value)
        {
            f.BeginMap();


            if (value.asset != null)
            {
                f.Key("asset");
                Serialize_gltf_asset(f, value.asset);
            }

            if (value.buffers != null && value.buffers.Count >= 1)
            {
                f.Key("buffers");
                Serialize_gltf_buffers(f, value.buffers);
            }

            if (value.bufferViews != null && value.bufferViews.Count >= 1)
            {
                f.Key("bufferViews");
                Serialize_gltf_bufferViews(f, value.bufferViews);
            }

            if (value.accessors != null && value.accessors.Count >= 1)
            {
                f.Key("accessors");
                Serialize_gltf_accessors(f, value.accessors);
            }

            if (value.textures != null && value.textures.Count >= 1)
            {
                f.Key("textures");
                Serialize_gltf_textures(f, value.textures);
            }

            if (value.samplers != null && value.samplers.Count >= 1)
            {
                f.Key("samplers");
                Serialize_gltf_samplers(f, value.samplers);
            }

            if (value.images != null && value.images.Count >= 1)
            {
                f.Key("images");
                Serialize_gltf_images(f, value.images);
            }

            if (value.materials != null && value.materials.Count >= 1)
            {
                f.Key("materials");
                Serialize_gltf_materials(f, value.materials);
            }

            if (value.meshes != null && value.meshes.Count >= 1)
            {
                f.Key("meshes");
                Serialize_gltf_meshes(f, value.meshes);
            }

            if (value.nodes != null && value.nodes.Count >= 1)
            {
                f.Key("nodes");
                Serialize_gltf_nodes(f, value.nodes);
            }

            if (value.skins != null && value.skins.Count >= 1)
            {
                f.Key("skins");
                Serialize_gltf_skins(f, value.skins);
            }

            if (value.scene >= 0)
            {
                f.Key("scene");
                f.Value(value.scene);
            }

            if (value.scenes != null && value.scenes.Count >= 1)
            {
                f.Key("scenes");
                Serialize_gltf_scenes(f, value.scenes);
            }

            if (value.animations != null && value.animations.Count >= 1)
            {
                f.Key("animations");
                Serialize_gltf_animations(f, value.animations);
            }

            if (value.cameras != null && value.cameras.Count >= 1)
            {
                f.Key("cameras");
                Serialize_gltf_cameras(f, value.cameras);
            }

            if (value.extensionsUsed != null && value.extensionsUsed.Count >= 1)
            {
                f.Key("extensionsUsed");
                Serialize_gltf_extensionsUsed(f, value.extensionsUsed);
            }

            if (value.extensionsRequired != null && value.extensionsRequired.Count >= 1)
            {
                f.Key("extensionsRequired");
                Serialize_gltf_extensionsRequired(f, value.extensionsRequired);
            }

            if (value.extensions != null)
            {
                f.Key("extensions");
                value.extensions.Serialize(f);
            }

            if (value.extras != null)
            {
                f.Key("extras");
                value.extras.Serialize(f);
            }

            f.EndMap();
        }