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
- updateDistance zooms between 0 and infinity
- Camera switches from third person to bird's eye when reaching a set distance
- Only one subject can be tracked at a time
#story[1190]
- Race pane listens to scroll delta and sets View3D distance accordingly
- GPSConverter has more applicable property names for infinite 3D
#story[1190]
- Camera pivot must be manually updated
- GPS coordinates are scaled by an arbitrary amount to make movement visible
- Model has to be flipped 180 degrees to move forward
#story[1261]
- Removed prints from tests
- Added Javadocs in necessary places
- Reenabled boat status message to send
- Added boat average angle
- pulled out modulateAngle function
- Commented harder to read loops
- Disabled toggled VMG
#story[1182]
- 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]
- Updated View3D to use Subject3D wrappers instead of Shape3D
- Fixed HostController for the new architecture
- Made position and heading observable in VisualiserBoat
- Attached listeners to each VisualiserBoat in RaceController
#story[1261]
- 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]