13 #ifndef eli_geom_intersect_minimum_distance_bounding_box_hpp
14 #define eli_geom_intersect_minimum_distance_bounding_box_hpp
16 #include "eli/code_eli.hpp"
28 template<
typename data__,
unsigned short dim__,
typename tol__>
34 bool below_min, above_max;
37 for (i=0; i<dim__; ++i)
39 below_min=pt(0, i) < bb.
get_min()(0, i);
40 above_max=pt(0, i) > bb.
get_max()(0, i);
57 return std::sqrt(dist2);
60 template<
typename data__,
unsigned short dim__,
typename tol__>
66 bool below_min, above_max;
69 for (i=0; i<dim__; ++i)
71 below_min=pt(0, i) < bb.
get_min()(0, i);
72 above_max=pt(0, i) > bb.
get_max()(0, i);
96 return std::sqrt(dist2);
99 template<
typename data__,
unsigned short dim__,
typename tol__>
105 data__ maxdist2(0), mindist2(0), minlen, maxlen;
107 bool below_min, above_max;
110 for (i=0; i<dim__; ++i)
112 below_min=pt(0, i) < bb.
get_min()(0, i);
113 above_max=pt(0, i) > bb.
get_max()(0, i);
117 minlen=bb.
get_min()(0,i)-pt(0,i);
118 maxlen=bb.
get_max()(0,i)-pt(0,i);
122 minlen=pt(0,i)-bb.
get_max()(0,i);
123 maxlen=pt(0,i)-bb.
get_min()(0,i);
130 l1 = pt(0,i)-bb.
get_min()(0,i);
131 l2 = bb.
get_max()(0,i)-pt(0,i);
138 mindist2+=minlen*minlen;
139 maxdist2+=maxlen*maxlen;
141 dmin=std::sqrt(mindist2);
142 dmax=std::sqrt(maxdist2);
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)
point_type::Index index_type
Definition: bounding_box.hpp:33
Definition: bounding_box.hpp:27
Eigen::Matrix< data_type, 1, dim__ > point_type
Definition: bounding_box.hpp:32
point_type get_max() const
Definition: bounding_box.hpp:104
data__ maximum_distance(const eli::geom::general::bounding_box< data__, dim__, tol__ > &bb, const typename eli::geom::general::bounding_box< data__, dim__, tol__ >::point_type &pt)
Definition: minimum_distance_bounding_box.hpp:61
point_type get_min() const
Definition: bounding_box.hpp:93
void minmax_distance(const eli::geom::general::bounding_box< data__, dim__, tol__ > &bb, const typename eli::geom::general::bounding_box< data__, dim__, tol__ >::point_type &pt, data__ &dmin, data__ &dmax)
Definition: minimum_distance_bounding_box.hpp:100