Commit Graph

4800 Commits

Author SHA1 Message Date
Pavel Mikus
70677858a1 Use resampling only with smooth surfaces generated by Arachne 2022-07-14 18:00:59 +02:00
Pavel Mikus
2e437d1761 curling improvements 2022-07-14 11:47:29 +02:00
Pavel Mikus
d5d1633e2b Bugfix: seam enforcers and blockers not respected on different nozzle widths -
now flow width is used instead of fixed distance param
2022-07-14 10:15:05 +02:00
Pavel Mikus
f5efb0d0aa remove global angle computation, wrong results 2022-07-14 10:15:05 +02:00
Pavel Mikus
4a9f9aa89b oversample smooth surfaces, which reduces curling on those surfaces, because the shortest path down is better defined 2022-07-14 10:15:05 +02:00
Pavel Mikus
40408c2178 increase snapping angle 2022-07-14 10:15:05 +02:00
PavelMikus
768bfd5c7f reduce curling 2022-07-14 10:15:05 +02:00
PavelMikus
c65e22e6bb refactored find_seam_string func 2022-07-14 10:15:05 +02:00
PavelMikus
4d8e8afb10 Count seam string weight and try mutiple strings; choose highest weight 2022-07-14 10:15:05 +02:00
Pavel Mikus
f31865a627 increase weight of central seam enforcers 2022-07-14 10:15:05 +02:00
Pavel Mikus
232517fe77 choose seam string with lower variance weighted by visibility 2022-07-14 10:15:05 +02:00
Pavel Mikus
feeb9b2b1b bug fixes in the linear regression 2022-07-14 10:15:05 +02:00
PavelMikus
fec3afa490 cubic spline segment size based on the length of string 2022-07-14 10:15:05 +02:00
PavelMikus
1e05d09324 search points based on updated linear regression model (line), make search raidus dynamic based on layer thickenss 2022-07-14 10:15:05 +02:00
Lukáš Hejl
39404be75a Fix of #8471 - Pressure equalizer caused unintentional deceleration before ironing and acceleration after ironing. 2022-07-14 09:30:37 +02:00
Lukáš Hejl
b4ff9b72a9 Fix of #8455 - Incorrect scale in ExtrusionLine::simplify() prevented removing vertices between collinear and nearly collinear lines. 2022-07-14 09:10:25 +02:00
Lukáš Hejl
e2e1272003 Fix of #8455 - Fixed the incorrect computation of the threshold for grouping ExtrusionPaths with the same extrusion width in thick_polyline_to_extrusion_paths() that was affecting Arachne and gap fill.
The previous behavior didn't merge two ExtrusionPaths with the same extrusion width, and it also could merge two ExtrusionPaths with different widths, which was unintentional, and it could also possibly create visible artifacts in some cases.
Because simplification of ExtrusionLoop in GCode::extrude_loop is working on ExtrusionPath and not on whole ExtrusionLoop, so previous incorrect behavior was preventing simplification and removing small extrusions like in #8455.
2022-07-14 09:10:22 +02:00
enricoturri1966
b9caacfdd9 Merge branch 'et_opengl_3_rebase' of https://github.com/Prusa-Development/PrusaSlicerPrivate into et_raycast_picking_rebase 2022-07-13 13:50:34 +02:00
enricoturri1966
e0c8ffc524 Tech ENABLE_OPENGL_DEBUG_OPTION - Let option opengl-debug be always available to avoid error unknown option at startup 2022-07-13 10:06:57 +02:00
Lukáš Hejl
22255822a2 Fix of #8488 - Infinite loop in the lightning infill. 2022-07-12 18:59:48 +02:00
Lukáš Hejl
7860cf8811 Follow-up to e86463a369: Forgot to remove useless asserts. 2022-07-12 13:52:02 +02:00
Lukáš Hejl
e86463a369 Fix of #8463 - Crash in SkeletalTrapezoidation::computePointCellRange() when a cell point didn't fit into Vec2i64 because it was too far away. 2022-07-12 13:36:26 +02:00
Lukas Matena
f41d72d656 Fixed empty 'G1' lines generated by the wipe tower:
They are not nice and trigger assertions in CoolingBuffer
2022-07-12 10:59:24 +02:00
enricoturri1966
c7d44d3576 #8467 - GCodeProcessor - Added processing of parameter 'T' for gcode lines M104 2022-07-11 12:24:42 +02:00
enricoturri1966
850b590c31 #8467 - GCodeViewer - Fixed detection of extruder changes for gcode produced by other slicers, by adding missing default values 2022-07-11 11:52:58 +02:00
Lukáš Hejl
d02a0ec1b2 Fix of #8447 - Zero spacing when Clipper Z-coordinate (line width) equaled zero because the resulting path after clipping had vertices from a clipping polygon (which has Z-coordinate equal to zero). 2022-07-11 11:31:59 +02:00
Lukáš Hejl
38ca763c36 Fix of #8437 - Very tiny unprintable polygons caused InfillFailedException in the lightning infill. 2022-07-11 10:50:01 +02:00
tamasmeszaros
e58a15bdf8 Prepare arrange for variable bed distance 2022-07-07 15:51:41 +02:00
tamasmeszaros
f025c9cd6f Adding overload for string conversion to float directly 2022-07-07 15:43:32 +02:00
enricoturri1966
38683ee221 Tech ENABLE_OPENGL_DEBUG_OPTION - Add new command line option '--opengl-debug' to allow users to force PrusaSlicer to output to console OpenGL related errors on graphics cards supporting it. 2022-06-30 09:49:29 +02:00
Lukáš Hejl
5d557ed32f Fix of #8436 - Crash in the lightning infill when some region has zero infill density. 2022-06-30 09:44:00 +02:00
Lukáš Hejl
f91fed7938 Added missing includes (GCC 11.2 without PCH). 2022-06-30 00:29:26 +02:00
Lukáš Hejl
7783915a34 Fix of #8435 - Division by zero in lightning infill when automatic extrusion width was used. 2022-06-29 18:33:57 +02:00
Lukas Matena
6c0db58628 Fixing conflicts part 4:
See previous commit. This one applies changes from master_250
to the files mentioned
2022-06-29 16:43:29 +02:00
Lukas Matena
d662bf2a18 Fixing conflicts part 3:
Some files have whitespace changes that make resolving conflicts difficult.
Take the version from master first, next commit will apply changes from master_250
2022-06-29 16:43:29 +02:00
Lukas Matena
e6d341f9f2 Fixing conflicts part 2:
SeamPlacer.cpp/.hpp files from master_250 were used, there should be no changes
in master that will be overwritten, the feature was backported from master and
only developed in master_250 from then on
2022-06-29 16:43:29 +02:00
Lukas Matena
62e59a4526 Fixing conflicts part 1:
fixed simple conflicts
2022-06-29 16:43:29 +02:00
Lukas Matena
b61714bb3e Merge branch 'master_250' (NO CONFLICTS FIXED):
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.idx
CONFLICT (content): Merge conflict in resources/profiles/PrusaResearch.ini
CONFLICT (content): Merge conflict in src/libslic3r/CMakeLists.txt
CONFLICT (content): Merge conflict in src/libslic3r/Fill/Fill.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/GCodeProcessor.hpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.cpp
CONFLICT (content): Merge conflict in src/libslic3r/GCode/SeamPlacer.hpp
CONFLICT (add/add): Merge conflict in src/libslic3r/Geometry/Curves.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PerimeterGenerator.cpp
CONFLICT (content): Merge conflict in src/libslic3r/Point.hpp
CONFLICT (content): Merge conflict in src/libslic3r/PrintConfig.hpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/ConfigWizard.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GCodeViewer.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GLCanvas3D.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/GUI_App.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp
CONFLICT (content): Merge conflict in src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp
CONFLICT (content): Merge conflict in src/slic3r/Utils/FixModelByWin10.cpp
CONFLICT (modify/delete): t/perimeters.t deleted in HEAD and modified in master_250.  Version master_250 of t/perimeters.t left in tree.
CONFLICT (content): Merge conflict in tests/fff_print/CMakeLists.txt
CONFLICT (content): Merge conflict in tests/fff_print/test_fill.cpp
CONFLICT (content): Merge conflict in version.inc
CONFLICT (modify/delete): xs/xsp/PerimeterGenerator.xsp deleted in HEAD and modified in master_250.  Version master_250 of xs/xsp/PerimeterGenerator.xsp left in tree.
2022-06-29 14:37:14 +02:00
YuSanka
89a7f6bdb1 Merge remote-tracking branch 'origin/ys_wx317_master' into ys_cut 2022-06-29 11:44:11 +02:00
tamasmeszaros
621ec86dbe Equip boost adapter with extensive 3D bounding box support 2022-06-29 10:55:04 +02:00
tamasmeszaros
a7e50b7a98 Generalize BoostAdapter for all Vec<> types and move out of SLA 2022-06-29 10:54:04 +02:00
tamasmeszaros
f90d62c771 Fix crash with a single support point 2022-06-29 10:52:48 +02:00
tamasmeszaros
d23f9d7674 Refactoring and performance optimization for support trees in SLA 2022-06-29 10:43:46 +02:00
enricoturri1966
ae76468f7c Tech ENABLE_RAYCAST_PICKING - Partial revert of 89ac932628 - Restored rectangle selection using encoded colors rendering 2022-06-28 14:12:57 +02:00
Vojtech Bubnik
1d41ffdd7d When placing seam, never produce segments shorter than 1.5um. 2022-06-28 10:30:04 +02:00
Vojtech Bubnik
f0886b46fb Follow-up to c6bcaedba9 2022-06-27 10:42:42 +02:00
Vojtech Bubnik
c6bcaedba9 Follow-up to d01f6099c3
Fixing unit tests.
2022-06-24 17:46:26 +02:00
Vojtech Bubnik
d01f6099c3 Fixing Polyline::split_at() to handle correctly splitting
at the first / last point.
2022-06-24 17:28:09 +02:00
Vojtech Bubnik
0c99a14b63 Follow-up to f1d52cb412
Fixes of cooling buffer logic:
    Fixed division by zero on zero length extrusions.
2022-06-24 16:46:49 +02:00
Vojtech Bubnik
f1d52cb412 Fixes of cooling buffer logic:
Fixed division by zero on zero length extrusions.
Added bunch of asserts to check for divisions by zero.
2022-06-24 15:08:35 +02:00
YuSanka
4c65e468de Localization: New POT and updated dictionaries for CZ, PL, IT and ES
+ Fix for minor issue https://github.com/prusa3d/PrusaSlicer/issues/5672#issuecomment-1160245417
+ Fix for #7858 - Small formatting error in dutch language
+ Community PO-files are extended by new phrases
2022-06-23 13:34:29 +02:00
Lukáš Hejl
3b53a27d5e Unified Arachne parameters and their description with our terminology. 2022-06-23 13:34:29 +02:00
YuSanka
e6f95515c7 Localization: Some phrases are fixed 2022-06-23 13:34:28 +02:00
PavelMikus
79cfefa2fe potential size_t overflow tiny bug fix 2022-06-23 13:34:24 +02:00
Lukáš Hejl
9aca685dd4 Fixed a compiler warning. 2022-06-21 14:23:05 +02:00
Lukáš Hejl
c1af26e3fd Modified the pressure equalizer to silently ignores most of the invalid GCode lines. 2022-06-21 13:57:41 +02:00
YuSanka
c3bf861b17 Fix for fff_print_tests 2022-06-21 12:48:54 +02:00
Lukáš Hejl
d65aaa1db9 Disabled ignoring the pressure equalizer parameters when 3MF is loaded. 2022-06-21 12:35:57 +02:00
Lukáš Hejl
a09cf52798 Fixed that fuzzy skin hadn't connected endpoints of extrusion when Arachne was used. 2022-06-21 12:35:56 +02:00
PavelMikus
f3d0e3c399 fix compile time warning (truncating double to float) 2022-06-21 11:11:10 +02:00
enricoturri1966
89ac932628 Tech ENABLE_NEW_RECTANGLE_SELECTION set as default 2022-06-21 11:10:57 +02:00
enricoturri1966
6d97de14d9 Tech ENABLE_RAYCAST_PICKING - Removal of all remaining code related to old OpenGL based picking 2022-06-21 09:16:36 +02:00
PavelMikus
732586de7c SeamPlacer: Removed skipping mechanics in alignment
improved snapping to sharp angles
reduced curling on smooth surfaces
Rear is now aligned
2022-06-20 17:41:05 +02:00
YuSanka
2688a29b08 SplashScreen: New image
+ PressureEqualizer" fixed warning
2022-06-17 17:14:14 +02:00
Lukas Matena
32e70e5f57 Fixed compiler warnings 2022-06-17 16:27:49 +02:00
YuSanka
311ac96e45 Fixed default values for filament_cooling_initial_speed and filament_cooling_final_speed.
Don't use float value for double type parameter
2022-06-17 15:35:38 +02:00
Lukas Matena
570b43941e Fixed title label when run as G-Code Viewer:
Builds that were not tagged and contained number of commits since last tag
showed "-UNKNOWN" in the title bar, even when they went through the build server
2022-06-17 12:58:24 +02:00
Lukáš Hejl
3a792738cb Added a limit on how many GCode lines pressure equalizer is processing. It reduces pressure equalizer processing time a lot.
Also, the maximum segment length to split was decreased to make the transition between different flow rates smoother.
2022-06-17 11:09:04 +02:00
Lukas Matena
4079eac29a Fixed a failing assert in BuildVolume.cpp 2022-06-16 16:35:06 +02:00
Lukáš Hejl
1622208249 Fixed infill polygons filtering. 2022-06-16 14:01:56 +02:00
PavelMikus
e70aea8b30 SeamPLacer: for extrusion loops, check all paths for ExternalPerimeter role
small parameter tuning
2022-06-16 10:12:44 +02:00
Lukáš Hejl
f34c1f14da Fixed the orientation of ExtrusionLoops when Arachne is used. 2022-06-15 23:28:11 +02:00
enricoturri1966
f45711e7e5 Removed tech ENABLE_RENDER_PICKING_PASS 2022-06-15 14:29:29 +02:00
Lukas Matena
c3edafcc33 Arachne parameter names: unified case with the rest 2022-06-14 12:48:54 +02:00
enricoturri1966
040a8467bd #8401 - Show error message when trying to import invalid 3mf 2022-06-14 12:17:15 +02:00
PavelMikus
20a42e3e2f Fix crash on painted seams - painting blocker close to enforced could cause
points to be recognized as enforced and then marked as blocked, which could
brake the middle enforced point selection
2022-06-13 13:01:23 +02:00
PavelMikus
745c5ecd9b SeamPlacer - fix search radius estimation for visibility computation (use exp distribution)
slightly tune parameters
2022-06-13 10:05:35 +02:00
enricoturri1966
36ec839767 Tech ENABLE_GIZMO_GRABBER_REFACTOR set as default 2022-06-10 15:46:28 +02:00
Lukáš Hejl
bd4b63e67d Fixed an issue when the Lightning infill stuck in an infinite loop on some models.
Cased by two sampled points closer than chosen spacing.
2022-06-10 15:31:02 +02:00
Lukáš Hejl
dba1179708 Fixed an issue when the Lightning infill stuck in an infinite loop on some models.
Cased by two sampled points closer than chosen spacing.
2022-06-10 15:25:04 +02:00
enricoturri1966
6c6713c4ad Tech ENABLE_RAYCAST_PICKING - Raytraced picking of volumes 2022-06-10 14:56:15 +02:00
enricoturri1966
cfc3988b9f Tech ENABLE_RAYCAST_PICKING - 1st installment - Raytraced picking of printbed 2022-06-10 13:20:52 +02:00
Lukáš Hejl
3fba411d17 Follow-up of 18124b07a2 - Forgot to remove code for debugging. 2022-06-10 12:12:26 +02:00
Lukáš Hejl
18124b07a2 Fixed a crash when Arachne returns extrusion with zero-length (just two same endpoints). 2022-06-10 11:46:46 +02:00
Lukáš Hejl
9c07218d82 Reworked pressure equalizer and GCode processing pipeline to make pressure equalizer always returns one whole layer at once.
Now pressure equalizer is returning one layer back (the previous layer).

GCode produced by pressure equalizer now has the same number of decimal places as non-processed GCode.

Pressure equalizer was disabled for external perimeters and gap-fill.
2022-06-10 10:54:35 +02:00
Lukáš Hejl
a497769558 Modified the description of pressure equalizer parameters and moved it to the separate section. 2022-06-09 21:07:48 +02:00
Lukáš Hejl
0463518dc3 Attempted to reenable the old pressure equalizer and fix its issues. 2022-06-09 21:07:41 +02:00
Lukáš Hejl
9be524b01b Fixed an unintentional transformation of ExPolygon to a single vector containing all points from contour and all holes in the Lightning infill.
This was causing most of the issues with randomly generated infill hanging in the air without any support.
2022-06-09 14:51:16 +02:00
Lukáš Hejl
5d82c1601b Fixed an unintentional transformation of ExPolygon to a single vector containing all points from contour and all holes in the Lightning infill.
This was causing most of the issues with randomly generated infill hanging in the air without any support.
2022-06-09 14:49:45 +02:00
Lukáš Hejl
3d9b13a5e3 Added fuzzy skin for Arachne. 2022-06-09 11:23:41 +02:00
Lukáš Hejl
357dbb4686 Fixed the flow of bridging perimeters for Arachne. 2022-06-09 11:23:41 +02:00
Lukáš Hejl
dc2789a0e8 Added computation of bridging perimeters for Arachne. 2022-06-09 11:23:41 +02:00
Vojtech Bubnik
0b6c65ee60 G-code thumbnails in other than PNG format: Fixing Perl unit tests. 2022-06-09 09:58:13 +02:00
enricoturri1966
9bd0a3c6b1 Follow-up of 030f460114 - compress_thumbnail_jpg() implemented using embedded libjpeg 2022-06-08 21:12:00 +02:00
enricoturri1966
9bb5874d50 Follow-up of 87cff55856 - Implementation of compress_thumbnail_jpg() 2022-06-08 21:12:00 +02:00
Lukáš Hejl
36bd65d810 Added a missing include (GCC11.1 without PCH). 2022-06-08 21:12:00 +02:00
Vojtech Bubnik
e2405b51da Fixed typo in thumbnail_QOI tag. 2022-06-08 21:12:00 +02:00
Vojtech Bubnik
8ed6d1b466 WIP: Implemented support for QOI G-code thumbnail format as requested
by the RepRapFirmware team due to their low RAM budget for decompression.
Bundled the QOI image compression library.
2022-06-08 21:12:00 +02:00
Lukas Matena
5792190515 Fix of incorrect MMU filament estimate 2022-06-08 21:09:39 +02:00
PavelMikus
27a7ddccb6 improve visibility estimation via distance to plane weighting.
increase angle importance, improve alignment
2022-06-08 10:28:21 +02:00
enricoturri1966
8f40270f93 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_opengl_3_rebase 2022-06-08 09:06:12 +02:00
tamasmeszaros
86ebe946d9 Make AStar use InvalidQueueID constant 2022-06-07 16:08:09 +02:00
tamasmeszaros
4f8535d0d5 Move out invalid_id constant from MutablePriotityQueue template class
Enclose it into Slic3r namespace
2022-06-07 16:05:16 +02:00
PavelMikus
c09781d61d optimize embedding computation
fix seed of random generators
set high angle importance for nearest mode
2022-06-07 11:12:48 +02:00
PavelMikus
13ac7a24d8 Refactoring of the short edge collpase, should greatly improve performance
integration of NormalsUitls from SDF branch
2022-06-07 11:12:48 +02:00
PavelMikus
9b761d3a6f fix random generator in short edge collpase, so that results are deterministic 2022-06-07 11:12:48 +02:00
PavelMikus
d5bf6794aa comment out debug info 2022-06-07 11:12:48 +02:00
PavelMikus
835aca60e6 add comments to the short edge collapse algorithm 2022-06-07 11:12:48 +02:00
PavelMikus
1e7b4a6720 Implementation of ShortEdgeCollapse
Replaced QEC by edge collapse in occlusion computation
2022-06-07 11:12:48 +02:00
PavelMikus
b5b39195f4 Added throw_if_canceled callback to all slower sections 2022-06-07 11:12:48 +02:00
PavelMikus
c23d1488c9 Performance improvements 2022-06-07 11:12:48 +02:00
PavelMikus
a4201321e8 Hopefully improved the seam placer performance a lot 2022-06-07 11:12:48 +02:00
PavelMikus
6da220062c Mac OS pre 10.13 does not fully support std::optional (method .value() is not allowed)
This commit replaces usage of .value() calls with .operator*()
2022-06-07 11:12:48 +02:00
PavelMikus
d59d8eebde Full occlusion guided seam placer backport 2022-06-07 11:12:48 +02:00
enricoturri1966
cd6155293b Fixed conflicts after merge with master 2022-06-07 11:10:19 +02:00
enricoturri1966
904e3a874e Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_trafo_matrix_rebase 2022-06-06 14:57:09 +02:00
enricoturri1966
c99e93c357 Fixed differences after rebase with master 2022-06-06 14:55:38 +02:00
enricoturri1966
00878fb330 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES merged into ENABLE_WORLD_COORDINATE
Fixed conflicts during rebase with master
2022-06-06 13:36:29 +02:00
enricoturri1966
f591535d20 Removed tech ENABLE_WORLD_COORDINATE_VOLUMES_LOCAL_OFFSET 2022-06-06 12:44:01 +02:00
enricoturri1966
e3d648c802 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reoworked calculation of volume matrix for newly added modifiers and parts
Fixed conflicts during rebase with master
2022-06-06 12:16:17 +02:00
enricoturri1966
e4fb142afc Tech ENABLE_WORLD_COORDINATE_SCALE_REVISITED merged into tech ENABLE_WORLD_COORDINATE
Fixed conflicts during rebase with master
2022-06-06 12:01:44 +02:00
enricoturri1966
ebb9a4aadb Tech ENABLE_WORLD_COORDINATE_SHOW_AXES merged into tech ENABLE_WORLD_COORDINATE
Fixed conflicts during rebase with master
2022-06-06 11:39:15 +02:00
enricoturri1966
7c86cf84a3 Tech ENABLE_COORDINATE_DEPENDENT_SELECTION_BOX merged into tech ENABLE_WORLD_COORDINATE
Fixed conflicts during rebase with master
2022-06-06 10:53:26 +02:00
enricoturri1966
19712749c3 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Added reset button to remove skew, when detected, in object manipulator panel
Fixed conflicts during rebase with master
2022-06-06 10:00:28 +02:00
enricoturri1966
88ce6ccdef Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reworked method void Selection::scale(const Vec3d& scale, TransformationType transformation_type) to use matrix multiplication
Fixed conflicts during rebase with master
2022-06-06 09:54:19 +02:00
enricoturri1966
9f503b95e8 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reworked method void Selection::rotate(const Vec3d& rotation, TransformationType transformation_type) to use matrix multiplication
Fixed conflicts during rebase with master
2022-06-03 15:44:45 +02:00
enricoturri1966
2f6f73e10f Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - Reworked method void Selection::translate(const Vec3d& displacement, ECoordinatesType type) to use matrix multiplication
Fixed conflicts during rebase with master
2022-06-03 14:56:07 +02:00
enricoturri1966
7e72963293 Tech ENABLE_TRANSFORMATIONS_BY_MATRICES - 1st installment. Geometry::Transformation modified to store data in a single matrix, without store the matrix components
Fixed conflicts during rebase with master
2022-06-03 13:58:36 +02:00
Lukas Matena
75a6f54f0b Fixed compiler warnings 2022-06-03 12:45:06 +02:00
enricoturri1966
622796e9e3 Tech ENABLE_WORLD_COORDINATE_SCALE_REVISITED - Alternate implementation of manipulating scale for instances and volumes using gizmo scale and sidebar object manipulator fields - 1st installment
Fixed conflicts during rebase with master
2022-06-03 12:17:12 +02:00
enricoturri1966
558bccec48 Tech ENABLE_WORLD_COORDINATE_SHOW_AXES - Show axes of the current reference system when sidebar hints are active for non-world reference systems
Fixed conflicts during rebase with master
2022-06-03 11:45:22 +02:00
enricoturri1966
912d781446 Tech ENABLE_COORDINATE_DEPENDENT_SELECTION_BOX - Render the selection bounding box in the current reference system
Fixed conflicts during rebase with master
2022-06-03 11:05:49 +02:00
tamasmeszaros
1d3c8ac5b4 Further refactor
Reduce code size for astar
2022-06-03 10:17:05 +02:00
tamasmeszaros
d9ed45be56 Apply remarks from code review with additional cosmethics 2022-06-03 10:08:11 +02:00
enricoturri1966
90e54e5821 Tech ENABLE_INSTANCE_COORDINATES_FOR_VOLUMES merged into tech ENABLE_WORLD_COORDINATE
Fixed conflicts during rebase with master
2022-06-03 09:57:07 +02:00
tamasmeszaros
f9fb7f947d Revamped A* algorithm
with extended test suite
2022-06-02 17:44:51 +02:00
enricoturri1966
79bdcefbde Tech ENABLE_INSTANCE_COORDINATES_FOR_VOLUMES - 1st installment: introduction of instance reference system in part manipulation
Fixed conflicts during rebase with master
2022-06-02 14:58:44 +02:00
Lukáš Hejl
792caae0ca Follow-up of a47446574e - Disable tbb::task_scheduler_observer in TBBLocalesSetter destructor.
The base class wasn't disabling observing when tbb::task_scheduler_observer was destructed, which leads to undefined behavior.
2022-06-02 12:36:19 +02:00
Lukáš Hejl
6bdaf0eaec Follow-up of a47446574e - Disable tbb::task_scheduler_observer in TBBLocalesSetter destructor.
The base class wasn't disabling observing when tbb::task_scheduler_observer was destructed, which leads to undefined behavior.
2022-06-02 12:13:45 +02:00
enricoturri1966
6433d3af91 Tech ENABLE_WORLD_COORDINATE - Fixed volumes rotation in world coordinate
Added sub-tech ENABLE_WORLD_COORDINATE_VOLUMES_LOCAL_OFFSET which enable showing world coordinates of volumes' offset relative to the instance containing them

Show 'Drop to bed' button in sidebar whenever the selected instance or volume is not laying on the printbed

Fixed conflicts during rebase with master
2022-06-02 12:07:00 +02:00
enricoturri1966
ca5742c401 Tech ENABLE_WORLD_COORDINATE - Gizmo rotate oriented in dependence of the selected coordinate system
Fixed conflicts during rebase with master
2022-06-02 10:16:07 +02:00
YuSanka
906f8914a6 SLA estimation time:
* A calculation of the estimation of a print time is ported from the FW
  (See https://gitlab.com/prusa3d/sl1/sla-fw/-/blob/1.7/slafw/project/project.py#L485)
* Some missed parameters are added to the Printer Presets
2022-06-02 09:29:11 +02:00
Lukáš Hejl
2b87601239 Sets locales before any thread start participating in the GCode processing pipeline.
Locales should be set once per any participating threads in tbb::parallel_pipeline.
It should fix the issue with appearing comma instead of the decimal point in generated Gcode.
2022-06-02 09:28:09 +02:00
Lukáš Hejl
81d43a2fd4 Added detection for corrupted PrusaSlicer.ini and fixed showing instructions on how to recover from it (#8217).
Previously when PrusaSlicer.ini was just partly corrupted, it could happen that PrusaSlicer.ini wasn't detected as corrupted, and it could cause that instruction on how to recover from this state wasn't shown, and PrusaSlicer crashed because wrong data from PrusaSlicer.ini was read.
2022-06-02 09:28:09 +02:00
Lukas Matena
70fa8ef29d Enforce first layer on experimental wipe tower (#7090) 2022-06-02 09:28:09 +02:00
tamasmeszaros
99c9e4a61d Fix collision after arrange when 'complete Individual objects' is ON
fixes #8335
2022-06-02 09:28:09 +02:00
Lukáš Hejl
04f9c4b5e0 Fixed a memory leak in the move assignment operator in ExtrusionEntityCollection. 2022-06-02 09:28:09 +02:00
tamasmeszaros
6d349dd3a7 Backport hollowing optimization into stable 2022-06-02 09:04:36 +02:00
tamasmeszaros
b3f7f64ee0 Avoid error on osx for tbb parallel for
Add comment to previous change
2022-06-02 09:04:35 +02:00
tamasmeszaros
e2007e41ba Try to fix linking of expat 2022-06-02 09:03:52 +02:00
tamasmeszaros
b458477d13 Use upstream expat, remove duplication in deps and src
Fix clash of builtin findEXPAT with config scripts
2022-06-02 09:03:52 +02:00
enricoturri1966
ebe411aefb Tech ENABLE_WORLD_COORDINATE - 1st installment
1) Added combo to select world/local coordinate to part manipulator in sidebar

2) Gizmo move oriented in dependence of the selected coordinate system

3) Sidebar hints for position oriented in dependence of the selected coordinate system

Fixed conflicts during rebase with master
2022-06-02 08:57:07 +02:00
Lukáš Hejl
11f6c67e7c Added detection for corrupted PrusaSlicer.ini and fixed showing instructions on how to recover from it (#8217).
Previously when PrusaSlicer.ini was just partly corrupted, it could happen that PrusaSlicer.ini wasn't detected as corrupted, and it could cause that instruction on how to recover from this state wasn't shown, and PrusaSlicer crashed because wrong data from PrusaSlicer.ini was read.
2022-06-02 08:20:11 +02:00
Lukáš Hejl
d107c47b0a Fixed infill polygons filtering for Arachne to mimic filtering in the classic perimeter generator. 2022-06-01 21:43:01 +02:00
Lukáš Hejl
e631ac171a Fixed a crash when the number of perimeters is set to zero with Arachne. 2022-06-01 21:43:01 +02:00
Lukáš Hejl
c76c497234 Renamed slicing engine to perimeter generator and slightly rearrangement of Arachne parameters. 2022-06-01 21:43:00 +02:00
Lukáš Hejl
3942cf958c Updated Arachne with Cura master. 2022-06-01 21:41:40 +02:00
Lukáš Hejl
454e6496ce Added concentric infill generated using Arachne. 2022-06-01 21:41:39 +02:00
Lukáš Hejl
ac23a369d5 Fixed a missing infill caused by int32_t overflow. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
2cf6a9630f Fixed a crash when functions for preprocessing input polygons produced intersecting polygons. It should also fix another crash caused by a missing twin edge in the post-processing Voronoi diagram (probably some issue in Voronoi diagram post-processing, not in Boost Voronoi generator). 2022-06-01 21:40:15 +02:00
Lukáš Hejl
9896721bc8 Fixed crash when Arachne produced empty output. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
d868261399 Updated the default values for wall_add_middle_threshold and wall_split_middle_threshold, which should decrease the number of missing tiny islands. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
7e52650430 Fixed extrusion width calculation. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
8616758354 Added greedy sort for ExtrusionLine in the perimeter generator. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
66a18fb60f Fixed undefined behavior in SkeletalTrapezoidation::generateExtraRibs. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
3610afd393 Updated Arachne with Cura master. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
e99b579f93 Fixed integer overflow in LinearAlg2D::isInsideCorner(). 2022-06-01 21:40:15 +02:00
Lukáš Hejl
b97c05176a Modified method Line::intersection_infinite() to return that the intersection was not found if the input lines are near parallel, and an integer overflow would occur when saving the intersection coordinates. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
324e889d5e Fixed inconsistent extrusion width between layers when it is used Arachne. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
5db91f1944 Added detection for a missing Voronoi vertex. If the missing Voronoi vertex is detected, try to resolve it by rotation input polygons. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
adf2d21c67 Allowed "Slicing engine" and all Arachne parameters to be settable per object. 2022-06-01 21:40:15 +02:00
Lukáš Hejl
556e2b71cc Initial port of Arachne from Cura. 2022-06-01 21:40:13 +02:00
Lukáš Hejl
4015a83acb Added a possibility into thick_polyline_to_extrusion_paths() to separately set tolerance for merging two following lines based on a difference between lines width. 2022-06-01 21:39:23 +02:00
Lukáš Hejl
bcd20650bf Added anchors for the Lightning infill to better connect the infill and perimeters. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
79b8acb7d5 Fixed assert in Lightning infill (merging empty BoundingBoxes). 2022-06-01 21:35:58 +02:00
Lukáš Hejl
a5270f3c5a Fixed another crash in Lightning infill. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
76deba7e97 Parallelized DistanceField::DistanceField() and Layer::getBestGroundingLocation() in Lightning infill. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
be291fd97e Refactored Lightning infill before parallelization. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
5205753787 Refactored Lightning infill to get rid of unnecessary std::list and std::unordered_map, which was slow. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
3e5272868d Fixed an issue that some trees in the Lightning infill weren't connected to perimeters. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
331da74510 Fixed function lineSegmentPolygonsIntersection() in the Lightning infill that wasn't returns the intersection point.
It fixed the issue that sometimes the Lightning infill produced extrusions that hung in the air without proper support.
2022-06-01 21:35:58 +02:00
Lukáš Hejl
11004b4bbd Added cancellation to Lightning infill. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
78f62bfddc Fix of #8227 (Lightning infill wasn't working when "Combine infill every X layers" was set to a different value than one.) 2022-06-01 21:35:58 +02:00
Lukáš Hejl
dfb7fbbd10 Fixed missing layers of Lightning infill. 2022-06-01 21:35:58 +02:00
Lukáš Hejl
8d0dd13144 Fixed a crash in Lightning infill. 2022-06-01 21:35:58 +02:00
Lukas Matena
ada55053d8 Fixed MSVC debug assert in lightning infill (invalidated iterator) 2022-06-01 21:35:58 +02:00
Lukáš Hejl
bbb7e839a0 Fixed various issues in the ported Lightning infill.
Added export to SVG for TreeNode.
Also was finalized integration of Lightning infill and Lightning infill was enabled.
2022-06-01 21:35:58 +02:00
Lukáš Hejl
a47446574e Sets locales before any thread start participating in the GCode processing pipeline.
Locales should be set once per any participating threads in tbb::parallel_pipeline.
It should fix the issue with appearing comma instead of the decimal point in generated Gcode.
2022-06-01 21:18:52 +02:00
Lukáš Hejl
e967d10788 Added anchors for the Lightning infill to better connect the infill and perimeters. 2022-06-01 21:13:03 +02:00
Lukáš Hejl
ae377bd28c Fixed assert in Lightning infill (merging empty BoundingBoxes). 2022-06-01 21:13:03 +02:00
YuSanka
fe9ad66e84 Disable ENABLE_OBJECT_MANIPULATOR_FOCUS 2022-06-01 11:56:42 +02:00
enricoturri1966
8d0780aabe Tech ENABLE_GL_CORE_PROFILE - Added command line option '--opengl-core=M.m' which allows the user to select a specific OpenGL version supporting core profile 2022-05-30 16:15:25 +02:00
enricoturri1966
a1eb8c5cbd Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_opengl_3_rebase 2022-05-30 15:41:08 +02:00
enricoturri1966
e8753ee8cd Tech ENABLE_COPY_CUSTOM_BED_MODEL_AND_TEXTURE - 1st installment - Copies custom bed texture and model files to 'data_dir()\printer' folder, if needed, and updates the printer config accordingly
Fixed conflicts after rebase with master
2022-05-30 11:28:54 +02:00
tamasmeszaros
78124689c5 Fix excessive uptates to UI in sla rotation optimization 2022-05-30 11:17:34 +02:00
enricoturri1966
3df99ab974 Tech ENABLE_GL_CORE_PROFILE set as default into Point.hpp 2022-05-26 11:39:53 +02:00
enricoturri1966
aaf0861da3 Tech ENABLE_GL_CORE_PROFILE - Fixed detection of OpenGL extensions and support for newer Mesa drivers
Fixed conflicts during rebase with master
2022-05-26 11:27:00 +02:00
enricoturri1966
41541287a1 Tech ENABLE_GL_IMGUI_SHADERS merged into ENABLE_LEGACY_OPENGL_REMOVAL
Fixed conflicts during rebase with master
2022-05-26 11:08:24 +02:00
enricoturri1966
1a1cf108fc Tech ENABLE_GL_SHADERS_ATTRIBUTES merged into ENABLE_LEGACY_OPENGL_REMOVAL
Fixed conflicts during rebase with master
2022-05-26 10:50:32 +02:00
enricoturri1966
914a66e2c3 Tech ENABLE_GL_CORE_PROFILE - Thick lines shader enhanced to render dashed lines
Fixed conflicts while rebase with master
2022-05-26 08:11:04 +02:00
enricoturri1966
389dc36053 Tech ENABLE_GL_CORE_PROFILE - Use OpenGL core profile context - 1st installment
Fixed conflicts during rebase with master
2022-05-25 15:29:10 +02:00
enricoturri1966
ed482316ee Revert of 39cefdad89 2022-05-25 09:36:52 +02:00
enricoturri1966
6365e54b1f Fixed loading of 3mf files containing single volume instances where the volume is shifted with respect to the instance origin 2022-05-20 10:39:51 +02:00
Lukáš Hejl
1582d019fb Fixed another crash in Lightning infill. 2022-05-19 15:16:30 +02:00
Lukáš Hejl
4bde35cae3 Parallelized DistanceField::DistanceField() and Layer::getBestGroundingLocation() in Lightning infill. 2022-05-19 15:16:30 +02:00
Lukáš Hejl
95041751a1 Refactored Lightning infill before parallelization. 2022-05-19 15:16:30 +02:00
Lukáš Hejl
f82d5c52b3 Refactored Lightning infill to get rid of unnecessary std::list and std::unordered_map, which was slow. 2022-05-19 15:16:30 +02:00
tamasmeszaros
7129ee3829 Merge branch 'tm_curl_new' (cherry-picked from master) 2022-05-19 09:34:31 +02:00
enricoturri1966
39cefdad89 Tech ENABLE_REMOVE_ASSOCIATION_TO_FILE_FOR_WINDOWS_8_AND_LATER - Disable association to 3mf and stl files if the application is run on Windows 8 or later 2022-05-17 13:19:33 +02:00
tamasmeszaros
e6750a524f Fix collision after arrange when 'complete Individual objects' is ON
fixes #8335
2022-05-17 13:14:13 +02:00
Vojtech Bubnik
cc79a9fe7a Merge branch 'master' of https://github.com/Prusa3D/PrusaSlicer 2022-05-17 12:49:08 +02:00
Lukáš Hejl
6df1b6d074 Fixed an issue that some trees in the Lightning infill weren't connected to perimeters. 2022-05-17 12:41:28 +02:00
Vojtech Bubnik
a552a55cce Follow-up to f5ec76c230
Compile-time instantiation of the MutablePriorityQueue
with run-time resetting of indices when removing items from the queue
active in debug mode only.
2022-05-17 11:57:04 +02:00
Vojtech Bubnik
f5ec76c230 Follow-up to dc3931ec1f:
Fix mutable priority queue being wiped when moving out of function
    Without move constructor, the clean() gets called when returning an instance from a function.
The above fix was applied also to MutableSkipHeapPriorityQueue.

Follow-up to 15a082b80b:
Fixed TEST_CASE("Mutable priority queue - first pop", "[MutableSkipHeapPriorityQueue]")
2022-05-16 17:27:10 +02:00
tamasmeszaros
1554d6a2c7 Try to fix linking of expat 2022-05-16 14:58:17 +02:00
Vojtech Bubnik
15a082b80b Fix of libslic3r "Mutable priority queue - first pop" test failure #8276
Improved readability by introducing invalid_id() getter.
Made the ResetIndexWhenRemoved flag active in both debug and release mode,
it used to be made active by Vojtech for release mode only for unknown
reason.
2022-05-16 11:34:26 +02:00
tamasmeszaros
fd0579d4a2 Add missing includes to MutablePriorityQueue
Mainly to prevent heuristic error reports inside IDE
2022-05-16 10:30:22 +02:00
Lukáš Hejl
7b28bdc41f Fixed function lineSegmentPolygonsIntersection() in the Lightning infill that wasn't returns the intersection point.
It fixed the issue that sometimes the Lightning infill produced extrusions that hung in the air without proper support.
2022-05-12 14:30:07 +02:00
Lukáš Hejl
bff32c9cdb Added cancellation to Lightning infill. 2022-05-12 14:30:07 +02:00
PavelMikus
d0c08ec5c1 Feature: AABB tree for lines
Small refactoring of AABB tree distance query function, to allow different primitives (apart from triangles)
Implemented Distancer and functions to create AABB tree from lines and use closest point query
Added test for the AABBTree with lines
Added Benchmark comparing EdgeGrid with AABBTree on line contours (Inside AABBTree test file, disabled under compilation flag)
2022-05-12 12:55:10 +02:00
YuSanka
04145abdfc Merge remote-tracking branch 'origin/master' into ys_cut 2022-05-12 09:21:58 +02:00
tamasmeszaros
1d9d9cf001 Prohibit copy for mutable priority queue 2022-05-11 17:02:21 +02:00
tamasmeszaros
dc3931ec1f Fix mutable priority queue being wiped when moving out of function
Without move constructor, the clean() gets called when returning an instance from a function.
2022-05-11 16:49:15 +02:00
Lukáš Hejl
e0e34f6a53 Fixed a memory leak in the move assignment operator in ExtrusionEntityCollection. 2022-05-11 14:11:51 +02:00
tamasmeszaros
6b23e90424 Add astar algorithm
Fix windows build
2022-05-11 12:06:07 +02:00
tamasmeszaros
34ba45dde4 Small fix in Execution.hpp 2022-05-11 10:35:38 +02:00
tamasmeszaros
bbf398f2dc Fix AABB query in hollowing print step 2022-05-11 10:35:29 +02:00
tamasmeszaros
fed317f27b Change std::nan("") to proper nan constants 2022-05-11 10:35:12 +02:00
tamasmeszaros
12a54251c9 Extend kdtree with k-nearest and bounding box queries
Also add test to verify it
2022-05-11 10:35:01 +02:00
YuSanka
41eaff1482 Merge remote-tracking branch 'origin/master' into ys_cut 2022-05-10 11:10:51 +02:00
enricoturri1966
6be84d529d #8202 - Fixed detection of layers in vase mode 2022-05-10 08:40:49 +02:00
YuSanka
51e77fd81b Cut WIP: Make negative volumes a little bit "dipper"
+ Some improvements for Undo/Redo stack
2022-05-09 16:14:19 +02:00
YuSanka
9582a9b478 Merge remote-tracking branch 'origin/master' into ys_cut 2022-05-09 11:25:29 +02:00
Vojtech Bubnik
e687db9eb0 Ported custom_gcode and print unit tests from Perl to C++. 2022-05-06 18:30:18 +02:00
Vojtech Bubnik
d4b8d4d0f3 Further Perl unit test porting to C++ and Perl interface reduction:
Ported cooling, gap fill, thin walls and polyline unit tests.
2022-05-05 17:57:57 +02:00
Lukáš Hejl
5a67d0e183 Fixed build on Linux (GCC 11.2). 2022-05-05 13:52:52 +02:00
Lukáš Hejl
09a9d79e99 Fix of #8227 (Lightning infill wasn't working when "Combine infill every X layers" was set to a different value than one.) 2022-05-05 13:42:18 +02:00
Lukáš Hejl
d069befa1f Fixed missing layers of Lightning infill. 2022-05-05 13:42:18 +02:00
Lukáš Hejl
17e74141ce Fixed a crash in Lightning infill. 2022-05-05 13:42:18 +02:00
Vojtech Bubnik
aa3231e2c5 Further slimming of Perl bindings. 2022-05-04 19:10:34 +02:00
Vojtech Bubnik
576c167bd5 Ported "avoid crossing perimeters" and bridging unit tests from Perl
to C++.
Further reduced Perl bindings.
Got rid of the ExPolygonCollection wrapper, replaced with ExPolygons.
2022-05-04 18:21:08 +02:00
Vojtech Bubnik
a627614b58 Perl unit tests for perimeters and multi-material were rewritten to C++.
Perl binding was slimmed down, namely Clipper is no more linked by Perl.
2022-05-04 15:06:04 +02:00
Vojtech Bubnik
33b2478b69 Ported Infill unit tests from Perl to C++. 2022-05-02 14:34:50 +02:00
YuSanka
94f3aaacd4 Cut WIP: Undo/Redo implementation 2022-05-02 12:44:47 +02:00
enricoturri1966
7f7d229178 Follow-up of 3ce2d3a700 - Fixed export of used filament data to gcode for multimaterial prints 2022-05-02 08:50:27 +02:00
YuSanka
73469ffa21 Merge remote-tracking branch 'origin/master' into ys_cut 2022-04-28 13:25:00 +02:00
Lukas Matena
56466abe99 Fixed conflicts after stable->master merge 2022-04-27 23:45:16 +02:00
Lukas Matena
09fe421fe8 Merge branch 'stable' (no conflicts fixed) 2022-04-27 22:24:13 +02:00
tamasmeszaros
2377349e7f Merge branch 'tm_read_svg_archive' 2022-04-26 16:55:59 +02:00
tamasmeszaros
9d5f8a02c6 Remove junk message 2022-04-26 16:19:32 +02:00
tamasmeszaros
7cf893fe81 Fix memory corruption in svg parsing 2022-04-26 15:26:29 +02:00
tamasmeszaros
be78bdf5ff Fix the issue with point skipping in svg export 2022-04-26 15:08:06 +02:00
tamasmeszaros
610e971373 Fix Fix triangle removal issues when using full narrow band of interior 2022-04-26 14:50:50 +02:00
tamasmeszaros
39a47e91f7 Fix failing test for hollowing 2022-04-26 14:50:50 +02:00
tamasmeszaros
23db6f3071 Additional performance tuning
by decreasing accuracy
2022-04-26 14:50:50 +02:00
tamasmeszaros
d1b161b281 Hollowing voxel_scale now considers input model volume 2022-04-26 14:50:50 +02:00
tamasmeszaros
e405b0ef4a Cleanup 2022-04-26 14:50:50 +02:00
tamasmeszaros
b5bf529551 Solve missing faces of the interior in connection with the holes 2022-04-26 14:50:50 +02:00
tamasmeszaros
1a6a2a0b9a 2.5x speedup of hollowing.
Triangle removal is slightly broken
2022-04-26 14:50:50 +02:00
tamasmeszaros
9e5ba20f8f Use default bandwidth before csgUnion when hollowing
Add cca  6.5% speedup (on 12 core amd)
2022-04-26 14:50:50 +02:00
tamasmeszaros
4148d7332e Prohibit multiple formats with the same extension (zip)
Archive format can be specified as a hint when a reader is created.
2022-04-26 14:43:28 +02:00
tamasmeszaros
24c9ce6e14 Fix the issue with point skipping in svg export 2022-04-26 13:26:13 +02:00
tamasmeszaros
73837c2f82 Add more comments 2022-04-26 11:30:55 +02:00
tamasmeszaros
784105f5ad Extend sla archive tests with read-back 2022-04-26 10:57:49 +02:00
tamasmeszaros
0025a65611 Add comment 2022-04-26 09:44:00 +02:00
tamasmeszaros
32a923da93 Archive reader types are now registered in one place 2022-04-26 09:38:03 +02:00
tamasmeszaros
885e6964ba Working svg import
Strange bug in export, see line 111
2022-04-26 09:38:03 +02:00
tamasmeszaros
4ef860811f Wip on svg archive import 2022-04-26 09:38:03 +02:00
tamasmeszaros
e0fc337b2d Get rid of window size parameter from import interface
Make 'Balanced' the default import quality
2022-04-26 09:38:03 +02:00
tamasmeszaros
5ecf29f303 Separate existing sla archive import code 2022-04-26 09:38:03 +02:00
PavelMikus
77b5885f7d fix build problems 2022-04-25 12:42:51 +02:00
PavelMikus
b5a5926bbe Implemented alignment of inner seams, especially in concave angles where the perpendicular
projection is suboptimal.
2022-04-25 12:42:51 +02:00
PavelMikus
e377e58cd2 Updated weights for curve fitting, ensured snapping to sharp corners
Fixed debug exports after refactorings.
2022-04-25 12:42:51 +02:00
Godrak
43d9166382 nomralize weights of points before curve fitting and fitted value interpolation 2022-04-25 12:42:51 +02:00
PavelMikus
68cf4db58e interpolate fitted and original position during b spline alignment -
push points with large weight more towards their original position
2022-04-25 12:42:51 +02:00
PavelMikus
137fa35238 Postpone seam picking for spNearest configuration to the place_seam method. 2022-04-25 12:42:51 +02:00
PavelMikus
83f3ca27dc reworked and improved the find_next_seam_in_layer method:
Now uses find nearby_points with radius to save some computations
if all points are far.
From the nearby points, it finds the nearest and best point, and tries
to use them in this order (preivously only nearest was considered).
This helps to snap the alignment to nearby sharp corners if present.
2022-04-25 12:42:51 +02:00
PavelMikus
04d4a0d4f7 when searching for central enforcer (for alignment purposes), find properly the first
enforced segment. Fixed issue where if the enforced segment was painted over the start/end of the
perimeter, part of the enforced points was not considered.
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
2dfabb7e69 Fixing missing include. 2022-04-25 12:42:51 +02:00
Vojtech Bubnik
399b7f79e8 Little more refactoring of SeamPlacer. 2022-04-25 12:42:51 +02:00
Vojtech Bubnik
8c2e6aba79 On MSVC, std::deque degenerates to a list of pointers, which defeats
its purpose of reducing allocator load and memory fragmentation.
https://github.com/microsoft/STL/issues/147#issuecomment-1090148740
Slic3r::deque<> compiles to boost::container::deque<> on Windows,
to std::deque<> on other systems.
SeamPlacer newly uses Slic3r::deque<>.
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
adb467286f Documented the seam placement corner penalty with an image. 2022-04-25 12:42:51 +02:00
Vojtech Bubnik
853b8adf80 Little refactoring of SeamPlacer.
Moved color mapping functions to Color.hpp
Removed the "extern" keyword from Color.hpp
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
f5709345ad GCode export: Replaced std::strings in G-code comments with string_views.
Seam placer: Detecting perimeter by the pointer and size of the
comment_perimeter string_view, only placing seams for perimeters.
2022-04-25 12:42:51 +02:00
PavelMikus
fb2621c03c Negative volumes raycasting fix - normal was flipped between iterations, incorrect algorithm for hit detection
Debug files export fix after refactoring
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
8ce36e9137 Refactoring of SeamPlacer:
Replaced shared_ptr<> with deque.
Merged multiple vectors into one.
Refactoring using common helper functions (prev/next_idx_modulo(),
angle(), ...)
AABBTreeIndirect::intersect_ray_all_hits(): Reuse memory of the hits cache.
2022-04-25 12:42:51 +02:00
PavelMikus
3b8cfc62da fixed drawing seams on multipart objects
removed oversampling for blockers
improved drawing seams over sharp features
2022-04-25 12:42:51 +02:00
PavelMikus
47fc39a4ba fixed misleanding or wrong comments of the fitting function 2022-04-25 12:42:51 +02:00
PavelMikus
ae89d65e3e added description for the parameter count increase 2022-04-25 12:42:51 +02:00
PavelMikus
396d3215bd Refactoring of curve fitting algorithm:
removal of artificial extension at the ends of the curve
removal of observation points normalization
added clamping of parameter index which compensates for under-represented spline segments
added parameter for level of freedom at the ends of the curve
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
c19770189f Follow-up to 1c9ba291fe32bc4a4c78cabbab0639b0c164f23f
Refactoring of Curves.hpp for better memory management and vectorization
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
42e802c1b8 Refactoring of Curves.hpp for better memory management and vectorization
(replaced vector of vectors with Eigen 2D matrices).
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
bd8ce6fabd Follow-up to 9cb51caead9dee5c4d12a4ef5f925b5efeb00b75
Fixing compilation on GCC
2022-04-25 12:42:51 +02:00
Vojtech Bubnik
7d02647ebf Removed various Point::ccw() and Point::ccw_angle() methods, they were
provided for Perl bindings and their semantic was confusing.
Implemented free function angle() to measure angle between two vectors.
Reworked Polygon::convex/concave_points(), changed the meaning of their
angle threshold parameter.
Removed some unused methods from Perl bindings and tests.
Reworked the "wipe inside at the external perimeter" function
after Point::ccw_angle() was removed.
2022-04-25 12:42:51 +02:00
PavelMikus
156a60017d fixed ExPolygons dealocation while using EdgeGrid
fixed warnings in Bicubic.h file
2022-04-25 12:42:51 +02:00
PavelMikus
965803822e remove invalid comment 2022-04-25 12:42:51 +02:00
PavelMikus
1164449d4e compute overhang distance using SDF
detect embedded (inner) perimeter points and prefer them for seam placement
2022-04-25 12:42:51 +02:00
PavelMikus
191e788aa0 make Random seams disaligned 2022-04-25 12:42:51 +02:00
PavelMikus
15135ef2ed fixes, central enforced point preference 2022-04-25 12:42:51 +02:00
PavelMikus
5c23d471de BSplines, Polynomial fitting 2022-04-25 12:42:51 +02:00
PavelMikus
bbcd6be250 Implemented piecewise data (curve) fitting with variable kernels 2022-04-25 12:42:51 +02:00
PavelMikus
bb89b630d9 implemented occlusion estimation for objects with negative volumes 2022-04-25 12:42:51 +02:00
PavelMikus
ca259caf33 fix ccw angle computation in Point.cpp 2022-04-25 12:42:51 +02:00
PavelMikus
177a1fd54a finalize integration into GCode.cpp export functions, remove unused
edge grids
2022-04-25 12:42:51 +02:00
PavelMikus
6dbc7149be parameter fixes, alignemnt for enforcers simplified 2022-04-25 12:42:51 +02:00
PavelMikus
c640fb854f bug fix: using trafo() instead of trafo_centred() caused
misalignment between occlusion mesh and seam candidates
2022-04-25 12:42:51 +02:00
PavelMikus
2274965079 alignment from best candidate 2022-04-25 12:42:51 +02:00
PavelMikus
eccf1c1553 refactored raycasting - inverted direction of raycasting - now each face is tested
fixed bug with custom seam drawings - square distance parameter named incorrectly
2022-04-25 12:42:51 +02:00
PavelMikus
a9f5330ad2 using gauss function to smoothen criteria skips 2022-04-25 12:42:51 +02:00
Godrak
ab3c8d0fe8 implemented smooth angle penalty function 2022-04-25 12:42:51 +02:00
PavelMikus
a92d5038bd debug export svg info,
fixing problem with weird seam placement caused by disconnected scoring function
2022-04-25 12:42:51 +02:00
PavelMikus
962282c9ef split occlusion and enforcers/blockers into separate functions
added weights to polynomial fitting
2022-04-25 12:42:51 +02:00
PavelMikus
f837759928 fixed problem with multipart objects
fixed bug : model volume trafo was not considered
2022-04-25 12:42:51 +02:00
PavelMikus
a775bf2978 improved enforcers blockers oversampling, renamed parameter 2022-04-25 12:42:51 +02:00
PavelMikus
8f7b86915a oversample polygons where necessary, due to seam enforcers & blockers 2022-04-25 12:42:51 +02:00
PavelMikus
87c276b7a4 comments and bugfix 2022-04-25 12:42:51 +02:00
PavelMikus
ad819850f9 tweaked parameters,
fixed minor bugs
2022-04-25 12:42:51 +02:00
PavelMikus
c72687c96c computing smooth score instead of binary decision when picking seams
some basic documentation
2022-04-25 12:42:51 +02:00
PavelMikus
105b67c9a7 presorting seams before alignemnt
mesh decimation for speed up
2022-04-25 12:42:51 +02:00
PavelMikus
f018160e72 implemented polynomial alignment,
however, initital seam placement is not ideal
- hard to balance visual cues and angle information
2022-04-25 12:42:51 +02:00
PavelMikus
ffc7452d9e improved visibility calculation - it now considers normals and
accordingly counts only hits which have similar normal
2022-04-25 12:42:51 +02:00
PavelMikus
38a9d870c0 implemented seam alignment using exponential smoothing 2022-04-25 12:42:51 +02:00
PavelMikus
596bd68f18 refactoring, created perimters struct to store info,
removed alignment iterations, created dynamic ray count estimation
2022-04-25 12:42:51 +02:00
PavelMikus
53ff4a69e0 implemented debug files export 2022-04-25 12:42:51 +02:00
PavelMikus
3029053d43 fixed some problems according to code review
simplified blockers and enforcers
Pre-Refactoring version
2022-04-25 12:42:51 +02:00
PavelMikus
5a03f60c31 fixed bug: wrong estimation of angles inside holes 2022-04-25 12:42:51 +02:00
PavelMikus
356ed93ad7 Raft layers cause SeamPlacer crash - fix 2022-04-25 12:42:51 +02:00
PavelMikus
132f4bb590 bugfix: usage of undeclared M_PIf32 instead of PI 2022-04-25 12:42:51 +02:00
PavelMikus
4b3db29d32 refactoring into floats, fixed problems with float/double mixing,
returned to fixed ray count, yields better results
2022-04-25 12:42:51 +02:00
PavelMikus
8226061da4 so far best version 2022-04-25 12:42:51 +02:00
PavelMikus
36a4906536 refactored init method - split into several parts,
added blur filter to seam placement distribution
2022-04-25 12:42:51 +02:00
PavelMikus
1a25058456 workable version, some parameter tweaking probably still needed 2022-04-25 12:42:51 +02:00
PavelMikus
e8f740dabb implemented overhang calculation and alignemnt iterations for seams
now only external perimeters are considered which  reduced time complexity
2022-04-25 12:42:51 +02:00
PavelMikus
53e9bb3ebf integration of enforcers and blockers 2022-04-25 12:42:51 +02:00
PavelMikus
38a6e231f2 minor changes, more transparent parameters settings 2022-04-25 12:42:51 +02:00
PavelMikus
45b49ad545 initial demo
fixed KD tree neighbour search, finished refactoring of raycasts,
substantially improved performance of seam placement - seams
are now precomputed and their indexes stored such that place_seam does almost nothing.
2022-04-25 12:42:51 +02:00
PavelMikus
55e0f2dd83 refactoring raycaster, gathering only hitpoints and their normals. 2022-04-25 12:42:51 +02:00
PavelMikus
fea247f261 Fixed bug - the rays had opposite directions, so all of them flown away from the object; also fixed compilation bug - missing import of timer.h 2022-04-25 12:42:51 +02:00
PavelMikus
fdfe19ef49 init version of occlusion estimation, raycasting implemented but for some reason only parts of model are estimated 2022-04-25 12:42:51 +02:00
Lukas Matena
142b924366 Fixed MSVC debug assert in lightning infill (invalidated iterator) 2022-04-25 11:06:00 +02:00
Vojtech Bubnik
408e56f039 Fix of Boost 1.79 deprecated boost::filesystem::ofstream #8238
Replacing boost::filesystem::fstream with boost::nowide::fstream
variants with the unfortunate cost of string path conversion on Windows
from 16 bits to UTF8 and back to 16 bits.

Unfortunately we cannot use std::filesystem yet as it is missing
on older MACs and because the interface is crooked minefield on Windows
see https://github.com/microsoft/STL/issues/909
2022-04-25 08:33:48 +02:00
tamasmeszaros
516f459edc Use tight compression for SLA archives with svg 2022-04-19 13:53:50 +02:00
tamasmeszaros
91b79bb85c Fix crash in debug mode when split result contains ill formed parts 2022-04-19 11:46:20 +02:00
tamasmeszaros
2fd5a415c5 Fix arrange when some geometries are ill formed.
SPE-1216
The removed fix for issue 2209 is not needed anymore as the backend (arrange + libnest) takes care of such objects
- Offset is now done with libslic3r offset() wrapper (no expception thrown)
- Zero area objects are discarded in libnest
2022-04-19 11:45:17 +02:00
enricoturri1966
f504236734 Tech ENABLE_GIZMO_GRABBER_REFACTOR - Refactoring of GLGizmoBase::Grabber to have a single static instance of the cube and cone models to be shared by all grabbers 2022-04-14 15:15:14 +02:00
YuSanka
91a1cd30a0 Merge remote-tracking branch 'origin/master' into ys_cut 2022-04-14 10:04:45 +02:00
enricoturri1966
3ce2d3a700 #8176 - Tech ENABLE_USED_FILAMENT_POST_PROCESS - Fixes used filament data exported to gcode file not taking in account custom gcode 2022-04-13 15:27:46 +02:00
YuSanka
c29b7b1eef Cut WIP:
* Suppress to delete/add a SolidPart/NegativeVolume from/for objects which are marked as "is cut"
* Suppress to delete Instances which are marked as "is cut"
* Allow delete an object which is marked as "is cut", but show warning message about break of the "cut consistency".
  And if this deletion was performed, the all related objects will be unmarked.
* m_connectors_cnt is added into CutObjectBase class to correct synchronization of a connectors count between related objects
2022-04-13 13:11:41 +02:00
Lukas Matena
3b94494c4f Fix of #8186: incorrect count of toolchanges reported:
broken for o long time, probably since 58a811a
2022-04-12 13:39:14 +02:00
YuSanka
a248490507 Fix for #7905 - Segfault when changing printer after loading 3mf with a different printer set
Update searcher only before open one of next dialogs : SearchDialog, UnsavedChangesDialog or DiffPresetDialog.
But only Search dialog respects to the mode of PrusaSlicer
2022-04-11 12:09:30 +02:00