Ejemplo n.º 1
0
        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)
                    );
            }
        }
Ejemplo n.º 2
0
 public GeneralUIContainer(UnknownWorldMapBone obj, EditorSceneBase scene)
 {
     this.obj   = obj;
     this.scene = scene;
 }