package games.strategy.triplea.ui.screen.drawable;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.util.List;
import games.strategy.engine.data.Territory;
import games.strategy.triplea.ui.mapdata.MapData;
public abstract class TerritoryDrawable {
protected static void draw(final Rectangle bounds, final Graphics2D graphics, final MapData mapData,
final AffineTransform scaled, final Territory territory,
final Paint territoryPaint) {
final List<Polygon> polys = mapData.getPolygons(territory);
for (Polygon polygon : polys) {
// if we dont have to draw, dont
if (!polygon.intersects(bounds) && !polygon.contains(bounds)) {
continue;
}
// use a copy since we will move the polygon
polygon = new Polygon(polygon.xpoints, polygon.ypoints, polygon.npoints);
polygon.translate(-bounds.x, -bounds.y);
graphics.setPaint(territoryPaint);
graphics.fillPolygon(polygon);
graphics.setColor(Color.BLACK);
graphics.drawPolygon(polygon);
}
}
}