private void createEdgeSegments(GridLocationMap<?, E> grid) {
		for (E edge : grid.edges()) {

			List<GridPoint> gridPoints = grid.getArticulations(edge);
			ColumnSegment<E> colSegment = new ColumnSegment<E>(edge, gridPoints);

			addColSegment(colSegment);

			// segments always start and end with a column segment, so any additional segments
			// will be in pairs of a row segment followed by a column segment
			while (!colSegment.isEndSegment()) {
				RowSegment<E> rowSegment = colSegment.nextSegment();
				addRowSegment(rowSegment);
				colSegment = rowSegment.nextSegment();
				addColSegment(colSegment);
			}
		}
	}
Finds the column segment object for the given edge and start point.
@param edge the edge for which to find its column segment object
@param gridPoint the start point for the desired segment object
@return the column segment object for the given edge and start point.
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/layout/flowchart/EdgeSegmentMap.java