diff options
author | 2019-08-31 04:31:13 +0200 | |
---|---|---|
committer | 2019-08-31 04:31:13 +0200 | |
commit | eecac7b5d163794645bcce8e450c74e3eb5e999f (patch) | |
tree | bf55576b1941bffae422050f72e7c9a6c1c0d282 /src/point.rs | |
parent | 343cafa1ee0b6d29d6e739dfebb13ebe3656a9aa (diff) | |
download | iced-eecac7b5d163794645bcce8e450c74e3eb5e999f.tar.gz iced-eecac7b5d163794645bcce8e450c74e3eb5e999f.tar.bz2 iced-eecac7b5d163794645bcce8e450c74e3eb5e999f.zip |
Remove `nalgebra` dependency
- Implement our own `Point` and `Vector` types
- Make `Rectangle` not generic
Diffstat (limited to '')
-rw-r--r-- | src/point.rs | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/point.rs b/src/point.rs index 8f172689..80afffb7 100644 --- a/src/point.rs +++ b/src/point.rs @@ -1,2 +1,28 @@ +use crate::Vector; + /// A 2D point. -pub type Point = nalgebra::Point2<f32>; +#[derive(Debug, Clone, Copy, PartialEq)] +pub struct Point { + pub x: f32, + pub y: f32, +} + +impl Point { + /// Creates a new [`Point`] with the given coordinates. + /// + /// [`Point`]: struct.Point.html + pub fn new(x: f32, y: f32) -> Self { + Self { x, y } + } +} + +impl std::ops::Add<Vector> for Point { + type Output = Self; + + fn add(self, vector: Vector) -> Self { + Self { + x: self.x + vector.x, + y: self.y + vector.y, + } + } +} |