import java.awt.*;
import java.awt.geom.*;

public class Grid  {
    CubicPanel panel;

    public Grid(CubicPanel cp) {
	panel = cp;
    }
    public void plot(Graphics2D g) {
	BoundingBox bbox = panel.getBoundingBox();
        GeneralPath path = new GeneralPath();
        int minX = (int) Math.floor(Math.min(bbox.llx, bbox.urx));
        int maxX = (int) Math.ceil(Math.max(bbox.llx, bbox.urx));
        for (int x = minX; x <= maxX; x++) {
            path.moveTo(x, (float) bbox.lly);
            path.lineTo(x, (float) bbox.ury);
        }
        int minY = (int) Math.floor(Math.min(bbox.lly, bbox.ury));
        int maxY = (int) Math.ceil(Math.max(bbox.lly, bbox.ury));
        for (int y = minY; y <= maxY; y++) {
            path.moveTo((float) bbox.llx, y);
            path.lineTo((float) bbox.urx, y);
        }
	AffineTransform transform = panel.getTransform();
        g.draw(transform.createTransformedShape(path));
    }
}
