WIP TreeSupports:

1) Reworked the merging code to use an AABB tree for better locality.
   The old code sorted lexicographically, the new code splits bounding
   boxes by the longest axis.
2) Refactored to a functional style with better const correctness.
3) Reduced memory allocation pressure by replacing std::set with
   vectors, in place merging etc.
This commit is contained in:
Vojtech Bubnik 2022-09-26 11:20:00 +02:00
parent 87dcba3e30
commit 2b3d4b2868
6 changed files with 1741 additions and 1676 deletions
src/libslic3r

View file

@ -2198,8 +2198,7 @@ void PrintObject::combine_infill()
void PrintObject::_generate_support_material()
{
if (m_config.support_material_style == smsTree) {
TreeSupport tree_support;
tree_support.generateSupportAreas(*this);
fff_tree_support_generate(*this, std::function<void()>([this](){ this->throw_if_canceled(); }));
} else {
PrintObjectSupportMaterial support_material(this, m_slicing_params);
support_material.generate(*this);