package shape; 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); }