Changeset 11015 for branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Formatters/SymbolicExpressionTreeLatexFormatter.cs
- Timestamp:
- 06/13/14 17:20:36 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.EvolutionTracking/HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views/3.4/Formatters/SymbolicExpressionTreeLatexFormatter.cs
r10655 r11015 65 65 66 66 public string Format(ISymbolicExpressionTree symbolicExpressionTree) { 67 string s; 68 Format(symbolicExpressionTree, out s); 69 return s; 70 } 71 72 public Dictionary<ISymbolicExpressionTreeNode, string> Format(ISymbolicExpressionTree symbolicExpressionTree, out string str, int offset = 0) { 73 var nodeIds = new Dictionary<ISymbolicExpressionTreeNode, string>(); 67 74 var root = symbolicExpressionTree.Root; 68 75 var actualRoot = root.SubtreeCount == 0 ? root.GetSubtree(0) : root; … … 78 85 "\\begin{tikzpicture}" + nl + 79 86 "\\def\\ws{1}" + nl + 80 "\\def\\hs{0.7}" + nl); 87 "\\def\\hs{0.7}" + nl + 88 "\\def\\offs{" + offset + "}" + nl); 81 89 82 var nodeIndices = new Dictionary<ISymbolicExpressionTreeNode, int>();83 90 var nodes = symbolicExpressionTree.IterateNodesBreadth().ToList(); 84 91 for (int i = 0; i < nodes.Count; ++i) { 85 92 var node = nodes[i]; 86 nodeIndices.Add(node, i); 93 var id = Guid.NewGuid().ToString(); 94 nodeIds[node] = id; 87 95 var coord = nodeCoordinates[node]; 88 96 var nodeName = symbolNameMap.ContainsKey(node.Symbol.Name) ? symbolNameMap[node.Symbol.Name] : node.ToString(); 89 sb.AppendLine(string.Format(CultureInfo.InvariantCulture, "\\node ({0}) at (\\ws*{1} ,\\hs*{2}) {{{3}}};", i, ws * coord.X, -hs * coord.Y, EscapeLatexString(nodeName)));97 sb.AppendLine(string.Format(CultureInfo.InvariantCulture, "\\node ({0}) at (\\ws*{1} + {2},\\hs*{3}) {{{4}}};", nodeIds[node], ws * coord.X, offset, -hs * coord.Y, EscapeLatexString(nodeName))); 90 98 } 91 99 92 100 for (int i = 0; i < nodes.Count; ++i) { 101 var n = nodes[i]; 93 102 foreach (var s in nodes[i].Subtrees) { 94 sb.AppendLine(string.Format(CultureInfo.InvariantCulture, "\\draw ({0}) -- ({1});", i, nodeIndices[s]));103 sb.AppendLine(string.Format(CultureInfo.InvariantCulture, "\\draw ({0}) -- ({1});", nodeIds[n], nodeIds[s])); 95 104 } 96 105 } … … 98 107 sb.Append("\\end{tikzpicture}" + nl + 99 108 "\\end{document}" + nl); 100 return sb.ToString(); 109 str = sb.ToString(); 110 return nodeIds; 101 111 } 102 112
Note: See TracChangeset
for help on using the changeset viewer.