Fixed rank gains again and maneuver count

This commit is contained in:
Simon Pamies committed 2014-03-11 17:05:48 +01:00
1 parent 219a877a22
commit faf5e4eacc
1 file changed
+13 -7
@@ -266,6 +266,13 @@ public class LeaderboardData extends ExportAction {
raceConfidenceAndErrorMessages.getB().add("Competitor " + competitor.getName() + " has no valid data for this race!");
continue;
}
List<Maneuver> maneuvers = getManeuvers(race, competitor, /*waitForLatest*/ false);
addNamedElementWithValue(competitorRaceDataElement, "number_of_maneuvers", maneuvers != null ? maneuvers.size() : 0);
addNamedElementWithValue(competitorRaceDataElement, "number_of_tacks", getNumberOfTacks(maneuvers));
addNamedElementWithValue(competitorRaceDataElement, "number_of_jibes", getNumberOfJibes(maneuvers));
addNamedElementWithValue(competitorRaceDataElement, "number_of_penalty_circles", getNumberOfPenaltyCircles(maneuvers));
int[] timePointsInSecondsBeforeStart = new int[]{0, 5, 10, 20, 30};
for (int i : timePointsInSecondsBeforeStart) {
TimePoint beforeRaceStartTime = race.getStartOfRace().minus(i*1000);
@@ -273,12 +280,6 @@ public class LeaderboardData extends ExportAction {
addNamedElementWithValue(competitorRaceDataElement, "speed_"+i+"seconds_before_start_of_race_in_knots", race.getTrack(competitor).getEstimatedSpeed(beforeRaceStartTime).getKnots());
addNamedElementWithValue(competitorRaceDataElement, "distance_from_starboard_side_of_start_line_"+i+"seconds_before_start_in_meters", race.getDistanceFromStarboardSideOfStartLine(competitor, beforeRaceStartTime).getMeters());
List<Maneuver> maneuvers = getManeuvers(race, competitor, /*waitForLatest*/ false);
addNamedElementWithValue(competitorRaceDataElement, "number_of_maneuvers", maneuvers != null ? maneuvers.size() : 0);
addNamedElementWithValue(competitorRaceDataElement, "number_of_tacks", getNumberOfTacks(maneuvers));
addNamedElementWithValue(competitorRaceDataElement, "number_of_jibes", getNumberOfJibes(maneuvers));
addNamedElementWithValue(competitorRaceDataElement, "number_of_penalty_circles", getNumberOfPenaltyCircles(maneuvers));
GPSFixTrack<Competitor, GPSFixMoving> gpsFixesForCompetitor = race.getTrack(competitor);
if (gpsFixesForCompetitor != null) {
Duration averageIntervall = gpsFixesForCompetitor.getAverageIntervalBetweenFixes();
@@ -497,7 +498,12 @@ public class LeaderboardData extends ExportAction {
addNamedElementWithValue(competitorLegDataElement, "leg_rank_at_leg_start", competitorLeg.getRank(competitorLeg.getStartTime()));
addNamedElementWithValue(competitorLegDataElement, "leg_rank_at_leg_finish", competitorLeg.getRank(legFinishTime));
addNamedElementWithValue(competitorLegDataElement, "rank_gain_for_this_leg_between_start_and_finish", competitorLeg.getRank(competitorLeg.getStartTime())-competitorLeg.getRank(legFinishTime));
if (legCounter>1) {
addNamedElementWithValue(competitorLegDataElement, "rank_gain_for_this_leg_between_start_and_finish", competitorLeg.getRank(competitorLeg.getStartTime())-competitorLeg.getRank(legFinishTime));
} else {
addNamedElementWithValue(competitorLegDataElement, "rank_gain_for_this_leg_between_start_and_finish", 0);
}
List<Maneuver> maneuvers = competitorLeg.getManeuvers(legFinishTime, /*waitForLatest*/false);
addNamedElementWithValue(competitorLegDataElement, "maneuver_count", maneuvers.size());