mirror of
https://github.com/vrm-c/UniVRM.git
synced 2026-05-11 04:54:17 -05:00
2174 lines
50 KiB
C#
2174 lines
50 KiB
C#
|
|
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<glTFBuffer> 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<glTFBufferView> 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<glTFAccessor> 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<glTFTexture> 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<glTFTextureSampler> 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<glTFImage> 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<glTFMaterial> 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, object 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/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<glTFMesh> 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<glTFPrimitives> 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<gltfMorphTarget> 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<String> value)
|
|
{
|
|
f.BeginList(value.Count);
|
|
foreach (var x in value)
|
|
{
|
|
f.GenSerialize(x);
|
|
}
|
|
f.EndList();
|
|
}
|
|
|
|
/// gltf/nodes
|
|
public static void GenSerialize(this IFormatter f, List<glTFNode> 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<glTFSkin> 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<gltfScene> 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<glTFAnimation> 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<glTFAnimationChannel> 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<glTFAnimationSampler> 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<glTFCamera> 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<glTF_VRM_HumanoidBone> 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<glTF_VRM_MeshAnnotation> 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<glTF_VRM_BlendShapeGroup> 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<glTF_VRM_BlendShapeBind> 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<glTF_VRM_MaterialValueBind> 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<glTF_VRM_SecondaryAnimationGroup> 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<glTF_VRM_SecondaryAnimationColliderGroup> 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<glTF_VRM_SecondaryAnimationCollider> 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<glTF_VRM_Material> 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<string, Single> 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<string, Single[]> 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<string, Int32> 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<string, Boolean> 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<string, String> 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
|