Added statistic windward distance to starboard side at start

This commit is contained in:
Leon Radeck committed 2018-04-17 11:45:40 +10:00
1 parent 1a35348a15
commit 34cbd620ce
4 files changed
+25

No files matched your search

@@ -93,6 +93,7 @@ TackAtStart=Tack at Start
SpeedTenSecondsAfterStart=Speed 10s After Start
RankThirtySecondsAfterStart=Rank 30s After Start
WindwardDistanceToAdvantageousEndOfLine=Windward Distance to Advantageous End of Line
WindwardDistanceToStarboardSideAtStart=Windward Distance to Starboardside of Line
RankAfterHalfOfTheFirstLeg=Rank after the half of the first leg
AdvantageousEndOfLine=Advantageous End of Line
TimeSpentInSeconds=Time Spent in Seconds
@@ -93,6 +93,7 @@ TackAtStart=Startbug
SpeedTenSecondsAfterStart=Geschwindigkeit 10s nach dem Startzeitpunkt
RankThirtySecondsAfterStart=Absolute Platzierung 30s nach dem Startzeitpunkt
WindwardDistanceToAdvantageousEndOfLine=Windwärtige Distanz zum Bevorteilten Ende der Startlinie
WindwardDistanceToStarboardSideAtStart=Windwärtige Distanz zur Steuerbordseite beim Start
RankAfterHalfOfTheFirstLeg=Platzierung nach der Hälfte des ersten Schenkels
AdvantageousEndOfLine=Bevorteiltes Ende der Startlinie
TimeSpentInSeconds=Benötigte Zeit in Sekunden
@@ -79,4 +79,7 @@ public interface HasRaceOfCompetitorContext {
@Statistic(messageKey="LineLengthAtStart", resultDecimals=1)
public Distance getLineLengthAtStart();
@Statistic(messageKey="WindwardDistanceToStarboardSideAtStart", resultDecimals=2)
Distance getWindwardDistanceToStarboardSideAtStart();
}
@@ -126,6 +126,26 @@ public class RaceOfCompetitorWithContext implements HasRaceOfCompetitorContext {
return distance;
}
@Override
public Distance getWindwardDistanceToStarboardSideAtStart() {
TrackedRace trackedRace = getTrackedRace();
TimePoint startOfRace = trackedRace.getStartOfRace();
LineDetails startLine = trackedRace.getStartLine(startOfRace);
Mark starboardMark = startLine.getStarboardMarkWhileApproachingLine();
if (starboardMark == null) {
return null;
}
GPSFixTrack<Mark, GPSFix> starboardMarkTrack = trackedRace.getOrCreateTrack(starboardMark);
Position advantageousMarkPosition = starboardMarkTrack.getEstimatedPosition(startOfRace, false);
GPSFixTrack<Competitor, GPSFixMoving> competitorTrack = trackedRace.getTrack(getCompetitor());
Position competitorPosition = competitorTrack.getEstimatedPosition(startOfRace, false);
TrackedLeg trackedLeg = trackedRace.getTrackedLeg(trackedRace.getRace().getCourse().getFirstLeg());
Distance distance = trackedLeg.getWindwardDistance(competitorPosition, advantageousMarkPosition, startOfRace, WindPositionMode.LEG_MIDDLE);
return distance;
}
@Override
public ClusterDTO getPercentageClusterForRelativeScore() {
Double relativeScore = getTrackedRaceContext().getRelativeScoreForCompetitor(getCompetitor());