1) Implemented access to coEnum values, they are returned as strings.
2) Fixed some possible memory leaks.
3) Fixed some possible union type punning issues.
to reduce zig-zag movements of the print head on overhangs.
Always use thick bridges on internal bridges.
Co-authored-by: lane.wei <lane.wei@bambulab.com>
expansion, added filling in of narrow regions between solid infills
(for example created by propagating shell from the side and from
the top at the same time).
1) Flipped the order of "discover_vertical_shells" and "process_external_surfaces",
now the external surfaces are expanded after "discover_vertical_shells"
aka "ensure vertical wall thickness" is solved.
2) Reworked LayerRegion::process_external_surfaces() to only expand into
"ensure vertical wall thickness" regions, also the expansion is done
in small steps to avoid overflowing into neighbor regions.
also:
Utility functions reserve_more(), reserve_power_of_2(), reserve_more_power_of_2()
Various SurfaceCollecion::filter_xxx() modified to accept an initializer list of surface types.
New bridges detector refactored to accept overhang boundaries.
BoundingBoxWrapper was moved from RetractCrossingPerimeters to AABBTreeIndirect.
../src/slic3r/GUI/GLCanvas3D.cpp:3474:46: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<Slic3r::ModelObject*>::size_type’ {aka ‘unsigned int’} [-Wsign-compare]
../src/slic3r/GUI/GLCanvas3D.cpp:3477:58: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<Slic3r::ModelVolume*>::size_type’ {aka ‘unsigned int’} [-Wsign-compare]
../src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp:249:62: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<Slic3r::ModelObject*>::size_type’ {aka ‘unsigned int’} [-Wsign-compare]
../src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp:3603:39: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<Slic3r::ModelObject*>::size_type’ {aka ‘unsigned int’} [-Wsign-compare]
1) New region expansion code to propagate wave from a boundary
of a region inside of it.
2) get_extents() extended with a template attribute to work with
zero area data sets.
3) ClipperZUtils.hpp for handling Clipper operation with Z coordinate
(for source contour identification)
worker threads: QOS_CLASS_USER_INTERACTIVE.
The one level lower QOS_CLASS_USER_INITIATED makes our tester Filip
unhappy, because when slicing tree supports Filip switches to a browser
on another display wating for the slicer to finish, while OSX moves
the slicing threads to high efficiency low coal burning cores.