20 Commits

Author SHA1 Message Date
Vojtech Bubnik
8dad25efc4 Merge branch 'master' into master_262 2023-09-04 14:44:32 +02:00
ps_copyright
f32859c302 final copyright headers 2023-09-01 14:49:07 +02:00
Vojtech Bubnik
19062b4d5f ArcWelder path interpolation based on the work by Brad Hochgesang @FormerLurker.
WIP GCode/SmoothPath.cpp,hpp cache for interpolating extrusion path with arches.
Removed Perl test t/geometry.t, replaced with C++ tests.
Refactored ExtrusionEntity and derived classes to hold extrusion attributes in new ExtrusionFlow/ExtrusionAttributes classes.
Reworked path ordering in G-code export to never copy polylines, but to work with a new "flipped" attribute.
Reworked G-code export to interpolate extrusion paths with smooth paths and to extrude those smooth paths.
New parameters: arc_fitting, arc_fitting_tolerance
Renamed GCode class to GCodeGenerator
Moved GCodeWriter.cpp/hpp to GCode/
Moved Wipe from from GCode.cpp,hpp to GCode/Wipe.cpp,hpp
Moved WipeTowerIntegration from GCode.cpp,hpp to GCode/WipeTowerIntegration.cpp,hpp
New variant of douglas_peucker() to simplify range of iterators in place.
Refactored wipe in general and wipe on perimeters / hiding seams.

WIP: Convert estimate_speed_from_extrusion_quality() and its application to smooth paths.
WIP: Cooling buffer to process G2G3, disable arc fitting for filters that cannot process it.
2023-07-13 11:54:42 +02:00
Vojtech Bubnik
af6c27b861 douglas_peucker(): fix after 63ca221394acca695508dd333633b43b1a5e9744 2023-05-02 19:50:12 +02:00
Vojtech Bubnik
63ca221394 douglas_peucker(): Optimized for 32bit Point types. 2023-05-02 18:20:38 +02:00
Vojtech Bubnik
0836b06c73 Little refactoring of douglas_peucker() 2023-05-02 15:53:24 +02:00
Vojtech Bubnik
9cde96993e Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.
2023-04-20 11:31:44 +02:00
Vojtech Bubnik
f1c0c61895 Refactored Point / MultiPoint / Polyline / Polygon:
1) Removed virtual methods. There was not really need for them.
2) Some of the virtual methods were using conversion to Lines, which
   was unnecessary and expensive.
3) Removed some nearest element search methods from Point.
2022-11-14 19:01:17 +01:00
Vojtech Bubnik
1d41ffdd7d When placing seam, never produce segments shorter than 1.5um. 2022-06-28 10:30:04 +02:00
Lukas Matena
59502e7861 Seam placement improvements 2021-10-22 13:16:08 +02:00
Vojtech Bubnik
f206b743fd Avoid crossing perimeters: Further refactoring for clarity, code review. 2020-11-17 15:34:50 +01:00
Lukáš Hejl
c16aad7e0b Reworked the algorithm for avoid crossing perimeters for multiple objects 2020-11-16 14:21:36 +01:00
bubnikv
0abde9a2a8 Return MultiPoint::first_point() by reference. 2019-09-27 19:47:30 +02:00
bubnikv
84eefa280c Added debugging code for the Douglas-Peucker contour simplification code. 2019-01-14 19:59:18 +01:00
bubnikv
d0fc403741 Fix of a regression bug in Dauglass Peucker contour simplification
after an introduction of a non-recursive variant of the algorithm.
Fixes "Strange behavior while printing curved perimeters #1503"

Fixed some compilation warnings.
2019-01-02 16:27:11 +01:00
bubnikv
77d37f108c Iterative, not recursive, version of the Douglas-Peucker-Ramer algorithm
based on the work by @fuchstraumer
https://github.com/slic3r/Slic3r/pull/3825
https://gist.github.com/fuchstraumer/9421573fc281b946e5f561758961212a
which was based on
http://anis-moussa.blogspot.com/2014/03/ramer-douglas-peucker-algorithm-for.html
2018-12-14 19:29:58 +01:00
bubnikv
d13dca906b Visivalingam simplification algorithm https://github.com/slic3r/Slic3r/pull/3825
thanks to @fuchstraumer
2018-12-05 16:11:00 +01:00
Enrico Turri
059ab4a05c ModelInstance's full 3D transform set as default 2018-10-16 09:51:30 +02:00
bubnikv
6260e43f61 Merge remote-tracking branch 'origin/dev2' into dev_native 2018-09-25 15:33:51 +02:00
bubnikv
0558b53493 WIP: Moved sources int src/, separated most of the source code from Perl.
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00