public void computePositions() {
		
		System.out.println("computation canvas sizes used: "+thisSize.width+", "+thisSize.height);
		
		int tasks = graph[0].length;
		float totalH = thisSize.height - vertDiam*tasks;
		taskGapH = totalH/(tasks+1);
		
		int agents = graph.length;
		totalH = thisSize.height - vertDiam*agents;
		agentGapH = totalH/(agents+1);
		
		taskPadding = thisSize.width*taskPadPercent;
		agentPadding = thisSize.width*agentPadPercent;
		
		float drawAt = taskGapH;
		for (int i = 0; i < tasksv.length; i++) {
			tasksv[i] = new Ellipse2D.Float(taskPadding, drawAt, vertDiam, vertDiam);
			drawAt += taskGapH+vertDiam;
			//System.out.println(i+", "+(taskGapH+vertDiam)*(i+1));
		}
		
		drawAt = agentGapH;
		for (int i = 0; i < agentsv.length; i++) {
			agentsv[i] = new Ellipse2D.Float(agentPadding, drawAt, vertDiam, vertDiam);
			drawAt += agentGapH+vertDiam;
		}
		
	}