private PolylineBreakeable computePolyline(int row1, int col1, int row2, int col2) {
		if (row1 > nbRow) {
			nbRow = row1;
		}
		if (row2 > nbRow) {
			nbRow = row2;
		}
		if (col1 > nbCol) {
			nbCol = col1;
		}
		if (col2 > nbCol) {
			nbCol = col2;
		}
		if (directLinkPossibleForGeometry(row1, col1, row2, col2)) {
			// Log.println("Geom OK");
			final PolylineBreakeable direct = new PolylineBreakeable(getMainPoint(row1, col1), getMainPoint(row2, col2));
			if (isCompatible(direct)) {
				// Log.println("Direct OK");
				return direct;
			}
		}
		return bestLevel1Line(row1, col1, row2, col2);
	}