I have a problem in a portrayal's draw() method, sometimes the draw
field from the DrawInfo2D object and the newinfo and info from
SparseGridPortrayal2D looks like this for *some* calls in an update;
SparseGridPortrayal2D
newinfo: DrawInfo2D[ Draw:
java.awt.geom.Rectangle2D$Double[x=352.0,y=107.0,w=0.0,h=0.0] Clip:
java.awt.geom.Rectangle2D$Double[x=0.0,y=0.0,w=500.0,h=400.0]]
info: DrawInfo2D[ Draw:
java.awt.geom.Rectangle2D$Double[x=0.0,y=0.0,w=500.0,h=400.0] Clip:
java.awt.geom.Rectangle2D$Double[x=0.0,y=0.0,w=500.0,h=400.0]]
Our portrayal's draw(), info.draw:
java.awt.geom.Rectangle2D$Double[x=352.0,y=107.0,w=0.0,h=0.0]
This is the code (more or less) where we set up the portrayal;
public static void setupPortrayals(SimState state, Display2D display) {
SparseGridPortrayal2D barterPortrayal = new SparseGridPortrayal2D();
int width = display.getWidth();
int height = display.getHeight();
SparseGrid2D agentPositions = new SparseGrid2D(width, height);
for(Agent e : agents) {
agentPositions.setObjectLocation(e, Math.sin(idx) * idx,
Math.cos(idx) * idx);
idx++;
}
barterPortrayal.setField(agentPositions);
display.attach(barterPortrayal, "Agents");
barterPortrayal.setPortrayalForClass(
Agent.class,
new BasicAgentPortrayal((Simulation) state));
display.reset();
display.repaint();
}
Regards,
Pelle
|