public Skeleton Clone() { var result = new Skeleton(); result.Name = this.Name; result.Bones = new Bone[Bones.Length]; for (int i = 0; i < Bones.Length; i++){ result.Bones[i] = Bones[i].Clone(); } /** Construct tree **/ foreach (var bone in result.Bones) { bone.Children = result.Bones.Where(x => x.ParentName == bone.Name).ToArray(); } result.RootBone = result.Bones.FirstOrDefault(x => x.ParentName == "NULL"); result.ComputeBonePositions(result.RootBone, Matrix.Identity); return result; }
public Skeleton Clone() { var result = new Skeleton(); result.Name = this.Name; result.Bones = new Bone[Bones.Length]; for (int i = 0; i < Bones.Length; i++) { result.Bones[i] = Bones[i].Clone(); } /** Construct tree **/ foreach (var bone in result.Bones) { bone.Children = result.Bones.Where(x => x.ParentName == bone.Name).ToArray(); } result.RootBone = result.Bones.FirstOrDefault(x => x.ParentName == "NULL"); result.ComputeBonePositions(result.RootBone, Matrix.Identity); return(result); }