29 if(
GREATER(Tx, t))
return FALSE;
33 if(
GREATER(Ty, t))
return FALSE;
37 if(
GREATER(Tz, t))
return FALSE;
41 if(
GREATER(t, t2))
return FALSE;
44 if(
GREATER(t, t2))
return FALSE;
47 if(
GREATER(t, t2))
return FALSE;
78 float Tx = mTBoxToModel.x - center.
x; t = extents.
x + mBBx1;
if(
GREATER(Tx, t))
return FALSE;
79 float Ty = mTBoxToModel.y - center.
y; t = extents.
y + mBBy1;
if(
GREATER(Ty, t))
return FALSE;
80 float Tz = mTBoxToModel.z - center.
z; t = extents.
z + mBBz1;
if(
GREATER(Tz, t))
return FALSE;
83 t = Tx*mRBoxToModel.m[0][0] + Ty*mRBoxToModel.m[0][1] + Tz*mRBoxToModel.m[0][2];
84 t2 = extents.
x*
mAR.
m[0][0] + extents.
y*
mAR.
m[0][1] + extents.
z*
mAR.
m[0][2] + mBoxExtents.x;
87 t = Tx*mRBoxToModel.m[1][0] + Ty*mRBoxToModel.m[1][1] + Tz*mRBoxToModel.m[1][2];
88 t2 = extents.
x*
mAR.
m[1][0] + extents.
y*
mAR.
m[1][1] + extents.
z*
mAR.
m[1][2] + mBoxExtents.y;
91 t = Tx*mRBoxToModel.m[2][0] + Ty*mRBoxToModel.m[2][1] + Tz*mRBoxToModel.m[2][2];
92 t2 = extents.
x*
mAR.
m[2][0] + extents.
y*
mAR.
m[2][1] + extents.
z*
mAR.
m[2][2] + mBoxExtents.z;
100 t = Tz*mRBoxToModel.m[0][1] - Ty*mRBoxToModel.m[0][2]; t2 = extents.
y*
mAR.
m[0][2] + extents.
z*
mAR.
m[0][1] + mBB_1;
if(
GREATER(t, t2))
return FALSE;
101 t = Tz*mRBoxToModel.m[1][1] - Ty*mRBoxToModel.m[1][2]; t2 = extents.
y*
mAR.
m[1][2] + extents.
z*
mAR.
m[1][1] + mBB_2;
if(
GREATER(t, t2))
return FALSE;
102 t = Tz*mRBoxToModel.m[2][1] - Ty*mRBoxToModel.m[2][2]; t2 = extents.
y*
mAR.
m[2][2] + extents.
z*
mAR.
m[2][1] + mBB_3;
if(
GREATER(t, t2))
return FALSE;
103 t = Tx*mRBoxToModel.m[0][2] - Tz*mRBoxToModel.m[0][0]; t2 = extents.
x*
mAR.
m[0][2] + extents.
z*
mAR.
m[0][0] + mBB_4;
if(
GREATER(t, t2))
return FALSE;
104 t = Tx*mRBoxToModel.m[1][2] - Tz*mRBoxToModel.m[1][0]; t2 = extents.
x*
mAR.
m[1][2] + extents.
z*
mAR.
m[1][0] + mBB_5;
if(
GREATER(t, t2))
return FALSE;
105 t = Tx*mRBoxToModel.m[2][2] - Tz*mRBoxToModel.m[2][0]; t2 = extents.
x*
mAR.
m[2][2] + extents.
z*
mAR.
m[2][0] + mBB_6;
if(
GREATER(t, t2))
return FALSE;
106 t = Ty*mRBoxToModel.m[0][0] - Tx*mRBoxToModel.m[0][1]; t2 = extents.
x*
mAR.
m[0][1] + extents.
y*
mAR.
m[0][0] + mBB_7;
if(
GREATER(t, t2))
return FALSE;
107 t = Ty*mRBoxToModel.m[1][0] - Tx*mRBoxToModel.m[1][1]; t2 = extents.
x*
mAR.
m[1][1] + extents.
y*
mAR.
m[1][0] + mBB_8;
if(
GREATER(t, t2))
return FALSE;
108 t = Ty*mRBoxToModel.m[2][0] - Tx*mRBoxToModel.m[2][1]; t2 = extents.
x*
mAR.
m[2][1] + extents.
y*
mAR.
m[2][0] + mBB_9;
if(
GREATER(t, t2))
return FALSE;
119 float tx = mBox.mCenter.x - center.
x;
float ex = extents.
x + mBox.mExtents.x;
if(
GREATER(tx, ex))
return FALSE;
120 float ty = mBox.mCenter.y - center.
y;
float ey = extents.
y + mBox.mExtents.y;
if(
GREATER(ty, ey))
return FALSE;
121 float tz = mBox.mCenter.z - center.
z;
float ez = extents.
z + mBox.mExtents.z;
if(
GREATER(tz, ez))
return FALSE;
bool mFullBoxBoxTest
Perform full BV-BV tests (true) or SAT-lite tests (false)
udword mNbBVBVTests
Number of BV-BV tests.
Matrix3x3 mAR
Absolute rotation matrix.
int BOOL
Another boolean type.
Point mT1to0
Translation from object1 to object0.
Matrix3x3 mR1to0
Rotation from object1 to object0.
inline_ BOOL BoxBoxOverlap(const Point &ea, const Point &ca, const Point &eb, const Point &cb)