Overview
Add collision detection queries and event callbacks so games can respond to
physics interactions between bodies.
Current State
No response
Scope
Goals:
- Collision start/end events
- Contact point information
- Collision filtering (layers/masks)
- Query overlapping bodies at a point
- Intersection tests without simulation
Non-Goals:
- Trigger volumes (separate issue)
- Complex filtering rules (deferred)
Proposed API
pubstructCollisionEvent{pubbody_a:RigidBodyHandle,pubbody_b:RigidBodyHandle,pubcontact_point:[f32;2],pubnormal:[f32;2],pubpenetration:f32,}pubstructCollisionFilter{pubgroup:u32,pubmask:u32,}implPhysicsWorld2D{pubfncollision_events(&self) -> implIterator<Item = CollisionEvent>;pubfnquery_point(&self,point:[f32;2]) -> Vec<RigidBodyHandle>;pubfnquery_aabb(&self,min:[f32;2],max:[f32;2]) -> Vec<RigidBodyHandle>;pubfnraycast(&self,origin:[f32;2],dir:[f32;2],max_dist:f32) -> Option<RaycastHit>;}implCollider2DBuilder{pubfnwith_collision_filter(self,filter:CollisionFilter) -> Self;}Acceptance Criteria
Affected Crates
lambda-rs, lambda-rs-platform
Notes
- Events collected during step, consumed after
- Filter: collide if (a.group & b.mask) && (b.group & a.mask)
Overview
Add collision detection queries and event callbacks so games can respond to
physics interactions between bodies.
Current State
No response
Scope
Goals:
Non-Goals:
Proposed API
Acceptance Criteria
Affected Crates
lambda-rs, lambda-rs-platform
Notes