28 #pragma warning(disable:4786) // identifier was truncated to '255' 59 for (
int j = 0; j < n; ++j) {
67 else swap(l[i], l[--mid]);
69 if (mid == 0 || mid == n) mid = n / 2;
84 int num_box_tests = 0;
94 if (a[
X] +
dot(abs_b2a[
X], b) < fabs(pos_b2a[
X]))
return false;
95 if (a[
Y] +
dot(abs_b2a[
Y], b) < fabs(pos_b2a[
Y]))
return false;
96 if (a[
Z] +
dot(abs_b2a[
Z], b) < fabs(pos_b2a[
Z]))
return false;
98 if (b[
X] +
dot(abs_a2b[
X], a) < fabs(pos_a2b[
X]))
return false;
99 if (b[
Y] +
dot(abs_a2b[
Y], a) < fabs(pos_a2b[
Y]))
return false;
100 if (b[
Z] +
dot(abs_a2b[
Z], a) < fabs(pos_a2b[
Z]))
return false;
135 *((
const BBoxLeaf *)b)->poly, b2a, v);
141 b2a, abs_b2a, a2b, abs_a2b, v) ||
143 b2a, abs_b2a, a2b, abs_a2b, v);
180 *((
const BBoxLeaf *)b)->poly, b2a, v)) {
191 b2a, abs_b2a, a2b, abs_a2b, v, pa, pb) ||
193 b2a, abs_b2a, a2b, abs_a2b, v, pa, pb);
225 *((
const BBoxLeaf *)b)->poly, b2a, v, pa, pb);
231 b2a, abs_b2a, a2b, abs_a2b, v, pa, pb) ||
233 b2a, abs_b2a, a2b, abs_a2b, v, pa, pb);
bool sep_axes_test(const Vector &a, const Vector &b, const Matrix &abs_b2a, const Vector &pos_b2a, const Matrix &abs_a2b, const Vector &pos_a2b)
bool intersect(const BBox &a, const BBox &b, const Transform &b2a, const Matrix &abs_b2a, const Transform &a2b, const Matrix &abs_a2b)
const Point & getCenter() const
Scalar dot(const Quaternion &q1, const Quaternion &q2)
bool common_point(const BBoxNode *tree, const Convex &c, const BBox &bb, const Transform &b2a, Vector &v, Point &pa, Point &pb)
bool operator()(const BBoxNode &p1, const BBoxNode &p2) const
void include(const Point &p)
const Vector & getExtent() const
class BBoxCompAxis bboxCompAxis[3]
bool find_prim(const BBoxNode *tree, const Convex &c, const BBox &bb, const Transform &b2a, Vector &v, ShapePtr &p)