|
|
|
@ -134,17 +134,6 @@ impl CameraController {
|
|
|
|
|
self.rotate_vertical = mouse_dy as f32;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// pub fn process_scroll(&mut self, delta: &MouseScrollDelta) {
|
|
|
|
|
// self.scroll = -match delta {
|
|
|
|
|
// // I'm assuming a line is about 100 pixels
|
|
|
|
|
// MouseScrollDelta::LineDelta(_, scroll) => scroll * 100.0,
|
|
|
|
|
// MouseScrollDelta::PixelDelta(LogicalPosition {
|
|
|
|
|
// y: scroll,
|
|
|
|
|
// ..
|
|
|
|
|
// }) => *scroll as f32,
|
|
|
|
|
// };
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
pub fn update_camera(&mut self, camera: &mut Camera, dt: f32) {
|
|
|
|
|
// Move forward/backward and left/right
|
|
|
|
|
let (yaw_sin, yaw_cos) = camera.yaw.0.sin_cos();
|
|
|
|
@ -168,15 +157,6 @@ impl CameraController {
|
|
|
|
|
camera.position += view_vector * (self.amount_forward - self.amount_backward) * self.speed * dt;
|
|
|
|
|
camera.position += left_vector * (self.amount_left - self.amount_right) * self.speed * dt;
|
|
|
|
|
|
|
|
|
|
// I'm not a huge fan of this
|
|
|
|
|
// // Move in/out (aka. "zoom")
|
|
|
|
|
// // Note: this isn't an actual zoom. The camera's position
|
|
|
|
|
// // changes when zooming. I've added this to make it easier
|
|
|
|
|
// // to get closer to an object you want to focus on.
|
|
|
|
|
// let (pitch_sin, pitch_cos) = camera.pitch.0.sin_cos();
|
|
|
|
|
// let scrollward = Vector3::new(pitch_cos * yaw_cos, pitch_sin, pitch_cos * yaw_sin).normalize();
|
|
|
|
|
// camera.position += scrollward * self.scroll * self.speed * self.sensitivity * dt;
|
|
|
|
|
// self.scroll = 0.0;
|
|
|
|
|
|
|
|
|
|
// Move up/down. Since we don't use roll, we can just
|
|
|
|
|
// modify the y coordinate directly.
|
|
|
|
@ -193,10 +173,10 @@ impl CameraController {
|
|
|
|
|
self.rotate_vertical = 0.0;
|
|
|
|
|
|
|
|
|
|
// Keep the camera's angle from going too high/low.
|
|
|
|
|
if camera.pitch < -Rad(0.0) {
|
|
|
|
|
camera.pitch = -Rad(0.0);
|
|
|
|
|
} else if camera.pitch > Rad(PI) {
|
|
|
|
|
camera.pitch = Rad(PI);
|
|
|
|
|
if camera.pitch < -Rad(0.001) {
|
|
|
|
|
camera.pitch = -Rad(0.001);
|
|
|
|
|
} else if camera.pitch > Rad(PI - 0.001) {
|
|
|
|
|
camera.pitch = Rad(PI - 0.001);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|