rounding fix for the xml
#story[1087]
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<Yacht SourceID="125"/>
|
||||
</Participants>
|
||||
<CompoundMarkSequence>
|
||||
<Corner CompoundMarkID="1" SeqID="1"/>
|
||||
<Corner CompoundMarkID="2" SeqID="2"/>
|
||||
<Corner CompoundMarkID="4" SeqID="3"/>
|
||||
<Corner CompoundMarkID="3" SeqID="4"/>
|
||||
<Corner CompoundMarkID="4" SeqID="5"/>
|
||||
<Corner CompoundMarkID="5" SeqID="6"/>
|
||||
<Corner SeqID="1" CompoundMarkID="1" Rounding="SP" ZoneSize="3" />
|
||||
<Corner SeqID="2" CompoundMarkID="2" Rounding="Port" ZoneSize="3" />
|
||||
<Corner SeqID="3" CompoundMarkID="4" Rounding="Port" ZoneSize="3" />
|
||||
<Corner SeqID="4" CompoundMarkID="3" Rounding="Port" ZoneSize="3" />
|
||||
<Corner SeqID="5" CompoundMarkID="4" Rounding="Port" ZoneSize="3" />
|
||||
<Corner SeqID="6" CompoundMarkID="5" Rounding="SP" ZoneSize="3"/>
|
||||
</CompoundMarkSequence>
|
||||
<Course>
|
||||
<CompoundMark CompoundMarkID="1" Name="Start Line">
|
||||
|
||||
Reference in New Issue
Block a user