private void assignOffsets(ColSegmentList<E> group, int center) {
		List<ColSegmentList<E>> nonOverlappingSegments = new ArrayList<>();

		// assign negative offsets to column segments to the left of the center segment.
		for (int i = center; i >= 0; i--) {
			ColumnSegment<E> segment = group.edgeSegments.get(i);
			assignOffsets(nonOverlappingSegments, segment, -2); // 2 to keep edges two offsets apart
		}

		// remove all the previous results except for the columm as we still need to check
		// for overlap against columns that have been assigned offset 0
		for (int i = nonOverlappingSegments.size() - 1; i > 0; i--) {
			nonOverlappingSegments.remove(i);
		}

		// assign positive offsets to column segments to the right of the center segment.
		for (int i = center + 1; i < group.edgeSegments.size(); i++) {
			ColumnSegment<E> segment = group.edgeSegments.get(i);
			assignOffsets(nonOverlappingSegments, segment, 2); // 2 to keep edges two offsets apart
		}
	}
Checks if the range of y values in a given column segment list intersects the
range of y values in this column segment.
@param other the column segment list to compare
@return true if they intersect ranges.
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/layout/flowchart/ColSegmentList.java