import java.util.*; /** Inactive Edge List for Scan Line Algorithm*/ class IEL extends EdgeList{ int miny = Integer.MAX_VALUE; int maxy = Integer.MIN_VALUE; /* add edge at appropriate place in IEL */ void add (Edge e) { miny = Math.min(e.miny(),miny); maxy = Math.max(e.maxy(),maxy); //v is in decreasing order of ymin() int i; for (i = 0; i < size() && e.miny() < elementAt(i).miny(); i++) { /*nothing*/ } v.insertElementAt(e,i); } /* next edge with miny() = y from IEL */ Edge next(int y) { if (size()==0) return null; Edge result = elementAt(size()-1); if (result.miny()==y) { v.removeElementAt(size()-1); return result; } else { return null; } } int miny() { return miny; } int maxy() { return maxy; } /* string representation of IEL */ public String toString(){ StringBuffer sb = new StringBuffer(); for (int i = size()-1; i >= 0; i--) { sb.append(elementAt(i)); sb.append("\n"); } return sb.toString(); } }