		switch(getLineNumber()){
		
		case 0:{ // "Find first Scanline which intersects the Polygon"
			// get Lowest Y coordinate & get corresponding scan line 
			int low = edgeList.getLowestYValue();
			scanLine = low/pixelSize; 
			addPaintable(new scanLine());
			setLineNumber(1);
		}
		
		case 1:{ // "Move edges which intersect the Scaline into AEL"
			activeEdgeList.addEdges(edgeList.getEdgesIntersected());
			setLineNumber(4);
		}
			
		case 4:	{// "      Find intersection points with the current Scanline"
			activeEdgeList.getIntersectionPoints();
			setLineNumber(5);
		}
		
		case 5: {//"Sort these in ascending order on the X value"
			intersectionPoints.sort();
			setLineNumber(6);
		}

		
		case 6:{//"Fill bewteen Pairs of intersection Points"
			intersectionPoints.fillBetweenPoints(); 
			intersectionPoints.removeAll();
			setLineNumber(7);
		}

		
		case 7:{//"Move to the next Scanline"
			scanLine++;
			setLineNumber(8);
		}
		
		case 8:{//"Remove Edges from AEL if they are below the new Scanline"
			activeEdgeList.removeEdgesBelowScanLine();
			setLineNumber(9);
		}
		
		case 9:{//"Add Edges to the AEL which intersect the new Scanline "
			activeEdgeList.addEdges(edgeList.getEdgesIntersected());
			setLineNumber(10);
		}
		
		case 10:{ //"If AEL is empty then finish"
			if(activeEdgeList.isEmpty()){
				//Finished
				setLineNumber(11);
			}
			else{
				//Loop again
				setLineNumber(3);
			}
		}
		