Collection<Point2DInt> cutPoints(LineSegmentInt original) {

		// Log.println("original=" + original);
		// Log.println("inflateX=" + inflateX);
		// Log.println("inflateY=" + inflateY);

		final SortedSet<Point2DInt> result = new TreeSet<Point2DInt>(new Point2DIntComparatorDistance(original.getP1()));

		if (original.isHorizontal() == false) {
			for (InflateData x : inflateX) {
				final LineSegmentInt vertical = new LineSegmentInt(x.getPos(), original.getMinY(), x.getPos(), original
						.getMaxY());
				final Point2DInt inter = original.getSegIntersection(vertical);
				if (inter != null) {
					result.add(inter);
				}
			}
		}
		if (original.isVertical() == false) {
			for (InflateData y : inflateY) {
				final LineSegmentInt horizontal = new LineSegmentInt(original.getMinX(), y.getPos(),
						original.getMaxX(), y.getPos());
				final Point2DInt inter = original.getSegIntersection(horizontal);
				if (inter != null) {
					result.add(inter);
				}
			}
		}
		return result;
	}