Dolda2000 GitWeb
/
kaka
/
rust-sdl-test.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4074267
)
Implemented PartialEq for Angle
author
Tomas Wenström
<tomas.wenstrom@gmail.com>
Mon, 8 Feb 2021 18:53:46 +0000
(19:53 +0100)
committer
Tomas Wenström
<tomas.wenstrom@gmail.com>
Mon, 8 Feb 2021 18:53:46 +0000
(19:53 +0100)
src/common/geometry.rs
patch
|
blob
|
blame
|
history
diff --git
a/src/common/geometry.rs
b/src/common/geometry.rs
index
d767d8e
..
50d1994
100644
(file)
--- a/
src/common/geometry.rs
+++ b/
src/common/geometry.rs
@@
-154,7
+154,7
@@
impl From<Angle> for Point<f64> {
////////// ANGLE ///////////////////////////////////////////////////////////////
////////// ANGLE ///////////////////////////////////////////////////////////////
-#[derive(Debug, Default,
PartialEq,
Clone, Copy)]
+#[derive(Debug, Default, Clone, Copy)]
pub struct Angle(pub f64);
pub trait ToAngle {
pub struct Angle(pub f64);
pub trait ToAngle {
@@
-223,7
+223,11
@@
impl Angle {
}
}
}
}
-// TODO override eq, 0==360 osv
+impl PartialEq for Angle {
+ fn eq(&self, rhs: &Angle) -> bool {
+ self.0 % std::f64::consts::TAU == rhs.0 % std::f64::consts::TAU
+ }
+}
// addition and subtraction of angles
// addition and subtraction of angles
@@
-468,6
+472,7
@@
mod tests {
#[test]
fn angles() {
assert_eq!(0.radians(), 0.degrees());
#[test]
fn angles() {
assert_eq!(0.radians(), 0.degrees());
+ assert_eq!(0.degrees(), 360.degrees());
assert_eq!(180.degrees(), std::f64::consts::PI.radians());
assert_eq!(std::f64::consts::PI.radians().to_degrees(), 180.0);
assert!((Point::from(90.degrees()) - point!(0.0, 1.0)).length() < 0.001);
assert_eq!(180.degrees(), std::f64::consts::PI.radians());
assert_eq!(std::f64::consts::PI.radians().to_degrees(), 180.0);
assert!((Point::from(90.degrees()) - point!(0.0, 1.0)).length() < 0.001);