boolean directLinkPossibleForGeometry(int row1, int col1, int row2, int col2) {
		final int rowMin = Math.min(row1, row2);
		final int rowMax = Math.max(row1, row2);
		final int colMin = Math.min(col1, col2);
		final int colMax = Math.max(col1, col2);
		final LineSegmentInt seg = new LineSegmentInt(col1, row1, col2, row2);
		for (int r = rowMin; r <= rowMax; r++) {
			for (int c = colMin; c <= colMax; c++) {
				if (r == row1 && c == col1) {
					continue;
				}
				if (r == row2 && c == col2) {
					continue;
				}
				if (seg.containsPoint(new Point2DInt(c, r))) {
					return false;
				}
			}
		}
		return true;
	}