import tp2.lib.Painter;


import java.awt.*;
import java.util.Random;
import static tp2.lib.Tools.sleep;

/**
 * Created by Arnaud Labourel on 17/10/2018.
 */

public class Rectangle implements Shape{

    Point p1, p2;

    public Rectangle(Point p1, Point p2){
        // Add code here
    	this.p1 = p1;
        this.p2 = p2;

    }

    private double height(){
        return Math.abs(p2.y-p1.y);
    }

    private double width(){
        return Math.abs(p2.x-p1.x);
    }




    public static void test_rectangle(Painter painter){
        Point p1 = new Point(100,100);
        Point p2 = new Point(200,100);
        Point p3 = new Point(200,300);
	Random random= new Random();
        
	Shape r = new Rectangle(p1, p3);
        r.draw(painter, Color.black);

        for(int i =30; i<400; i+=30) {
            Shape t2 = r.translate(i, i);
            sleep(100);
            t2.draw(painter, new Color(random.nextFloat(),
                    random.nextFloat(), random.nextFloat()));
        }
    }


    @Override
    public double getPerimeter() {
        return height()*2 + width()*2;
    }

    @Override
    public void draw(Painter painter, Color color) {
        Point upRight = p1.translate(width(),0);
        Point downLeft = p1.translate(0,height());
        p1.drawLine(upRight,painter,color);
        p1.drawLine(downLeft,painter,color);
        p2.drawLine(upRight,painter,color);
        p2.drawLine(downLeft,painter,color);
    }

    @Override
    public Shape translate(int dx, int dy) {
        return new Rectangle(
                p1.translate(dx,dy),
                p2.translate(dx,dy)
        );
    }

    @Override
    public double getArea() {
        return height()*width();
    }



}