Changeset 10520 for trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Formatters/SymbolicExpressionTreeLatexFormatter.cs
- Timestamp:
- 02/28/14 11:56:15 (10 years ago)
- Location:
- trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Formatters
- Files:
-
- 1 added
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Formatters/SymbolicExpressionTreeLatexFormatter.cs
r10500 r10520 28 28 using HeuristicLab.Core; 29 29 30 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding {30 namespace HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views { 31 31 [Item("LaTeX/PDF Formatter", "Formatter for symbolic expression trees for use with latex package tikz.")] 32 32 public class SymbolicExpressionTreeLatexFormatter : NamedItem, ISymbolicExpressionTreeStringFormatter { … … 37 37 }; 38 38 private readonly ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> layoutEngine = new ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode>(); 39 private readonly SymbolicExpressionTreeLayoutAdapter layoutAdapter = new SymbolicExpressionTreeLayoutAdapter();40 39 41 40 public SymbolicExpressionTreeLatexFormatter() 42 41 : base("LaTeX/PDF Formatter", "Formatter for symbolic expression trees for use with latex package tikz.") { 43 layoutEngine = new ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode>(); 42 layoutEngine = new ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> { 43 HorizontalSpacing = 2, 44 VerticalSpacing = 2, 45 NodeWidth = 8, 46 NodeHeight = 4 47 }; 44 48 } 45 49 … … 54 58 public string Format(ISymbolicExpressionTree symbolicExpressionTree) { 55 59 layoutEngine.Reset(); 56 var layoutNodes = layoutAdapter.Convert(symbolicExpressionTree).ToList();57 layoutEngine.Root = layoutNodes[0];58 layoutEngine. AddNodes(layoutNodes);60 var root = symbolicExpressionTree.Root; 61 var actualRoot = root.SubtreeCount == 0 ? root.GetSubtree(0) : root; 62 layoutEngine.Initialize(actualRoot, x => x.Subtrees); 59 63 layoutEngine.CalculateLayout(); 60 var nodeCoordinates = layoutEngine.Get NodeCoordinates();64 var nodeCoordinates = layoutEngine.GetCoordinates(); 61 65 var sb = new StringBuilder(); 62 66 var nl = Environment.NewLine;
Note: See TracChangeset
for help on using the changeset viewer.