A contact manifold describes the contact points between colliding shapes. Speculative collision is used so some contact points may be separated, a property available per-contact.
| Property | Description |
|---|---|
| normal | The unit normal vector in world space, pointing from shape A to shape B. During a pre-contact callback this may be modified, and the solver uses the new value this step. It must stay unit length. If the callback leaves the manifold invalid, whether a non-unit normal, a non-finite value, or a point count outside [0, 2], the whole edit is discarded and the manifold is restored for that step. |
| pointCount | The number of manifold points available, in the range [0, 2]. During a pre-contact callback this may be lowered, and setting it to zero cancels the contact so it is not solved this step. |
| points | The manifold points, up to two are possible. This is a read-only view of the points, so use the indexer on the manifold to change one during a pre-contact callback. |
| rollingImpulse | Angular impulse applied for rolling resistance (N " m " s = kg * m^2 / s). |
| speculativePointCount | The number of manifold points available that are speculative, in the range [0, 2]. |
| this[int] | Indexer to access the manifold points. |