Commit Graph

183 Commits

Author SHA1 Message Date
Lukas Matena
a00a3b2997 Fix horrible complexity of custom seam lookup (#5067)
- polygons are offset individually
- custom areas are kept separately for each PrintObject
- AABB tree is used to get logN lookup complexity
2020-11-27 10:09:20 +01:00
Vojtech Bubnik
db97a97116 Fix of [2.3.0-alpha4] Crash - several models cause crash when slicing #5208
Fixed some issues in internal anchors of the Adaptive Cubic infill.
The ugly and dangerous implicit casting operators in Line, MultiPoint,
Polyline and Polygon were made explicit.
2020-11-24 16:01:08 +01:00
Vojtech Bubnik
dc25f3900f Reworked connection of infill lines to perimeter lines.
Added a new "infill_anchor" parameter.
2020-11-16 10:54:00 +01:00
Vojtech Bubnik
ae050befbd Fix of previous commit 2020-10-22 17:54:32 +02:00
Vojtech Bubnik
85ad3ad1c7 Fix of ironing invalidation. Fixes
Ironing flag ignored on infill rotate #4937
Ironing does not take effect when you change Top Fill Pattern. #4900
Ironing layer not shown in preview when settings are changed #4510
2020-10-22 17:36:51 +02:00
Vojtech Bubnik
d5e4bce750 Support for naming slicer own threads for debugging.
The following threads are named with this commit:
slic3r_main, slic3r_BackgroundSlicingProcess,
slic3r_tbbpool_xx_yy where xx is a one based index of the TTB thread
and yy is the platform thread ID.
2020-10-22 13:54:15 +02:00
Vojtech Bubnik
575da4840f Removed m_ prefix from public member variables. 2020-10-09 13:09:21 +02:00
Vojtech Bubnik
05d388483c Renamed monotonous infill to monotonic. 2020-10-05 16:38:28 +02:00
Vojtech Bubnik
e53d1e63cb Fix of previous commit. 2020-09-24 20:32:52 +02:00
Vojtech Bubnik
175cb54df9 DynamicPrintConfig::normalize() renamed to normalize_fdm(),
optimization of Print::apply()
2020-09-24 19:03:33 +02:00
Vojtech Bubnik
4e0a0c5c51 New class ModelConfig wrapping DynamicPrintConfig and a timestamp
to help with detecting "not changed" event when taking
Undo/Redo snapshot or synchronizing with the back-end.

Converted layer height profile and supports / seam painted areas
to the same timestamp controlled structure.
2020-09-24 15:34:13 +02:00
Vojtech Bubnik
56e6d10a86 Adaptive Cubic infill:
1) Fixed a wrong offset when extracting infill lines from the octree.
2) Added a variant for testing triangle in a bounding sphere
   when buildind the octree. Currently not used as the box test
   is more tight.
3) "Bridging infill" regions are now triangulated and used to densify
   the octree as well to support the bridging infill correctly.
2020-09-22 08:53:45 +02:00
Vojtech Bubnik
1e9a3cab55 Adaptive infill: Reshuffled the namespaces. 2020-09-18 10:53:50 +02:00
Vojtech Bubnik
b3e936bda3 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
Vojtech Bubnik
c814c16e4a Replaced some of Slic3r::RuntimeError exceptions with Slic3r::SlicingError.
Only Slic3r::SlicingError are now displayed by a notification, other
exceptions are shown by a pop-up dialog.
2020-09-14 18:03:22 +02:00
Vojtech Bubnik
f58ee46687 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
Lukáš Hejl
693aac1f3f Fix compiler warnings and failing compilation on macOS 2020-09-10 22:57:58 +02:00
Lukáš Hejl
bfe47c1af0 Fix rotation in support cubic infill 2020-09-10 22:30:49 +02:00
Lukáš Hejl
dc698c2bb1 Move support cubic infill to separate class.
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
Lukáš Hejl
dfd1351c9a A prototype of adaptive support infill 2020-09-10 14:55:48 +02:00
Lukáš Hejl
e4c32a85de A simple version of adaptive cubic support, for testing purposes 2020-09-10 14:52:26 +02:00
Lukáš Hejl
bddca650a9 Move rotation from building octree to infill generating 2020-09-10 14:52:21 +02:00
Vojtech Bubnik
a52c26f59e Merge branch 'lh_adaptive_infill' 2020-09-09 16:46:43 +02:00
Vojtech Bubnik
b7ebee01aa Refactoring of adaptive cubic infill:
Don't create an octree for the infill if it is not needed.
2020-09-09 15:55:06 +02:00
Lukáš Hejl
5673bb9e5b Enable changing adaptive infill density for different objects 2020-09-09 14:40:14 +02:00
Lukáš Hejl
969e733d2e Change to using raw_mesh instead of mesh 2020-09-09 14:40:14 +02:00
Lukáš Hejl
67bfb246ec Octree's first cube depends on model size. 2020-09-09 14:40:14 +02:00
Lukáš Hejl
544cd82fe8 Change in passing octree struct 2020-09-09 14:40:08 +02:00
Lukáš Hejl
4aed6bc332 Fix wrong data type 2020-09-09 14:37:20 +02:00
Lukáš Hejl
42e524de6c Fix crash on inconsistent input 2020-09-09 14:37:20 +02:00
Lukáš Hejl
3238eb59be Building octree based on distance from mesh 2020-09-09 14:34:04 +02:00
Lukáš Hejl
9883850bc6 Enable changing adaptive infill density for different objects 2020-09-03 23:15:46 +02:00
Lukáš Hejl
bd95963b64 Change to using raw_mesh instead of mesh 2020-09-03 16:08:40 +02:00
Lukáš Hejl
fb7cf3dc48 Octree's first cube depends on model size. 2020-09-03 08:04:05 +02:00
Lukáš Hejl
f43b8b1c0f Change in passing octree struct 2020-09-02 22:53:10 +02:00
Lukas Matena
58b6d94166 Custom seam: Model integration, backend invalidation, 3MF loading/saving 2020-09-01 22:35:01 +02:00
Lukáš Hejl
1f2d71fac3 Fix wrong data type 2020-08-31 08:49:17 +02:00
Lukáš Hejl
7363156063 Fix crash on inconsistent input 2020-08-30 20:38:07 +02:00
Lukáš Hejl
e4aea124cf Building octree based on distance from mesh 2020-08-26 18:15:59 +02:00
Lukas Matena
8e113adee0 Renamed FacetSupportType to EnforcerBlockerType
So it's not misleading if we use it for seam painting
2020-08-18 12:00:26 +02:00
Lukas Matena
a56e5da6f9 Fix of custom supports: object offset for Clipper was incorrectly accounted for 2020-08-12 11:28:30 +02:00
Lukas Matena
99cbfb7545 Fixes of two crashes in paint-on supports 2020-08-12 11:08:10 +02:00
Lukas Matena
12d98572e5 TriangleSelector: bugfix - backend did not correctly account for mirrorring 2020-07-24 17:47:16 +02:00
Lukas Matena
abe1cf6c61 TriangleSelector: backend is aware of divided triangles 2020-07-24 17:47:16 +02:00
enricoturri1966
5e3f097d5b Attempt to fix crash on Mac when rotating an object while layer editing is active 2020-07-13 13:16:18 +02:00
Vojtech Bubnik
9b7e2216e0 Fixes of the offset curves from Voronoi diagram.
The offset curve extractor is already quite usable,
though singular cases are still not covered yet
when the offset curve intersects or nearly intersects
a Voronoi vertex.

Removal of the PRINTF_ZU "%zu" Visual Studio printf compatibility macro.
Fixes of a contours self intersection test for collinear segments.
SVG exporter now exports white background, so that the GNOME Eye viewer is usable.
2020-06-16 13:15:48 +02:00
Lukas Matena
ae8772b90d Few more include chains broken 2020-05-26 13:46:59 +02:00
bubnikv
41d69e546b Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2020-04-28 19:31:18 +02:00
Lukas Matena
9ac1bfd9be Custom support blockers are now working 2020-04-27 17:45:55 +02:00
Lukas Matena
ea8724a3ad Fixing debug build broken after recent merge 2020-04-27 12:15:45 +02:00