From f6ea2953e999266e48b1838f93cd2e2e3bbd83ae Mon Sep 17 00:00:00 2001 From: Michael Rausch Date: Wed, 22 Mar 2017 14:28:51 +1300 Subject: [PATCH] Changed lat/long for gates to midpoint and added colours for the marks Tags: #fix #implement #story[10,11] --- .../seng302/controllers/CanvasController.java | 31 ++++++++++++++++--- .../java/seng302/models/mark/GateMark.java | 8 +++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/main/java/seng302/controllers/CanvasController.java b/src/main/java/seng302/controllers/CanvasController.java index b50594f3..5ffa2a3c 100644 --- a/src/main/java/seng302/controllers/CanvasController.java +++ b/src/main/java/seng302/controllers/CanvasController.java @@ -190,7 +190,7 @@ public class CanvasController { private void drawCourse() { for (Mark mark : race.getCourse()) { if (mark.getMarkType() == MarkType.SINGLE_MARK) { - drawSingleMark((SingleMark) mark); + drawSingleMark((SingleMark) mark, Color.BLACK); } else if (mark.getMarkType() == MarkType.GATE_MARK) { drawGateMark((GateMark) mark); } @@ -202,11 +202,11 @@ public class CanvasController { * * @param singleMark */ - private void drawSingleMark(SingleMark singleMark) { + private void drawSingleMark(SingleMark singleMark, Color color) { double x = (singleMark.getLongitude() - ORIGIN_LON) * 1000; double y = (ORIGIN_LAT - singleMark.getLatitude()) * 1000; - gc.setFill(Color.BLACK); + gc.setFill(color); gc.fillOval(x, y, 0.5, 0.5); } @@ -216,7 +216,28 @@ public class CanvasController { * @param gateMark */ private void drawGateMark(GateMark gateMark) { - drawSingleMark(gateMark.getSingleMark1()); - drawSingleMark(gateMark.getSingleMark2()); + Color color = Color.BLUE; + + if (gateMark.getName().equals("Start") || gateMark.getName().equals("Finish")){ + color = Color.RED; + } + + drawSingleMark(gateMark.getSingleMark1(), color); + drawSingleMark(gateMark.getSingleMark2(), color); + + GraphicsContext gc = canvas.getGraphicsContext2D(); + + gc.setStroke(color); + + //@todo Put this in Mark class + double x1 = (gateMark.getSingleMark1().getLongitude()- ORIGIN_LON) * 1000; + double y1 = (ORIGIN_LAT - gateMark.getSingleMark1().getLatitude()) * 1000; + + double x2 = (gateMark.getSingleMark2().getLongitude() - ORIGIN_LON) * 1000; + double y2 = (ORIGIN_LAT - gateMark.getSingleMark2().getLatitude()) * 1000; + + gc.setLineWidth(0.1); + + gc.strokeLine(x1, y1, x2, y2); } } \ No newline at end of file diff --git a/src/main/java/seng302/models/mark/GateMark.java b/src/main/java/seng302/models/mark/GateMark.java index 208d2416..edf4f4ec 100644 --- a/src/main/java/seng302/models/mark/GateMark.java +++ b/src/main/java/seng302/models/mark/GateMark.java @@ -37,4 +37,12 @@ public class GateMark extends Mark { public void setSingleMark2(SingleMark singleMark2) { this.singleMark2 = singleMark2; } + + public double getLatitude(){ + return (this.getSingleMark1().getLatitude() + this.getSingleMark2().getLatitude()) / 2; + } + + public double getLongitude(){ + return (this.getSingleMark1().getLongitude() + this.getSingleMark2().getLongitude()) / 2; + } }