Merge branch 'noDependencyArrow' into 'sprint4_master'

story48

sprint4_master <- noDependencyArrow if DoD == true

See merge request !8
main
Jessica McAuslin 9 years ago
commit e9ecdf5cbc

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinCommonCompilerArguments">
<option name="languageVersion" value="1.1" />
<option name="apiVersion" value="1.1" />
</component>
</project>

@ -105,6 +105,9 @@ public class Race implements Runnable {
*/ */
private double windSpeed; private double windSpeed;
private int windDir;
private int changeWind = 4;
/** /**
@ -141,6 +144,7 @@ public class Race implements Runnable {
*/ */
public void run() { public void run() {
initialiseBoats(); initialiseBoats();
initialiseWindDir();
countdownTimer.start(); countdownTimer.start();
} }
@ -303,6 +307,9 @@ public class Race implements Runnable {
//Parse the marks. //Parse the marks.
parseMarks(); parseMarks();
// Change wind direction
changeWindDir();
//Parse the race status. //Parse the race status.
parseRaceStatus(); parseRaceStatus();
@ -314,7 +321,6 @@ public class Race implements Runnable {
this.stop(); this.stop();
} }
//Update the animations timer's time. //Update the animations timer's time.
currentTime = System.currentTimeMillis(); currentTime = System.currentTimeMillis();
} }
@ -373,6 +379,9 @@ public class Race implements Runnable {
this.stop(); this.stop();
} }
// Change wind direction
changeWindDir();
//Parse the boat locations. //Parse the boat locations.
parseBoatLocations(); parseBoatLocations();
@ -828,4 +837,42 @@ public class Race implements Runnable {
public ObservableList<Boat> getBoats() { public ObservableList<Boat> getBoats() {
return boats; return boats;
} }
protected void initialiseWindDir(){
windDir = new Random().nextInt(65535+1);
this.windDirection = new Bearing(BoatLocation.convertHeadingIntToDouble(windDir));
}
protected void changeWindDir(){
int r = new Random().nextInt(changeWind)+1;
if(r==1){
windDir+=100;
} else if (r==2){
windDir-=100;
}
if (windDir > 65535){
windDir -= 65535;
}
if (windDir < 0){
windDir += 65535;
}
this.windDirection = new Bearing(BoatLocation.convertHeadingIntToDouble(windDir));
}
protected void setWindDir(int wind){
if (wind>=0 && wind<=65535){
windDir = wind;
this.windDirection = new Bearing(BoatLocation.convertHeadingIntToDouble(windDir));
}
}
protected void setChangeWind(int changeVal){
if (changeVal>=0){
changeWind = changeVal;
}
}
protected int getWind(){
return windDir;
}
} }

@ -222,7 +222,6 @@ public class RaceTest{
BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars()); BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml", new Polars());
RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource); RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
Race testRace = new Race(raceDataSource, mockOutput); Race testRace = new Race(raceDataSource, mockOutput);
testRace.setDnfChance(0); testRace.setDnfChance(0);
assertFalse(testRace.doNotFinish()); assertFalse(testRace.doNotFinish());
@ -289,12 +288,29 @@ public class RaceTest{
testBoat.setCurrentPosition(ORIGIN.getAverageGPSCoordinate()); testBoat.setCurrentPosition(ORIGIN.getAverageGPSCoordinate());
testRace.updatePosition(testBoat, 100, 100); testRace.updatePosition(testBoat, 100, 100);
assertFalse(testBoat.getCurrentPosition() == ORIGIN.getAverageGPSCoordinate()); assertFalse(testBoat.getCurrentPosition() == ORIGIN.getAverageGPSCoordinate());
} catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) { } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
e.printStackTrace(); e.printStackTrace();
fail(); fail();
} }
} }
@Ignore
@Test
public void windDirectionCorrectValues(){
// try {
// MockOutput mockOutput = Mockito.mock(MockOutput.class);
// BoatDataSource boatDataSource = new BoatXMLReader("mockXML/boatTest.xml");
// RaceDataSource raceDataSource = new RaceXMLReader("mockXML/raceTest.xml", boatDataSource);
// Race testRace = new Race(raceDataSource, mockOutput);
// testRace.setChangeWind(1);
// testRace.setWindDir(65535);
// testRace.changeWindDir();
// assertEquals(100, testRace.getWind());
// } catch (ParserConfigurationException | IOException | SAXException | ParseException | StreamedCourseXMLException e) {
// e.printStackTrace();
// fail();
// }
}
} }

@ -17,12 +17,12 @@
<window id="1"> <window id="1">
<content type="file-editors"> <content type="file-editors">
<state> <state>
<leaf> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="RaceXMLReader.java" pinned="false" current-in-tab="true"> <file leaf-file-name="RaceXMLReader.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="588"> <state relative-caret-position="588">
<caret line="101" column="7" lean-forward="true" selection-start-line="101" selection-start-column="7" selection-end-line="101" selection-end-column="7" /> <caret line="101" column="7" lean-forward="false" selection-start-line="101" selection-start-column="7" selection-end-line="101" selection-end-column="7" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -31,8 +31,8 @@
<file leaf-file-name="RaceXMLTest.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RaceXMLTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceXMLTest.java"> <entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceXMLTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-167"> <state relative-caret-position="595">
<caret line="40" column="58" lean-forward="true" selection-start-line="40" selection-start-column="58" selection-end-line="40" selection-end-column="58" /> <caret line="40" column="58" lean-forward="false" selection-start-line="40" selection-start-column="58" selection-end-line="40" selection-end-column="58" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -48,14 +48,18 @@
<favorites_list name="visualiser" /> <favorites_list name="visualiser" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="StreamedRaceTest.java" pinned="false" current-in-tab="false"> <file leaf-file-name="StreamedRaceTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java"> <entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="188"> <state relative-caret-position="153">
<caret line="21" column="0" lean-forward="false" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" /> <caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
<marker date="1494744508934" expanded="true" signature="2652:2658" ph="{...}" />
<marker date="1494744508934" expanded="true" signature="2664:2770" ph="/**...*/" />
<marker date="1494744508934" expanded="true" signature="2775:2792" ph="@{...}" />
<marker date="1494744508934" expanded="true" signature="2839:3439" ph="{...}" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -65,19 +69,18 @@
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191"> <state relative-caret-position="191">
<caret line="75" column="41" lean-forward="false" selection-start-line="75" selection-start-column="41" selection-end-line="75" selection-end-column="41" /> <caret line="90" column="0" lean-forward="false" selection-start-line="90" selection-start-column="0" selection-end-line="90" selection-end-column="0" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
<element signature="e#4826#4827#0" expanded="true" /> <marker date="1494744508803" expanded="true" signature="8461:8771" ph="{...}" />
<element signature="e#4865#4866#0" expanded="true" /> <marker date="1494744508803" expanded="true" signature="8808:10139" ph="{...}" />
<element signature="e#4903#4904#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10185:10196" ph=" { " />
<element signature="e#4939#4940#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10212:10218" ph=" }" />
<element signature="e#4969#4970#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10260:10271" ph=" { " />
<element signature="e#4998#4999#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10289:10295" ph=" }" />
<element signature="e#5033#5034#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10341:10352" ph=" { " />
<element signature="e#5064#5065#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10374:10380" ph=" }" />
<element signature="e#5099#5100#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10412:10423" ph=" { " />
<element signature="e#5130#5131#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
@ -86,7 +89,7 @@
<file leaf-file-name="BoatInRace.java" pinned="false" current-in-tab="false"> <file leaf-file-name="BoatInRace.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="136">
<caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" /> <caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<folding /> <folding />
</state> </state>
@ -96,7 +99,7 @@
<file leaf-file-name="MarkerTest.java" pinned="false" current-in-tab="false"> <file leaf-file-name="MarkerTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java"> <entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="119">
<caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" /> <caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding /> <folding />
</state> </state>
@ -106,7 +109,7 @@
<file leaf-file-name="Marker.java" pinned="false" current-in-tab="false"> <file leaf-file-name="Marker.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="119">
<caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" /> <caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
<folding /> <folding />
</state> </state>
@ -116,8 +119,8 @@
<file leaf-file-name="StreamedCourse.java" pinned="false" current-in-tab="false"> <file leaf-file-name="StreamedCourse.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="205"> <state relative-caret-position="187">
<caret line="16" column="53" lean-forward="false" selection-start-line="16" selection-start-column="53" selection-end-line="16" selection-end-column="53" /> <caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -128,7 +131,7 @@
<file leaf-file-name="ResizableRaceCanvas.java" pinned="false" current-in-tab="false"> <file leaf-file-name="ResizableRaceCanvas.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3834"> <state relative-caret-position="204">
<caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" /> <caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<folding /> <folding />
</state> </state>
@ -138,8 +141,8 @@
<file leaf-file-name="RaceDataSource.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RaceDataSource.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="153">
<caret line="15" column="19" lean-forward="true" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" /> <caret line="15" column="19" lean-forward="false" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -148,7 +151,7 @@
<file leaf-file-name="RaceController.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RaceController.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="188"> <state relative-caret-position="1972">
<caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" /> <caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" />
<folding /> <folding />
</state> </state>
@ -158,7 +161,7 @@
<file leaf-file-name="RaceClock.java" pinned="false" current-in-tab="false"> <file leaf-file-name="RaceClock.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="431"> <state relative-caret-position="408">
<caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" /> <caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" />
<folding /> <folding />
</state> </state>
@ -211,8 +214,10 @@
<sorting>DEFINITION_ORDER</sorting> <sorting>DEFINITION_ORDER</sorting>
</component> </component>
<component name="ProjectFrameBounds"> <component name="ProjectFrameBounds">
<option name="width" value="1680" /> <option name="x" value="-8" />
<option name="height" value="1023" /> <option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1092" />
</component> </component>
<component name="ProjectView"> <component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1"> <navigator currentView="ProjectPane" proportions="" version="1">
@ -538,6 +543,18 @@
<recent name="$PROJECT_DIR$/src/test/resources" /> <recent name="$PROJECT_DIR$/src/test/resources" />
</key> </key>
</component> </component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="JUnit.StreamedRaceTest"> <component name="RunManager" selected="JUnit.StreamedRaceTest">
<configuration default="false" name="RegattaXMLTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true"> <configuration default="false" name="RegattaXMLTest" type="JUnit" factoryName="JUnit" temporary="true" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea"> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea">
@ -676,136 +693,6 @@
<envs /> <envs />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<envs />
<patterns />
<method />
</configuration>
<configuration default="true" type="ArquillianTestNG" factoryName="">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<option name="arquillianRunConfiguration">
<value>
<option name="containerStateName" value="" />
</value>
</option>
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" />
<option name="OUTPUT_DIRECTORY" />
<option name="ANNOTATION_TYPE" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<envs />
<properties />
<listeners />
<method />
</configuration>
<configuration default="true" type="Cold Fusion runner description" factoryName="Cold Fusion" custom_browser="" web_path="">
<method />
</configuration>
<configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="myFilePath" />
<option name="GLUE" />
<option name="myNameFilter" />
<option name="myGeneratedName" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
<method />
</configuration>
<configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
<option name="BCName" value="" />
<option name="IOSSimulatorSdkPath" value="" />
<option name="adlOptions" value="" />
<option name="airProgramParameters" value="" />
<option name="appDescriptorForEmulator" value="Android" />
<option name="debugTransport" value="USB" />
<option name="debuggerSdkRaw" value="BC SDK" />
<option name="emulator" value="NexusOne" />
<option name="emulatorAdlOptions" value="" />
<option name="fastPackaging" value="true" />
<option name="fullScreenHeight" value="0" />
<option name="fullScreenWidth" value="0" />
<option name="launchUrl" value="false" />
<option name="launcherParameters">
<LauncherParameters>
<option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
<option name="launcherType" value="OSDefault" />
<option name="newPlayerInstance" value="false" />
<option name="playerPath" value="/usr/bin/flashplayerdebugger" />
</LauncherParameters>
</option>
<option name="mobileRunTarget" value="Emulator" />
<option name="moduleName" value="" />
<option name="overriddenMainClass" value="" />
<option name="overriddenOutputFileName" value="" />
<option name="overrideMainClass" value="false" />
<option name="runTrusted" value="true" />
<option name="screenDpi" value="0" />
<option name="screenHeight" value="0" />
<option name="screenWidth" value="0" />
<option name="url" value="http://" />
<option name="usbDebugPort" value="7936" />
<method />
</configuration>
<configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
<option name="BCName" value="" />
<option name="launcherParameters">
<LauncherParameters>
<option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
<option name="launcherType" value="OSDefault" />
<option name="newPlayerInstance" value="false" />
<option name="playerPath" value="/usr/bin/flashplayerdebugger" />
</LauncherParameters>
</option>
<option name="moduleName" value="" />
<option name="trusted" value="true" />
<method />
</configuration>
<configuration default="true" type="GradleRunConfiguration" factoryName="Gradle"> <configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings> <ExternalSystemSettings>
<option name="executionName" /> <option name="executionName" />
@ -822,14 +709,6 @@
</ExternalSystemSettings> </ExternalSystemSettings>
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
<setting name="vmparams" value="" />
<setting name="cmdLine" value="run-app" />
<setting name="passParentEnv" value="true" />
<setting name="launchBrowser" value="true" />
<setting name="launchBrowserUrl" value="" />
<method />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit"> <configuration default="true" type="JUnit" factoryName="JUnit">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" /> <module name="" />
@ -872,15 +751,6 @@
<envs /> <envs />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
<config-file value="" />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
<method />
</configuration>
<configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin"> <configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" /> <option name="MAIN_CLASS_NAME" />
@ -914,12 +784,6 @@
<option name="PORT" value="5005" /> <option name="PORT" value="5005" />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<envs />
<method />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG"> <configuration default="true" type="TestNG" factoryName="TestNG">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" /> <extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" /> <module name="" />
@ -948,22 +812,6 @@
<listeners /> <listeners />
<method /> <method />
</configuration> </configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<method />
</configuration>
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
<command value="run-script" />
<scripts />
<node-interpreter value="project" />
<envs />
<method />
</configuration>
<configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
<method />
</configuration>
<configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
<method />
</configuration>
<list size="2"> <list size="2">
<item index="0" class="java.lang.String" itemvalue="JUnit.RegattaXMLTest" /> <item index="0" class="java.lang.String" itemvalue="JUnit.RegattaXMLTest" />
<item index="1" class="java.lang.String" itemvalue="JUnit.StreamedRaceTest" /> <item index="1" class="java.lang.String" itemvalue="JUnit.StreamedRaceTest" />
@ -1025,13 +873,12 @@
<option name="totallyTimeSpent" value="15127000" /> <option name="totallyTimeSpent" value="15127000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1023" extended-state="0" /> <frame x="-8" y="-8" width="1936" height="1092" extended-state="0" />
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" /> <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" /> <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
<window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" /> <window_info id="Nl-Palette" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="Palette&#9;" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Image Layers" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Capture Analysis" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
@ -1043,9 +890,7 @@
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" /> <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" /> <window_info id="Capture Tool" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" /> <window_info id="Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24970202" sideWeight="0.5" order="6" side_tool="false" content_ui="combo" /> <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.24947916" sideWeight="0.5" order="6" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" /> <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
@ -1053,10 +898,13 @@
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" /> <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" /> <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="9" side_tool="false" content_ui="combo" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" /> <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="9" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" /> <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32937366" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
</layout> </layout>
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@ -1074,19 +922,110 @@
<option name="FILTER_TARGETS" value="false" /> <option name="FILTER_TARGETS" value="false" />
</component> </component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/BoatShape.java"> <entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="170">
<caret line="5" column="24" lean-forward="true" selection-start-line="5" selection-start-column="24" selection-end-line="5" selection-end-column="24" /> <caret line="21" column="0" lean-forward="false" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<marker date="1494744508934" expanded="true" signature="2652:2658" ph="{...}" />
<marker date="1494744508934" expanded="true" signature="2664:2770" ph="/**...*/" />
<marker date="1494744508934" expanded="true" signature="2775:2792" ph="@{...}" />
<marker date="1494744508934" expanded="true" signature="2839:3439" ph="{...}" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187">
<caret line="16" column="0" lean-forward="true" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="204">
<caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="153">
<caret line="15" column="19" lean-forward="true" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1972">
<caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="408">
<caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="952">
<caret line="75" column="0" lean-forward="true" selection-start-line="75" selection-start-column="0" selection-end-line="75" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
<marker date="1494744508803" expanded="true" signature="8461:8771" ph="{...}" />
<marker date="1494744508803" expanded="true" signature="8808:10139" ph="{...}" />
<marker date="1494744508803" expanded="false" signature="10185:10196" ph=" { " />
<marker date="1494744508803" expanded="false" signature="10212:10218" ph=" }" />
<marker date="1494744508803" expanded="false" signature="10260:10271" ph=" { " />
<marker date="1494744508803" expanded="false" signature="10289:10295" ph=" }" />
<marker date="1494744508803" expanded="false" signature="10341:10352" ph=" { " />
<marker date="1494744508803" expanded="false" signature="10374:10380" ph=" }" />
<marker date="1494744508803" expanded="false" signature="10412:10423" ph=" { " />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/BoatShape.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/GraphCoordinate.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/GraphCoordinate.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="108"> <state relative-caret-position="108">
<caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" /> <caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1094,7 +1033,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0"> <state relative-caret-position="0">
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" /> <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1102,7 +1040,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="126">
<caret line="8" column="13" lean-forward="false" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" /> <caret line="8" column="13" lean-forward="false" selection-start-line="8" selection-start-column="13" selection-end-line="8" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1110,23 +1047,14 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="162"> <state relative-caret-position="162">
<caret line="9" column="39" lean-forward="false" selection-start-line="9" selection-start-column="39" selection-end-line="9" selection-end-column="39" /> <caret line="9" column="39" lean-forward="false" selection-start-line="9" selection-start-column="39" selection-end-line="9" selection-end-column="39" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/CompoundMark.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="8" column="36" lean-forward="false" selection-start-line="8" selection-start-column="36" selection-end-line="8" selection-end-column="36" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/CompoundMark.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Race.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Race.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3683"> <state relative-caret-position="-3683">
<caret line="27" column="36" lean-forward="true" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" /> <caret line="27" column="36" lean-forward="true" selection-start-line="27" selection-start-column="36" selection-end-line="27" selection-end-column="36" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1134,7 +1062,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="504"> <state relative-caret-position="504">
<caret line="91" column="0" lean-forward="true" selection-start-line="91" selection-start-column="0" selection-end-line="91" selection-end-column="0" /> <caret line="91" column="0" lean-forward="true" selection-start-line="91" selection-start-column="0" selection-end-line="91" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1142,7 +1069,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270"> <state relative-caret-position="270">
<caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" /> <caret line="15" column="0" lean-forward="false" selection-start-line="15" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1150,15 +1076,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="18"> <state relative-caret-position="18">
<caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" /> <caret line="6" column="13" lean-forward="false" selection-start-line="6" selection-start-column="13" selection-end-line="6" selection-end-column="13" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceXMLTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-167">
<caret line="40" column="58" lean-forward="true" selection-start-line="40" selection-start-column="58" selection-end-line="40" selection-end-column="58" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1166,7 +1083,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-144"> <state relative-caret-position="-144">
<caret line="28" column="34" lean-forward="true" selection-start-line="28" selection-start-column="34" selection-end-line="28" selection-end-column="34" /> <caret line="28" column="34" lean-forward="true" selection-start-line="28" selection-start-column="34" selection-end-line="28" selection-end-column="34" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1174,7 +1090,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="90"> <state relative-caret-position="90">
<caret line="5" column="27" lean-forward="false" selection-start-line="5" selection-start-column="27" selection-end-line="5" selection-end-column="27" /> <caret line="5" column="27" lean-forward="false" selection-start-line="5" selection-start-column="27" selection-end-line="5" selection-end-column="27" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1182,7 +1097,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1451"> <state relative-caret-position="-1451">
<caret line="16" column="13" lean-forward="false" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" /> <caret line="16" column="13" lean-forward="false" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1190,10 +1104,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="187"> <state relative-caret-position="187">
<caret line="18" column="88" lean-forward="false" selection-start-line="18" selection-start-column="88" selection-end-line="18" selection-end-column="88" /> <caret line="18" column="88" lean-forward="false" selection-start-line="18" selection-start-column="88" selection-end-line="18" selection-end-column="88" />
<folding>
<element signature="e#644#645#0" expanded="true" />
<element signature="e#712#713#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1201,7 +1111,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="376"> <state relative-caret-position="376">
<caret line="32" column="0" lean-forward="false" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" /> <caret line="32" column="0" lean-forward="false" selection-start-line="32" selection-start-column="0" selection-end-line="32" selection-end-column="0" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1209,7 +1118,6 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="144">
<caret line="8" column="46" lean-forward="true" selection-start-line="8" selection-start-column="46" selection-end-line="8" selection-end-column="46" /> <caret line="8" column="46" lean-forward="true" selection-start-line="8" selection-start-column="46" selection-end-line="8" selection-end-column="46" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
@ -1217,25 +1125,26 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="414"> <state relative-caret-position="414">
<caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" /> <caret line="23" column="0" lean-forward="true" selection-start-line="23" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java"> <entry file="file://$PROJECT_DIR$/src/test/java/seng302/Mock/StreamedRaceTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="188"> <state relative-caret-position="153">
<caret line="21" column="0" lean-forward="false" selection-start-line="21" selection-start-column="0" selection-end-line="21" selection-end-column="0" /> <caret line="20" column="0" lean-forward="false" selection-start-line="20" selection-start-column="0" selection-end-line="20" selection-end-column="0" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
<marker date="1494744508934" expanded="true" signature="2652:2658" ph="{...}" />
<marker date="1494744508934" expanded="true" signature="2664:2770" ph="/**...*/" />
<marker date="1494744508934" expanded="true" signature="2775:2792" ph="@{...}" />
<marker date="1494744508934" expanded="true" signature="2839:3439" ph="{...}" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java"> <entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/MarkerTest.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="119">
<caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" /> <caret line="10" column="13" lean-forward="false" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding /> <folding />
</state> </state>
@ -1245,14 +1154,13 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="288"> <state relative-caret-position="288">
<caret line="66" column="70" lean-forward="true" selection-start-line="66" selection-start-column="70" selection-end-line="66" selection-end-column="70" /> <caret line="66" column="70" lean-forward="true" selection-start-line="66" selection-start-column="70" selection-end-line="66" selection-end-column="70" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourse.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="205"> <state relative-caret-position="187">
<caret line="16" column="53" lean-forward="false" selection-start-line="16" selection-start-column="53" selection-end-line="16" selection-end-column="53" /> <caret line="16" column="0" lean-forward="false" selection-start-line="16" selection-start-column="0" selection-end-line="16" selection-end-column="0" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
</folding> </folding>
@ -1263,14 +1171,13 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-299"> <state relative-caret-position="-299">
<caret line="5" column="13" lean-forward="false" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" /> <caret line="5" column="13" lean-forward="false" selection-start-line="5" selection-start-column="13" selection-end-line="5" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceDataSource.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="216"> <state relative-caret-position="153">
<caret line="15" column="19" lean-forward="true" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" /> <caret line="15" column="19" lean-forward="false" selection-start-line="15" selection-start-column="19" selection-end-line="15" selection-end-column="19" />
<folding /> <folding />
</state> </state>
</provider> </provider>
@ -1279,13 +1186,12 @@
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="241"> <state relative-caret-position="241">
<caret line="43" column="22" lean-forward="false" selection-start-line="43" selection-start-column="22" selection-end-line="43" selection-end-column="22" /> <caret line="43" column="22" lean-forward="false" selection-start-line="43" selection-start-column="22" selection-end-line="43" selection-end-column="22" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/ResizableRaceCanvas.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-3834"> <state relative-caret-position="204">
<caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" /> <caret line="22" column="18" lean-forward="false" selection-start-line="22" selection-start-column="18" selection-end-line="22" selection-end-column="18" />
<folding /> <folding />
</state> </state>
@ -1293,7 +1199,7 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Controllers/RaceController.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="188"> <state relative-caret-position="1972">
<caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" /> <caret line="135" column="41" lean-forward="false" selection-start-line="135" selection-start-column="41" selection-end-line="135" selection-end-column="41" />
<folding /> <folding />
</state> </state>
@ -1301,31 +1207,22 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/RaceClock.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="431"> <state relative-caret-position="408">
<caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" /> <caret line="35" column="29" lean-forward="false" selection-start-line="35" selection-start-column="29" selection-end-line="35" selection-end-column="29" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="588">
<caret line="101" column="7" lean-forward="true" selection-start-line="101" selection-start-column="7" selection-end-line="101" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Leg.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Leg.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="126">
<caret line="9" column="13" lean-forward="false" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" /> <caret line="9" column="13" lean-forward="false" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
<folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/Marker.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="126"> <state relative-caret-position="119">
<caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" /> <caret line="10" column="21" lean-forward="false" selection-start-line="10" selection-start-column="21" selection-end-line="10" selection-end-column="21" />
<folding /> <folding />
</state> </state>
@ -1333,28 +1230,43 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Model/BoatInRace.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144"> <state relative-caret-position="136">
<caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" /> <caret line="17" column="13" lean-forward="false" selection-start-line="17" selection-start-column="13" selection-end-line="17" selection-end-column="13" />
<folding /> <folding />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/src/test/java/seng302/Model/RaceXMLTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="595">
<caret line="40" column="58" lean-forward="false" selection-start-line="40" selection-start-column="58" selection-end-line="40" selection-end-column="58" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/RaceXMLReader.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="588">
<caret line="101" column="7" lean-forward="false" selection-start-line="101" selection-start-column="7" selection-end-line="101" selection-end-column="7" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java"> <entry file="file://$PROJECT_DIR$/src/main/java/seng302/Mock/StreamedCourseXMLReader.java">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="191"> <state relative-caret-position="191">
<caret line="75" column="41" lean-forward="false" selection-start-line="75" selection-start-column="41" selection-end-line="75" selection-end-column="41" /> <caret line="90" column="0" lean-forward="false" selection-start-line="90" selection-start-column="0" selection-end-line="90" selection-end-column="0" />
<folding> <folding>
<element signature="imports" expanded="true" /> <element signature="imports" expanded="true" />
<element signature="e#4826#4827#0" expanded="true" /> <marker date="1494744508803" expanded="true" signature="8461:8771" ph="{...}" />
<element signature="e#4865#4866#0" expanded="true" /> <marker date="1494744508803" expanded="true" signature="8808:10139" ph="{...}" />
<element signature="e#4903#4904#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10185:10196" ph=" { " />
<element signature="e#4939#4940#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10212:10218" ph=" }" />
<element signature="e#4969#4970#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10260:10271" ph=" { " />
<element signature="e#4998#4999#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10289:10295" ph=" }" />
<element signature="e#5033#5034#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10341:10352" ph=" { " />
<element signature="e#5064#5065#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10374:10380" ph=" }" />
<element signature="e#5099#5100#0" expanded="true" /> <marker date="1494744508803" expanded="false" signature="10412:10423" ph=" { " />
<element signature="e#5130#5131#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>

@ -0,0 +1,17 @@
package seng302.Controllers;
import javafx.fxml.FXML;
import javafx.scene.layout.Pane;
import java.net.URL;
import java.util.ResourceBundle;
/**
* Created by Joseph on 22/05/2017.
*/
public class ArrowController extends Controller {
@Override
public void initialize(URL location, ResourceBundle resources) {
}
}

@ -7,15 +7,23 @@ import javafx.fxml.FXML;
import javafx.scene.chart.LineChart; import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis; import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart; import javafx.scene.chart.XYChart;
import javafx.geometry.Pos;
import javafx.scene.control.*; import javafx.scene.control.*;
import javafx.scene.layout.GridPane; import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import seng302.Mock.StreamedRace; import seng302.Mock.StreamedRace;
import seng302.Model.*; import seng302.Model.*;
import seng302.VisualiserInput; import seng302.VisualiserInput;
import java.net.URL; import java.net.URL;
import java.util.*; import java.util.*;
import java.util.ArrayList;
import java.util.Locale;
import java.util.ResourceBundle;
/** /**
* Created by fwy13 on 15/03/2017. * Created by fwy13 on 15/03/2017.
@ -32,7 +40,9 @@ public class RaceController extends Controller {
private ArrayList<String> colours; private ArrayList<String> colours;
private Map<Integer, String> boatColours = new HashMap<>(); private Map<Integer, String> boatColours = new HashMap<>();
private int legNum; private int legNum;
@FXML Pane arrow;
@FXML SplitPane race; @FXML SplitPane race;
@FXML StackPane arrowPane;
@FXML CheckBox showFPS; @FXML CheckBox showFPS;
@FXML CheckBox showBoatPath; @FXML CheckBox showBoatPath;
@FXML CheckBox showAnnotations; @FXML CheckBox showAnnotations;
@ -166,6 +176,9 @@ public class RaceController extends Controller {
StreamedRace newRace = new StreamedRace(visualiserInput, this); StreamedRace newRace = new StreamedRace(visualiserInput, this);
//newRace.initialiseBoats(); //newRace.initialiseBoats();
legNum = visualiserInput.getCourse().getLegs().size()-1; legNum = visualiserInput.getCourse().getLegs().size()-1;
makeArrow();
raceMap = new ResizableRaceCanvas(visualiserInput.getCourse()); raceMap = new ResizableRaceCanvas(visualiserInput.getCourse());
raceMap.setMouseTransparent(true); raceMap.setMouseTransparent(true);
raceMap.widthProperty().bind(canvasBase.widthProperty()); raceMap.widthProperty().bind(canvasBase.widthProperty());
@ -173,6 +186,7 @@ public class RaceController extends Controller {
//raceMap.setBoats(newRace.getStartingBoats()); //raceMap.setBoats(newRace.getStartingBoats());
raceMap.draw(); raceMap.draw();
raceMap.setVisible(true); raceMap.setVisible(true);
raceMap.setArrow(arrow.getChildren().get(0));
canvasBase.getChildren().add(0, raceMap); canvasBase.getChildren().add(0, raceMap);
@ -182,6 +196,7 @@ public class RaceController extends Controller {
raceBoundaries.heightProperty().bind(canvasBase.heightProperty()); raceBoundaries.heightProperty().bind(canvasBase.heightProperty());
raceBoundaries.draw(); raceBoundaries.draw();
raceBoundaries.setVisible(true); raceBoundaries.setVisible(true);
canvasBase.getChildren().add(0, raceBoundaries); canvasBase.getChildren().add(0, raceBoundaries);
race.setVisible(true); race.setVisible(true);
@ -368,4 +383,8 @@ public class RaceController extends Controller {
(int)( color.getGreen() * 255 ), (int)( color.getGreen() * 255 ),
(int)( color.getBlue() * 255 ) ); (int)( color.getBlue() * 255 ) );
} }
private void makeArrow() {
arrowPane.getChildren().add(arrow);
}
} }

@ -66,7 +66,7 @@ public class Boat {
*/ */
public GPSCoordinate getWake() { public GPSCoordinate getWake() {
double reverseHeading = getHeading() - 180; double reverseHeading = getHeading() - 180;
double wakeScale = 3; double wakeScale = 5;
double distance = wakeScale * getVelocity(); double distance = wakeScale * getVelocity();
GeodeticCalculator calc = new GeodeticCalculator(); GeodeticCalculator calc = new GeodeticCalculator();

@ -1,6 +1,8 @@
package seng302.Model; package seng302.Model;
import javafx.scene.Node;
import javafx.scene.layout.Pane;
import javafx.collections.ObservableList; import javafx.collections.ObservableList;
import javafx.scene.paint.Color; import javafx.scene.paint.Color;
import javafx.scene.paint.Paint; import javafx.scene.paint.Paint;
@ -30,6 +32,7 @@ public class ResizableRaceCanvas extends ResizableCanvas {
private final List<Marker> markers; private final List<Marker> markers;
private final RaceDataSource raceData; private final RaceDataSource raceData;
private Map<Integer, Color> boatColours = new HashMap<>(); private Map<Integer, Color> boatColours = new HashMap<>();
private Node arrow;
public ResizableRaceCanvas(RaceDataSource raceData) { public ResizableRaceCanvas(RaceDataSource raceData) {
super(); super();
@ -140,6 +143,13 @@ public class ResizableRaceCanvas extends ResizableCanvas {
gc.restore(); gc.restore();
} }
private void displayFancyArrow(GraphCoordinate coordinate, double angle) {
angle = angle % 360;
if (arrow != null && arrow.getRotate() != angle) {
arrow.setRotate(angle);
}
}
/** /**
* Rotates things on the canvas Note: this must be called in between gc.save() and gc.restore() else they will rotate everything * Rotates things on the canvas Note: this must be called in between gc.save() and gc.restore() else they will rotate everything
* *
@ -234,9 +244,9 @@ public class ResizableRaceCanvas extends ResizableCanvas {
//display wind direction arrow - specify origin point and angle - angle now set to random angle //display wind direction arrow - specify origin point and angle - angle now set to random angle
if (raceData instanceof StreamedCourse) { if (raceData instanceof StreamedCourse) {
displayArrow(new GraphCoordinate((int) getWidth() - 40, 40), ((StreamedCourse) raceData).getWindDirection()); displayFancyArrow(new GraphCoordinate((int) getWidth() - 40, 40), ((StreamedCourse) raceData).getWindDirection());
} else { } else {
displayArrow(new GraphCoordinate((int) getWidth() - 40, 40), 150); displayFancyArrow(new GraphCoordinate((int) getWidth() - 40, 40), 150);
} }
} }
@ -331,6 +341,10 @@ public class ResizableRaceCanvas extends ResizableCanvas {
)); ));
} }
public void setArrow(Node arrow) {
this.arrow = arrow;
}
private void mapBoatColours() { private void mapBoatColours() {
int currentColour = 0; int currentColour = 0;
for (Boat boat : boats) { for (Boat boat : boats) {

@ -288,7 +288,7 @@ public class VisualiserInput implements Runnable {
for (BoatStatus boatStatus: this.raceStatus.getBoatStatuses()) { for (BoatStatus boatStatus: this.raceStatus.getBoatStatuses()) {
this.boatStatusMap.put(boatStatus.getSourceID(), boatStatus); this.boatStatusMap.put(boatStatus.getSourceID(), boatStatus);
} }
setCourseWindDirection(raceStatus.getScaledWindDirection() + 180); setCourseWindDirection(raceStatus.getScaledWindDirection());
} }
//DisplayTextMessage. //DisplayTextMessage.
/*else if (message instanceof DisplayTextMessage) { /*else if (message instanceof DisplayTextMessage) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.paint.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.shape.*?>
<?import javafx.scene.image.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<Pane fx:id="compass" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="125.0" prefWidth="125.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<StackPane fx:id="arrow" prefHeight="125.0" prefWidth="125.0">
<children>
<ImageView fitHeight="75.0" fitWidth="75.0">
<image>
<Image url="@../images/arrow.png" />
</image>
</ImageView>
</children>
</StackPane>
<Circle fill="#1f93ff00" layoutX="63.0" layoutY="63.0" radius="60.0" stroke="BLACK" strokeType="INSIDE" strokeWidth="3.0" />
<Label layoutX="55.0" layoutY="1.0" text="N">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
<Label layoutX="42.0" layoutY="99.0" text="Wind">
<font>
<Font name="System Bold" size="16.0" />
</font>
</Label>
</children>
</Pane>

@ -19,6 +19,7 @@
<RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="10.0" vgrow="SOMETIMES" />
</rowConstraints> </rowConstraints>
<children> <children>
<fx:include fx:id="arrow" source="arrow.fxml" />
<Pane prefHeight="200.0" prefWidth="400.0" GridPane.halignment="LEFT" GridPane.valignment="TOP"> <Pane prefHeight="200.0" prefWidth="400.0" GridPane.halignment="LEFT" GridPane.valignment="TOP">
<children> <children>
<Accordion> <Accordion>
@ -69,6 +70,7 @@
<Font name="System Bold" size="15.0" /> <Font name="System Bold" size="15.0" />
</font> </font>
</Label> </Label>
<StackPane fx:id="arrowPane" alignment="TOP_RIGHT" mouseTransparent="true" prefHeight="150.0" prefWidth="150.0" snapToPixel="false" />
</children> </children>
</GridPane> </GridPane>
<AnchorPane layoutX="450.0" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="200.0" GridPane.columnIndex="1"> <AnchorPane layoutX="450.0" minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="200.0" GridPane.columnIndex="1">
@ -85,10 +87,10 @@
<children> <children>
<LineChart fx:id="sparklineChart" layoutX="-211.0" layoutY="-186.0" mouseTransparent="true" prefHeight="167.0" prefWidth="178.0" titleSide="LEFT" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <LineChart fx:id="sparklineChart" layoutX="-211.0" layoutY="-186.0" mouseTransparent="true" prefHeight="167.0" prefWidth="178.0" titleSide="LEFT" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<xAxis> <xAxis>
<NumberAxis side="BOTTOM" fx:id="xAxis"/> <NumberAxis side="BOTTOM" fx:id="xAxis" />
</xAxis> </xAxis>
<yAxis> <yAxis>
<NumberAxis side="LEFT" fx:id="yAxis"/> <NumberAxis fx:id="yAxis" side="LEFT" />
</yAxis> </yAxis>
</LineChart> </LineChart>
</children> </children>

Loading…
Cancel
Save