# PhysicsShape.ContactManifold

> 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.

## Definition

* **Type:** Struct
* **Namespace:** [Unity.U2D.Physics](/engine/6000.7/script-reference/unity/u2d/physics.md)
* **Assembly:** UnityEngine.PhysicsCore2DModule
* **Implements:** [IEnumerable\<ManifoldPoint>](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1), [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.ienumerable), [IEquatable\<ContactManifold>](https://learn.microsoft.com/dotnet/api/system.iequatable-1)

```csharp
public struct PhysicsShape.ContactManifold : IEnumerable<PhysicsShape.ContactManifold.ManifoldPoint>, IEnumerable, IEquatable<PhysicsShape.ContactManifold>
```

## Properties

| Property                                                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                               |
| -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [this\[\]](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifold/item.md)                               | Indexer to access the manifold points.                                                                                                                                                                                                                                                                                                                                                                    |
| [normal](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifold/normal.md)                               | 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](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifold/pointcount.md)                       | 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](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifold/points.md)                               | 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](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifold/rollingimpulse.md)               | Angular impulse applied for rolling resistance (N " m " s = kg \* m^2 / s).                                                                                                                                                                                                                                                                                                                               |
| [speculativePointCount](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifold/speculativepointcount.md) | The number of manifold points available that are speculative, in the range \[0, 2].                                                                                                                                                                                                                                                                                                                       |

## Structs

| Struct                                                                                                                                                 | Description                                                                                                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [PhysicsShape.ContactManifold.ManifoldPoint](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifoldmanifoldpoint.md)           | Contains all the detail related to the geometry and dynamics of the contact. You may use the [\_totalNormalImpulse](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifoldmanifoldpoint/totalnormalimpulse.md) to determine if there was an interaction during the time step. |
| [PhysicsShape.ContactManifold.ManifoldPointArray](/engine/6000.7/script-reference/unity/u2d/physics/physicsshape/contactmanifoldmanifoldpointarray.md) | Fixed-sized manifold point array.                                                                                                                                                                                                                                                                     |
