| Box2D 2.3.0 A 2D Physics Engine for Games

Classes | Enumerations | Functions | Variables
b2Collision.h File Reference
`#include <Box2D/Common/b2Math.h>`
`#include <limits.h>`

Go to the source code of this file.

## Classes
struct | b2ContactFeature
union | b2ContactID
| Contact ids to facilitate warm starting. More...
struct | b2ManifoldPoint
struct | b2Manifold
struct | b2WorldManifold
| This is used to compute the current state of a contact manifold. More...
struct | b2ClipVertex
| Used for computing contact manifolds. More...
struct | b2RayCastInput
| Ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1). More...
struct | b2RayCastOutput
struct | b2AABB
| An axis aligned bounding box. More...

## Enumerations
enum | b2PointState { b2_nullState, b2_addState, b2_persistState, b2_removeState }
| This is used for determining the state of contact points. More...

## Functions
void | b2GetPointStates (b2PointState state1[b2_maxManifoldPoints], b2PointState state2[b2_maxManifoldPoints], const b2Manifold *manifold1, const b2Manifold *manifold2)
void | b2CollideCircles (b2Manifold *manifold, const b2CircleShape *circleA, const b2Transform &xfA, const b2CircleShape *circleB, const b2Transform &xfB)
| Compute the collision manifold between two circles.
void | b2CollidePolygonAndCircle (b2Manifold *manifold, const b2PolygonShape *polygonA, const b2Transform &xfA, const b2CircleShape *circleB, const b2Transform &xfB)
| Compute the collision manifold between a polygon and a circle.
void | b2CollidePolygons (b2Manifold *manifold, const b2PolygonShape *polygonA, const b2Transform &xfA, const b2PolygonShape *polygonB, const b2Transform &xfB)
| Compute the collision manifold between two polygons.
void | b2CollideEdgeAndCircle (b2Manifold *manifold, const b2EdgeShape *polygonA, const b2Transform &xfA, const b2CircleShape *circleB, const b2Transform &xfB)
| Compute the collision manifold between an edge and a circle.
void | b2CollideEdgeAndPolygon (b2Manifold *manifold, const b2EdgeShape *edgeA, const b2Transform &xfA, const b2PolygonShape *circleB, const b2Transform &xfB)
| Compute the collision manifold between an edge and a circle.
int32 | b2ClipSegmentToLine (b2ClipVertex vOut[2], const b2ClipVertex vIn[2], const b2Vec2 &normal, float32 offset, int32 vertexIndexA)
| Clipping for contact manifolds.
bool | b2TestOverlap (const b2Shape *shapeA, int32 indexA, const b2Shape *shapeB, int32 indexB, const b2Transform &xfA, const b2Transform &xfB)
| Determine if two generic shapes overlap.
bool | b2TestOverlap (const b2AABB &a, const b2AABB &b)

## Variables
const uint8 | b2_nullFeature = UCHAR_MAX

## Detailed Description

Structures and functions used for computing contact points, distance queries, and TOI queries.

## Enumeration Type Documentation

## ◆ b2PointState

enum b2PointState

This is used for determining the state of contact points.

Enumerator
b2_nullState | point does not exist
b2_addState | point was added in the update
b2_persistState | point persisted across the update
b2_removeState | point was removed in the update

## Function Documentation

## ◆ b2GetPointStates()

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.