into a graph with links to the layer above / below.
In addition:
Members of LayerRegion were made private, public interface const only.
this->m_xxx replaced with just m_xxx
SurfacesPtr was made a vector of const pointers.
https://github.com/tcbrindle/span
Replacing a homebrew const pointer wrapper const correctness helper
with the C++20 like span library.
One day when we switch to C++20 we will just use the C++20 spans instead.
1) Nodes allocated using std::deque, not as std::set of pointers for
less memory allocator pressure.
2) Parents changed to parent indices, so that one may allocate side
by side data for nodes addressed by these indices. Thus now elemens
are being marked as deleted and the whole node database is being
compacted in one shot instead of deleting an element from std::set.
3) Removed SUPPORT_TREE_ONLY_GRACIOUS_TO_MODEL for simplicity, it was
never used.
4) Fixed crash when slicing multiple objects with three supports.
Reworked the Archimedean Chords, Hilbert and Octagram Spiral infill
generators to
1) Generate solid infill as not aligned with other solid infill layers.
This may surprise some users as the pattern over multiple islands
will be different, maybe not that nice. This may change in the future.
2) Sparse infill is always aligned and generated over the whole object,
however newly the generated lines are trimmed with a snug bounding box
while being generated.
3) For Archimedean chords the accuracy was not applied correctly, leading
to higher accuracy for dense infill and lower accuracy for sparse infill.
slicing process:
1) "C" locales are always enforced.
2) OSX Quality of Service level is set to make sure the slicing
runs on fat cores on Apple Silicon if some fat cores are available.
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.