public static GLTFSkin Deserialize(GLTFRoot root, JsonReader reader) { var skin = new GLTFSkin(); while (reader.Read() && reader.TokenType == JsonToken.PropertyName) { var curProp = reader.Value.ToString(); switch (curProp) { case "inverseBindMatrices": skin.InverseBindMatrices = GLTFAccessorId.Deserialize(root, reader); break; case "skeleton": skin.Skeleton = GLTFNodeId.Deserialize(root, reader); break; case "joints": skin.Joints = reader.ReadList(() => GLTFNodeId.Deserialize(root, reader)); break; default: skin.DefaultPropertyDeserializer(root, reader); break; } } return(skin); }
public static GLTFAnimationSampler Deserialize(GLTFRoot root, JsonReader reader) { var animationSampler = new GLTFAnimationSampler(); while (reader.Read() && reader.TokenType == JsonToken.PropertyName) { var curProp = reader.Value.ToString(); switch (curProp) { case "input": animationSampler.Input = GLTFAccessorId.Deserialize(root, reader); break; case "interpolation": animationSampler.Interpolation = reader.ReadStringEnum <GLTFInterpolationType>(); break; case "output": animationSampler.Output = GLTFAccessorId.Deserialize(root, reader); break; default: animationSampler.DefaultPropertyDeserializer(root, reader); break; } } return(animationSampler); }
public static GLTFMeshPrimitive Deserialize(GLTFRoot root, JsonReader reader) { var primitive = new GLTFMeshPrimitive(); while (reader.Read() && reader.TokenType == JsonToken.PropertyName) { var curProp = reader.Value.ToString(); switch (curProp) { case "attributes": primitive.Attributes = reader.ReadAsDictionary(() => new GLTFAccessorId { Id = reader.ReadAsInt32().Value, Root = root }); break; case "indices": primitive.Indices = GLTFAccessorId.Deserialize(root, reader); break; case "material": primitive.Material = GLTFMaterialId.Deserialize(root, reader); break; case "mode": primitive.Mode = (GLTFDrawMode)reader.ReadAsInt32().Value; break; case "targets": primitive.Targets = reader.ReadList(() => { return(reader.ReadAsDictionary(() => new GLTFAccessorId { Id = reader.ReadAsInt32().Value, Root = root })); }); break; default: primitive.DefaultPropertyDeserializer(root, reader); break; } } return(primitive); }