public Link Merge(TreeView cadTree, URDFTreeCorrespondance correspondance)
        {
            if (cadTree.Items.Count != 1)
            {
                return(null);
            }

            Link mergedRoot = MergeItem((TreeViewItem)cadTree.Items[0], correspondance);

            return(mergedRoot);
        }
        private List <Link> MergeItems(ItemCollection cadCollection, URDFTreeCorrespondance correspondance)
        {
            List <Link> merged = new List <Link>();

            foreach (TreeViewItem item in cadCollection)
            {
                Link mergedItem = MergeItem(item, correspondance);
                merged.Add(mergedItem);
            }

            return(merged);
        }
Ejemplo n.º 3
0
        private Link MergeItem(TreeViewItem cadItem, URDFTreeCorrespondance correspondance)
        {
            Link cadLink = (Link)cadItem.Tag;
            Link csvLink = correspondance.GetCorrespondingLink(cadItem);

            Link mergedLink = MergeLink(cadLink, csvLink);

            List <Link> children = MergeItems(cadItem.Items, correspondance);

            mergedLink.Children.Clear();
            mergedLink.Children.AddRange(children);
            return(mergedLink);
        }