public UnknownWorldMapBone(BoneIter boneIter, Matrix4 parentMatrix) : base(Vector4.Transform(new Vector4(boneIter.Current.Position.ToVec3(), 1), parentMatrix).Xyz.ToSceneScale()) { BoneName = boneIter.Current.Name; bone = boneIter.Current; Dictionary <short, (Matrix4 matrix, UnknownWorldMapBone bone)> loadedWorldmapBones = new Dictionary <short, (Matrix4 matrix, UnknownWorldMapBone bone)> { { (short)boneIter.CurrentBoneIndex, (boneIter.Current.CalculateRelativeMatrix() * parentMatrix, this) } }; while (loadedWorldmapBones.TryGetValue(boneIter.PeekNext()?.ParentIndex ?? -1, out (Matrix4 matrix, UnknownWorldMapBone bone)parent)) //is part of the child tree { boneIter.MoveNext(); var bone = new UnknownWorldMapBone(boneIter, parent.matrix); parent.bone.Children.Add(bone); loadedWorldmapBones.Add( (short)boneIter.CurrentBoneIndex, (boneIter.Current.CalculateRelativeMatrix() * parent.matrix, bone) ); } }
public GeneralUIContainer(UnknownWorldMapBone obj, EditorSceneBase scene) { this.obj = obj; this.scene = scene; }