Esempio n. 1
0
 private LineSegmentInt inflateSegment(LineSegmentInt seg) {
   if (isOnGrid(seg.getP1()) || isOnGrid(seg.getP2())) {
     return new LineSegmentInt(inflatePoint2DInt(seg.getP1()), inflatePoint2DInt(seg.getP2()));
   }
   for (InflateData x : inflateX) {
     seg = seg.inflateXAlpha(x);
   }
   for (InflateData y : inflateY) {
     seg = seg.inflateYAlpha(y);
   }
   return seg;
 }
Esempio n. 2
0
 public List<LineSegmentInt> inflate(Collection<LineSegmentInt> segments) {
   final List<LineSegmentInt> result = new ArrayList<LineSegmentInt>();
   LineSegmentInt last = null;
   final Collection<LineSegmentInt> cutSegments = cutSegments(segments);
   for (LineSegmentInt seg : inflateSegmentCollection(cutSegments)) {
     if (last != null && last.getP2().equals(seg.getP1()) == false) {
       result.add(new LineSegmentInt(last.getP2(), seg.getP1()));
     }
     result.add(seg);
     last = seg;
   }
   return result;
 }
Esempio n. 3
0
 Collection<LineSegmentInt> cutSegments(LineSegmentInt original) {
   final List<LineSegmentInt> result = new ArrayList<LineSegmentInt>();
   Point2DInt cur = original.getP1();
   final Collection<Point2DInt> cutPoints = cutPoints(original);
   for (Point2DInt inter : cutPoints) {
     if (cur.equals(inter)) {
       continue;
     }
     result.add(new LineSegmentInt(cur, inter));
     cur = inter;
   }
   if (cur.equals(original.getP2()) == false) {
     result.add(new LineSegmentInt(cur, original.getP2()));
   }
   return result;
 }