introduced signed cross track error; renamed previous cross track error calculations to "absolute" accordingly

This commit is contained in:
Axel Uhl committed 2014-04-29 18:27:55 +02:00
1 parent d6f9bc55ba
commit 48e9aba687
22 files changed
+365 -96

No files matched your search

@@ -17,9 +17,10 @@ public enum DetailType implements Serializable {
ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS(1, ASCENDING), VELOCITY_MADE_GOOD_IN_KNOTS(2, DESCENDING),
GAP_TO_LEADER_IN_SECONDS(0, ASCENDING), GAP_CHANGE_SINCE_LEG_START_IN_SECONDS(0, ASCENDING),
SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED(0, ASCENDING), WINDWARD_DISTANCE_TO_GO_IN_METERS(0, ASCENDING),
AVERAGE_CROSS_TRACK_ERROR_IN_METERS(0, ASCENDING), RACE_DISTANCE_TRAVELED(0, ASCENDING),
AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR_IN_METERS(0, ASCENDING), AVERAGE_SIGNED_CROSS_TRACK_ERROR_IN_METERS(0, ASCENDING), RACE_DISTANCE_TRAVELED(0, ASCENDING),
RACE_AVERAGE_SPEED_OVER_GROUND_IN_KNOTS(2, DESCENDING), RACE_GAP_TO_LEADER_IN_SECONDS(0, ASCENDING),
RACE_DISTANCE_TO_LEADER_IN_METERS(0, ASCENDING), RACE_AVERAGE_CROSS_TRACK_ERROR_IN_METERS(0, ASCENDING),
RACE_DISTANCE_TO_LEADER_IN_METERS(0, ASCENDING), RACE_AVERAGE_ABSOLUTE_CROSS_TRACK_ERROR_IN_METERS(0, ASCENDING),
RACE_AVERAGE_SIGNED_CROSS_TRACK_ERROR_IN_METERS(0, ASCENDING),
WINDWARD_DISTANCE_TO_OVERALL_LEADER(0, ASCENDING), START_TACK(0, ASCENDING), DISTANCE_TO_START_AT_RACE_START(1, ASCENDING),
SPEED_OVER_GROUND_AT_RACE_START(1, DESCENDING), SPEED_OVER_GROUND_WHEN_PASSING_START(1, DESCENDING),
DISTANCE_TO_STARBOARD_END_OF_STARTLINE_WHEN_PASSING_START_IN_METERS(1, ASCENDING),
@@ -44,7 +44,9 @@ public class LeaderboardEntryDTO implements Serializable {
public Double windwardDistanceToOverallLeaderInMeters;
public Double averageCrossTrackErrorInMeters;
public Double averageAbsoluteCrossTrackErrorInMeters;
public Double averageSignedCrossTrackErrorInMeters;
public Double distanceToStartLineFiveSecondsBeforeStartInMeters;
@@ -99,7 +101,9 @@ public class LeaderboardEntryDTO implements Serializable {
final int prime = 31;
int result = 1;
result = prime * result
+ ((averageCrossTrackErrorInMeters == null) ? 0 : averageCrossTrackErrorInMeters.hashCode());
+ ((averageAbsoluteCrossTrackErrorInMeters == null) ? 0 : averageAbsoluteCrossTrackErrorInMeters.hashCode());
result = prime * result
+ ((averageSignedCrossTrackErrorInMeters == null) ? 0 : averageSignedCrossTrackErrorInMeters.hashCode());
result = prime * result + (discarded ? 1231 : 1237);
result = prime
* result
@@ -141,10 +145,15 @@ public class LeaderboardEntryDTO implements Serializable {
if (getClass() != obj.getClass())
return false;
LeaderboardEntryDTO other = (LeaderboardEntryDTO) obj;
if (averageCrossTrackErrorInMeters == null) {
if (other.averageCrossTrackErrorInMeters != null)
if (averageAbsoluteCrossTrackErrorInMeters == null) {
if (other.averageAbsoluteCrossTrackErrorInMeters != null)
return false;
} else if (!averageCrossTrackErrorInMeters.equals(other.averageCrossTrackErrorInMeters))
} else if (!averageAbsoluteCrossTrackErrorInMeters.equals(other.averageAbsoluteCrossTrackErrorInMeters))
return false;
if (averageSignedCrossTrackErrorInMeters == null) {
if (other.averageSignedCrossTrackErrorInMeters != null)
return false;
} else if (!averageSignedCrossTrackErrorInMeters.equals(other.averageSignedCrossTrackErrorInMeters))
return false;
if (discarded != other.discarded)
return false;
@@ -46,13 +46,16 @@ public class LegEntryDTO implements Serializable {
public boolean finished;
public Map<ManeuverType, Integer> numberOfManeuvers;
public Map<ManeuverType, Double> averageManeuverLossInMeters;
public Double averageCrossTrackErrorInMeters;
public Double averageAbsoluteCrossTrackErrorInMeters;
public Double averageSignedCrossTrackErrorInMeters;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result
+ ((averageCrossTrackErrorInMeters == null) ? 0 : averageCrossTrackErrorInMeters.hashCode());
+ ((averageAbsoluteCrossTrackErrorInMeters == null) ? 0 : averageAbsoluteCrossTrackErrorInMeters.hashCode());
result = prime * result
+ ((averageSignedCrossTrackErrorInMeters == null) ? 0 : averageSignedCrossTrackErrorInMeters.hashCode());
result = prime * result + ((averageManeuverLossInMeters == null) ? 0 : averageManeuverLossInMeters.hashCode());
result = prime * result
+ ((averageSpeedOverGroundInKnots == null) ? 0 : averageSpeedOverGroundInKnots.hashCode());
@@ -87,10 +90,15 @@ public class LegEntryDTO implements Serializable {
if (getClass() != obj.getClass())
return false;
LegEntryDTO other = (LegEntryDTO) obj;
if (averageCrossTrackErrorInMeters == null) {
if (other.averageCrossTrackErrorInMeters != null)
if (averageAbsoluteCrossTrackErrorInMeters == null) {
if (other.averageAbsoluteCrossTrackErrorInMeters != null)
return false;
} else if (!averageCrossTrackErrorInMeters.equals(other.averageCrossTrackErrorInMeters))
} else if (!averageAbsoluteCrossTrackErrorInMeters.equals(other.averageAbsoluteCrossTrackErrorInMeters))
return false;
if (averageSignedCrossTrackErrorInMeters == null) {
if (other.averageSignedCrossTrackErrorInMeters != null)
return false;
} else if (!averageSignedCrossTrackErrorInMeters.equals(other.averageSignedCrossTrackErrorInMeters))
return false;
if (averageManeuverLossInMeters == null) {
if (other.averageManeuverLossInMeters != null)