38 #ifndef FCL_CCD_TAYLOR_VECTOR_INL_H
39 #define FCL_CCD_TAYLOR_VECTOR_INL_H
77 setTimeInterval(time_interval);
108 template <
typename S>
117 template <
typename S>
120 return TVector3(i_[0] + other.
i_[0], i_[1] + other.
i_[1], i_[2] + other.
i_[2]);
124 template <
typename S>
127 return TVector3(i_[0] - other.
i_[0], i_[1] - other.
i_[1], i_[2] - other.
i_[2]);
131 template <
typename S>
134 return TVector3(-i_[0], -i_[1], -i_[2]);
138 template <
typename S>
141 i_[0] += other.
i_[0];
142 i_[1] += other.
i_[1];
143 i_[2] += other.
i_[2];
148 template <
typename S>
151 i_[0] -= other.
i_[0];
152 i_[1] -= other.
i_[1];
153 i_[2] -= other.
i_[2];
158 template <
typename S>
161 return TVector3(i_[0] + other[0], i_[1] + other[1], i_[2] + other[2]);
165 template <
typename S>
175 template <
typename S>
178 return TVector3(i_[0] - other[0], i_[1] - other[1], i_[2] - other[2]);
182 template <
typename S>
192 template <
typename S>
195 return TVector3(i_[0] * d, i_[1] * d, i_[2] * d);
199 template <
typename S>
209 template <
typename S>
212 return TVector3(i_[0] * d, i_[1] * d, i_[2] * d);
216 template <
typename S>
226 template <
typename S>
233 template <
typename S>
240 template <
typename S>
243 return i_[0] * other.
i_[0] + i_[1] * other.
i_[1] + i_[2] * other.
i_[2];
247 template <
typename S>
251 i_[2] * other.
i_[0] - i_[0] * other.
i_[2],
252 i_[0] * other.
i_[1] - i_[1] * other.
i_[0]);
256 template <
typename S>
259 return i_[0] * other[0] + i_[1] * other[1] + i_[2] * other[2];
263 template <
typename S>
266 return TVector3<S>(i_[1] * other[2] - i_[2] * other[1],
267 i_[2] * other[0] - i_[0] * other[2],
268 i_[0] * other[1] - i_[1] * other[0]);
272 template <
typename S>
275 return i_[0].getBound().diameter() * i_[1].getBound().diameter() * i_[2].getBound().diameter();
279 template <
typename S>
282 return IVector3<S>(i_[0].getBound(), i_[1].getBound(), i_[2].getBound());
286 template <
typename S>
289 return IVector3<S>(i_[0].getBound(l,
r), i_[1].getBound(l,
r), i_[2].getBound(l,
r));
293 template <
typename S>
296 return IVector3<S>(i_[0].getBound(t), i_[1].getBound(t), i_[2].getBound(t));
300 template <
typename S>
303 return IVector3<S>(i_[0].getTightBound(), i_[1].getTightBound(), i_[2].getTightBound());
307 template <
typename S>
310 return IVector3<S>(i_[0].getTightBound(l,
r), i_[1].getTightBound(l,
r), i_[2].getTightBound(l,
r));
314 template <
typename S>
323 template <
typename S>
326 return i_[0] * i_[0] + i_[1] * i_[1] + i_[2] * i_[2];
330 template <
typename S>
333 i_[0].setTimeInterval(time_interval);
334 i_[1].setTimeInterval(time_interval);
335 i_[2].setTimeInterval(time_interval);
339 template <
typename S>
342 i_[0].setTimeInterval(l,
r);
343 i_[1].setTimeInterval(l,
r);
344 i_[2].setTimeInterval(l,
r);
348 template <
typename S>
351 return i_[0].getTimeInterval();
355 template <
typename S>
364 template <
typename S>
376 template <
typename S>
383 template <
typename S>