package com.shootoff.camera.shot; import java.util.Optional; import javafx.scene.shape.Ellipse; /** * This class encapsulates a DisplayShot which can be adjusted for arena canvases. * * @author cbdmaul */ public class ArenaShot extends DisplayShot { Optional<Double> arenaX = Optional.empty(), arenaY = Optional.empty(); Ellipse arenaMarker; public ArenaShot(DisplayShot shot) { super(shot, shot.getMarker()); if (shot instanceof ArenaShot) { this.arenaX = ((ArenaShot) shot).arenaX; this.arenaY = ((ArenaShot) shot).arenaY; } this.arenaMarker = new Ellipse(getX(), getY(), shot.getMarker().getRadiusX(), shot.getMarker().getRadiusX()); this.arenaMarker.setFill(colorMap.get(color)); } public void setArenaCoords(double x, double y) { arenaX = Optional.of(x); arenaY = Optional.of(y); this.arenaMarker = new Ellipse(getX(), getY(), getMarker().getRadiusX(), getMarker().getRadiusX()); this.arenaMarker.setFill(colorMap.get(color)); } public double getX() { if (!arenaX.isPresent()) return super.getX(); return arenaX.get(); } public double getY() { if (!arenaY.isPresent()) return super.getY(); return arenaY.get(); } public double getArenaX() { if (!arenaX.isPresent()) return super.getX(); return arenaX.get(); } public double getArenaY() { if (!arenaY.isPresent()) return super.getY(); return arenaY.get(); } public Ellipse getMarker() { return this.arenaMarker; } public void setMarker(Ellipse marker) { this.arenaMarker = marker; } }