diff options
author | enricoturri1966 <enricoturri@seznam.cz> | 2021-09-17 09:42:01 +0300 |
---|---|---|
committer | enricoturri1966 <enricoturri@seznam.cz> | 2021-09-17 09:42:01 +0300 |
commit | 2f95c7721f9a1093bf87be296eacfc3800439981 (patch) | |
tree | c87e493218a5089a7d2062e51bcbbd64c6866ebc /src/libslic3r/TriangleMesh.cpp | |
parent | 5a84b46ec9a037adf677489d2051b3baef9fe4e1 (diff) |
Follow-up of 5a84b46ec9a037adf677489d2051b3baef9fe4e1 - Faster implementation of method TriangleMesh::transformed_bounding_box(const Transform3d& trafo, double world_min_z)
Diffstat (limited to 'src/libslic3r/TriangleMesh.cpp')
-rw-r--r-- | src/libslic3r/TriangleMesh.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index 822548412..c8bc2f763 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -588,14 +588,12 @@ BoundingBoxf3 TriangleMesh::transformed_bounding_box(const Transform3d& trafo, d } // add new vertices along the cut - MeshSlicingParams slicing_params; - slicing_params.trafo = trafo; - Polygons polygons = union_(slice_mesh(its, world_min_z, slicing_params)); - for (const Polygon& polygon : polygons) { - for (const Point& p : polygon.points) { - bbox.merge(unscale(p.x(), p.y(), world_min_z)); - } + Points all_pts; + its_collect_mesh_projection_points_above(its, trafo.cast<float>(), static_cast<float>(world_min_z), all_pts); + for (const Point& p : all_pts) { + bbox.merge(unscale(p.x(), p.y(), world_min_z)); } + return bbox; } #endif // ENABLE_FIX_SINKING_OBJECT_OUT_OF_BED_DETECTION |