Skip to main content

Module collision

Module collision 

Source
Expand description

§SDK Collision Detection API

Ergonomic Rust functions for 2D collision detection. Thin wrappers over crate::ecs::collision – pure math, no engine state required.

§Example

use goud_engine::sdk::collision::{circle_circle, point_in_rect, distance};
use goud_engine::core::math::Vec2;

if let Some(contact) = circle_circle(
    Vec2::new(0.0, 0.0), 1.0,
    Vec2::new(1.5, 0.0), 1.0,
) {
    println!("Collision! Penetration: {}", contact.penetration);
}

assert!(point_in_rect(Vec2::new(5.0, 5.0), Vec2::new(0.0, 0.0), Vec2::new(10.0, 10.0)));
assert!((distance(Vec2::new(0.0, 0.0), Vec2::new(3.0, 4.0)) - 5.0).abs() < 0.001);

Structs§

Collision
Zero-sized type that hosts collision detection functions.
CollisionResponse
Collision response configuration for impulse resolution.
Contact
Contact information from a collision.

Functions§

aabb_aabb
Tests collision between two axis-aligned bounding boxes.
aabb_overlap
Fast boolean overlap test for two AABBs using min/max corners.
circle_aabb
Tests collision between a circle and an axis-aligned bounding box.
circle_circle
Tests collision between two circles (fastest collision test).
circle_overlap
Fast boolean overlap test for two circles.
distance
Returns the Euclidean distance between two points.
distance_squared
Returns the squared Euclidean distance between two points.
point_in_circle
Checks whether a point lies inside a circle.
point_in_rect
Checks whether a point lies inside a rectangle.