processOverlaps method

void processOverlaps(
  1. int start,
  2. int end,
  3. SweepLineEvent ev0,
  4. SegmentIntersector si,
)

Implementation

void processOverlaps(
    int start, int end, SweepLineEvent ev0, SegmentIntersector si) {
  MonotoneChain mc0 = ev0.getObject() as MonotoneChain;
  /**
   * Since we might need to test for self-intersections,
   * include current INSERT event object in list of event objects to test.
   * Last index can be skipped, because it must be a Delete event.
   */
  for (int i = start; i < end; i++) {
    SweepLineEvent ev1 = events[i];
    if (ev1.isInsert()) {
      MonotoneChain mc1 = ev1.getObject() as MonotoneChain;
      // don't compare edges in same group, if labels are present
      if (!ev0.isSameLabel(ev1)) {
        mc0.computeIntersections(mc1, si);
        nOverlaps++;
      }
    }
  }
}