Split Vec3.
authorBernie Innocenti <bernie@codewiz.org>
Sun, 19 Mar 2017 08:05:12 +0000 (04:05 -0400)
committerBernie Innocenti <bernie@codewiz.org>
Sun, 19 Mar 2017 08:05:12 +0000 (04:05 -0400)
support/camera.rs
support/mod.rs
support/vec3.rs [new file with mode: 0644]

index 1b56d7d9d5b3f9e91d61e5e1558ca8bc690d69fb..10ad1f0086d17e396a3f5a6075443f80be39e2ed 100644 (file)
@@ -1,44 +1,13 @@
 extern crate glutin;
 
+use support::vec3::Vec3;
+use support::vec3::norm;
+
 use std::f32;
-use std::ops::Add;
-use std::ops::AddAssign;
-use std::ops::Sub;
-use std::ops::Mul;
 
 //use glutin::Event;
 //use glutin::VirtualKeyCode;
 
-#[derive(Default, PartialEq, Debug, Clone, Copy)]
-pub struct Vec3 (f32, f32, f32);
-
-impl Add for Vec3 {
-    type Output = Vec3;
-    fn add(self, other: Vec3) -> Vec3 {
-        Vec3(self.0 + other.0, self.1 + other.1, self.2 + other.2)
-    }
-}
-
-impl AddAssign for Vec3 {
-    fn add_assign(&mut self, other: Vec3) {
-        *self = Vec3(self.0 + other.0, self.1 + other.1, self.2 + other.2)
-    }
-}
-
-impl Sub for Vec3 {
-    type Output = Vec3;
-    fn sub(self, other: Vec3) -> Vec3 {
-        Vec3(self.0 - other.0, self.1 - other.1, self.2 - other.2)
-    }
-}
-
-impl Mul<f32> for Vec3 {
-    type Output = Vec3;
-    fn mul(self, f: f32) -> Vec3 {
-        Vec3(self.0 * f, self.1 * f, self.2 * f)
-    }
-}
-
 #[derive(Default)]
 pub struct CameraState {
     aspect_ratio: f32,
@@ -57,11 +26,6 @@ pub struct CameraState {
     turning_right: bool,
 }
 
-fn norm(v: &Vec3) -> Vec3 {
-    let len = (v.0 * v.0 + v.1 * v.1 + v.2 * v.2).sqrt();
-    Vec3(v.0 / len, v.1 / len, v.2 / len)
-}
-
 impl CameraState {
     pub fn new() -> CameraState {
         CameraState {
index 068a524b4817dd5ce4c10a28579473029c8f3cc4..8996e55de71827c6e2f93b8a2153c42ba7832d34 100644 (file)
@@ -9,6 +9,7 @@ use glium::{self, Display};
 use glium::vertex::VertexBufferAny;
 
 pub mod camera;
+pub mod vec3;
 
 pub enum Action {
     Stop,
diff --git a/support/vec3.rs b/support/vec3.rs
new file mode 100644 (file)
index 0000000..85d3cc3
--- /dev/null
@@ -0,0 +1,42 @@
+extern crate glutin;
+
+use std::f32;
+use std::ops::Add;
+use std::ops::AddAssign;
+use std::ops::Sub;
+use std::ops::Mul;
+
+#[derive(Default, PartialEq, Debug, Clone, Copy)]
+pub struct Vec3 (pub f32, pub f32, pub f32);
+
+impl Add for Vec3 {
+    type Output = Vec3;
+    fn add(self, other: Vec3) -> Vec3 {
+        Vec3(self.0 + other.0, self.1 + other.1, self.2 + other.2)
+    }
+}
+
+impl AddAssign for Vec3 {
+    fn add_assign(&mut self, other: Vec3) {
+        *self = Vec3(self.0 + other.0, self.1 + other.1, self.2 + other.2)
+    }
+}
+
+impl Sub for Vec3 {
+    type Output = Vec3;
+    fn sub(self, other: Vec3) -> Vec3 {
+        Vec3(self.0 - other.0, self.1 - other.1, self.2 - other.2)
+    }
+}
+
+impl Mul<f32> for Vec3 {
+    type Output = Vec3;
+    fn mul(self, f: f32) -> Vec3 {
+        Vec3(self.0 * f, self.1 * f, self.2 * f)
+    }
+}
+
+pub fn norm(v: &Vec3) -> Vec3 {
+    let len = (v.0 * v.0 + v.1 * v.1 + v.2 * v.2).sqrt();
+    Vec3(v.0 / len, v.1 / len, v.2 / len)
+}