Class for shifting wind. #story[1187]

main
Joseph Gardner 8 years ago
parent 27e8cddd94
commit 64e96a1b8b

@ -4,6 +4,8 @@ import mock.dataInput.PolarParser;
import mock.exceptions.EventConstructionException;
import mock.model.*;
import mock.model.commandFactory.CompositeCommand;
import mock.model.wind.RandomWindGenerator;
import mock.model.wind.WindGenerator;
import mock.xml.RaceXMLCreator;
import network.Messages.LatestMessages;
import org.xml.sax.SAXException;
@ -18,16 +20,8 @@ import shared.model.Constants;
import javax.xml.bind.JAXBException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import java.io.IOException;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;
/**

@ -1,9 +1,6 @@
package mock.model;
import javafx.animation.AnimationTimer;
import mock.xml.*;
import network.Messages.BoatLocation;
import network.Messages.BoatStatus;
import mock.model.wind.WindGenerator;
import network.Messages.Enums.BoatStatusEnum;
import network.Messages.Enums.RaceStatusEnum;
import shared.dataInput.BoatDataSource;

@ -1,11 +1,9 @@
package mock.model;
package mock.model.wind;
import shared.model.Bearing;
import shared.model.Wind;
import java.util.Random;
/**
* This class generates Wind objects for use in a MockRace.
* Initialised with a baseline wind speed and direction, and keeps it constant.

@ -0,0 +1,51 @@
package mock.model.wind;
import shared.model.Bearing;
import shared.model.Wind;
/**
* Created by jjg64 on 28/08/17.
*/
public class ShiftingWindGenerator implements WindGenerator {
Bearing baselineBearing;
double baseLineSpeed;
double maxBearingVariance = 5; // In degrees
double oscillationPeriod = 3e6; // In milliseconds
public ShiftingWindGenerator(Bearing baselineBearing, double baseLineSpeed) {
this.baselineBearing = baselineBearing;
this.baseLineSpeed = baseLineSpeed;
}
@Override
public Wind generateBaselineWind() {
return new Wind(baselineBearing, baseLineSpeed);
}
@Override
public Wind generateNextWind(Wind currentWind) {
return changeWind(currentWind);
}
private Wind changeWind(Wind currentWind) {
currentWind = oscillateWind(currentWind);
currentWind = shiftWind(currentWind);
return currentWind;
}
private Wind oscillateWind(Wind currentWind) {
return currentWind;
}
private Wind shiftWind(Wind currentWind) {
return currentWind;
}
public void setMaxBearingVariance(double maxBearingVariance) {
this.maxBearingVariance = maxBearingVariance;
}
public void setOscillationPeriod(double oscillationPeriod) {
this.oscillationPeriod = oscillationPeriod;
}
}

@ -1,5 +1,7 @@
package mock.model;
import mock.model.wind.ConstantWindGenerator;
import mock.model.wind.WindGenerator;
import org.junit.Before;
import org.junit.Test;
import shared.model.Bearing;

@ -1,7 +1,8 @@
package mock.model;
import mock.dataInput.PolarParserTest;
import network.Messages.LatestMessages;
import mock.model.wind.ConstantWindGenerator;
import mock.model.wind.WindGenerator;
import shared.dataInput.*;
import shared.exceptions.InvalidBoatDataException;
import shared.exceptions.InvalidRaceDataException;
@ -9,8 +10,6 @@ import shared.exceptions.InvalidRegattaDataException;
import shared.model.Bearing;
import shared.model.Constants;
import static org.junit.Assert.*;
public class MockRaceTest {
//TODO

@ -1,5 +1,6 @@
package mock.model;
import mock.model.wind.RandomWindGenerator;
import org.junit.Before;
import org.junit.Test;
import shared.model.Bearing;

Loading…
Cancel
Save