19 template <
typename Real>
32 template <
typename Real>
35 public FIQuery<Real, Line2<Real>, Circle2<Real>>
40 public FIQuery<Real, Line2<Real>, Circle2<Real>>::Result
55 template <
typename Real>
62 result.intersect = scQuery(segment, circle).intersect;
66 template <
typename Real>
73 segment.GetCenteredForm(segOrigin, segDirection, segExtent);
76 DoQuery(segOrigin, segDirection, segExtent, circle, result);
77 for (
int i = 0; i < result.numIntersections; ++i)
79 result.point[i] = segOrigin + result.parameter[i] * segDirection;
84 template <
typename Real>
90 segDirection, circle, result);
97 std::array<Real, 2> segInterval = { -segExtent, segExtent };
99 auto iiResult = iiQuery(result.parameter, segInterval);
100 result.intersect = iiResult.intersect;
101 result.numIntersections = iiResult.numIntersections;
102 result.parameter = iiResult.overlap;
Result operator()(Type0 const &primitive0, Type1 const &primitive1)