mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
introduced signed cross track error; renamed previous cross track error calculations to "absolute" accordingly
This commit is contained in:
1 parent
d6f9bc55ba
commit
48e9aba687
22 files changed
+365
-96
No files matched your search
+3
-2
@@ -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),
|
||||
|
||||
+14
-5
@@ -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;
|
||||
|
||||
+13
-5
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user