From 093f04de5f03c0406861b6a715087868be8af19a Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 9 Jan 2014 18:13:31 +0100 Subject: Camera: Implement auto mode Quite arbitrary stuff here. --- src/Camera.java | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src') 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(); } @@ -175,6 +175,26 @@ class Camera { up = Vector.Z; } + /** + * 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. */ -- cgit v1.2.1