@Override
	public boolean usesEdgeArticulations() {
		return true;
	}
Base class for graph layouts that layout a graph based on a tree structure with orthogonal edge
routing.
<P>
The basic algorithm is to convert the graph to a tree and then, working bottom up in the tree,
assign each vertex to a {@link GridLocationMap}. This is done by assigning each leaf
vertex in its own simple 1x1 grid and them merging grids for sibling children side by side as
you work up the tree. Merging sub-tree grids is done by shifting child grids to the right as 
each child grid is merged into the first (left most) child grid. The amount to shift a grid
before it is merged is done by comparing the maximum column values for each row from the left 
grid to the minimum column values for each row from the right grid and finding the minimum shift
need such that no rows overlap. This way, grids are stitched together sort of like a jig-saw
puzzle.
<P>
Once the vertices are place in the grid, edge articulations are computed so that edges are
routed orthogonally using an {@link OrthogonalEdgeRouter}.
<P>
To position the vertices and edges in layout space, it uses an 
{@link OrthogonalGridToLayoutMapper} to size the grid and map grid points to layout points. 

@param <V> the vertex type
@param <E> the edge type
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/layout/flowchart/AbstractFlowChartLayout.java