LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
tikz_layout.h File Reference

Port of jline.io.tikz.TikZLayoutEngine: a layered (Sugiyama-style) layout. More...

#include <algorithm>
#include <limits>
#include <vector>
#include "line/io/tikz/tikz_graph.h"
#include "line/io/tikz/tikz_options.h"
Include dependency graph for tikz_layout.h:

Go to the source code of this file.

Classes

struct  line::io::TikzLayout
 Node positions in cm, indexed like TikzGraph::nodes, and the layers that produced them. More...

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::io
namespace  line::io::tikz_detail

Functions

void line::io::tikz_detail::reorder_by_barycenter (std::vector< std::size_t > &layer, const std::vector< std::vector< std::size_t > > &connections, const std::vector< std::size_t > &reference, std::size_t nnodes)
 reorderLayerByBarycenter: sort a layer by the mean position of its neighbours in the reference layer.
TikzLayout line::io::tikz_layout (const TikzGraph &g, const TikzOptions &opt)
 TikZLayoutEngine.computeLayout.

Detailed Description

Port of jline.io.tikz.TikZLayoutEngine: a layered (Sugiyama-style) layout.

Three steps, each the JAR's: layers by a breadth-first topological sweep from the Sources and the nodes nobody feeds (a cycle is broken by taking the first unassigned node in model order), Sinks moved to the last layer; four forward/backward barycenter passes to reduce crossings, each a STABLE sort as Collections.sort is; then x = layer * layerSpacing and each layer centred on y = 0 with nodeSpacing between its members.

Definition in file tikz_layout.h.