Bullet Collision Detection & Physics Library
btBoxBoxDetector.cpp File Reference
#include "btBoxBoxDetector.h"
#include "BulletCollision/CollisionShapes/btBoxShape.h"
#include <float.h>
#include <string.h>
Include dependency graph for btBoxBoxDetector.cpp:

Go to the source code of this file.

Macros

#define dDOTpq(a, b, p, q)
 
#define dInfinity   FLT_MAX
 
#define dMULTIPLYOP1_331(A, op, B, C)
 
#define dMULTIPLYOP0_331(A, op, B, C)
 
#define dMULTIPLY1_331(A, B, C)
 
#define dMULTIPLY0_331(A, B, C)
 
#define M__PI   3.14159265f
 
#define TST(expr1, expr2, norm, cc)
 
#define TST(expr1, expr2, n1, n2, n3, cc)
 

Typedefs

typedef btScalar dMatrix3[4 *3]
 

Functions

static btScalar dDOT (const btScalar *a, const btScalar *b)
 
static btScalar dDOT44 (const btScalar *a, const btScalar *b)
 
static btScalar dDOT41 (const btScalar *a, const btScalar *b)
 
static btScalar dDOT14 (const btScalar *a, const btScalar *b)
 
void dLineClosestApproach (const btVector3 &pa, const btVector3 &ua, const btVector3 &pb, const btVector3 &ub, btScalar *alpha, btScalar *beta)
 
static int intersectRectQuad2 (btScalar h[2], btScalar p[8], btScalar ret[16])
 
void cullPoints2 (int n, btScalar p[], int m, int i0, int iret[])
 
int dBoxBox2 (const btVector3 &p1, const dMatrix3 R1, const btVector3 &side1, const btVector3 &p2, const dMatrix3 R2, const btVector3 &side2, btVector3 &normal, btScalar *depth, int *return_code, int maxc, dContactGeom *, int, btDiscreteCollisionDetectorInterface::Result &output)
 

Macro Definition Documentation

◆ dDOTpq

#define dDOTpq ( a,
b,
p,
q )
Value:
((a)[0] * (b)[0] + (a)[p] * (b)[q] + (a)[2 * (p)] * (b)[2 * (q)])

Definition at line 49 of file btBoxBoxDetector.cpp.

◆ dInfinity

#define dInfinity   FLT_MAX

Definition at line 50 of file btBoxBoxDetector.cpp.

◆ dMULTIPLY0_331

#define dMULTIPLY0_331 ( A,
B,
C )
Value:
dMULTIPLYOP0_331(A, =, B, C)
#define dMULTIPLYOP0_331(A, op, B, C)

Definition at line 76 of file btBoxBoxDetector.cpp.

◆ dMULTIPLY1_331

#define dMULTIPLY1_331 ( A,
B,
C )
Value:
dMULTIPLYOP1_331(A, =, B, C)
#define dMULTIPLYOP1_331(A, op, B, C)

Definition at line 75 of file btBoxBoxDetector.cpp.

◆ dMULTIPLYOP0_331

#define dMULTIPLYOP0_331 ( A,
op,
B,
C )
Value:
{ \
(A)[0] op dDOT((B), (C)); \
(A)[1] op dDOT((B + 4), (C)); \
(A)[2] op dDOT((B + 8), (C)); \
}
static btScalar dDOT(const btScalar *a, const btScalar *b)

Definition at line 68 of file btBoxBoxDetector.cpp.

◆ dMULTIPLYOP1_331

#define dMULTIPLYOP1_331 ( A,
op,
B,
C )
Value:
{ \
(A)[0] op dDOT41((B), (C)); \
(A)[1] op dDOT41((B + 1), (C)); \
(A)[2] op dDOT41((B + 2), (C)); \
}
static btScalar dDOT41(const btScalar *a, const btScalar *b)

Definition at line 61 of file btBoxBoxDetector.cpp.

◆ M__PI

#define M__PI   3.14159265f

Definition at line 177 of file btBoxBoxDetector.cpp.

◆ TST [1/2]

#define TST ( expr1,
expr2,
n1,
n2,
n3,
cc )
Value:
s2 = btFabs(expr1) - (expr2); \
if (s2 > SIMD_EPSILON) return 0; \
l = btSqrt((n1) * (n1) + (n2) * (n2) + (n3) * (n3)); \
if (l > SIMD_EPSILON) \
{ \
s2 /= l; \
if (s2 * fudge_factor > s) \
{ \
s = s2; \
normalR = 0; \
normalC[0] = (n1) / l; \
normalC[1] = (n2) / l; \
normalC[2] = (n3) / l; \
invert_normal = ((expr1) < 0); \
code = (cc); \
} \
}
btScalar btSqrt(btScalar y)
Definition btScalar.h:466
btScalar btFabs(btScalar x)
Definition btScalar.h:497
#define SIMD_EPSILON
Definition btScalar.h:543

◆ TST [2/2]

#define TST ( expr1,
expr2,
norm,
cc )
Value:
s2 = btFabs(expr1) - (expr2); \
if (s2 > 0) return 0; \
if (s2 > s) \
{ \
s = s2; \
normalR = norm; \
invert_normal = ((expr1) < 0); \
code = (cc); \
}

Typedef Documentation

◆ dMatrix3

typedef btScalar dMatrix3[4 *3]

Definition at line 78 of file btBoxBoxDetector.cpp.

Function Documentation

◆ cullPoints2()

void cullPoints2 ( int n,
btScalar p[],
int m,
int i0,
int iret[] )

Definition at line 188 of file btBoxBoxDetector.cpp.

◆ dBoxBox2()

int dBoxBox2 ( const btVector3 & p1,
const dMatrix3 R1,
const btVector3 & side1,
const btVector3 & p2,
const dMatrix3 R2,
const btVector3 & side2,
btVector3 & normal,
btScalar * depth,
int * return_code,
int maxc,
dContactGeom * ,
int ,
btDiscreteCollisionDetectorInterface::Result & output )

Definition at line 272 of file btBoxBoxDetector.cpp.

◆ dDOT()

static btScalar dDOT ( const btScalar * a,
const btScalar * b )
static

Definition at line 57 of file btBoxBoxDetector.cpp.

◆ dDOT14()

static btScalar dDOT14 ( const btScalar * a,
const btScalar * b )
static

Definition at line 60 of file btBoxBoxDetector.cpp.

◆ dDOT41()

static btScalar dDOT41 ( const btScalar * a,
const btScalar * b )
static

Definition at line 59 of file btBoxBoxDetector.cpp.

◆ dDOT44()

static btScalar dDOT44 ( const btScalar * a,
const btScalar * b )
static

Definition at line 58 of file btBoxBoxDetector.cpp.

◆ dLineClosestApproach()

void dLineClosestApproach ( const btVector3 & pa,
const btVector3 & ua,
const btVector3 & pb,
const btVector3 & ub,
btScalar * alpha,
btScalar * beta )

Definition at line 83 of file btBoxBoxDetector.cpp.

◆ intersectRectQuad2()

static int intersectRectQuad2 ( btScalar h[2],
btScalar p[8],
btScalar ret[16] )
static

Definition at line 117 of file btBoxBoxDetector.cpp.