Go to the source code of this file.
Classes | |
struct | b2AABB |
An axis aligned bounding box. More... | |
struct | b2ClipVertex |
Used for computing contact manifolds. More... | |
struct | b2ContactFeature |
union | b2ContactID |
Contact ids to facilitate warm starting. More... | |
struct | b2Manifold |
struct | b2ManifoldPoint |
struct | b2RayCastInput |
Ray-cast input data. The ray extends from p1 to p1 + maxFraction * (p2 - p1). More... | |
struct | b2RayCastOutput |
struct | b2WorldManifold |
This is used to compute the current state of a contact manifold. More... | |
Enumerations | |
enum | b2PointState { b2_nullState, b2_addState, b2_persistState, b2_removeState } |
This is used for determining the state of contact points. More... | |
Functions | |
int32 | b2ClipSegmentToLine (b2ClipVertex vOut[2], const b2ClipVertex vIn[2], const b2Vec2 &normal, float32 offset, int32 vertexIndexA) |
Clipping for contact manifolds. | |
void | b2CollideCircles (b2Manifold *manifold, const b2CircleShape *circleA, const b2Transform &xfA, const b2CircleShape *circleB, const b2Transform &xfB) |
Compute the collision manifold between two circles. | |
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. | |
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 | b2GetPointStates (b2PointState state1[b2_maxManifoldPoints], b2PointState state2[b2_maxManifoldPoints], const b2Manifold *manifold1, const b2Manifold *manifold2) |
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 |
Structures and functions used for computing contact points, distance queries, and TOI queries.
Definition in file b2Collision.h.
enum b2PointState |
This is used for determining the state of contact points.
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 |
Definition at line 126 of file b2Collision.h.
int32 b2ClipSegmentToLine | ( | b2ClipVertex | vOut[2], |
const b2ClipVertex | vIn[2], | ||
const b2Vec2 & | normal, | ||
float32 | offset, | ||
int32 | vertexIndexA | ||
) |
Clipping for contact manifolds.
Definition at line 201 of file b2Collision.cpp.
void b2CollideCircles | ( | b2Manifold * | manifold, |
const b2CircleShape * | circleA, | ||
const b2Transform & | xfA, | ||
const b2CircleShape * | circleB, | ||
const b2Transform & | xfB | ||
) |
Compute the collision manifold between two circles.
Definition at line 23 of file b2CollideCircle.cpp.
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.
Definition at line 27 of file b2CollideEdge.cpp.
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.
Definition at line 692 of file b2CollideEdge.cpp.
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.
Definition at line 51 of file b2CollideCircle.cpp.
void b2CollidePolygons | ( | b2Manifold * | manifold, |
const b2PolygonShape * | polygonA, | ||
const b2Transform & | xfA, | ||
const b2PolygonShape * | polygonB, | ||
const b2Transform & | xfB | ||
) |
Compute the collision manifold between two polygons.
Definition at line 116 of file b2CollidePolygon.cpp.
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.
Definition at line 88 of file b2Collision.cpp.
bool b2TestOverlap | ( | const b2Shape * | shapeA, |
int32 | indexA, | ||
const b2Shape * | shapeB, | ||
int32 | indexB, | ||
const b2Transform & | xfA, | ||
const b2Transform & | xfB | ||
) |
Determine if two generic shapes overlap.
Definition at line 233 of file b2Collision.cpp.
bool b2TestOverlap | ( | const b2AABB & | a, |
const b2AABB & | b | ||
) | [inline] |
Definition at line 262 of file b2Collision.h.
const uint8 b2_nullFeature = UCHAR_MAX |
Definition at line 34 of file b2Collision.h.