package org.teachingextensions.logo.utils.InterfaceUtils;
import org.teachingextensions.logo.Turtle;
import org.teachingextensions.logo.utils.ColorUtils.PenColors;
import org.teachingextensions.logo.utils.LineAndShapeUtils.LineSegment;
import org.teachingextensions.logo.utils.LineAndShapeUtils.Paintable;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Line2D;
import java.util.List;
public class MultiTurtleTrailPainter implements Paintable {
private final List<Turtle> turtles;
public MultiTurtleTrailPainter(List<Turtle> turtles) {
this.turtles = turtles;
}
@Override
public void paint(Graphics2D g, JPanel caller) {
if (turtles == null) { return; }
for (Turtle turtle : turtles)
{
paintTrail(turtle.getTrail(), g);
}
}
private void paintTrail(final LineSegment[] trail, Graphics2D g) {
for (LineSegment l : trail) {
g.setColor(PenColors.Yellows.Gold);
g.setStroke(new BasicStroke(l.getWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
g.draw(new Line2D.Double(l.getStart().x, l.getStart().y, l.getEnd().x, l.getEnd().y));
}
}
}