22 template <
typename Real>
25 public TIQuery<Real, Segment3<Real>, AlignedBox3<Real>>
30 public TIQuery<Real, Segment3<Real>, AlignedBox3<Real>>::Result
39 template <
typename Real>
42 public FIQuery<Real, Segment3<Real>, AlignedBox3<Real>>
47 public FIQuery<Real, Segment3<Real>, AlignedBox3<Real>>::Result
57 template <
typename Real>
65 segment.GetCenteredForm(tmpOrigin, tmpDirection, segExtent);
69 Dot(diff, box.axis[0]),
70 Dot(diff, box.axis[1]),
71 Dot(diff, box.axis[2])
75 Dot(tmpDirection, box.axis[0]),
76 Dot(tmpDirection, box.axis[1]),
77 Dot(tmpDirection, box.axis[2])
81 this->DoQuery(segOrigin, segDirection, segExtent, box.extent, result);
85 template <
typename Real>
93 segment.GetCenteredForm(tmpOrigin, tmpDirection, segExtent);
97 Dot(diff, box.axis[0]),
98 Dot(diff, box.axis[1]),
99 Dot(diff, box.axis[2])
103 Dot(tmpDirection, box.axis[0]),
104 Dot(tmpDirection, box.axis[1]),
105 Dot(tmpDirection, box.axis[2])
109 this->DoQuery(segOrigin, segDirection, segExtent, box.extent, result);
110 for (
int i = 0; i < result.numPoints; ++i)
112 result.point[i] = segOrigin + result.lineParameter[i] * segDirection;
DualQuaternion< Real > Dot(DualQuaternion< Real > const &d0, DualQuaternion< Real > const &d1)
Result operator()(Type0 const &primitive0, Type1 const &primitive1)