Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/14/14 17:15:32 (10 years ago)
Author:
bburlacu
Message:

#1772: Small improvements to FragmentGraphView, moved tracking classes to separate folder.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/SymbolicExpressionTreeTile.cs

    r10730 r10746  
    2323using System.Collections.Generic;
    2424using System.Drawing;
     25using System.Drawing.Drawing2D;
    2526using System.Linq;
    2627using HeuristicLab.Common;
     
    3738    public int PreferredNodeWidth { get; set; }
    3839    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;
    3943
    4044    private Size size;
     
    7074    }
    7175
     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
    7288    private ISymbolicExpressionTree symbolicExpressionTree;
    7389    public ISymbolicExpressionTree SymbolicExpressionTree {
     
    8197    new private void Clear() {
    8298      Group.Clear();
    83       primitiveMap.Clear();
     99      primitivesToNodes.Clear();
     100      nodesToPrimitives.Clear();
    84101    }
    85102
     
    92109      }
    93110    }
    94     public ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> LayoutEngine { get; set; }
    95     private readonly Dictionary<IPrimitive, ISymbolicExpressionTreeNode> primitiveMap;
    96111
    97112    public SymbolicExpressionTreeTile(IChart chart)
    98113      : base(chart) {
    99       primitiveMap = new Dictionary<IPrimitive, ISymbolicExpressionTreeNode>();
     114      primitivesToNodes = new Dictionary<IPrimitive, ISymbolicExpressionTreeNode>();
     115      nodesToPrimitives = new Dictionary<ISymbolicExpressionTreeNode, IPrimitive>();
    100116      PreferredNodeWidth = 80;
    101117      PreferredNodeHeight = 40;
     
    124140        var upperRight = new PointD(visualNode.X + preferredNodeWidth, visualNode.Y + preferredNodeHeight);
    125141        var node = visualNode.Content;
     142
    126143        RectangularPrimitiveBase rectangularPrimitive;
    127144        if (node.SubtreeCount == 0) {
     
    131148        }
    132149
    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);
    134152        this.Add(rectangularPrimitive);
    135153
     
    179197      }
    180198    }
     199
     200    public override void Draw(Graphics graphics) {
     201      graphics.SmoothingMode = SmoothingMode.HighQuality;
     202      base.Draw(graphics);
     203    }
    181204  }
    182205}
Note: See TracChangeset for help on using the changeset viewer.