Replaced Degrees and Radians with a single Angle type
[kaka/rust-sdl-test.git] / src / core / level / mod.rs
index 84d4fad..00f3009 100644 (file)
@@ -1,4 +1,4 @@
-use common::{Point, Dimension, Intersection, supercover_line};
+use common::{Point, Dimension, Intersection, Angle, ToAngle, supercover_line};
 use core::render::Renderer;
 use sprites::SpriteManager;
 use std::rc::Rc;
@@ -89,6 +89,14 @@ impl Level {
        // walls
        for wall in &self.walls {
            for e in &wall.edges {
+               let c = (e.p1 + e.p2) / 2.0;
+               let a = (e.p2 - e.p1).to_angle() + std::f64::consts::FRAC_PI_2.radians();
+
+               renderer.draw_line(
+                   <(i32, i32)>::from(c.to_i32()),
+                   <(i32, i32)>::from((c + Point::from(a) * 10.0).to_i32()),
+                   (255, 128, 0));
+
                renderer.draw_line(
                    <(i32, i32)>::from(e.p1.to_i32()),
                    <(i32, i32)>::from(e.p2.to_i32()),
@@ -238,4 +246,8 @@ impl<'a> Wall<'a> {
            edge,
        }
     }
+
+    pub fn normal(&self) -> Angle {
+       (self.edge.p2 - self.edge.p1).to_angle() + std::f64::consts::FRAC_PI_2.radians()
+    }
 }