Esempio n. 1
0
  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;
  }