summaryrefslogtreecommitdiff
path: root/src/geometry
diff options
context:
space:
mode:
Diffstat (limited to 'src/geometry')
-rw-r--r--src/geometry/direction.rs67
-rw-r--r--src/geometry/point.rs37
-rw-r--r--src/geometry/vec.rs62
3 files changed, 0 insertions, 166 deletions
diff --git a/src/geometry/direction.rs b/src/geometry/direction.rs
deleted file mode 100644
index e37f750..0000000
--- a/src/geometry/direction.rs
+++ /dev/null
@@ -1,67 +0,0 @@
-use crate::geometry::vec::Vec2d;
-use std::fmt;
-
-#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
-pub enum Direction {
- North,
- NorthEast,
- East,
- SouthEast,
- South,
- SouthWest,
- West,
- NorthWest,
-}
-
-impl fmt::Display for Direction {
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
- use Direction::*;
- let s = match self {
- North => "N",
- NorthEast => "NE",
- East => "E",
- SouthEast => "SE",
- South => "S",
- SouthWest => "SW",
- West => "W",
- NorthWest => "NW",
- };
- f.write_str(s)
- }
-}
-
-impl Direction {
- pub fn is_diagonal(&self) -> bool {
- use Direction::*;
-
- match self {
- NorthEast | SouthEast | SouthWest | NorthWest => true,
- _ => false,
- }
- }
-
- pub fn as_vec(&self) -> Vec2d {
- use Direction::*;
- match self {
- North => Vec2d::new(0, -1),
- NorthEast => Vec2d::new(1, -1),
- East => Vec2d::new(1, 0),
- SouthEast => Vec2d::new(1, 1),
- South => Vec2d::new(0, 1),
- SouthWest => Vec2d::new(-1, 1),
- West => Vec2d::new(-1, 0),
- NorthWest => Vec2d::new(-1, -1),
- }
- }
-
- pub const ALL: [Direction; 8] = [
- Direction::North,
- Direction::NorthEast,
- Direction::East,
- Direction::SouthEast,
- Direction::South,
- Direction::SouthWest,
- Direction::West,
- Direction::NorthWest,
- ];
-}
diff --git a/src/geometry/point.rs b/src/geometry/point.rs
deleted file mode 100644
index 1ab9b36..0000000
--- a/src/geometry/point.rs
+++ /dev/null
@@ -1,37 +0,0 @@
-use crate::geometry::vec::*;
-
-use std::ops::*;
-
-#[derive(Debug, Default, Clone, Copy, Hash, PartialEq, Eq)]
-pub struct Point2d {
- pub x: i8,
- pub y: i8,
-}
-
-impl Point2d {
- pub fn new(x: i8, y: i8) -> Point2d {
- Point2d { x, y }
- }
-}
-
-impl Add<Vec2d> for Point2d {
- type Output = Self;
-
- fn add(self, other: Vec2d) -> Self {
- Point2d {
- x: self.x.saturating_add(other.x),
- y: self.y.saturating_add(other.y),
- }
- }
-}
-
-impl Sub for Point2d {
- type Output = Vec2d;
-
- fn sub(self, other: Self) -> Vec2d {
- Vec2d {
- x: self.x.saturating_sub(other.x),
- y: self.y.saturating_sub(other.y),
- }
- }
-}
diff --git a/src/geometry/vec.rs b/src/geometry/vec.rs
deleted file mode 100644
index 375a0f9..0000000
--- a/src/geometry/vec.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-use std::ops::*;
-
-#[derive(Debug, Default, Clone, Copy, Hash, PartialEq, Eq)]
-pub struct Vec2d {
- pub x: i8,
- pub y: i8,
-}
-
-impl Vec2d {
- pub const fn new(x: i8, y: i8) -> Vec2d {
- Vec2d { x, y }
- }
- pub fn magnitude_squared(&self) -> i8 {
- self.x
- .saturating_pow(2)
- .saturating_add(self.y.saturating_pow(2))
- }
-}
-
-impl Add for Vec2d {
- type Output = Self;
-
- fn add(self, other: Self) -> Self {
- Vec2d {
- x: self.x.saturating_add(other.x),
- y: self.y.saturating_add(other.y),
- }
- }
-}
-
-impl Sub for Vec2d {
- type Output = Self;
-
- fn sub(self, other: Self) -> Self {
- Vec2d {
- x: self.x.saturating_sub(other.x),
- y: self.y.saturating_sub(other.y),
- }
- }
-}
-
-impl Mul<i8> for Vec2d {
- type Output = Self;
-
- fn mul(self, other: i8) -> Self {
- Vec2d {
- x: self.x.saturating_mul(other),
- y: self.y.saturating_mul(other),
- }
- }
-}
-
-impl Neg for Vec2d {
- type Output = Self;
-
- fn neg(self) -> Self {
- Vec2d {
- x: -self.x,
- y: -self.y,
- }
- }
-}