fixed rect intersection test

This commit is contained in:
Fraser Graham 2013-10-21 09:29:15 -07:00 committed by Fraser Graham
parent b350b001da
commit 5bb8a09165

View File

@ -86,19 +86,19 @@ func RectIntersection(r Rect2d, p Point2d, v Vector2d) (bool, bool, Point2d) {
inside = true inside = true
return collision, inside, Point2d{X: 0, Y: 0} return collision, inside, Point2d{X: 0, Y: 0}
} else { } else {
wall_left, col1 := Intersection(p, r.A, v, Vector2d{X: 0, Y: r.B.Y}) wall_left, col1 := Intersection(p, r.A, v, Vector2d{X: 0, Y: r.B.Y - r.A.Y})
if wall_left { if wall_left {
return wall_left, inside, col1 return wall_left, inside, col1
} }
wall_top, col2 := Intersection(p, r.A, v, Vector2d{X: r.B.X, Y: 0}) wall_top, col2 := Intersection(p, r.A, v, Vector2d{X: r.B.X - r.A.X, Y: 0})
if wall_top { if wall_top {
return wall_top, inside, col2 return wall_top, inside, col2
} }
wall_right, col3 := Intersection(p, r.B, v, Vector2d{X: 0, Y: -r.B.Y}) wall_right, col3 := Intersection(p, r.B, v, Vector2d{X: 0, Y: -r.B.Y + r.A.Y})
if wall_right { if wall_right {
return wall_right, inside, col3 return wall_right, inside, col3
} }
wall_bottom, col4 := Intersection(p, r.B, v, Vector2d{X: -r.B.X, Y: 0}) wall_bottom, col4 := Intersection(p, r.B, v, Vector2d{X: -r.B.X + r.A.X, Y: 0})
if wall_bottom { if wall_bottom {
return wall_bottom, inside, col4 return wall_bottom, inside, col4
} }