3 #include <opencv2/imgproc/imgproc.hpp>
23 cv::Mat_<cv::Vec2f> points_2d(1, points.
size());
24 for(
unsigned int i = 0; i < points.
size(); ++i)
25 points_2d.at<cv::Vec2f>(i) = cv::Vec2f(points[i].x, points[i].y);
29 pose.
t.
z = (z_min + z_max) / 2;
32 cv::convexHull(points_2d, chull_indices);
41 for(
unsigned int i = 0; i < chull_indices.
size(); ++i)
43 const cv::Vec2f& p_cv = points_2d.at<cv::Vec2f>(chull_indices[i]);
56 pose.
t.
x = (xy_min.
x + xy_max.
x) / 2;
57 pose.
t.
y = (xy_min.
y + xy_max.
y) / 2;
60 for(
unsigned int i = 0; i < chull.
points.size(); ++i)
85 cv::Mat_<cv::Vec2f> points_2d(1, points.
size());
86 for(
unsigned int i = 0; i < points.
size(); ++i)
87 points_2d.at<cv::Vec2f>(i) = cv::Vec2f(points[i].x, points[i].y);
93 cv::convexHull(points_2d, chull_indices);
96 for(
unsigned int i = 0; i < chull_indices.
size(); ++i)
98 const cv::Vec2f& p_cv = points_2d.at<cv::Vec2f>(chull_indices[i]);
116 for(
unsigned int i = 0; i < chull.
points.size(); ++i)
118 unsigned int j = (i + 1) % chull.
points.size();
146 float xy_padding,
float z_padding)
151 float z_diff = pos2.
z - pos1.
z;
153 if (c1.
z_max < (c2.
z_min + z_diff - 2 * z_padding) || c2.
z_max < (c1.
z_min - z_diff - 2 * z_padding))
158 for(
unsigned int i = 0; i < c1.
points.size(); ++i)
166 for(
unsigned int k = 1; k < c1.
points.size(); ++k)
182 bool no_collision =
true;
191 for(
unsigned int k = 0; k < c2.
points.size(); ++k)
196 below = below || (p < max1);
197 above = above || (p > min1);
202 no_collision =
false;
224 for(
unsigned int i = 0; i <
c.points.size(); ++i)
226 unsigned int j = (i + 1) %
c.points.size();
231 c.area += 0.5 * (p1.
x * p2.
y - p2.
x * p1.
y);