From 54904bc76d47f9bfc536c02fe112ddf008a02989 Mon Sep 17 00:00:00 2001 From: a23022716 <celia.arezki.1@etu.univ-amu.fr> Date: Fri, 27 Sep 2024 11:29:59 +0200 Subject: [PATCH] ADD of The abstract class AbstractShape implements the Shape interface and provides common functionality for managing points --- src/main/java/shape/AbstractShape.java | 30 ++++++++++++++++++++++++++ src/main/java/shape/Shape.java | 4 +++- 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/main/java/shape/AbstractShape.java diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java new file mode 100644 index 0000000..4b58511 --- /dev/null +++ b/src/main/java/shape/AbstractShape.java @@ -0,0 +1,30 @@ +package shape; + +import javafx.geometry.Point2D; +import javafx.scene.canvas.GraphicsContext; +import java.util.ArrayList; +import java.util.List; + +public abstract class AbstractShape implements Shape { + protected List<Point2D> points = new ArrayList<>(); + + public void addPoints(Point2D... points) { + for (Point2D point : points) { + this.points.add(point); + } + } + + @Override + public int pointsCount() { + return points.size(); + } + + @Override + public Point2D point(int index) { + return points.get(index); + } + + @Override + public abstract void draw(GraphicsContext graphicsContext); +} + diff --git a/src/main/java/shape/Shape.java b/src/main/java/shape/Shape.java index 16766e4..8e28d81 100644 --- a/src/main/java/shape/Shape.java +++ b/src/main/java/shape/Shape.java @@ -3,8 +3,10 @@ package shape; import javafx.geometry.Point2D; import javafx.scene.canvas.GraphicsContext; + public interface Shape { int pointsCount(); Point2D point(int index); - void draw(GraphicsContext context); + void draw(GraphicsContext graphicsContext); } + -- GitLab