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; }