public static Skin Deserialize(GLTFRoot root, JsonReader reader) { var skin = new Skin(); while (reader.Read() && reader.TokenType == JsonToken.PropertyName) { var curProp = reader.Value.ToString(); switch (curProp) { case "inverseBindMatrices": skin.InverseBindMatrices = AccessorId.Deserialize(root, reader); break; case "skeleton": skin.Skeleton = NodeId.Deserialize(root, reader); break; case "joints": skin.Joints = reader.ReadList(() => NodeId.Deserialize(root, reader)); break; default: skin.DefaultPropertyDeserializer(root, reader); break; } } return(skin); }
public static AnimationChannelTarget Deserialize(GLTFRoot root, JsonReader reader) { var animationChannelTarget = new AnimationChannelTarget(); if (reader.Read() && reader.TokenType != JsonToken.StartObject) { throw new Exception("Animation channel target must be an object."); } while (reader.Read() && reader.TokenType == JsonToken.PropertyName) { var curProp = reader.Value.ToString(); switch (curProp) { case "node": animationChannelTarget.Node = NodeId.Deserialize(root, reader); break; case "path": animationChannelTarget.Path = reader.ReadStringEnum <GLTFAnimationChannelPath>(); break; default: animationChannelTarget.DefaultPropertyDeserializer(root, reader); break; } } return(animationChannelTarget); }