public void Read(Stream stream)
{
using (var io = IoBuffer.FromStream(stream))
{
var version = io.ReadUInt32();
Name = io.ReadPascalString();
var boneCount = io.ReadInt16();
Bones = new Bone[boneCount];
for (var i = 0; i < boneCount; i++)
{
Bone bone = ReadBone(io);
bone.Index = i;
Bones[i] = bone;
}
/** Construct tree **/
foreach (var bone in Bones)
{
bone.Children = Bones.Where(x => x.ParentName == bone.Name).ToArray();
}
RootBone = Bones.FirstOrDefault(x => x.ParentName == "NULL");
ComputeBonePositions(RootBone, Matrix.Identity);
}
}