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); }
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); }