diff --git a/src/main/java/shape/AbstractShape.java b/src/main/java/shape/AbstractShape.java index fdf5a6dcaee50ce24becc265ea70f5abb0d52419..91f193fced858156016641ce137f3039ad9177ff 100644 --- a/src/main/java/shape/AbstractShape.java +++ b/src/main/java/shape/AbstractShape.java @@ -1,4 +1,36 @@ package shape; -public class AbstractShape { +import java.awt.*; +import java.util.ArrayList; +import java.util.List; +import javafx.geometry.Point2D; +import javafx.scene.canvas.GraphicsContext; + +public abstract class AbstractShape implements Shape { + private List<Point2D>points; + + public AbstractShape(){ + points = new ArrayList<>(); + } + public void addPoint(Point2D... points){ + for(Point2D point : points){ + this.points.add(point); + } + } + + public int pointsCount(){ + return points.size(); + } + + public Point2D getPoint(int index){ + if(index < 0 || index >= points.size()){ + throw new IndexOutOfBoundsException("index out of bounds"); + } + return points.get(index); + } + + public abstract void draw(GraphicsContext graphicsContent); + + + }