Changed lat/long for gates to midpoint and added colours for the marks

Tags: #fix #implement #story[10,11]
This commit is contained in:
Michael Rausch
2017-03-22 14:28:51 +13:00
parent 7591a79323
commit f6ea2953e9
2 changed files with 34 additions and 5 deletions
@@ -190,7 +190,7 @@ public class CanvasController {
private void drawCourse() { private void drawCourse() {
for (Mark mark : race.getCourse()) { for (Mark mark : race.getCourse()) {
if (mark.getMarkType() == MarkType.SINGLE_MARK) { if (mark.getMarkType() == MarkType.SINGLE_MARK) {
drawSingleMark((SingleMark) mark); drawSingleMark((SingleMark) mark, Color.BLACK);
} else if (mark.getMarkType() == MarkType.GATE_MARK) { } else if (mark.getMarkType() == MarkType.GATE_MARK) {
drawGateMark((GateMark) mark); drawGateMark((GateMark) mark);
} }
@@ -202,11 +202,11 @@ public class CanvasController {
* *
* @param singleMark * @param singleMark
*/ */
private void drawSingleMark(SingleMark singleMark) { private void drawSingleMark(SingleMark singleMark, Color color) {
double x = (singleMark.getLongitude() - ORIGIN_LON) * 1000; double x = (singleMark.getLongitude() - ORIGIN_LON) * 1000;
double y = (ORIGIN_LAT - singleMark.getLatitude()) * 1000; double y = (ORIGIN_LAT - singleMark.getLatitude()) * 1000;
gc.setFill(Color.BLACK); gc.setFill(color);
gc.fillOval(x, y, 0.5, 0.5); gc.fillOval(x, y, 0.5, 0.5);
} }
@@ -216,7 +216,28 @@ public class CanvasController {
* @param gateMark * @param gateMark
*/ */
private void drawGateMark(GateMark gateMark) { private void drawGateMark(GateMark gateMark) {
drawSingleMark(gateMark.getSingleMark1()); Color color = Color.BLUE;
drawSingleMark(gateMark.getSingleMark2());
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);
} }
} }
@@ -37,4 +37,12 @@ public class GateMark extends Mark {
public void setSingleMark2(SingleMark singleMark2) { public void setSingleMark2(SingleMark singleMark2) {
this.singleMark2 = 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;
}
} }