A contact edge is used to connect bodies and contacts together in a contact
graph where each body is a node and each contact is an edge. A contact edge
belongs to a doubly linked list maintained in each attached body. Each
contact has two contact edges, one for each attached body. (b2ContactEdge)
Manages contact between two shapes. A contact exists for each overlapping
AABB in the broad-phase (except if filtered), so a contact object may exist
that has no contact points. (b2ContactSim)
The world data update_contact needs, copied out so the caller can hold
&mut ContactSim and &Shape borrows at the same time (the C version
reads these through b2World*).
Contact identifier validation. Provides validation for up to 2^32
allocations. (b2Contact_IsValid — the world-registry check collapses to
the index/generation check in the registry-less port)
WARNING: this should never fail to create a contact because the pair
already exists in the pairSet. (b2CreateContact — C takes shape pointers;
the Rust port takes shape ids.)