Changeset 7792 for branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs
- Timestamp:
- 05/10/12 17:17:14 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.EvolutionaryTracking.Views/3.4/GenealogyGraphView.cs
r7785 r7792 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Drawing; 24 25 using System.Linq; … … 92 93 symbolicExpressionTreeChart.Tree = (ISymbolicExpressionTree)genealogyGraphNode.Data; 93 94 if (_selectedVisualSymbolicExpressionTreeNode != null) { 94 var nodes = symbolicExpressionTreeChart.Tree.IterateNodes Postfix().ToArray();95 var fragments = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode.IterateNodes Postfix().ToArray();95 var nodes = symbolicExpressionTreeChart.Tree.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>; 96 var fragments = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode.IterateNodesBreadth() as List<ISymbolicExpressionTreeNode>; 96 97 int index = SymbolicExpressionTreeMatching.FindMatch(nodes, fragments, similarityModeSelector.SelectedIndex); 97 98 if (index != -1) { 98 _selectedVisualSymbolicExpressionTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(nodes[index + fragments.Count ()- 1]);99 _selectedVisualSymbolicExpressionTreeNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(nodes[index + fragments.Count - 1]); 99 100 var subtree = _selectedVisualSymbolicExpressionTreeNode.SymbolicExpressionTreeNode; 100 101 foreach (var visualNode in subtree.IterateNodesPostfix().Select(node => symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node))) { … … 104 105 } 105 106 } 106 // the cutpoint index represents the index of the node/subtree (when the tree is enumerated in postfix order) 107 // that was changed (by mutation) or received from a parent (by crossover) 108 if (visualGenealogyGraphNode.Data.CutpointIndex != -1) { 109 var gNode = visualGenealogyGraphNode.Data; 110 var symbExprTree = gNode.Data as ISymbolicExpressionTree; 111 if (symbExprTree == null) return; 112 var nodes = symbExprTree.IterateNodesPostfix(); 113 var fragment = nodes.ElementAt(gNode.CutpointIndex); 114 if (fragment != null) foreach (var node in fragment.IterateNodesPostfix()) { 115 var visualNode = symbolicExpressionTreeChart.GetVisualSymbolicExpressionTreeNode(node); 116 visualNode.FillColor = Color.LightPink; 117 } 118 symbolicExpressionTreeChart.Repaint(); 119 } 107 // what's left to be done here is to: 108 // - get the symbolic expression tree 109 // - get the corresponding fragment 110 // - for all symbolic expression tree nodes in the fragment, colorize the corresponding visual nodes 111 // - repaint the tree 120 112 } 121 113
Note: See TracChangeset
for help on using the changeset viewer.