import java.awt.Graphics; import java.util.Iterator; /** * Oops, only draws r-disk graph * @author mds * */ public class DrawGraphLightly implements IDrawAgent { float [] m_fDash; public DrawGraphLightly() { m_fDash = new float[20]; int i; for(i = 0; i < 10; ++i) { m_fDash[i] = 1.0f; } for(; i < 20; ++i) { m_fDash[i] = 0.0f; } } public void draw(Graphics g, IProjection p, double[] pts, StateBundle[] arrAgentStates, CommGraph currGraph) { // TODO Auto-generated method stub int nThick = globalsUI.getInstance().getLineThickness(); try { java.awt.Graphics2D gCast = (java.awt.Graphics2D)g; java.awt.BasicStroke stroke = new java.awt.BasicStroke(Math.max(0.25f, nThick-2), java.awt.BasicStroke.CAP_ROUND, java.awt.BasicStroke.JOIN_ROUND, 1.0f, m_fDash, 1.0f); gCast.setStroke(stroke); for(int i = 0; i < arrAgentStates.length; ++i) { g.setColor(globalsUI.getColorMap().getColor(3)); Iterator iterTo = currGraph.getEdgesTo(i); while(iterTo.hasNext()) { CommLink l = iterTo.next(); g.drawLine(p.getScreenComp(0,pts, 2*l.to()), p.getScreenComp(1,pts, 2*l.to()), p.getScreenComp(0,pts, 2*l.from()), p.getScreenComp(1,pts, 2*l.from())); } } globalsUI.getInstance().applyLineThickness(g); } catch(Exception e) { // System.err.println("Tried to set line thickness on a graphics context other than Graphics2D\n"); } } }