diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java new file mode 100644 index 0000000000000000000000000000000000000000..4b58511fe9b51b1f8c19d88d52519b78447f89c6 --- /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 16766e4f3e3128b1582a817d665eb65d32c26047..8e28d81538421ca80fdf1a1faf379ab81687fcab 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); } +