Bullet Collision Detection & Physics Library
Classes | Macros | Typedefs | Functions
btMprPenetration.h File Reference
#include "LinearMath/btTransform.h"
#include "LinearMath/btAlignedObjectArray.h"
Include dependency graph for btMprPenetration.h:

Go to the source code of this file.

Classes

struct  btMprCollisionDescription
 
struct  btMprDistanceInfo
 
struct  _btMprSupport_t
 
struct  _btMprSimplex_t
 

Macros

#define BT_DEBUG_MPR1
 2014 Oct, Erwin Coumans, Use templates to avoid void* casts More...
 
#define BT_MPR_SQRT   sqrt
 
#define BT_MPR_FMIN(x, y)   ((x) < (y) ? (x) : (y))
 
#define BT_MPR_FABS   fabs
 
#define BT_MPR_TOLERANCE   1E-6f
 
#define BT_MPR_MAX_ITERATIONS   1000
 

Typedefs

typedef struct _btMprSupport_t btMprSupport_t
 
typedef struct _btMprSimplex_t btMprSimplex_t
 

Functions

btMprSupport_tbtMprSimplexPointW (btMprSimplex_t *s, int idx)
 
void btMprSimplexSetSize (btMprSimplex_t *s, int size)
 
int btMprSimplexSize (const btMprSimplex_t *s)
 
const btMprSupport_tbtMprSimplexPoint (const btMprSimplex_t *s, int idx)
 
void btMprSupportCopy (btMprSupport_t *d, const btMprSupport_t *s)
 
void btMprSimplexSet (btMprSimplex_t *s, size_t pos, const btMprSupport_t *a)
 
void btMprSimplexSwap (btMprSimplex_t *s, size_t pos1, size_t pos2)
 
int btMprIsZero (float val)
 
int btMprEq (float _a, float _b)
 
int btMprVec3Eq (const btVector3 *a, const btVector3 *b)
 
template<typename btConvexTemplate >
void btFindOrigin (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, btMprSupport_t *center)
 
void btMprVec3Set (btVector3 *v, float x, float y, float z)
 
void btMprVec3Add (btVector3 *v, const btVector3 *w)
 
void btMprVec3Copy (btVector3 *v, const btVector3 *w)
 
void btMprVec3Scale (btVector3 *d, float k)
 
float btMprVec3Dot (const btVector3 *a, const btVector3 *b)
 
float btMprVec3Len2 (const btVector3 *v)
 
void btMprVec3Normalize (btVector3 *d)
 
void btMprVec3Cross (btVector3 *d, const btVector3 *a, const btVector3 *b)
 
void btMprVec3Sub2 (btVector3 *d, const btVector3 *v, const btVector3 *w)
 
void btPortalDir (const btMprSimplex_t *portal, btVector3 *dir)
 
int portalEncapsulesOrigin (const btMprSimplex_t *portal, const btVector3 *dir)
 
int portalReachTolerance (const btMprSimplex_t *portal, const btMprSupport_t *v4, const btVector3 *dir)
 
int portalCanEncapsuleOrigin (const btMprSimplex_t *portal, const btMprSupport_t *v4, const btVector3 *dir)
 
void btExpandPortal (btMprSimplex_t *portal, const btMprSupport_t *v4)
 
template<typename btConvexTemplate >
void btMprSupport (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, const btVector3 &dir, btMprSupport_t *supp)
 
template<typename btConvexTemplate >
static int btDiscoverPortal (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, btMprSimplex_t *portal)
 
template<typename btConvexTemplate >
static int btRefinePortal (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, btMprSimplex_t *portal)
 
static void btFindPos (const btMprSimplex_t *portal, btVector3 *pos)
 
float btMprVec3Dist2 (const btVector3 *a, const btVector3 *b)
 
float _btMprVec3PointSegmentDist2 (const btVector3 *P, const btVector3 *x0, const btVector3 *b, btVector3 *witness)
 
float btMprVec3PointTriDist2 (const btVector3 *P, const btVector3 *x0, const btVector3 *B, const btVector3 *C, btVector3 *witness)
 
template<typename btConvexTemplate >
static void btFindPenetr (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, btMprSimplex_t *portal, float *depth, btVector3 *pdir, btVector3 *pos)
 
static void btFindPenetrTouch (btMprSimplex_t *portal, float *depth, btVector3 *dir, btVector3 *pos)
 
static void btFindPenetrSegment (btMprSimplex_t *portal, float *depth, btVector3 *dir, btVector3 *pos)
 
template<typename btConvexTemplate >
int btMprPenetration (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, float *depthOut, btVector3 *dirOut, btVector3 *posOut)
 
template<typename btConvexTemplate , typename btMprDistanceTemplate >
int btComputeMprPenetration (const btConvexTemplate &a, const btConvexTemplate &b, const btMprCollisionDescription &colDesc, btMprDistanceTemplate *distInfo)
 

Macro Definition Documentation

#define BT_DEBUG_MPR1

2014 Oct, Erwin Coumans, Use templates to avoid void* casts

Definition at line 24 of file btMprPenetration.h.

#define BT_MPR_FABS   fabs

Definition at line 65 of file btMprPenetration.h.

#define BT_MPR_FMIN (   x,
 
)    ((x) < (y) ? (x) : (y))

Definition at line 64 of file btMprPenetration.h.

#define BT_MPR_MAX_ITERATIONS   1000

Definition at line 68 of file btMprPenetration.h.

#define BT_MPR_SQRT   sqrt

Definition at line 62 of file btMprPenetration.h.

#define BT_MPR_TOLERANCE   1E-6f

Definition at line 67 of file btMprPenetration.h.

Typedef Documentation

Definition at line 83 of file btMprPenetration.h.

Definition at line 76 of file btMprPenetration.h.

Function Documentation

float _btMprVec3PointSegmentDist2 ( const btVector3 P,
const btVector3 x0,
const btVector3 b,
btVector3 witness 
)
inline

Definition at line 592 of file btMprPenetration.h.

template<typename btConvexTemplate , typename btMprDistanceTemplate >
int btComputeMprPenetration ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
btMprDistanceTemplate *  distInfo 
)
inline

Definition at line 887 of file btMprPenetration.h.

template<typename btConvexTemplate >
static int btDiscoverPortal ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
btMprSimplex_t portal 
)
static

Definition at line 340 of file btMprPenetration.h.

void btExpandPortal ( btMprSimplex_t portal,
const btMprSupport_t v4 
)
inline

Definition at line 298 of file btMprPenetration.h.

template<typename btConvexTemplate >
void btFindOrigin ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
btMprSupport_t center 
)
inline

Definition at line 184 of file btMprPenetration.h.

template<typename btConvexTemplate >
static void btFindPenetr ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
btMprSimplex_t portal,
float *  depth,
btVector3 pdir,
btVector3 pos 
)
static

Definition at line 735 of file btMprPenetration.h.

static void btFindPenetrSegment ( btMprSimplex_t portal,
float *  depth,
btVector3 dir,
btVector3 pos 
)
static

Definition at line 804 of file btMprPenetration.h.

static void btFindPenetrTouch ( btMprSimplex_t portal,
float *  depth,
btVector3 dir,
btVector3 pos 
)
static

Definition at line 785 of file btMprPenetration.h.

static void btFindPos ( const btMprSimplex_t portal,
btVector3 pos 
)
static

Definition at line 513 of file btMprPenetration.h.

int btMprEq ( float  _a,
float  _b 
)
inline

Definition at line 147 of file btMprPenetration.h.

int btMprIsZero ( float  val)
inline

Definition at line 140 of file btMprPenetration.h.

template<typename btConvexTemplate >
int btMprPenetration ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
float *  depthOut,
btVector3 dirOut,
btVector3 posOut 
)
inline

Definition at line 828 of file btMprPenetration.h.

const btMprSupport_t* btMprSimplexPoint ( const btMprSimplex_t s,
int  idx 
)
inline

Definition at line 113 of file btMprPenetration.h.

btMprSupport_t* btMprSimplexPointW ( btMprSimplex_t s,
int  idx 
)
inline

Definition at line 85 of file btMprPenetration.h.

void btMprSimplexSet ( btMprSimplex_t s,
size_t  pos,
const btMprSupport_t a 
)
inline

Definition at line 124 of file btMprPenetration.h.

void btMprSimplexSetSize ( btMprSimplex_t s,
int  size 
)
inline

Definition at line 90 of file btMprPenetration.h.

int btMprSimplexSize ( const btMprSimplex_t s)
inline

Definition at line 107 of file btMprPenetration.h.

void btMprSimplexSwap ( btMprSimplex_t s,
size_t  pos1,
size_t  pos2 
)
inline

Definition at line 130 of file btMprPenetration.h.

template<typename btConvexTemplate >
void btMprSupport ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
const btVector3 dir,
btMprSupport_t supp 
)
inline

Definition at line 323 of file btMprPenetration.h.

void btMprSupportCopy ( btMprSupport_t d,
const btMprSupport_t s 
)
inline

Definition at line 119 of file btMprPenetration.h.

void btMprVec3Add ( btVector3 v,
const btVector3 w 
)
inline

Definition at line 197 of file btMprPenetration.h.

void btMprVec3Copy ( btVector3 v,
const btVector3 w 
)
inline

Definition at line 202 of file btMprPenetration.h.

void btMprVec3Cross ( btVector3 d,
const btVector3 a,
const btVector3 b 
)
inline

Definition at line 232 of file btMprPenetration.h.

float btMprVec3Dist2 ( const btVector3 a,
const btVector3 b 
)
inline

Definition at line 585 of file btMprPenetration.h.

float btMprVec3Dot ( const btVector3 a,
const btVector3 b 
)
inline

Definition at line 212 of file btMprPenetration.h.

int btMprVec3Eq ( const btVector3 a,
const btVector3 b 
)
inline

Definition at line 166 of file btMprPenetration.h.

float btMprVec3Len2 ( const btVector3 v)
inline

Definition at line 221 of file btMprPenetration.h.

void btMprVec3Normalize ( btVector3 d)
inline

Definition at line 226 of file btMprPenetration.h.

float btMprVec3PointTriDist2 ( const btVector3 P,
const btVector3 x0,
const btVector3 B,
const btVector3 C,
btVector3 witness 
)
inline

Definition at line 651 of file btMprPenetration.h.

void btMprVec3Scale ( btVector3 d,
float  k 
)
inline

Definition at line 207 of file btMprPenetration.h.

void btMprVec3Set ( btVector3 v,
float  x,
float  y,
float  z 
)
inline

Definition at line 192 of file btMprPenetration.h.

void btMprVec3Sub2 ( btVector3 d,
const btVector3 v,
const btVector3 w 
)
inline

Definition at line 239 of file btMprPenetration.h.

void btPortalDir ( const btMprSimplex_t portal,
btVector3 dir 
)
inline

Definition at line 244 of file btMprPenetration.h.

template<typename btConvexTemplate >
static int btRefinePortal ( const btConvexTemplate &  a,
const btConvexTemplate &  b,
const btMprCollisionDescription colDesc,
btMprSimplex_t portal 
)
static

Definition at line 475 of file btMprPenetration.h.

int portalCanEncapsuleOrigin ( const btMprSimplex_t portal,
const btMprSupport_t v4,
const btVector3 dir 
)
inline

Definition at line 289 of file btMprPenetration.h.

int portalEncapsulesOrigin ( const btMprSimplex_t portal,
const btVector3 dir 
)
inline

Definition at line 257 of file btMprPenetration.h.

int portalReachTolerance ( const btMprSimplex_t portal,
const btMprSupport_t v4,
const btVector3 dir 
)
inline

Definition at line 265 of file btMprPenetration.h.