# Box2D/Box2D/Collision/b2Collision.cpp File Reference

`#include <Box2D/Collision/b2Collision.h>`
`#include <Box2D/Collision/b2Distance.h>`

## Functions
void | b2GetPointStates (b2PointState state1[b2_maxManifoldPoints], b2PointState state2[b2_maxManifoldPoints], const b2Manifold *manifold1, const b2Manifold *manifold2)
int32 | b2ClipSegmentToLine (b2ClipVertex vOut[2], const b2ClipVertex vIn[2], const b2Vec2 &normal, float32 offset)
| Clipping for contact manifolds.
bool | b2TestOverlap (const b2Shape *shapeA, const b2Shape *shapeB, const b2Transform &xfA, const b2Transform &xfB)
| Determine if two generic shapes overlap.

## Function Documentation

int32 b2ClipSegmentToLine | ( | b2ClipVertex | vOut[2],
|  | const b2ClipVertex | vIn[2],
|  | const b2Vec2 & | normal,
|  | float32 | offset |
| ) |  |  |

Clipping for contact manifolds.

void b2GetPointStates | ( | b2PointState | state1[b2_maxManifoldPoints],
|  | b2PointState | state2[b2_maxManifoldPoints],
|  | const b2Manifold * | manifold1,
|  | const b2Manifold * | manifold2 |
| ) |  |  |

Compute the point states given two manifolds. The states pertain to the transition from manifold1 to manifold2. So state1 is either persist or remove while state2 is either add or persist.

bool b2TestOverlap | ( | const b2Shape * | shapeA,
|  | const b2Shape * | shapeB,
|  | const b2Transform & | xfA,
|  | const b2Transform & | xfB |
| ) |  |  |

Determine if two generic shapes overlap.