diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Speed.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Speed.java index f9251e6f0f0..9ad463fb663 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Speed.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Speed.java @@ -42,11 +42,6 @@ public interface Speed extends Comparable, Serializable { return Distance.NULL; } - @Override - public void scale(double multiplier) { - - } - }; double getKnots(); @@ -64,6 +59,4 @@ public interface Speed extends Comparable, Serializable { */ Distance travel(TimePoint from, TimePoint to); - void scale(double multiplier); - } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KilometersPerHourSpeedImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KilometersPerHourSpeedImpl.java index 278227009ee..73cc0a22fde 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KilometersPerHourSpeedImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KilometersPerHourSpeedImpl.java @@ -26,10 +26,4 @@ public class KilometersPerHourSpeedImpl extends AbstractSpeedImpl implements Spe public double getKilometersPerHour() { return speedInKilometersPerHour; } - - @Override - public void scale(double multiplier) { - this.speedInKilometersPerHour *= multiplier; - - } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedImpl.java index d82848ded58..5a5cfef3b3c 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedImpl.java @@ -15,10 +15,4 @@ public class KnotSpeedImpl extends AbstractSpeedImpl implements Speed { public double getKnots() { return knots; } - - @Override - public void scale(double multiplier) { - this.knots *= multiplier; - } - } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedWithBearingImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedWithBearingImpl.java index 7e4e8f227f9..6defcc9aadb 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedWithBearingImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KnotSpeedWithBearingImpl.java @@ -15,11 +15,4 @@ public class KnotSpeedWithBearingImpl extends AbstractSpeedWithBearingImpl { public double getKnots() { return speedInKnots; } - - @Override - public void scale(double multiplier) { - this.speedInKnots *= multiplier; - - } - } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java index 0fc703d6ced..5ae533c296c 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java @@ -66,11 +66,6 @@ public class CompactGPSFixMovingImpl extends CompactGPSFixImpl implements GPSFix return super.equals(object) && object instanceof SpeedWithBearing && getBearing().equals(((SpeedWithBearing) object).getBearing()); } - - @Override - public void scale(double multiplier) { - knotSpeed *= multiplier; - } } private class CompactBearing extends AbstractBearing { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactWindImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactWindImpl.java index 180ae166d58..45f0ca18569 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactWindImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactWindImpl.java @@ -124,11 +124,4 @@ public class CompactWindImpl extends AbstractSpeedWithAbstractBearingImpl implem return getBearing().reverse(); } } - - @Override - public void scale(double multiplier) { - this.speedInKnots *= multiplier; - - } - } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java index 5255de45ea3..3b3db999a16 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java @@ -365,11 +365,6 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { public CourseChange getCourseChangeRequiredToReach(SpeedWithBearing targetSpeedWithBearing) { return null; } - - @Override - public void scale(double multiplier) { - - } } @Override diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTracTrac.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTracTrac.java index 7dae8535fae..d2ce86ac933 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTracTrac.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTracTrac.java @@ -14,9 +14,11 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.domain.base.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; +import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.RacesHandle; @@ -91,142 +93,6 @@ public class PathGeneratorTracTrac extends PathGeneratorBase { this.windScale = windScale; } - - // private Path getPath() { - // - // LinkedList path = new LinkedList(); - // - // this.intializeRaceHandle(); - // - // LOGGER.info("Calling raceHandle.getRaces(): " + this.raceHandle); - // - // // wait for RaceDefinition to be completely wired in Regatta - // Set races = this.raceHandle.getRaces(); - // - // String regattaName = this.raceHandle.getRegatta().getName(); - // - // Iterator racIter = races.iterator(); - // - // if (racIter.hasNext()) { - // RaceDefinition race = racIter.next(); - // - // String raceName = race.getName(); - // LOGGER.info("Race: \"" + raceName + "\", \"" + regattaName + "\""); - // - // RaceIdentifier raceIdentifier = new RegattaNameAndRaceName(regattaName, raceName); - // TrackedRace tr = this.service.getExistingTrackedRace(raceIdentifier); - // - // Iterable competitors = tr.getRace().getCompetitors(); - // Iterator comIter = competitors.iterator(); - // - // if (comIter.hasNext()) { - // - // Competitor competitor = comIter.next(); - // GPSFixTrack track = tr.getTrack(competitor); - // - // track.lockForRead(); - // Iterable gpsFixes = track.getFixes(); - // Iterator gpsIter = gpsFixes.iterator(); - // - // int idx = 0; - // while ((gpsIter.hasNext()) && (idx < 1000)) { - // - // GPSFixMoving gpsFix = gpsIter.next(); - // Position position = gpsFix.getPosition(); - // TimePoint timePoint = gpsFix.getTimePoint(); - // - // Wind gpsWind = tr.getWind(position, timePoint); - // - // if (gpsWind.getKnots() == 1.0) { - // gpsWind.scale(this.windScale); - // } - // - // path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, gpsWind)); - // - // idx++; - // } - // track.unlockAfterRead(); - // } - // } - // - // return new PathImpl(path, null); - // } - - // private Path getPathPolyline(Distance maxDistance) { - // - // LinkedList path = new LinkedList(); - // - // this.intializeRaceHandle(); - // - // LOGGER.info("Calling raceHandle.getRaces(): " + this.raceHandle); - // - // // wait for RaceDefinition to be completely wired in Regatta - // Set races = this.raceHandle.getRaces(); - // - // String regattaName = this.raceHandle.getRegatta().getName(); - // - // Iterator racIter = races.iterator(); - // - // if (racIter.hasNext()) { - // RaceDefinition race = racIter.next(); - // - // String raceName = race.getName(); - // LOGGER.info("Race: \"" + raceName + "\", \"" + regattaName + "\""); - // - // RaceIdentifier raceIdentifier = new RegattaNameAndRaceName(regattaName, raceName); - // TrackedRace tr = this.service.getExistingTrackedRace(raceIdentifier); - // - // Iterable competitors = tr.getRace().getCompetitors(); - // Iterator comIter = competitors.iterator(); - // - // if (comIter.hasNext()) { - // - // Competitor competitor = comIter.next(); - // - // // TODO: following selection of marks is just for testing - // // final implementation should do selection of marks based on user input - // NavigableSet mps = tr.getMarkPassings(competitor); - // MarkPassing mp = mps.first(); // upwind 1 - // mp = mps.higher(mp); // downwind 1 - // mp = mps.higher(mp); // upwind 2 - // TimePoint mpStart = mp.getTimePoint(); - // Position wpStart = tr.getApproximatePosition(mp.getWaypoint(), mpStart); - // mp = mps.higher(mp); - // TimePoint mpEnd = mp.getTimePoint(); - // Position wpEnd = tr.getApproximatePosition(mp.getWaypoint(), mpEnd); - // - // this.raceCourse = new LinkedList(); - // Wind gpsWind = tr.getWind(wpStart, mpStart); - // this.raceCourse.addLast(new TimedPositionWithSpeedImpl(mpStart, wpStart, gpsWind)); - // gpsWind = tr.getWind(wpEnd, mpEnd); - // this.raceCourse.addLast(new TimedPositionWithSpeedImpl(mpEnd, wpEnd, gpsWind)); - // - // Iterable gpsFixes = tr.approximate(competitor, maxDistance, mpStart, mpEnd); - // Iterator gpsIter = gpsFixes.iterator(); - // - // int idx = 0; - // while ((gpsIter.hasNext()) && (idx < 1000)) { - // - // GPSFixMoving gpsFix = gpsIter.next(); - // Position position = gpsFix.getPosition(); - // TimePoint timePoint = gpsFix.getTimePoint(); - // - // gpsWind = tr.getWind(position, timePoint); - // - // if (gpsWind.getKnots() == 1.0) { - // gpsWind.scale(this.windScale); - // } - // - // path.addLast(new TimedPositionWithSpeedImpl(gpsFix.getTimePoint(), gpsFix.getPosition(), gpsWind)); - // - // idx++; - // } - // } - // } - // - // return new PathImpl(path, null); - // } - public Path getRaceCourse() { return this.raceCourse == null ? null : new PathImpl(this.raceCourse, null); } @@ -288,10 +154,10 @@ public class PathGeneratorTracTrac extends PathGeneratorBase { Wind gpsWind = trackedRace.getWind(position, timePoint); if (gpsWind.getKnots() == 1.0) { - gpsWind.scale(this.windScale); + path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, new KnotSpeedWithBearingImpl(gpsWind.getKnots() * this.windScale, new DegreeBearingImpl(gpsWind.getBearing().getDegrees())))); + } else { + path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, gpsWind)); } - - path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, gpsWind)); } track.unlockAfterRead(); @@ -346,10 +212,11 @@ public class PathGeneratorTracTrac extends PathGeneratorBase { Wind gpsWind = trackedRace.getWind(position, timePoint); if (gpsWind.getKnots() == 1.0) { - gpsWind.scale(this.windScale); + path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, new KnotSpeedWithBearingImpl(gpsWind.getKnots() * this.windScale, + new DegreeBearingImpl(gpsWind.getBearing().getDegrees())))); + } else { + path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, gpsWind)); } - - path.addLast(new TimedPositionWithSpeedImpl(timePoint, position, gpsWind)); } return new PathImpl(path, null);