22 template <
typename Real>
25 public TIQuery<Real, Ray3<Real>, AlignedBox3<Real>>
30 public TIQuery<Real, Ray3<Real>, AlignedBox3<Real>>::Result
38 template <
typename Real>
41 public FIQuery<Real, Ray3<Real>, AlignedBox3<Real>>
46 public FIQuery<Real, Ray3<Real>, AlignedBox3<Real>>::Result
55 template <
typename Real>
64 Dot(diff, box.axis[0]),
65 Dot(diff, box.axis[1]),
66 Dot(diff, box.axis[2])
70 Dot(ray.direction, box.axis[0]),
71 Dot(ray.direction, box.axis[1]),
72 Dot(ray.direction, box.axis[2])
76 this->DoQuery(rayOrigin, rayDirection, box.extent, result);
80 template <
typename Real>
89 Dot(diff, box.axis[0]),
90 Dot(diff, box.axis[1]),
91 Dot(diff, box.axis[2])
95 Dot(ray.direction, box.axis[0]),
96 Dot(ray.direction, box.axis[1]),
97 Dot(ray.direction, box.axis[2])
101 this->DoQuery(rayOrigin, rayDirection, box.extent, result);
102 for (
int i = 0; i < result.numPoints; ++i)
105 ray.origin + result.lineParameter[i] * ray.direction;
DualQuaternion< Real > Dot(DualQuaternion< Real > const &d0, DualQuaternion< Real > const &d1)
Result operator()(Type0 const &primitive0, Type1 const &primitive1)