20 template <
int N,
typename Rational>
40 template <
int N,
typename Rational>
46 return operator()(segment0.
p[0], segment0.
p[1], segment1.
p[0],
50 template <
int N,
typename Rational>
59 Rational
a =
Dot(P1mP0, P1mP0);
60 Rational
b =
Dot(P1mP0, Q1mQ0);
61 Rational
c =
Dot(Q1mQ0, Q1mQ0);
62 Rational d =
Dot(P1mP0, P0mQ0);
63 Rational e =
Dot(Q1mQ0, P0mQ0);
64 Rational
const zero = (Rational)0;
65 Rational
const one = (Rational)1;
66 Rational det = a * c - b *
b;
67 Rational
s,
t, nd, bmd, bte, ctd, bpe, ate, btd;
281 result.
closest[0] = P0 + s * P1mP0;
282 result.
closest[1] = Q0 + t * Q1mQ0;
std::array< Vector< N, Real >, 2 > p
Vector< N, Rational > closest[2]
GLboolean GLboolean GLboolean GLboolean a
DualQuaternion< Real > Dot(DualQuaternion< Real > const &d0, DualQuaternion< Real > const &d1)
GLboolean GLboolean GLboolean b
Result operator()(Segment< N, Rational > const &segment0, Segment< N, Rational > const &segment1)