From 5522731ec4de8741f923b339ca942f8aaff2a338 Mon Sep 17 00:00:00 2001 From: Dennis Kobert Date: Fri, 21 Jun 2019 23:57:15 +0200 Subject: Fix changed Method names and minor compiler warnings --- webhogg/game_server/src/collide.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/webhogg/game_server/src/collide.rs b/webhogg/game_server/src/collide.rs index 44ab311..940cffd 100644 --- a/webhogg/game_server/src/collide.rs +++ b/webhogg/game_server/src/collide.rs @@ -25,8 +25,8 @@ impl Collide for AABox { impl Collide for RBox { fn collides(&self, other: &Vec2) -> bool { - let v1_diff = *other + self.v1 * (-self.v1.scalar(&(*other - self.pos)) / self.v1.distance2()); - let v2_diff = *other + self.v2 * (-self.v2.scalar(&(*other - self.pos)) / self.v2.distance2()); + let v1_diff = *other + self.v1 * (-self.v1.dot(&(*other - self.pos)) / self.v1.norm2()); + let v2_diff = *other + self.v2 * (-self.v2.dot(&(*other - self.pos)) / self.v2.norm2()); let v1_dist = ((v1_diff - self.pos) / self.v2).x; let v2_dist = ((v2_diff - self.pos) / self.v1).x; @@ -42,16 +42,16 @@ impl Collide for RBox { let other_size = other.pos + other.size; // project points onto a orthogonal line - let v1_diff = other.pos + self.v1 * (-self.v1.scalar(&(other.pos - self.pos)) / self.v1.distance2()); - let v2_diff = other.pos + self.v2 * (-self.v2.scalar(&other.pos) / self.v2.distance2()); - let v1_diff_size = other_size + self.v1 * (-self.v1.scalar(&(other_size - self.pos)) / self.v1.distance2()); - let v2_diff_size = other_size + self.v2 * (-self.v2.scalar(&(other_size - self.pos)) / self.v2.distance2()); + let v1_diff = other.pos + self.v1 * (-self.v1.dot(&(other.pos - self.pos)) / self.v1.norm2()); + let v2_diff = other.pos + self.v2 * (-self.v2.dot(&other.pos) / self.v2.norm2()); + let v1_diff_size = other_size + self.v1 * (-self.v1.dot(&(other_size - self.pos)) / self.v1.norm2()); + let v2_diff_size = other_size + self.v2 * (-self.v2.dot(&(other_size - self.pos)) / self.v2.norm2()); - // calculate the distance - let v1_dist = ((v1_diff - self.pos) / self.v2); - let v2_dist = ((v2_diff - self.pos) / self.v1); - let v1_dist_size = ((v1_diff_size - self.pos) / self.v2); - let v2_dist_size = ((v2_diff_size - self.pos) / self.v1); + // calculate the norm + let v1_dist = (v1_diff - self.pos) / self.v2; + let v2_dist = (v2_diff - self.pos) / self.v1; + let v1_dist_size = (v1_diff_size - self.pos) / self.v2; + let v2_dist_size = (v2_diff_size - self.pos) / self.v1; let v1_dist = if v1_dist.x.is_finite() {v1_dist.x} else {v1_dist.y}; let v2_dist = if v2_dist.x.is_finite() {v2_dist.x} else {v2_dist.y}; @@ -150,7 +150,7 @@ impl> Collide for Vec { } #[test] - fn test_collide_Rbox_dot() { + fn test_collide_rbox_dot() { let a = Vec2{x: 1.0, y: 1.0}; let b = Vec2{x: 1.0, y: 1.0}; let c = Vec2{x: 1.0, y: -1.0}; -- cgit v1.2.3-54-g00ecf