package mb;
public class ColumnsMandComp extends MandComp {
	
	
	public void run(int myDrawCount) {
		int[] rgb = new int[imageHeight];
		for (int i = 0; i < imageWidth; i++) {
			if (!running || drawCount != myDrawCount)
				return;
			computeColumn(i,rgb);
			synchronized(this) {
				if (!running || drawCount != myDrawCount)
					return;
				raster.setPixels(i,0,1,imageHeight,rgb);
				owner.newData(i,0,1,imageHeight);
			}
			Thread.yield();
		}	
	}
	
	private void computeColumn(int columnNumber, int[] data){
		double dx = (xmax - xmin)/imageWidth;
		double dy = (ymax - ymin)/imageHeight;
		double x = xmin + dx*columnNumber;
		for (int i = 0; i < imageHeight; i++) {
			double y = ymax - dy*i;
			int iter = countIterations(x,y);
			data[i] = getIndexFor(iter);
		}
	}
	
}
