Blender V2.61 - r43446
|
#include "btBoxBoxDetector.h"
#include "BulletCollision/CollisionShapes/btBoxShape.h"
#include <float.h>
#include <string.h>
Go to the source code of this file.
Defines | |
#define | dDOTpq(a, b, p, q) ((a)[0]*(b)[0] + (a)[p]*(b)[q] + (a)[2*(p)]*(b)[2*(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) dMULTIPLYOP1_331(A,=,B,C) |
#define | dMULTIPLY0_331(A, B, C) dMULTIPLYOP0_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) |
#define dInfinity FLT_MAX |
Definition at line 52 of file btBoxBoxDetector.cpp.
Referenced by dBoxBox2().
#define dMULTIPLY0_331 | ( | A, | |
B, | |||
C | |||
) | dMULTIPLYOP0_331(A,=,B,C) |
Definition at line 79 of file btBoxBoxDetector.cpp.
Referenced by dBoxBox2().
#define dMULTIPLY1_331 | ( | A, | |
B, | |||
C | |||
) | dMULTIPLYOP1_331(A,=,B,C) |
Definition at line 78 of file btBoxBoxDetector.cpp.
Referenced by dBoxBox2().
#define dMULTIPLYOP0_331 | ( | A, | |
op, | |||
B, | |||
C | |||
) |
#define dMULTIPLYOP1_331 | ( | A, | |
op, | |||
B, | |||
C | |||
) |
#define M__PI 3.14159265f |
Definition at line 174 of file btBoxBoxDetector.cpp.
Referenced by cullPoints2().
#define TST | ( | expr1, | |
expr2, | |||
n1, | |||
n2, | |||
n3, | |||
cc | |||
) |
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); \ } \ }
#define TST | ( | expr1, | |
expr2, | |||
norm, | |||
cc | |||
) |
s2 = btFabs(expr1) - (expr2); \ if (s2 > 0) return 0; \ if (s2 > s) { \ s = s2; \ normalR = norm; \ invert_normal = ((expr1) < 0); \ code = (cc); \ }
Referenced by dBoxBox2().
Definition at line 81 of file btBoxBoxDetector.cpp.
void cullPoints2 | ( | int | n, |
btScalar | p[], | ||
int | m, | ||
int | i0, | ||
int | iret[] | ||
) |
Definition at line 185 of file btBoxBoxDetector.cpp.
References A, BT_LARGE_FLOAT, btAssert, btAtan2(), btFabs(), KDL::diff(), i, M__PI, and SIMD_EPSILON.
Referenced by 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 262 of file btBoxBoxDetector.cpp.
References A, btDiscreteCollisionDetectorInterface::Result::addContactPoint(), B, btFabs(), cullPoints2(), dDOT(), dDOT14(), dDOT41(), dDOT44(), dInfinity, dLineClosestApproach(), dMULTIPLY0_331, dMULTIPLY1_331, credits_svn_gen::e, i, intersectRectQuad2(), p, pp, TNT::sign(), and TST.
Referenced by btBoxBoxDetector::getClosestPoints().
Definition at line 60 of file btBoxBoxDetector.cpp.
References dDOTpq.
Referenced by dBoxBox2(), and dLineClosestApproach().
void dLineClosestApproach | ( | const btVector3 & | pa, |
const btVector3 & | ua, | ||
const btVector3 & | pb, | ||
const btVector3 & | ub, | ||
btScalar * | alpha, | ||
btScalar * | beta | ||
) |
Definition at line 86 of file btBoxBoxDetector.cpp.
References simple_enum_gen::d, dDOT(), and p.
Referenced by dBoxBox2().
Definition at line 120 of file btBoxBoxDetector.cpp.
References i, p, and TNT::sign().
Referenced by dBoxBox2().