Implemented marker visualisation from XML in ResizableRaceCanvas
- Replaced and deprecated Constants - Added getMarkers to RaceDataSource interface - Added boundary testing for source data #story[782]
This commit is contained in:
@@ -27,7 +27,8 @@ public class ResizableRaceCanvas extends Canvas {
|
||||
private boolean annoAbbrev = true;
|
||||
private boolean annoSpeed = true;
|
||||
private boolean annoPath = true;
|
||||
private ArrayList<GPSCoordinate> raceBoundaries;
|
||||
private List<GPSCoordinate> raceBoundaries;
|
||||
private List<Marker> markers;
|
||||
double[] xpoints = {}, ypoints = {};
|
||||
|
||||
public ResizableRaceCanvas(RaceDataSource raceData) {
|
||||
@@ -40,7 +41,11 @@ public class ResizableRaceCanvas extends Canvas {
|
||||
double long1 = raceData.getMapTopLeft().getLongitude();
|
||||
double lat2 = raceData.getMapBottomRight().getLatitude();
|
||||
double long2 = raceData.getMapBottomRight().getLongitude();
|
||||
|
||||
setMap(new RaceMap(lat1, long1, lat2, long2, (int) getWidth(), (int) getHeight()));
|
||||
|
||||
this.raceBoundaries = raceData.getBoundary();
|
||||
this.markers = raceData.getMarkers();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -206,6 +211,22 @@ public class ResizableRaceCanvas extends Canvas {
|
||||
gc.fillPolygon(xpoints, ypoints, xpoints.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw race markers
|
||||
*/
|
||||
public void drawMarkers() {
|
||||
for(Marker marker: markers) {
|
||||
GraphCoordinate mark1 = this.map.convertGPS(marker.getMark1());
|
||||
if(marker.isCompoundMark()) {
|
||||
GraphCoordinate mark2 = this.map.convertGPS(marker.getMark2());
|
||||
// TODO - improve colour coding of markers
|
||||
displayLine(mark1, mark2, Color.GREEN);
|
||||
} else {
|
||||
displayPoint(mark1, Color.GREEN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws the Race Map
|
||||
*/
|
||||
@@ -222,26 +243,9 @@ public class ResizableRaceCanvas extends Canvas {
|
||||
this.map.setHeight((int) height);
|
||||
this.map.setWidth((int) width);
|
||||
|
||||
//finish line
|
||||
gc.setLineWidth(2);
|
||||
drawBoundaries();
|
||||
GraphCoordinate finishLineCoord1 = this.map.convertGPS(Constants.finishLineMarker1);
|
||||
GraphCoordinate finishLineCoord2 = this.map.convertGPS(Constants.finishLineMarker2);
|
||||
displayLine(finishLineCoord1, finishLineCoord2, Color.DARKRED);
|
||||
//marks
|
||||
GraphCoordinate markCoord = this.map.convertGPS(Constants.mark1);
|
||||
GraphCoordinate windwardGate1 = this.map.convertGPS(Constants.windwardGate1);
|
||||
GraphCoordinate windwardGate2 = this.map.convertGPS(Constants.windwardGate2);
|
||||
GraphCoordinate leewardGate1 = this.map.convertGPS(Constants.leewardGate1);
|
||||
GraphCoordinate leewardGate2 = this.map.convertGPS(Constants.leewardGate2);
|
||||
displayMark(markCoord, Color.GOLD);
|
||||
displayLine(windwardGate1, windwardGate2, Color.DARKCYAN);
|
||||
displayLine(leewardGate1, leewardGate2, Color.DARKVIOLET);
|
||||
//start line
|
||||
GraphCoordinate startline1 = this.map.convertGPS(Constants.startLineMarker1);
|
||||
GraphCoordinate startline2 = this.map.convertGPS(Constants.startLineMarker2);
|
||||
|
||||
displayLine(startline1, startline2, Color.GREEN);
|
||||
drawMarkers();
|
||||
|
||||
updateBoats();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user