DART  6.6.2
DARTCollide.cpp File Reference

Classes

struct  dart::collision::dContactGeom
 

Namespaces

 dart
 
 dart::collision
 

Macros

#define DART_COLLISION_EPS   1E-6
 
#define dMULTIPLYOP0_331(A, op, B, C)
 
#define dMULTIPLYOP1_331(A, op, B, C)
 
#define dRecip(x)   (1.0/(x))
 
#define TST(expr1, expr2, norm, cc)
 
#define TST(expr1, expr2, n1, n2, n3, cc)
 
#define TEMP_INNER14(a, b)   (a[0]*(b)[0] + a[1]*(b)[4] + a[2]*(b)[8])
 

Typedefs

typedef double dart::collision::dVector3[4]
 
typedef double dart::collision::dVector4[4]
 
typedef double dart::collision::dMatrix3[12]
 
typedef double dart::collision::dMatrix4[16]
 
typedef double dart::collision::dMatrix6[48]
 
typedef double dart::collision::dQuaternion[4]
 

Functions

void dart::collision::convVector (const Eigen::Vector3d &p0, dVector3 &p1)
 
void dart::collision::convMatrix (const Eigen::Isometry3d &T0, dMatrix3 &R0)
 
double dart::collision::Inner (const double *a, const double *b)
 
double dart::collision::Inner14 (const double *a, const double *b)
 
double dart::collision::Inner41 (const double *a, const double *b)
 
double dart::collision::Inner44 (const double *a, const double *b)
 
void dart::collision::dMULTIPLY0_331 (double *A, const double *B, const double *C)
 
void dart::collision::dMULTIPLY1_331 (double *A, const double *B, const double *C)
 
void dart::collision::cullPoints (int n, double p[], int m, int i0, int iret[])
 
void dart::collision::dLineClosestApproach (const dVector3 pa, const dVector3 ua, const dVector3 pb, const dVector3 ub, double *alpha, double *beta)
 
int dart::collision::intersectRectQuad (double h[2], double p[8], double ret[16])
 
void dart::collision::dClosestLineBoxPoints (const dVector3 p1, const dVector3 p2, const dVector3 c, const dMatrix3 R, const dVector3 side, dVector3 lret, dVector3 bret)
 
int dart::collision::dBoxBox (CollisionObject *o1, CollisionObject *o2, const dVector3 p1, const dMatrix3 R1, const dVector3 side1, const dVector3 p2, const dMatrix3 R2, const dVector3 side2, CollisionResult &result)
 
int dart::collision::collideBoxBox (CollisionObject *o1, CollisionObject *o2, const Eigen::Vector3d &size0, const Eigen::Isometry3d &T0, const Eigen::Vector3d &size1, const Eigen::Isometry3d &T1, CollisionResult &result)
 
int dart::collision::collideBoxSphere (CollisionObject *o1, CollisionObject *o2, const Eigen::Vector3d &size0, const Eigen::Isometry3d &T0, const double &r1, const Eigen::Isometry3d &T1, CollisionResult &result)
 
int dart::collision::collideSphereBox (CollisionObject *o1, CollisionObject *o2, const double &r0, const Eigen::Isometry3d &T0, const Eigen::Vector3d &size1, const Eigen::Isometry3d &T1, CollisionResult &result)
 
int dart::collision::collideSphereSphere (CollisionObject *o1, CollisionObject *o2, const double &_r0, const Eigen::Isometry3d &c0, const double &_r1, const Eigen::Isometry3d &c1, CollisionResult &result)
 
int dart::collision::collideCylinderSphere (CollisionObject *o1, CollisionObject *o2, const double &cyl_rad, const double &half_height, const Eigen::Isometry3d &T0, const double &sphere_rad, const Eigen::Isometry3d &T1, CollisionResult &result)
 
int dart::collision::collideCylinderPlane (CollisionObject *o1, CollisionObject *o2, const double &cyl_rad, const double &half_height, const Eigen::Isometry3d &T0, const Eigen::Vector3d &plane_normal, const Eigen::Isometry3d &T1, CollisionResult &result)
 
int dart::collision::collide (CollisionObject *o1, CollisionObject *o2, CollisionResult &result)
 

Variables

static const int dart::collision::MAX_CYLBOX_CLIP_POINTS = 16
 
static const int dart::collision::nCYLINDER_AXIS = 2
 
static const int dart::collision::nCYLINDER_SEGMENT = 8
 

Macro Definition Documentation

◆ DART_COLLISION_EPS

#define DART_COLLISION_EPS   1E-6

◆ dMULTIPLYOP0_331

#define dMULTIPLYOP0_331 (   A,
  op,
  B,
 
)
Value:
(A)[0] op Inner((B),(C)); \
(A)[1] op Inner((B+4),(C)); \
(A)[2] op Inner((B+8),(C));
double Inner(const double *a, const double *b)
Definition: DARTCollide.cpp:87

◆ dMULTIPLYOP1_331

#define dMULTIPLYOP1_331 (   A,
  op,
  B,
 
)
Value:
(A)[0] op Inner41((B),(C)); \
(A)[1] op Inner41((B+1),(C)); \
(A)[2] op Inner41((B+2),(C));
double Inner41(const double *a, const double *b)
Definition: DARTCollide.cpp:93

◆ dRecip

#define dRecip (   x)    (1.0/(x))

◆ TEMP_INNER14

#define TEMP_INNER14 (   a,
 
)    (a[0]*(b)[0] + a[1]*(b)[4] + a[2]*(b)[8])

◆ TST [1/2]

#define TST (   expr1,
  expr2,
  n1,
  n2,
  n3,
  cc 
)
Value:
s2 = std::abs(expr1) - (expr2); \
l = sqrt ((n1)*(n1) + (n2)*(n2) + (n3)*(n3)); \
if (l > 0) { \
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); \
} \
}

◆ TST [2/2]

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