8 pub struct CircleHitbox {
13 pub struct PointHitbox {
18 pub fn intersect(a: &Hitbox, b: &Hitbox) -> bool {
22 (Circle(x), Circle(y)) => circles_intersect(x, y),
23 (Circle(x), Point(y)) => circle_point_intersect(x, y),
24 (Point(x), Circle(y)) => circle_point_intersect(y, x),
25 (Point(x), Point(y)) => points_intersect(x, y)
30 fn circles_intersect(x: &CircleHitbox, y: &CircleHitbox) -> bool {
31 x.pos.distance_squared(y.pos) <= (x.radius + y.radius).powi(2)
34 fn circle_point_intersect(x: &CircleHitbox, y: &PointHitbox) -> bool {
35 x.pos.distance_squared(y.pos) <= x.radius.powi(2)
38 fn points_intersect(x: &PointHitbox, y: &PointHitbox) -> bool {