- added limits for zoom in, zoom out and when to change to birds eye
- zooming smoothed by adjusting pitch each zoom
- when zoom out limit is reached, view returns to original
#story[1312]
Story 76
AC:
Note: most sailing races take place on fairly standard courses: windward-leeward, triangular/Olympic, and so on. An (incomplete) list can be found at http://www.rya.org.uk/racing/race-officials/resource-centre/forms-data-diagrams-graphics/Pages/course-diagrams-other-graphics.aspx
This story is related to Story 51 (generating course layouts). While 51 is concerned with orienting a course to the wind, this one relates to a library of common course layouts which could be adjusted before use by the method in 51
DOD:
Adheres to relevant architectural decisions.
Branch has latest version of master merged in.
All acceptance criteria sufficiently met.
mvn clean package with no errors.
All tests pass on CI.
Javadoc compiles without error. 1
Code passes our code review (see code quality standard).
New tests have been sufficiently written for new functions/classes/components.
Existing tests have been modified to correctly use new functions/classes/components.
Manual tests have been written and logged.
Related issues in the issue tracker should be linked to, and closed once merged.
DOD feature check carried out and successfully completed.
New step has been added to DOD feature check, if required.
All System.out.println() removed from program
See merge request !39
40. [V] As Caleb or Gemma I'd like to zoom the view to follow a boat (my boat) around the course (revised).
Note: in this story we will select a boat and zoom the view to place the boat at the center of a display that shows only the boat's immediate surrounds. The default option will be to zoom on the player's boat.
Acceptance criteria:
- Any particular boat can be chosen (at any time during the race.)
- When a boat is selected for zooming, the view should change to show the boat at the center, with the scale of the view increased.
- The view should remain this way until the boat is unselected, at which point it should revert to the usual display.
- Other information (e.g., the position list) may be removed from the zoomed view.
- Zoomed view follows selected boat as a third person mode
- There must be a keyboard option to zoom in on the player's boat_
- The zoom amount can be fixed (jump between zoom in and zoom out) or scrollable (like control-mousewheel scrolling.)
See merge request !38
- removed a lot of unecessary parameters
- simplified set up functions
- racecontroller works on its own now
- made all the scenes visible by default
#story[1261]
- scenes do not load in at the same time
- scenes do not rely upon previous abstract controller class
- scenes are not a part of previous main controller class
- unecessary functions and code removed
#story[1261]
- loadScene method to load into current stage
- loadPopupScene method to load into a new window
- icon added to popup windows
- load methods return Controller of the new scee
- KeyBindingsController extends new Controller class and works correctly
#story[1261]
Story 77 task 7 - update xml files at runtime
Task: [S] Adjust race XML so that you can modify the number of boats in a race.
When clients connect they are added to the participant list, and an updated race.xml is sent out.
When they disconnect/timeout, they are unassigned a boat and updated race.xml is sent out.
Also contains code for sending updated boats.xml and regatta.xml.
See merge request !34
- trying to solve jar file reading issue
- learnt a lot about jars including their lack of file structure
- changed location of keybindings settings to outside of jar
- added new folder/file that is generated on first run
#story[1197]
- Works on windows computers
- KeyFactory processes its own XML saving/loading
- Does not work with Jar yet
- Changed keyFactory to static temporarily to work with existing FXML loading architecture
#story[1197]
- Created a notification popups for errors
- Added functionality to save, cancel and reset buttons
- Key bindings are only saved if they're valid
- Added window close event
- Can not exit without saving correctly
- CSS to cancel, save and reset buttons to differentiate between key buttons
- Javadocd
#story[1197]
- On binding new key existing keys are searched
- If key is in use the old one is removed
- ControlKey is updated with a placeholder key value
#story[1197]
- Changed KeyFactory to not be a singleton
- Simplified keyBindings initializer
- Modified and simplified keyListener
- Added method to copy existing keyState
- Changed button events
- Changed to newer lambda functions
- Modified updateKey method
- Left option for multiple keys bound to one command
- Updated and wrote new JavaDoc
#story[1197]
- Changed key press from FXML key event to a listener
- UP, DOWN, ENTER keys now work
- Keys no longer change cells or press buttons
- Added placeholder buttons Cancel, Reset and Save
- Added some JavaDoc
#story[1197]
- Current key bindings are shown on buttons
- Added button action events to store the clicked button
- Added key press event to entire pane
- Button text is updated to display its key
- Added functionality to keyFactory to update key bindings
- CSS styling for some components
#story[1197]
Story 61
[Agilefant link](http://agilefant.cosc.canterbury.ac.nz:8080/agilefant302/qrq.action?q=story:1095)
```
Note: the boat should be permanently circled with a highlight (or something similar)
See: (http://learn.canterbury.ac.nz/mod/forum/discuss.php?d=213948). Contains boat request to join, and server response messages.
Acceptance criteria:
- The boat that responds to control keypresses is permanently highlighted on screen.
- No boat without a highlight responds to keypresses.
```
Works with either single player or multiplayer game (see HostController.hostGamePressed()).
The race.xml currently is not updated when players join/quit, so there are 6 boats by default, and any boats without playes will just sail off the side of the map.
- resolves#39
- resolves#37
- resolves#35
- resolves#27
- resolves#25
- resolves#32
See merge request !26
- Figured out the different situations that can occur using accurate points of sail
- Mathed out the rotation angle for each situation
- Manual testing carried out by running simulations
- Manual testing carried out using pen and paper
#story[1098]
- Implemented drawSails method
- Sail position is displayed and updated using a boat's heading
- Sails conform to 'Points of sail'
- Javadoc'd new method and tidied up existing
- Sped up track point frequency (visualiserBoat class)
- Optimised imports (any other classes changed)
- A lot of canvas drawing and sail rotating issues were discovered and eventually overcome along the way. Using a sail image to draw and rotate on the existing canvas rather than a JavaFX shape on a new canvas was the final decision.
#story[1098]
- Created a GUI title screen
- Drew images to be display on the title
- Created controller for the title
- Changed visualiser main to initially display title
- Added functionality for host button
#story[1087]
- Removed some default templates (eg: created by X)
- Wrote JavaDoc for classes that had none
- Made JavaDoc more clear for classes
- Linked JavaDoc to other classes
- Minor spelling errors fixed
- BoatInRace and BoatInRaceTest commented out (to be removed)
#story[1003]
- Removed references to Constants class from other classes and tests
- ArrowController, Constants, Regatta removed
- Removed imports from various classes no longer used
#story[1003]
- arrow shows wind direction as from instead of to
- removed old unused displayArrow method
- renamed displayFancyArrow to displayWindArrow
- removed coordinates parameter not used
#story[882, 1003]
- set upper and lower bounds for axis height
- formatted Y axis to show/hide necessary info
- reduced some looped actions
- added conditions for the first leg
- all boats start in 'last' place
#story[876]
- sparkline is set with X number of lines
- sparkline height fits X lines
- lines are updated regularly
- size is adjusted relevant to plotted points
#story[876]