From dfb1d9cb908b299d20b80562efe04d1f98c2ee62 Mon Sep 17 00:00:00 2001
From: m23000189 <stella.bouchal@etu.univ-amu.fr>
Date: Fri, 27 Sep 2024 11:54:56 +0200
Subject: [PATCH] narwi lhala

---
 src/main/java/shape/Decorator.java | 12 +++++++++
 src/main/java/shape/Polygone.java  | 42 +++++++++++++++++++++++++++++-
 src/main/java/shape/Rectangle.java | 20 +++++++++++---
 3 files changed, 70 insertions(+), 4 deletions(-)
 create mode 100644 src/main/java/shape/Decorator.java

diff --git a/src/main/java/shape/Decorator.java b/src/main/java/shape/Decorator.java
new file mode 100644
index 0000000..a16b2a3
--- /dev/null
+++ b/src/main/java/shape/Decorator.java
@@ -0,0 +1,12 @@
+package shape;
+
+public class Decorator {
+    protected Shape decoratedShape;
+
+    public Decorator(Shape decoratedShape) {
+        this.decoratedShape = decoratedShape;
+    }
+    public int  pointCounts(){
+        return
+    };
+}
diff --git a/src/main/java/shape/Polygone.java b/src/main/java/shape/Polygone.java
index 3b854f1..c11805b 100644
--- a/src/main/java/shape/Polygone.java
+++ b/src/main/java/shape/Polygone.java
@@ -1,4 +1,44 @@
 package shape;
 
-public class Polygone {
+import javafx.geometry.Point2D;
+import javafx.scene.paint.Color;
+
+import javafx.scene.canvas.GraphicsContext;
+import java.util.List;
+
+public class Polygone extends AbstractShape {
+    private Color color;
+    private List<Point2D> points;
+    public Polygone(Color color, List<Point2D> points) {
+        this.color = color;
+        this.points = points;
+    }
+    @Override
+    public void draw(GraphicsContext gc) {
+        if (points.size() > 2) {
+            gc.setStroke(color);
+            gc.beginPath();
+            Point2D start = points.get(0);
+            gc.moveTo(start.getX(), start.getY());
+            for (int i = 1; i < points.size(); i++) {
+                Point2D p = points.get(i);
+                gc.lineTo(p.getX(), p.getY());
+            }
+            gc.closePath();
+            gc.stroke();
+        }
+    }
+
+
+
+    public Point2D point(int index){
+        if(index < 0 || index >= points.size()){
+            throw new IndexOutOfBoundsException("Index out of bounds");
+        }else {
+            return points.get(index);
+        }
+
+    }
+
+
 }
diff --git a/src/main/java/shape/Rectangle.java b/src/main/java/shape/Rectangle.java
index b0e9062..0dfc086 100644
--- a/src/main/java/shape/Rectangle.java
+++ b/src/main/java/shape/Rectangle.java
@@ -5,23 +5,37 @@ import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
 
 public class Rectangle implements Shape{
-    Color color;
+    private Color color;
+    private Point2D point0, point1;
+
     Rectangle(Color color, Point2D point0, Point2D point1){
         this.color = color;
+        this.point0 = point0;
+        this.point1 = point1;
     }
 
     @Override
     public int pointsCount() {
-        return 0;
+        return 2;
     }
 
     @Override
     public Point2D point(int index) {
-        return null;
+        if(index == 0) return point0;
+        if(index == 1) {return point1;}
+        else {
+            throw new IndexOutOfBoundsException("Index out of bounds");
+        }
     }
 
     @Override
     public void draw(GraphicsContext context) {
+        context.setStroke(color);
+        double x = Math.min(point0.getX(), point1.getX());
+        double y = Math.min(point0.getY(), point1.getY());
+        double width = Math.abs(point0.getX() - point1.getX());
+        double height = Math.abs(point0.getY() - point1.getY());
 
+        context.strokeRect(x, y, width, height);
     }
 }
-- 
GitLab