示例#1
0
        public bool AddBone(string parent, ESK_Bone boneToAdd)
        {
            if (parent == String.Empty)
            {
                ESKBones.Add(boneToAdd.Clone());
                return(true);
            }

            for (int i = 0; i < ESKBones.Count; i++)
            {
                if (ESKBones[i].Name == parent)
                {
                    ESKBones[i].ESK_Bones.Add(boneToAdd.Clone());
                    return(true);
                }

                if (ESKBones[i].ESK_Bones != null)
                {
                    bool result = AddBoneRecursive(parent, boneToAdd, ESKBones[i].ESK_Bones);

                    if (result == true)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
示例#2
0
        private bool AddBoneRecursive(string parent, ESK_Bone boneToAdd, ObservableCollection <ESK_Bone> eskBones)
        {
            for (int i = 0; i < eskBones.Count; i++)
            {
                if (eskBones[i].Name == parent)
                {
                    eskBones[i].ESK_Bones.Add(boneToAdd.Clone());
                    return(true);
                }

                if (eskBones[i].ESK_Bones != null)
                {
                    bool result = AddBoneRecursive(parent, boneToAdd, eskBones[i].ESK_Bones);

                    if (result == true)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }