19 template <
typename Real>
31 template <
typename Real>
34 public FIQuery<Real, Line2<Real>, Circle2<Real>>
39 public FIQuery<Real, Line2<Real>, Circle2<Real>>::Result
53 template <
typename Real>
60 result.intersect = rcQuery(ray, circle).intersect;
64 template <
typename Real>
70 DoQuery(ray.origin, ray.direction, circle, result);
71 for (
int i = 0; i < result.numIntersections; ++i)
73 result.point[i] = ray.origin + result.parameter[i] * ray.direction;
78 template <
typename Real>
84 rayDirection, circle, result);
91 std::array<Real, 2> rayInterval = { (Real)0, std::numeric_limits<Real>::max() };
93 auto iiResult = iiQuery(result.parameter, rayInterval);
94 result.intersect = iiResult.intersect;
95 result.numIntersections = iiResult.numIntersections;
96 result.parameter = iiResult.overlap;
Result operator()(Type0 const &primitive0, Type1 const &primitive1)