# b2Manifold Struct Reference

`#include <b2Collision.h>`

List of all members.

## Public Types
enum | Type { e_circles, e_faceA, e_faceB }
## Public Attributes
b2ManifoldPoint | points [b2_maxManifoldPoints]
| the points of contact
b2Vec2 | localNormal
| not use for Type::e_points
b2Vec2 | localPoint
| usage depends on manifold type
Type | type
int32 | pointCount
| the number of manifold points

## Detailed Description

A manifold for two touching convex shapes. Box2D supports multiple types of contact:

- clip point versus plane with radius
- point versus point with radius (circles) The local point usage depends on the manifold type: -e_circles: the local center of circleA -e_faceA: the center of faceA -e_faceB: the center of faceB Similarly the local normal usage: -e_circles: not used -e_faceA: the normal on polygonA -e_faceB: the normal on polygonB We store contacts in this way so that position correction can account for movement, which is critical for continuous physics. All contact scenarios must be expressed in one of these types. This structure is stored across time steps, so we keep it small.

## Member Enumeration Documentation

enum b2Manifold::Type

Enumerator:

  e_circles |
  e_faceA |
  e_faceB |

## Member Data Documentation

b2Vec2 b2Manifold::localNormal

not use for Type::e_points

b2Vec2 b2Manifold::localPoint

usage depends on manifold type

int32 b2Manifold::pointCount

the number of manifold points

b2ManifoldPoint b2Manifold::points[b2_maxManifoldPoints]

the points of contact

Type b2Manifold::type

The documentation for this struct was generated from the following file:

- Box2D/Box2D/Collision/b2Collision.h