Crates.io | collision-detection |
lib.rs | collision-detection |
version | 0.3.0 |
created_at | 2022-01-09 10:12:35.119062+00 |
updated_at | 2025-03-29 15:59:22.643872+00 |
description | A generic collision detection library based on the `collide` crate |
homepage | |
repository | https://gitlab.com/porky11/collision-detection |
max_upload_size | |
id | 510751 |
size | 11,466 |
Efficient collision management system built on the collide crate.
use collision_manager::CollisionManager;
use collide::Collider;
struct Sphere { ... }
impl Collider for Sphere { ... }
let mut manager = CollisionManager::<Sphere, u32>::new();
// Add colliders with associated IDs
let player_id = manager.insert_collider(Sphere::new(1.0), 1);
let enemy_id = manager.insert_collider(Sphere::new(1.0), 2);
// Check collisions
if manager.check_collision(&Sphere::new(1.0)) {
println!("Collision detected!");
}
// Compute all internal collisions
let collisions = manager.compute_inner_collisions();
// Process collision results
for (obj_id, collisions) in collisions.indexed() {
for collision in collisions {
println!("Object {} collided with {}", obj_id, collision.index);
handle_collision(collision.info.vector);
}
}