Bullet Collision Detection & Physics Library: btBox2dBox2dCollisionAlgorithm.cpp File Reference

Bullet Collision Detection & Physics Library

Classes | Macros | Functions | Variables
btBox2dBox2dCollisionAlgorithm.cpp File Reference
`#include "btBox2dBox2dCollisionAlgorithm.h"`
`#include "BulletCollision/CollisionDispatch/btCollisionDispatcher.h"`
`#include "BulletCollision/CollisionShapes/btBoxShape.h"`
`#include "BulletCollision/CollisionDispatch/btCollisionObject.h"`
`#include "BulletCollision/CollisionDispatch/btBoxBoxDetector.h"`
`#include "BulletCollision/CollisionShapes/btBox2dShape.h"`
`#include "BulletCollision/CollisionDispatch/btCollisionObjectWrapper.h"`
Include dependency graph for btBox2dBox2dCollisionAlgorithm.cpp:

Go to the source code of this file.

## Classes
struct | ClipVertex

## Macros
#define | USE_PERSISTENT_CONTACTS 1
| btBox2dBox2dCollisionAlgorithm, with modified b2CollidePolygons routines from the Box2D library.
#define | b2Dot(a, b)
#define | b2Mul(a, b)
#define | b2MulT(a, b)
#define | b2Cross(a, b)
#define | btCrossS(a, s)

## Functions
void | b2CollidePolygons (btManifoldResult *manifold, const btBox2dShape *polyA, const btTransform &xfA, const btBox2dShape *polyB, const btTransform &xfB)
static int | ClipSegmentToLine (ClipVertex vOut[2], ClipVertex vIn[2], const btVector3 &normal, btScalar offset)
static btScalar | EdgeSeparation (const btBox2dShape *poly1, const btTransform &xf1, int edge1, const btBox2dShape *poly2, const btTransform &xf2)
static btScalar | FindMaxSeparation (int *edgeIndex, const btBox2dShape *poly1, const btTransform &xf1, const btBox2dShape *poly2, const btTransform &xf2)
static void | FindIncidentEdge (ClipVertex c[2], const btBox2dShape *poly1, const btTransform &xf1, int edge1, const btBox2dShape *poly2, const btTransform &xf2)

## Variables
int | b2_maxManifoldPoints = 2

## Macro Definition Documentation

## ◆ b2Cross

#define b2Cross | ( |  | a,
|  |  | b )

Value:
(a).cross(b)

Definition at line 89 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ b2Dot

#define b2Dot | ( |  | a,
|  |  | b )

Value:
(a).dot(b)
dot
btScalar dot(const btQuaternion &q1, const btQuaternion &q2)
Calculate the dot product between two quaternions.
Definition btQuaternion.h:888

Definition at line 86 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ b2Mul

#define b2Mul | ( |  | a,
|  |  | b )

Value:
(a) * (b)

Definition at line 87 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ b2MulT

#define b2MulT | ( |  | a,
|  |  | b )

Value:
(a).transpose() * (b)

Definition at line 88 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ btCrossS

#define btCrossS | ( |  | a,
|  |  | s )

Value:
btVector3(s* a.getY(), -s* a.getX(), 0.f)
btVector3
btVector3 can be used to represent 3D points and vectors.
Definition btVector3.h:82

Definition at line 90 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ USE_PERSISTENT_CONTACTS

#define USE_PERSISTENT_CONTACTS 1

btBox2dBox2dCollisionAlgorithm, with modified b2CollidePolygons routines from the Box2D library.

The modifications include: switching from b2Vec to btVector3, redefinition of b2Dot, b2Cross

Definition at line 27 of file btBox2dBox2dCollisionAlgorithm.cpp.

## Function Documentation

## ◆ b2CollidePolygons()

void b2CollidePolygons | ( | btManifoldResult * | manifold,
|  | const btBox2dShape * | polyA,
|  | const btTransform & | xfA,
|  | const btBox2dShape * | polyB,
|  | const btTransform & | xfB )

Definition at line 299 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ ClipSegmentToLine()

int ClipSegmentToLine | ( | ClipVertex | vOut[2],
|  | ClipVertex | vIn[2],
|  | const btVector3 & | normal,
|  | btScalar | offset )
| static

Definition at line 94 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ EdgeSeparation()

btScalar EdgeSeparation | ( | const btBox2dShape * | poly1,
|  | const btTransform & | xf1,
|  | int | edge1,
|  | const btBox2dShape * | poly2,
|  | const btTransform & | xf2 )
| static

Definition at line 129 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ FindIncidentEdge()

void FindIncidentEdge | ( | ClipVertex | c[2],
|  | const btBox2dShape * | poly1,
|  | const btTransform & | xf1,
|  | int | edge1,
|  | const btBox2dShape * | poly2,
|  | const btTransform & | xf2 )
| static

Definition at line 249 of file btBox2dBox2dCollisionAlgorithm.cpp.

## ◆ FindMaxSeparation()

btScalar FindMaxSeparation | ( | int * | edgeIndex,
|  | const btBox2dShape * | poly1,
|  | const btTransform & | xf1,
|  | const btBox2dShape * | poly2,
|  | const btTransform & | xf2 )
| static

Definition at line 158 of file btBox2dBox2dCollisionAlgorithm.cpp.

## Variable Documentation

## ◆ b2_maxManifoldPoints

int b2_maxManifoldPoints = 2

Definition at line 92 of file btBox2dBox2dCollisionAlgorithm.cpp.