-
Notifications
You must be signed in to change notification settings - Fork 2
[Feature] Advanced collider-level collision details #206
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestlambda-rsIssues pertaining to the core frameworkIssues pertaining to the core frameworklambda-rs-platformIssues pertaining to the dependency & platform wrappersIssues pertaining to the dependency & platform wrappersphysicsAll things related to physicsAll things related to physics
Description
Overview
Add an advanced API that exposes collider-level contact information for users
who need per-shape detail, while keeping the default public event system
body-oriented.
Current State
The public event stream aggregates collider pairs into one RigidBody2D pair.
That is the correct default for gameplay code, but it hides which attached
shape on a compound body actually participated in contact.
Scope
Goals:
- Add an opt-in advanced collision view for per-collider detail
- Preserve the current body-oriented event stream as the default API
- Avoid leaking backend vendor types into the public surface
- Define stable handle types for colliders if needed
Non-Goals:
- Replacing the body-oriented API
- Per-substep callbacks
- Full backend manifold exposure
Proposed API
pub struct ColliderCollisionEvent {
pub kind: CollisionEventKind,
pub collider_a: Collider2D,
pub collider_b: Collider2D,
pub body_a: RigidBody2D,
pub body_b: RigidBody2D,
pub contact_point: Option<[f32; 2]>,
pub normal: Option<[f32; 2]>,
pub penetration: Option<f32>,
}
impl PhysicsWorld2D {
pub fn collider_collision_events(
&self,
) -> impl Iterator<Item = ColliderCollisionEvent>;
}Acceptance Criteria
- A public advanced event API exists for collider-level detail
- The default body-oriented event stream remains unchanged
- Collider handles are stable and documented if newly introduced
- Compound bodies can be inspected at both body and collider granularity
- Integration tests cover multiple colliders on one body
- Docs clearly state when users should prefer body events vs.
collider events
Affected Crates
lambda-rs, lambda-rs-platform
Notes
- This should not be treated as the primary gameplay API.
- The design is stronger if the same backend data can feed both views.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestlambda-rsIssues pertaining to the core frameworkIssues pertaining to the core frameworklambda-rs-platformIssues pertaining to the dependency & platform wrappersIssues pertaining to the dependency & platform wrappersphysicsAll things related to physicsAll things related to physics