summaryrefslogtreecommitdiff
path: root/src/Camera.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Camera.java')
-rw-r--r--src/Camera.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/Camera.java b/src/Camera.java
index e52b4e5..a3e3a43 100644
--- a/src/Camera.java
+++ b/src/Camera.java
@@ -48,7 +48,7 @@ class Camera {
} else if (3 == mode) { // First person mode
setFirstPersonMode();
} else if (4 == mode) { // Auto mode
- // code goes here...
+ setAutoMode();
} else { // Default mode
setDefaultMode();
}
@@ -176,6 +176,26 @@ class Camera {
}
/**
+ * Alternates between the available camera modes.
+ */
+ private void setAutoMode() {
+ double slowest_pos = robots[0].getTimePos();
+ double fastest_pos = robots[0].getTimePos();
+ for (Robot robot : robots) {
+ slowest_pos = Math.min(slowest_pos, robot.getTimePos());
+ fastest_pos = Math.max(fastest_pos, robot.getTimePos());
+ }
+ double distance = Robot.racepost2meter(fastest_pos - slowest_pos);
+ System.err.println("dist+" + distance);
+ // the helicopter view is more suitable if robots are more distant
+ if (distance > 5) {
+ setHelicopterMode();
+ } else {
+ setMotorCycleMode();
+ }
+ }
+
+ /**
* Returns the robot on which the camera is focused.
*/
private Robot getFocusedRobot() {