private double addColumnsFromGeometry(RoadGeometry roadGeometry, int beginning, int end, double columns) {
		if (geometryFitsInside(roadGeometry, beginning, end)) {
			columns += roadGeometry.length() / (double) roadGeometry.getSmax();
		} else if (geometryEndIsOutside(roadGeometry, beginning, end)) {
			columns += (end - roadGeometry.getBeginning()) / (double) roadGeometry.getSmax();
		} else if (geometryEndIsInside(roadGeometry, beginning, end)) {
			columns += (roadGeometry.getEnd() - beginning) / (double) roadGeometry.getSmax();
		} else if (geometryIsAround(roadGeometry, beginning, end)) {
			columns += (end - beginning) / (double) roadGeometry.getSmax();
		}
		return columns;
	}