package turtlekit.flocking;
import java.awt.Color;
import java.awt.Graphics;
import java.util.ConcurrentModificationException;
import turtlekit.kernel.Patch;
import turtlekit.kernel.Turtle;
import turtlekit.viewer.TKDefaultViewer;
public class FlockViewerColorPatch extends TKDefaultViewer {
protected void render(Graphics g) {
try {
int index = 0;
final Patch[] grid = getPatchGrid();
final int w = getWidth();
for (int j = getHeight() - 1; j >= 0; j--) {
for (int i = 0; i < w; i++) {
final Patch p = grid[index];
if (!p.isEmpty()) {
paintPatch(g, p, i * cellSize, j * cellSize, index);
}
index++;
}
}
} catch (ConcurrentModificationException e) {//FIXME
}
g.drawLine(getWidth()*cellSize, getHeight()*cellSize, 0, getHeight()*cellSize);
g.drawLine(getWidth()*cellSize, getHeight()*cellSize, getWidth()*cellSize, 0);
}
public void paintTurtle(final Graphics g, final Turtle t, final int i,
final int j) {
// g.setColor(t.getColor());
// g.fillRect(i, j, cellSize, cellSize);
}
@Override
public void paintPatch(final Graphics g, final Patch p, final int x, final int y, final int index) {
int size = p.getTurtles().size();
if(size > 0){
g.setColor(new Color(0, 255/(size*4), 0));
// this.setColor(Color.WHITE);
}
else{
g.setColor(Color.white);
// this.setColor(Color.GREEN);
}
// g.setColor(c);
g.fillRect(x , y , cellSize, cellSize);
}
}