- // wall grid
- renderer.canvas().set_draw_color((0, 32, 0));
- let size = &self.wall_grid.scale;
- for x in 0..self.wall_grid.size.width {
- for y in 0..self.wall_grid.size.height {
- if !self.wall_grid.cells[x][y].is_empty() {
- let num = self.wall_grid.cells[x][y].len();
- renderer.canvas().set_draw_color((0, 32*num as u8, 0));
- renderer.canvas().fill_rect(sdl2::rect::Rect::new(
- x as i32 * size.width as i32,
- y as i32 * size.height as i32,
- size.width as u32,
- size.height as u32)).unwrap();
+ // wall grid
+ renderer.canvas().set_draw_color((0, 32, 0));
+ let size = &self.wall_grid.scale;
+ for x in 0..self.wall_grid.size.width {
+ for y in 0..self.wall_grid.size.height {
+ if !self.wall_grid.cells[x][y].is_empty() {
+ let num = self.wall_grid.cells[x][y].len();
+ renderer.canvas().set_draw_color((0, 32*num as u8, 0));
+ renderer.canvas().fill_rect(sdl2::rect::Rect::new(
+ x as i32 * size.width as i32,
+ y as i32 * size.height as i32,
+ size.width as u32,
+ size.height as u32)).unwrap();
+ }
+ }
+ }
+
+ // wall normals
+ 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()),
+ (0, 128, 255));