public void computeOverlaps(SweepLineOverlapAction action) { nOverlaps = 0; buildIndex(); for (int i = 0; i < events.size(); i++ ) { SweepLineEvent ev = (SweepLineEvent) events.get(i); if (ev.isInsert()) { processOverlaps(i, ev.getDeleteEventIndex(), ev.getInterval(), action); } } }
private void buildIndex() { sweepLine = new SweepLineIndex(); for (int i = 0; i < rings.size(); i++) { LinearRing ring = (LinearRing) rings.get(i); Envelope env = ring.getEnvelopeInternal(); SweepLineInterval sweepInt = new SweepLineInterval(env.getMinX(), env.getMaxX(), ring); sweepLine.add(sweepInt); } }
public boolean isNonNested() { buildIndex(); OverlapAction action = new OverlapAction(); sweepLine.computeOverlaps(action); return action.isNonNested; }