13 #ifndef eli_geom_intersect_minimum_distance_plane_hpp
14 #define eli_geom_intersect_minimum_distance_plane_hpp
18 #include "eli/code_eli.hpp"
28 template<
typename Derived1__,
typename Derived2__,
typename Derived3__,
typename Derived4__>
29 typename Derived1__::Scalar
minimum_distance(
typename Derived1__::Scalar &u,
typename Derived1__::Scalar &v,
30 const Eigen::MatrixBase<Derived1__> &a,
const Eigen::MatrixBase<Derived2__> &b,
31 const Eigen::MatrixBase<Derived3__> &c,
const Eigen::MatrixBase<Derived4__> &pt)
33 Eigen::Matrix<typename Derived1__::Scalar, 1, Eigen::Dynamic> pmc;
34 typename Derived1__::Scalar aa, ab, bb, denom;
42 if ((aa==0) && (bb==0))
58 u=(ab*b-bb*a).dot(pmc)/denom;
59 v=(ab*a-aa*b).dot(pmc)/denom;
60 return (a*u+b*v-pmc).norm();
curve::piecewise< curve1__, data1__, dim1__, tol1__ >::data_type minimum_distance(typename curve::piecewise< curve1__, data1__, dim1__, tol1__ >::data_type &t, const curve::piecewise< curve1__, data1__, dim1__, tol1__ > &pc, const typename curve::piecewise< curve1__, data1__, dim1__, tol1__ >::point_type &pt)
Derived1__::Scalar distance(const Eigen::MatrixBase< Derived1__ > &p1, const Eigen::MatrixBase< Derived2__ > &p2)
Definition: distance.hpp:33