rounding fix for the xml

#story[1087]
This commit is contained in:
hba56
2017-08-07 12:16:37 +12:00
parent 0b74acadff
commit 950a801d16
6 changed files with 33 additions and 8 deletions
@@ -28,7 +28,7 @@ public class MockBoat extends Boat {
* 1: passed only first check
* 2: passed first and second check
*/
private Integer roundingStatus;
private Integer roundingStatus = 0;
@@ -779,6 +779,7 @@ public class MockRace extends Race {
//boats must pass all checks in order to round a mark
switch (boat.getRoundingStatus()) {
case 0://hasn't started rounding
System.out.println("round 0");
if (boat.isPortSide(boat.getCurrentLeg().getEndCompoundMark().getMark1()) &&
GPSCoordinate.intersects(boat.getCurrentLeg().getEndCompoundMark().getMark1().getPosition(),
roundingChecks.get(0), boat.getCurrentPosition())) {
@@ -786,6 +787,7 @@ public class MockRace extends Race {
}
break;
case 1://has been parallel to the mark
System.out.println("round 1");
if (boat.isPortSide(boat.getCurrentLeg().getEndCompoundMark().getMark1()) &&
GPSCoordinate.intersects(boat.getCurrentLeg().getEndCompoundMark().getMark1().getPosition(),
roundingChecks.get(1), boat.getCurrentPosition())) {
@@ -793,6 +795,7 @@ public class MockRace extends Race {
}
break;
case 2://has traveled 180 degrees around the mark
System.out.println("round 2");
//Move boat on to next leg.
boat.resetRoundingStatus();
Leg nextLeg = this.legs.get(boat.getCurrentLeg().getLegNumber() + 1);
@@ -344,7 +344,8 @@ public class RaceXMLReader extends XMLReader implements RaceDataSource {
String legName = lastCompoundMark.getName();
//Sets the rounding type of this compound mark
lastCompoundMark.setRoundingType(RoundingType.valueOf(cornerRounding));
lastCompoundMark.setRoundingType(RoundingType.getValueOf(cornerRounding));
//For each following corner, create a leg between cornerN and cornerN+1.
for(int i = 1; i < corners.getLength(); i++) {
@@ -31,4 +31,19 @@ public enum RoundingType {
* opposite of SP
*/
PS;
public static RoundingType getValueOf(String value) {
switch (value) {
case "Port":
return RoundingType.Port;
case "Starboard":
return RoundingType.Starboard;
case "SP":
return RoundingType.Port;
case "PS":
return RoundingType.Starboard;
default:
return null;
}
}
}