using System; using System.Collections.Generic; using UniJSON; using UnityEngine; using VRM; namespace UniGLTF { static public class IFormatterExtensionsGltf { /// gltf public static void GenSerialize(this IFormatter f, glTF value) { f.BeginMap(0); // dummy if(value.asset!=null) { f.Key("asset"); f.GenSerialize(value.asset); } if(value.buffers!=null && value.buffers.Count>0) { f.Key("buffers"); f.GenSerialize(value.buffers); } if(value.bufferViews!=null && value.bufferViews.Count>0) { f.Key("bufferViews"); f.GenSerialize(value.bufferViews); } if(value.accessors!=null && value.accessors.Count>0) { f.Key("accessors"); f.GenSerialize(value.accessors); } if(value.textures!=null && value.textures.Count>0) { f.Key("textures"); f.GenSerialize(value.textures); } if(value.samplers!=null && value.samplers.Count>0) { f.Key("samplers"); f.GenSerialize(value.samplers); } if(value.images!=null && value.images.Count>0) { f.Key("images"); f.GenSerialize(value.images); } if(value.materials!=null && value.materials.Count>0) { f.Key("materials"); f.GenSerialize(value.materials); } if(value.meshes!=null && value.meshes.Count>0) { f.Key("meshes"); f.GenSerialize(value.meshes); } if(value.nodes!=null && value.nodes.Count>0) { f.Key("nodes"); f.GenSerialize(value.nodes); } if(value.skins!=null && value.skins.Count>0) { f.Key("skins"); f.GenSerialize(value.skins); } { f.Key("scene"); f.GenSerialize(value.scene); } if(value.scenes!=null && value.scenes.Count>0) { f.Key("scenes"); f.GenSerialize(value.scenes); } if(value.animations!=null && value.animations.Count>0) { f.Key("animations"); f.GenSerialize(value.animations); } if(value.cameras!=null && value.cameras.Count>0) { f.Key("cameras"); f.GenSerialize(value.cameras); } if(value.extensionsUsed!=null && value.extensionsUsed.Count>0) { f.Key("extensionsUsed"); f.GenSerialize(value.extensionsUsed); } if(false && value.extensionsRequired!=null && value.extensionsRequired.Count>0) { f.Key("extensionsRequired"); f.GenSerialize(value.extensionsRequired); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/asset public static void GenSerialize(this IFormatter f, glTFAssets value) { f.BeginMap(0); // dummy if(value.generator!=null) { f.Key("generator"); f.GenSerialize(value.generator); } if(value.version!=null) { f.Key("version"); f.GenSerialize(value.version); } if(value.copyright!=null) { f.Key("copyright"); f.GenSerialize(value.copyright); } if(value.minVersion!=null) { f.Key("minVersion"); f.GenSerialize(value.minVersion); } f.EndMap(); } public static void GenSerialize(this IFormatter f, String value) { f.Value(value); } /// gltf/buffers public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/buffers[] public static void GenSerialize(this IFormatter f, glTFBuffer value) { f.BeginMap(0); // dummy if(value.uri!=null) { f.Key("uri"); f.GenSerialize(value.uri); } { f.Key("byteLength"); f.GenSerialize(value.byteLength); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } public static void GenSerialize(this IFormatter f, Int32 value) { f.Value(value); } /// gltf/bufferViews public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/bufferViews[] public static void GenSerialize(this IFormatter f, glTFBufferView value) { f.BeginMap(0); // dummy { f.Key("buffer"); f.GenSerialize(value.buffer); } { f.Key("byteOffset"); f.GenSerialize(value.byteOffset); } { f.Key("byteLength"); f.GenSerialize(value.byteLength); } if(value.target!=0) { f.Key("target"); f.GenSerialize(value.target); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } public static void GenSerialize(this IFormatter f, glBufferTarget value) { f.Value((int)value); } /// gltf/accessors public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/accessors[] public static void GenSerialize(this IFormatter f, glTFAccessor value) { f.BeginMap(0); // dummy if(value.bufferView>=0) { f.Key("bufferView"); f.GenSerialize(value.bufferView); } if(value.bufferView>=0) { f.Key("byteOffset"); f.GenSerialize(value.byteOffset); } if(value.type!=null) { f.Key("type"); f.GenSerialize(value.type); } { f.Key("componentType"); f.GenSerialize(value.componentType); } { f.Key("count"); f.GenSerialize(value.count); } if(value.max!=null && value.max.Length>0) { f.Key("max"); f.GenSerialize(value.max); } if(value.min!=null && value.min.Length>0) { f.Key("min"); f.GenSerialize(value.min); } { f.Key("normalized"); f.GenSerialize(value.normalized); } if(value.sparse!=null && value.sparse.count>0) { f.Key("sparse"); f.GenSerialize(value.sparse); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } public static void GenSerialize(this IFormatter f, glComponentType value) { f.Value((int)value); } /// gltf/accessors[]/max public static void GenSerialize(this IFormatter f, Single[] value) { f.BeginList(value.Length); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } public static void GenSerialize(this IFormatter f, Single value) { f.Value(value); } public static void GenSerialize(this IFormatter f, Boolean value) { f.Value(value); } /// gltf/accessors[]/sparse public static void GenSerialize(this IFormatter f, glTFSparse value) { f.BeginMap(0); // dummy { f.Key("count"); f.GenSerialize(value.count); } if(value.indices!=null) { f.Key("indices"); f.GenSerialize(value.indices); } if(value.values!=null) { f.Key("values"); f.GenSerialize(value.values); } f.EndMap(); } /// gltf/accessors[]/sparse/indices public static void GenSerialize(this IFormatter f, glTFSparseIndices value) { f.BeginMap(0); // dummy { f.Key("bufferView"); f.GenSerialize(value.bufferView); } { f.Key("byteOffset"); f.GenSerialize(value.byteOffset); } { f.Key("componentType"); f.GenSerialize(value.componentType); } f.EndMap(); } /// gltf/accessors[]/sparse/values public static void GenSerialize(this IFormatter f, glTFSparseValues value) { f.BeginMap(0); // dummy { f.Key("bufferView"); f.GenSerialize(value.bufferView); } { f.Key("byteOffset"); f.GenSerialize(value.byteOffset); } f.EndMap(); } /// gltf/textures public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/textures[] public static void GenSerialize(this IFormatter f, glTFTexture value) { f.BeginMap(0); // dummy { f.Key("sampler"); f.GenSerialize(value.sampler); } { f.Key("source"); f.GenSerialize(value.source); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } /// gltf/samplers public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/samplers[] public static void GenSerialize(this IFormatter f, glTFTextureSampler value) { f.BeginMap(0); // dummy { f.Key("magFilter"); f.GenSerialize(value.magFilter); } { f.Key("minFilter"); f.GenSerialize(value.minFilter); } { f.Key("wrapS"); f.GenSerialize(value.wrapS); } { f.Key("wrapT"); f.GenSerialize(value.wrapT); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } public static void GenSerialize(this IFormatter f, glFilter value) { f.Value((int)value); } public static void GenSerialize(this IFormatter f, glWrap value) { f.Value((int)value); } /// gltf/images public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/images[] public static void GenSerialize(this IFormatter f, glTFImage value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.uri!=null) { f.Key("uri"); f.GenSerialize(value.uri); } { f.Key("bufferView"); f.GenSerialize(value.bufferView); } if(value.mimeType!=null) { f.Key("mimeType"); f.GenSerialize(value.mimeType); } f.EndMap(); } /// gltf/materials public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/materials[] public static void GenSerialize(this IFormatter f, glTFMaterial value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.pbrMetallicRoughness!=null) { f.Key("pbrMetallicRoughness"); f.GenSerialize(value.pbrMetallicRoughness); } if(value.normalTexture!=null) { f.Key("normalTexture"); f.GenSerialize(value.normalTexture); } if(value.occlusionTexture!=null) { f.Key("occlusionTexture"); f.GenSerialize(value.occlusionTexture); } if(value.emissiveTexture!=null) { f.Key("emissiveTexture"); f.GenSerialize(value.emissiveTexture); } if(value.emissiveFactor!=null) { f.Key("emissiveFactor"); f.GenSerialize(value.emissiveFactor); } if(value.alphaMode!=null) { f.Key("alphaMode"); f.GenSerialize(value.alphaMode); } if(value.alphaMode == "MASK") { f.Key("alphaCutoff"); f.GenSerialize(value.alphaCutoff); } { f.Key("doubleSided"); f.GenSerialize(value.doubleSided); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/materials[]/pbrMetallicRoughness public static void GenSerialize(this IFormatter f, glTFPbrMetallicRoughness value) { f.BeginMap(0); // dummy if(value.baseColorTexture!=null) { f.Key("baseColorTexture"); f.GenSerialize(value.baseColorTexture); } if(value.baseColorFactor!=null) { f.Key("baseColorFactor"); f.GenSerialize(value.baseColorFactor); } if(value.metallicRoughnessTexture!=null) { f.Key("metallicRoughnessTexture"); f.GenSerialize(value.metallicRoughnessTexture); } { f.Key("metallicFactor"); f.GenSerialize(value.metallicFactor); } { f.Key("roughnessFactor"); f.GenSerialize(value.roughnessFactor); } f.EndMap(); } /// gltf/materials[]/pbrMetallicRoughness/baseColorTexture public static void GenSerialize(this IFormatter f, glTFMaterialBaseColorTextureInfo value) { f.BeginMap(0); // dummy { f.Key("index"); f.GenSerialize(value.index); } { f.Key("texCoord"); f.GenSerialize(value.texCoord); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/materials[]/pbrMetallicRoughness/baseColorTexture/extensions public static void GenSerialize(this IFormatter f, glTFTextureInfo_extensions value) { f.BeginMap(0); // dummy if(value.KHR_texture_transform!=null) { f.Key("KHR_texture_transform"); f.GenSerialize(value.KHR_texture_transform); } f.EndMap(); } /// gltf/materials[]/pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform public static void GenSerialize(this IFormatter f, glTF_KHR_texture_transform value) { f.BeginMap(0); // dummy if(value.offset!=null) { f.Key("offset"); f.GenSerialize(value.offset); } { f.Key("rotation"); f.GenSerialize(value.rotation); } if(value.scale!=null) { f.Key("scale"); f.GenSerialize(value.scale); } { f.Key("texCoord"); f.GenSerialize(value.texCoord); } f.EndMap(); } /// gltf/materials[]/pbrMetallicRoughness/metallicRoughnessTexture public static void GenSerialize(this IFormatter f, glTFMaterialMetallicRoughnessTextureInfo value) { f.BeginMap(0); // dummy { f.Key("index"); f.GenSerialize(value.index); } { f.Key("texCoord"); f.GenSerialize(value.texCoord); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/materials[]/normalTexture public static void GenSerialize(this IFormatter f, glTFMaterialNormalTextureInfo value) { f.BeginMap(0); // dummy { f.Key("scale"); f.GenSerialize(value.scale); } { f.Key("index"); f.GenSerialize(value.index); } { f.Key("texCoord"); f.GenSerialize(value.texCoord); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/materials[]/occlusionTexture public static void GenSerialize(this IFormatter f, glTFMaterialOcclusionTextureInfo value) { f.BeginMap(0); // dummy { f.Key("strength"); f.GenSerialize(value.strength); } { f.Key("index"); f.GenSerialize(value.index); } { f.Key("texCoord"); f.GenSerialize(value.texCoord); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/materials[]/emissiveTexture public static void GenSerialize(this IFormatter f, glTFMaterialEmissiveTextureInfo value) { f.BeginMap(0); // dummy { f.Key("index"); f.GenSerialize(value.index); } { f.Key("texCoord"); f.GenSerialize(value.texCoord); } if(value.extensions!=null) { f.Key("extensions"); f.GenSerialize(value.extensions); } f.EndMap(); } /// gltf/materials[]/extensions public static void GenSerialize(this IFormatter f, glTFMaterial_extensions value) { f.BeginMap(0); // dummy if(value.KHR_materials_unlit!=null) { f.Key("KHR_materials_unlit"); f.GenSerialize(value.KHR_materials_unlit); } f.EndMap(); } /// gltf/materials[]/extensions/KHR_materials_unlit public static void GenSerialize(this IFormatter f, glTF_KHR_materials_unlit value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/meshes public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/meshes[] public static void GenSerialize(this IFormatter f, glTFMesh value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.primitives!=null && value.primitives.Count>0) { f.Key("primitives"); f.GenSerialize(value.primitives); } if(value.weights!=null && value.weights.Length>0) { f.Key("weights"); f.GenSerialize(value.weights); } if(value.extras!=null) { f.Key("extras"); f.GenSerialize(value.extras); } f.EndMap(); } /// gltf/meshes[]/primitives public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/meshes[]/primitives[] public static void GenSerialize(this IFormatter f, glTFPrimitives value) { f.BeginMap(0); // dummy { f.Key("mode"); f.GenSerialize(value.mode); } { f.Key("indices"); f.GenSerialize(value.indices); } if(value.attributes!=null) { f.Key("attributes"); f.GenSerialize(value.attributes); } { f.Key("material"); f.GenSerialize(value.material); } if(value.targets!=null && value.targets.Count>0) { f.Key("targets"); f.GenSerialize(value.targets); } if(value.extras!=null && value.extras.targetNames!=null && value.extras.targetNames.Count>0) { f.Key("extras"); f.GenSerialize(value.extras); } f.EndMap(); } /// gltf/meshes[]/primitives[]/attributes public static void GenSerialize(this IFormatter f, glTFAttributes value) { f.BeginMap(0); // dummy if(value.POSITION!=-1) { f.Key("POSITION"); f.GenSerialize(value.POSITION); } if(value.NORMAL!=-1) { f.Key("NORMAL"); f.GenSerialize(value.NORMAL); } if(value.TANGENT!=-1) { f.Key("TANGENT"); f.GenSerialize(value.TANGENT); } if(value.TEXCOORD_0!=-1) { f.Key("TEXCOORD_0"); f.GenSerialize(value.TEXCOORD_0); } if(value.COLOR_0!=-1) { f.Key("COLOR_0"); f.GenSerialize(value.COLOR_0); } if(value.JOINTS_0!=-1) { f.Key("JOINTS_0"); f.GenSerialize(value.JOINTS_0); } if(value.WEIGHTS_0!=-1) { f.Key("WEIGHTS_0"); f.GenSerialize(value.WEIGHTS_0); } f.EndMap(); } /// gltf/meshes[]/primitives[]/targets public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/meshes[]/primitives[]/targets[] public static void GenSerialize(this IFormatter f, gltfMorphTarget value) { f.BeginMap(0); // dummy if(value.POSITION!=-1) { f.Key("POSITION"); f.GenSerialize(value.POSITION); } if(value.NORMAL!=-1) { f.Key("NORMAL"); f.GenSerialize(value.NORMAL); } if(value.TANGENT!=-1) { f.Key("TANGENT"); f.GenSerialize(value.TANGENT); } f.EndMap(); } /// gltf/meshes[]/primitives[]/extras public static void GenSerialize(this IFormatter f, glTFPrimitives_extras value) { f.BeginMap(0); // dummy if(value.targetNames!=null) { f.Key("targetNames"); f.GenSerialize(value.targetNames); } f.EndMap(); } /// gltf/meshes[]/primitives[]/extras/targetNames public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/meshes[]/primitives[]/extensions public static void GenSerialize(this IFormatter f, glTFPrimitives_extensions value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/meshes[]/extras public static void GenSerialize(this IFormatter f, glTFMesh_extras value) { f.BeginMap(0); // dummy if(value.targetNames!=null) { f.Key("targetNames"); f.GenSerialize(value.targetNames); } f.EndMap(); } /// gltf/nodes public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/nodes[] public static void GenSerialize(this IFormatter f, glTFNode value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.children != null && value.children.Length>0) { f.Key("children"); f.GenSerialize(value.children); } if(value.matrix!=null) { f.Key("matrix"); f.GenSerialize(value.matrix); } if(value.translation!=null) { f.Key("translation"); f.GenSerialize(value.translation); } if(value.rotation!=null) { f.Key("rotation"); f.GenSerialize(value.rotation); } if(value.scale!=null) { f.Key("scale"); f.GenSerialize(value.scale); } if(value.mesh!=-1) { f.Key("mesh"); f.GenSerialize(value.mesh); } if(value.skin!=-1) { f.Key("skin"); f.GenSerialize(value.skin); } if(value.weights!=null) { f.Key("weights"); f.GenSerialize(value.weights); } if(value.camera!=-1) { f.Key("camera"); f.GenSerialize(value.camera); } f.EndMap(); } /// gltf/nodes[]/children public static void GenSerialize(this IFormatter f, Int32[] value) { f.BeginList(value.Length); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/nodes[]/extensions public static void GenSerialize(this IFormatter f, glTFNode_extensions value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/nodes[]/extras public static void GenSerialize(this IFormatter f, glTFNode_extra value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/skins public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/skins[] public static void GenSerialize(this IFormatter f, glTFSkin value) { f.BeginMap(0); // dummy { f.Key("inverseBindMatrices"); f.GenSerialize(value.inverseBindMatrices); } if(value.joints!=null && value.joints.Length>0) { f.Key("joints"); f.GenSerialize(value.joints); } if(value.skeleton!=-1) { f.Key("skeleton"); f.GenSerialize(value.skeleton); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } /// gltf/scenes public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/scenes[] public static void GenSerialize(this IFormatter f, gltfScene value) { f.BeginMap(0); // dummy if(value.nodes!=null && value.nodes.Length>0) { f.Key("nodes"); f.GenSerialize(value.nodes); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } /// gltf/animations public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/animations[] public static void GenSerialize(this IFormatter f, glTFAnimation value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.channels!=null && value.channels.Count>0) { f.Key("channels"); f.GenSerialize(value.channels); } if(value.samplers!=null && value.samplers.Count>0) { f.Key("samplers"); f.GenSerialize(value.samplers); } f.EndMap(); } /// gltf/animations[]/channels public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/animations[]/channels[] public static void GenSerialize(this IFormatter f, glTFAnimationChannel value) { f.BeginMap(0); // dummy { f.Key("sampler"); f.GenSerialize(value.sampler); } if(value!=null) { f.Key("target"); f.GenSerialize(value.target); } f.EndMap(); } /// gltf/animations[]/channels[]/target public static void GenSerialize(this IFormatter f, glTFAnimationTarget value) { f.BeginMap(0); // dummy { f.Key("node"); f.GenSerialize(value.node); } if(value.path!=null) { f.Key("path"); f.GenSerialize(value.path); } f.EndMap(); } /// gltf/animations[]/samplers public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/animations[]/samplers[] public static void GenSerialize(this IFormatter f, glTFAnimationSampler value) { f.BeginMap(0); // dummy { f.Key("input"); f.GenSerialize(value.input); } if(value.interpolation!=null) { f.Key("interpolation"); f.GenSerialize(value.interpolation); } { f.Key("output"); f.GenSerialize(value.output); } f.EndMap(); } /// gltf/cameras public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/cameras[] public static void GenSerialize(this IFormatter f, glTFCamera value) { f.BeginMap(0); // dummy if(value.orthographic!=null) { f.Key("orthographic"); f.GenSerialize(value.orthographic); } if(value.perspective!=null) { f.Key("perspective"); f.GenSerialize(value.perspective); } { f.Key("type"); f.GenSerialize(value.type); } if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } f.EndMap(); } /// gltf/cameras[]/orthographic public static void GenSerialize(this IFormatter f, glTFOrthographic value) { f.BeginMap(0); // dummy { f.Key("xmag"); f.GenSerialize(value.xmag); } { f.Key("ymag"); f.GenSerialize(value.ymag); } { f.Key("zfar"); f.GenSerialize(value.zfar); } { f.Key("znear"); f.GenSerialize(value.znear); } f.EndMap(); } /// gltf/cameras[]/orthographic/extensions public static void GenSerialize(this IFormatter f, glTFOrthographic_extensions value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/cameras[]/orthographic/extras public static void GenSerialize(this IFormatter f, glTFOrthographic_extras value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/cameras[]/perspective public static void GenSerialize(this IFormatter f, glTFPerspective value) { f.BeginMap(0); // dummy { f.Key("aspectRatio"); f.GenSerialize(value.aspectRatio); } { f.Key("yfov"); f.GenSerialize(value.yfov); } { f.Key("zfar"); f.GenSerialize(value.zfar); } { f.Key("znear"); f.GenSerialize(value.znear); } f.EndMap(); } /// gltf/cameras[]/perspective/extensions public static void GenSerialize(this IFormatter f, glTFPerspective_extensions value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/cameras[]/perspective/extras public static void GenSerialize(this IFormatter f, glTFPerspective_extras value) { f.BeginMap(0); // dummy f.EndMap(); } public static void GenSerialize(this IFormatter f, ProjectionType value) { f.Value((int)value); } /// gltf/cameras[]/extensions public static void GenSerialize(this IFormatter f, glTFCamera_extensions value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/cameras[]/extras public static void GenSerialize(this IFormatter f, glTFCamera_extras value) { f.BeginMap(0); // dummy f.EndMap(); } /// gltf/extensions public static void GenSerialize(this IFormatter f, glTF_extensions value) { f.BeginMap(0); // dummy if(value.VRM!=null) { f.Key("VRM"); f.GenSerialize(value.VRM); } f.EndMap(); } /// gltf/extensions/VRM public static void GenSerialize(this IFormatter f, glTF_VRM_extensions value) { f.BeginMap(0); // dummy if(value.exporterVersion!=null) { f.Key("exporterVersion"); f.GenSerialize(value.exporterVersion); } if(value.specVersion!=null) { f.Key("specVersion"); f.GenSerialize(value.specVersion); } if(value.meta!=null) { f.Key("meta"); f.GenSerialize(value.meta); } if(value.humanoid!=null) { f.Key("humanoid"); f.GenSerialize(value.humanoid); } if(value.firstPerson!=null) { f.Key("firstPerson"); f.GenSerialize(value.firstPerson); } if(value.blendShapeMaster!=null) { f.Key("blendShapeMaster"); f.GenSerialize(value.blendShapeMaster); } if(value.secondaryAnimation!=null) { f.Key("secondaryAnimation"); f.GenSerialize(value.secondaryAnimation); } if(value.materialProperties!=null) { f.Key("materialProperties"); f.GenSerialize(value.materialProperties); } f.EndMap(); } /// gltf/extensions/VRM/meta public static void GenSerialize(this IFormatter f, glTF_VRM_Meta value) { f.BeginMap(0); // dummy if(value.title!=null) { f.Key("title"); f.GenSerialize(value.title); } if(value.version!=null) { f.Key("version"); f.GenSerialize(value.version); } if(value.author!=null) { f.Key("author"); f.GenSerialize(value.author); } if(value.contactInformation!=null) { f.Key("contactInformation"); f.GenSerialize(value.contactInformation); } if(value.reference!=null) { f.Key("reference"); f.GenSerialize(value.reference); } { f.Key("texture"); f.GenSerialize(value.texture); } if(value.allowedUserName!=null) { f.Key("allowedUserName"); f.GenSerialize(value.allowedUserName); } if(value.violentUssageName!=null) { f.Key("violentUssageName"); f.GenSerialize(value.violentUssageName); } if(value.sexualUssageName!=null) { f.Key("sexualUssageName"); f.GenSerialize(value.sexualUssageName); } if(value.commercialUssageName!=null) { f.Key("commercialUssageName"); f.GenSerialize(value.commercialUssageName); } if(value.otherPermissionUrl!=null) { f.Key("otherPermissionUrl"); f.GenSerialize(value.otherPermissionUrl); } if(value.licenseName!=null) { f.Key("licenseName"); f.GenSerialize(value.licenseName); } if(value.otherLicenseUrl!=null) { f.Key("otherLicenseUrl"); f.GenSerialize(value.otherLicenseUrl); } f.EndMap(); } /// gltf/extensions/VRM/humanoid public static void GenSerialize(this IFormatter f, glTF_VRM_Humanoid value) { f.BeginMap(0); // dummy if(value.humanBones!=null) { f.Key("humanBones"); f.GenSerialize(value.humanBones); } { f.Key("armStretch"); f.GenSerialize(value.armStretch); } { f.Key("legStretch"); f.GenSerialize(value.legStretch); } { f.Key("upperArmTwist"); f.GenSerialize(value.upperArmTwist); } { f.Key("lowerArmTwist"); f.GenSerialize(value.lowerArmTwist); } { f.Key("upperLegTwist"); f.GenSerialize(value.upperLegTwist); } { f.Key("lowerLegTwist"); f.GenSerialize(value.lowerLegTwist); } { f.Key("feetSpacing"); f.GenSerialize(value.feetSpacing); } { f.Key("hasTranslationDoF"); f.GenSerialize(value.hasTranslationDoF); } f.EndMap(); } /// gltf/extensions/VRM/humanoid/humanBones public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/humanoid/humanBones[] public static void GenSerialize(this IFormatter f, glTF_VRM_HumanoidBone value) { f.BeginMap(0); // dummy if(value.bone!=null) { f.Key("bone"); f.GenSerialize(value.bone); } { f.Key("node"); f.GenSerialize(value.node); } { f.Key("useDefaultValues"); f.GenSerialize(value.useDefaultValues); } if(value.min!=Vector3.zero) { f.Key("min"); f.GenSerialize(value.min); } if(value.max!=Vector3.zero) { f.Key("max"); f.GenSerialize(value.max); } if(value.center!=Vector3.zero) { f.Key("center"); f.GenSerialize(value.center); } if(value.axisLength>0) { f.Key("axisLength"); f.GenSerialize(value.axisLength); } f.EndMap(); } /// gltf/extensions/VRM/humanoid/humanBones[]/min public static void GenSerialize(this IFormatter f, Vector3 value) { f.BeginMap(0); // dummy { f.Key("x"); f.GenSerialize(value.x); } { f.Key("y"); f.GenSerialize(value.y); } { f.Key("z"); f.GenSerialize(value.z); } f.EndMap(); } /// gltf/extensions/VRM/firstPerson public static void GenSerialize(this IFormatter f, glTF_VRM_Firstperson value) { f.BeginMap(0); // dummy { f.Key("firstPersonBone"); f.GenSerialize(value.firstPersonBone); } { f.Key("firstPersonBoneOffset"); f.GenSerialize(value.firstPersonBoneOffset); } if(value.meshAnnotations!=null) { f.Key("meshAnnotations"); f.GenSerialize(value.meshAnnotations); } if(value.lookAtTypeName!=null) { f.Key("lookAtTypeName"); f.GenSerialize(value.lookAtTypeName); } if(value.lookAtHorizontalInner!=null) { f.Key("lookAtHorizontalInner"); f.GenSerialize(value.lookAtHorizontalInner); } if(value.lookAtHorizontalOuter!=null) { f.Key("lookAtHorizontalOuter"); f.GenSerialize(value.lookAtHorizontalOuter); } if(value.lookAtVerticalDown!=null) { f.Key("lookAtVerticalDown"); f.GenSerialize(value.lookAtVerticalDown); } if(value.lookAtVerticalUp!=null) { f.Key("lookAtVerticalUp"); f.GenSerialize(value.lookAtVerticalUp); } f.EndMap(); } /// gltf/extensions/VRM/firstPerson/meshAnnotations public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/firstPerson/meshAnnotations[] public static void GenSerialize(this IFormatter f, glTF_VRM_MeshAnnotation value) { f.BeginMap(0); // dummy { f.Key("mesh"); f.GenSerialize(value.mesh); } if(value.firstPersonFlag!=null) { f.Key("firstPersonFlag"); f.GenSerialize(value.firstPersonFlag); } f.EndMap(); } /// gltf/extensions/VRM/firstPerson/lookAtHorizontalInner public static void GenSerialize(this IFormatter f, glTF_VRM_DegreeMap value) { f.BeginMap(0); // dummy if(value.curve!=null) { f.Key("curve"); f.GenSerialize(value.curve); } { f.Key("xRange"); f.GenSerialize(value.xRange); } { f.Key("yRange"); f.GenSerialize(value.yRange); } f.EndMap(); } /// gltf/extensions/VRM/blendShapeMaster public static void GenSerialize(this IFormatter f, glTF_VRM_BlendShapeMaster value) { f.BeginMap(0); // dummy if(value.blendShapeGroups!=null) { f.Key("blendShapeGroups"); f.GenSerialize(value.blendShapeGroups); } f.EndMap(); } /// gltf/extensions/VRM/blendShapeMaster/blendShapeGroups public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/blendShapeMaster/blendShapeGroups[] public static void GenSerialize(this IFormatter f, glTF_VRM_BlendShapeGroup value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.presetName!=null) { f.Key("presetName"); f.GenSerialize(value.presetName); } if(value.binds!=null) { f.Key("binds"); f.GenSerialize(value.binds); } if(value.materialValues!=null) { f.Key("materialValues"); f.GenSerialize(value.materialValues); } { f.Key("isBinary"); f.GenSerialize(value.isBinary); } f.EndMap(); } /// gltf/extensions/VRM/blendShapeMaster/blendShapeGroups[]/binds public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/blendShapeMaster/blendShapeGroups[]/binds[] public static void GenSerialize(this IFormatter f, glTF_VRM_BlendShapeBind value) { f.BeginMap(0); // dummy { f.Key("mesh"); f.GenSerialize(value.mesh); } { f.Key("index"); f.GenSerialize(value.index); } { f.Key("weight"); f.GenSerialize(value.weight); } f.EndMap(); } /// gltf/extensions/VRM/blendShapeMaster/blendShapeGroups[]/materialValues public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/blendShapeMaster/blendShapeGroups[]/materialValues[] public static void GenSerialize(this IFormatter f, glTF_VRM_MaterialValueBind value) { f.BeginMap(0); // dummy if(value.materialName!=null) { f.Key("materialName"); f.GenSerialize(value.materialName); } if(value.propertyName!=null) { f.Key("propertyName"); f.GenSerialize(value.propertyName); } if(value.targetValue!=null) { f.Key("targetValue"); f.GenSerialize(value.targetValue); } f.EndMap(); } /// gltf/extensions/VRM/secondaryAnimation public static void GenSerialize(this IFormatter f, glTF_VRM_SecondaryAnimation value) { f.BeginMap(0); // dummy if(value.boneGroups!=null) { f.Key("boneGroups"); f.GenSerialize(value.boneGroups); } if(value.colliderGroups!=null) { f.Key("colliderGroups"); f.GenSerialize(value.colliderGroups); } f.EndMap(); } /// gltf/extensions/VRM/secondaryAnimation/boneGroups public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/secondaryAnimation/boneGroups[] public static void GenSerialize(this IFormatter f, glTF_VRM_SecondaryAnimationGroup value) { f.BeginMap(0); // dummy if(value.comment!=null) { f.Key("comment"); f.GenSerialize(value.comment); } { f.Key("stiffiness"); f.GenSerialize(value.stiffiness); } { f.Key("gravityPower"); f.GenSerialize(value.gravityPower); } { f.Key("gravityDir"); f.GenSerialize(value.gravityDir); } { f.Key("dragForce"); f.GenSerialize(value.dragForce); } { f.Key("center"); f.GenSerialize(value.center); } { f.Key("hitRadius"); f.GenSerialize(value.hitRadius); } if(value.bones!=null) { f.Key("bones"); f.GenSerialize(value.bones); } if(value.colliderGroups!=null) { f.Key("colliderGroups"); f.GenSerialize(value.colliderGroups); } f.EndMap(); } /// gltf/extensions/VRM/secondaryAnimation/colliderGroups public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/secondaryAnimation/colliderGroups[] public static void GenSerialize(this IFormatter f, glTF_VRM_SecondaryAnimationColliderGroup value) { f.BeginMap(0); // dummy { f.Key("node"); f.GenSerialize(value.node); } if(value.colliders!=null) { f.Key("colliders"); f.GenSerialize(value.colliders); } f.EndMap(); } /// gltf/extensions/VRM/secondaryAnimation/colliderGroups[]/colliders public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/secondaryAnimation/colliderGroups[]/colliders[] public static void GenSerialize(this IFormatter f, glTF_VRM_SecondaryAnimationCollider value) { f.BeginMap(0); // dummy { f.Key("offset"); f.GenSerialize(value.offset); } { f.Key("radius"); f.GenSerialize(value.radius); } f.EndMap(); } /// gltf/extensions/VRM/materialProperties public static void GenSerialize(this IFormatter f, List value) { f.BeginList(value.Count); foreach (var x in value) { f.GenSerialize(x); } f.EndList(); } /// gltf/extensions/VRM/materialProperties[] public static void GenSerialize(this IFormatter f, glTF_VRM_Material value) { f.BeginMap(0); // dummy if(value.name!=null) { f.Key("name"); f.GenSerialize(value.name); } if(value.shader!=null) { f.Key("shader"); f.GenSerialize(value.shader); } { f.Key("renderQueue"); f.GenSerialize(value.renderQueue); } if(value.floatProperties!=null) { f.Key("floatProperties"); f.GenSerialize(value.floatProperties); } if(value.vectorProperties!=null) { f.Key("vectorProperties"); f.GenSerialize(value.vectorProperties); } if(value.textureProperties!=null) { f.Key("textureProperties"); f.GenSerialize(value.textureProperties); } if(value.keywordMap!=null) { f.Key("keywordMap"); f.GenSerialize(value.keywordMap); } if(value.tagMap!=null) { f.Key("tagMap"); f.GenSerialize(value.tagMap); } f.EndMap(); } /// gltf/extensions/VRM/materialProperties[]/floatProperties public static void GenSerialize(this IFormatter f, Dictionary value) { f.BeginMap(value.Count); foreach (var kv in value) { f.Key(kv.Key); f.GenSerialize(kv.Value); } f.EndMap(); } /// gltf/extensions/VRM/materialProperties[]/vectorProperties public static void GenSerialize(this IFormatter f, Dictionary value) { f.BeginMap(value.Count); foreach (var kv in value) { f.Key(kv.Key); f.GenSerialize(kv.Value); } f.EndMap(); } /// gltf/extensions/VRM/materialProperties[]/textureProperties public static void GenSerialize(this IFormatter f, Dictionary value) { f.BeginMap(value.Count); foreach (var kv in value) { f.Key(kv.Key); f.GenSerialize(kv.Value); } f.EndMap(); } /// gltf/extensions/VRM/materialProperties[]/keywordMap public static void GenSerialize(this IFormatter f, Dictionary value) { f.BeginMap(value.Count); foreach (var kv in value) { f.Key(kv.Key); f.GenSerialize(kv.Value); } f.EndMap(); } /// gltf/extensions/VRM/materialProperties[]/tagMap public static void GenSerialize(this IFormatter f, Dictionary value) { f.BeginMap(value.Count); foreach (var kv in value) { f.Key(kv.Key); f.GenSerialize(kv.Value); } f.EndMap(); } /// gltf/extras public static void GenSerialize(this IFormatter f, gltf_extras value) { f.BeginMap(0); // dummy f.EndMap(); } } // class } // namespace