Changeset 10746 for branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeTile.cs
- Timestamp:
- 04/14/14 17:15:32 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeTile.cs
r10730 r10746 23 23 using System.Collections.Generic; 24 24 using System.Drawing; 25 using System.Drawing.Drawing2D; 25 26 using System.Linq; 26 27 using HeuristicLab.Common; … … 37 38 public int PreferredNodeWidth { get; set; } 38 39 public int PreferredNodeHeight { get; set; } 40 public ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> LayoutEngine { get; set; } 41 private readonly Dictionary<IPrimitive, ISymbolicExpressionTreeNode> primitivesToNodes; 42 private readonly Dictionary<ISymbolicExpressionTreeNode, IPrimitive> nodesToPrimitives; 39 43 40 44 private Size size; … … 70 74 } 71 75 76 public IPrimitive GetPrimitive(ISymbolicExpressionTreeNode node) { 77 IPrimitive primitive; 78 nodesToPrimitives.TryGetValue(node, out primitive); 79 return primitive; 80 } 81 82 public ISymbolicExpressionTreeNode GetExpressionTreeNode(IPrimitive primitive) { 83 ISymbolicExpressionTreeNode node; 84 primitivesToNodes.TryGetValue(primitive, out node); 85 return node; 86 } 87 72 88 private ISymbolicExpressionTree symbolicExpressionTree; 73 89 public ISymbolicExpressionTree SymbolicExpressionTree { … … 81 97 new private void Clear() { 82 98 Group.Clear(); 83 primitiveMap.Clear(); 99 primitivesToNodes.Clear(); 100 nodesToPrimitives.Clear(); 84 101 } 85 102 … … 92 109 } 93 110 } 94 public ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> LayoutEngine { get; set; }95 private readonly Dictionary<IPrimitive, ISymbolicExpressionTreeNode> primitiveMap;96 111 97 112 public SymbolicExpressionTreeTile(IChart chart) 98 113 : base(chart) { 99 primitiveMap = new Dictionary<IPrimitive, ISymbolicExpressionTreeNode>(); 114 primitivesToNodes = new Dictionary<IPrimitive, ISymbolicExpressionTreeNode>(); 115 nodesToPrimitives = new Dictionary<ISymbolicExpressionTreeNode, IPrimitive>(); 100 116 PreferredNodeWidth = 80; 101 117 PreferredNodeHeight = 40; … … 124 140 var upperRight = new PointD(visualNode.X + preferredNodeWidth, visualNode.Y + preferredNodeHeight); 125 141 var node = visualNode.Content; 142 126 143 RectangularPrimitiveBase rectangularPrimitive; 127 144 if (node.SubtreeCount == 0) { … … 131 148 } 132 149 133 primitiveMap.Add(rectangularPrimitive, node); // to be able to retrieve nodes via primitives 150 primitivesToNodes.Add(rectangularPrimitive, node); // to be able to retrieve nodes via primitives 151 nodesToPrimitives.Add(node, rectangularPrimitive); 134 152 this.Add(rectangularPrimitive); 135 153 … … 179 197 } 180 198 } 199 200 public override void Draw(Graphics graphics) { 201 graphics.SmoothingMode = SmoothingMode.HighQuality; 202 base.Draw(graphics); 203 } 181 204 } 182 205 }
Note: See TracChangeset
for help on using the changeset viewer.