262{
263 typedef Eigen::Matrix<double, 3, 8, Eigen::DontAlign>
Vertices;
264
266 src_vertices(0, 0) =
min.x(); src_vertices(1, 0) =
min.y(); src_vertices(2, 0) =
min.z();
267 src_vertices(0, 1) =
max.x(); src_vertices(1, 1) =
min.y(); src_vertices(2, 1) =
min.z();
268 src_vertices(0, 2) =
max.x(); src_vertices(1, 2) =
max.y(); src_vertices(2, 2) =
min.z();
269 src_vertices(0, 3) =
min.x(); src_vertices(1, 3) =
max.y(); src_vertices(2, 3) =
min.z();
270 src_vertices(0, 4) =
min.x(); src_vertices(1, 4) =
min.y(); src_vertices(2, 4) =
max.z();
271 src_vertices(0, 5) =
max.x(); src_vertices(1, 5) =
min.y(); src_vertices(2, 5) =
max.z();
272 src_vertices(0, 6) =
max.x(); src_vertices(1, 6) =
max.y(); src_vertices(2, 6) =
max.z();
273 src_vertices(0, 7) =
min.x(); src_vertices(1, 7) =
max.y(); src_vertices(2, 7) =
max.z();
274
275 Vertices dst_vertices = matrix * src_vertices.colwise().homogeneous();
276
277 Vec3d v_min(dst_vertices(0, 0), dst_vertices(1, 0), dst_vertices(2, 0));
279
280 for (int i = 1; i < 8; ++i)
281 {
282 for (int j = 0; j < 3; ++j)
283 {
284 v_min(j) = std::min(v_min(j), dst_vertices(j, i));
285 v_max(j) = std::max(v_max(j), dst_vertices(j, i));
286 }
287 }
288
289 return BoundingBoxf3(v_min, v_max);
290}
std::vector< stl_vertex > Vertices
Definition QuadricEdgeCollapse.cpp:67
Eigen::Matrix< double, 3, 1, Eigen::DontAlign > Vec3d
Definition Point.hpp:68