protected List <T> readAccessor <T>(StreamIO stream, GltfAccessor.ComponentTypeEnum componentType, int count, int nargs) { List <T> vecs = new List <T>(); for (int i = 0; i < count; i++) { List <object> args = new List <object>(); for (int j = 0; j < nargs; j++) { switch (componentType) { case GltfAccessor.ComponentTypeEnum.BYTE: case GltfAccessor.ComponentTypeEnum.UNSIGNED_BYTE: args.Add(stream.ReadByte()); break; case GltfAccessor.ComponentTypeEnum.SHORT: args.Add(stream.ReadShort()); break; case GltfAccessor.ComponentTypeEnum.UNSIGNED_SHORT: args.Add(stream.ReadUShort()); break; case GltfAccessor.ComponentTypeEnum.UNSIGNED_INT: args.Add(stream.ReadUInt()); break; case GltfAccessor.ComponentTypeEnum.FLOAT: args.Add(stream.ReadSingle()); break; default: throw new Exception(); } } vecs.Add((T)Activator.CreateInstance(typeof(T), args.ToArray())); } return(vecs); }