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.
PrusaLink: Use PUT or POST based on information read during test connection (upload-by-put). If put - do additional GET for storage_list and let user to choose where to upload or show name if only 1 is possible. Allow PrusaLink for MK2.5 and MK2.5S.
PrusaConnect: New host type PrusaConnect inherited from PrusaLink class with filled host address, disabled http diggest. After upload read header information - status message and pass it to notification and Printhost upload dialog via events, this message can be shown as warning notification and is recieved in localized lang. Pass accept-language shortcut in upload header. 3 option to upload. (upload, to queue, to print)
Upload Notification: Showing status text, changes in text, not showing close button, Completed state on special call (not 100%) and other design changes.
Right panel: Open URL button.