X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=support%2Fcamera.rs;h=67beeacd19f8ed48418281e2e1a42571ba8d98f2;hb=5dd5a4d5b9ffe92b3a62914b2aaecf7482985a9d;hp=10ad1f0086d17e396a3f5a6075443f80be39e2ed;hpb=b1f47d18bd76c1d1475f992f021e714289f4b79a;p=mandelwow.git diff --git a/support/camera.rs b/support/camera.rs index 10ad1f0..67beeac 100644 --- a/support/camera.rs +++ b/support/camera.rs @@ -1,12 +1,15 @@ extern crate glutin; +use glutin::ElementState::{Pressed, Released}; +use glutin::Event::KeyboardInput; +use glutin::VirtualKeyCode; use support::vec3::Vec3; use support::vec3::norm; use std::f32; //use glutin::Event; -//use glutin::VirtualKeyCode; +//use VirtualKeyCode; #[derive(Default)] pub struct CameraState { @@ -31,7 +34,7 @@ impl CameraState { CameraState { aspect_ratio: 1024.0 / 768.0, pos: Vec3(0.0, 0.0, 0.0), - dir: Vec3(0.0, 0.0, 1.0), + dir: Vec3(0.0, 0.0, -1.0), .. Default::default() } } @@ -40,6 +43,10 @@ impl CameraState { self.pos = pos; } + pub fn get_pos(&self) -> Vec3 { + self.pos + } + pub fn set_dir(&mut self, dir: Vec3) { self.dir = dir; } @@ -60,7 +67,6 @@ impl CameraState { ] } - pub fn get_view(&self) -> [[f32; 4]; 4] { let f = norm(&self.dir); @@ -128,11 +134,11 @@ impl CameraState { self.pos.2 -= f.2 * 0.01; } if self.turning_left { - let a: f32 = -0.05; + let a: f32 = 0.05; self.dir = Vec3(f.0 * a.cos() + f.2 * a.sin(), f.1, - f.0 * a.sin() + f.2 * a.cos()); } if self.turning_right { - let a: f32 = 0.05; + let a: f32 = -0.05; self.dir = Vec3(f.0 * a.cos() + f.2 * a.sin(), f.1, - f.0 * a.sin() + f.2 * a.cos()); } if self.turning_up { @@ -149,64 +155,64 @@ impl CameraState { pub fn process_input(&mut self, event: &glutin::Event) { match event { - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::Up)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::Up)) => { self.moving_up = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::Up)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::Up)) => { self.moving_up = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::Down)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::Down)) => { self.moving_down = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::Down)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::Down)) => { self.moving_down = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::Left)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::Left)) => { self.moving_left = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::Left)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::Left)) => { self.moving_left = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::Right)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::Right)) => { self.moving_right = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::Right)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::Right)) => { self.moving_right = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::A)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::A)) => { self.turning_left = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::A)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::A)) => { self.turning_left = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::D)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::D)) => { self.turning_right = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::D)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::D)) => { self.turning_right = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::W)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::W)) => { self.moving_forward = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::W)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::W)) => { self.moving_forward = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::S)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::S)) => { self.moving_backward = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::S)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::S)) => { self.moving_backward = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::R)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::R)) => { self.turning_up = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::R)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::R)) => { self.turning_up = false; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Pressed, _, Some(glutin::VirtualKeyCode::F)) => { + &KeyboardInput(Pressed, _, Some(VirtualKeyCode::F)) => { self.turning_down = true; }, - &glutin::Event::KeyboardInput(glutin::ElementState::Released, _, Some(glutin::VirtualKeyCode::F)) => { + &KeyboardInput(Released, _, Some(VirtualKeyCode::F)) => { self.turning_down = false; }, _ => {}