package rescuecore2.standard.view; import java.awt.Graphics2D; import java.awt.Color; import java.awt.Shape; import java.awt.Polygon; import rescuecore2.standard.entities.Blockade; import rescuecore2.misc.gui.ScreenTransform; /** A view layer that renders road blockages. */ public class RoadBlockageLayer extends StandardEntityViewLayer<Blockade> { private static final int BLOCK_SIZE = 3; private static final int BLOCK_STROKE_WIDTH = 2; private static final Color COLOUR = Color.black; /** Construct a road blockage rendering layer. */ public RoadBlockageLayer() { super(Blockade.class); } @Override public String getName() { return "Road blockages"; } @Override public Shape render(Blockade b, Graphics2D g, ScreenTransform t) { int[] apexes = b.getApexes(); int count = apexes.length / 2; int[] xs = new int[count]; int[] ys = new int[count]; for (int i = 0; i < count; ++i) { xs[i] = t.xToScreen(apexes[i * 2]); ys[i] = t.yToScreen(apexes[(i * 2) + 1]); } Polygon shape = new Polygon(xs, ys, count); g.setColor(COLOUR); g.fill(shape); return shape; } }