Vojtech Bubnik
409e1c5cc8
Some fixes after preceding merge. Moved mmu_segmented_region_max_width
...
from PrintConfig to PrintObjectConfig.
2021-05-26 16:14:52 +02:00
Vojtech Bubnik
980ca195f5
Merge remote-tracking branch 'remotes/origin/lh_multi_material_segmentation' into vb_print_regions
2021-05-26 15:23:35 +02:00
Vojtech Bubnik
0d081c90f0
Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions
2021-05-26 14:38:34 +02:00
Vojtech Bubnik
7f1f0d29d0
Will gcc accept this?
2021-05-26 14:33:24 +02:00
Vojtech Bubnik
cba1950a4e
Fixing compilation on gcc.
2021-05-26 14:30:25 +02:00
Vojtech Bubnik
e24026bfa5
Making the "Default" extruder transparent for modifier meshes and layer
...
range modifiers.
2021-05-26 14:25:33 +02:00
Vojtech Bubnik
b3195614cf
WIP PrintRegion refactoring: Another round of bug fixing, negative volumes
...
seem to work.
2021-05-26 12:41:06 +02:00
Vojtech Bubnik
8ab6a615d0
Fixed another compiler warning
2021-05-25 21:17:07 +02:00
Vojtech Bubnik
dd79a2b832
Fixing some compiler warnings
2021-05-25 20:46:31 +02:00
Vojtech Bubnik
8a297be74e
Fixing another clang complaint
2021-05-25 20:03:05 +02:00
Vojtech Bubnik
c3cd2c7f55
Fixing an OSX clang quirk.
2021-05-25 19:27:20 +02:00
Vojtech Bubnik
9b9354a2aa
WIP: Rework of PrintRegions, bunch of bug fixes.
2021-05-25 18:12:38 +02:00
Vojtech Bubnik
701a0c9576
Two more bugs squished.
2021-05-24 18:07:12 +02:00
Vojtech Bubnik
72d1faa03e
WIP PrintRegion refactoring: Squashed some bugs.
2021-05-24 16:55:34 +02:00
Vojtech Bubnik
c8bdc62af4
Fixing compilation on Linux
2021-05-24 15:12:04 +02:00
Vojtech Bubnik
04014db136
Fixing compilation on Linux
2021-05-24 15:08:07 +02:00
Vojtech Bubnik
92b4f0542a
Another compilation fix.
2021-05-24 15:00:08 +02:00
Vojtech Bubnik
fd97a49ccc
Fixing the previous commit.
2021-05-24 14:36:27 +02:00
Vojtech Bubnik
e658fe0698
WIP: PrintRegion refactoring, it finally compiles!
...
Config/PrintConfig refactoring to support operator< for StaticPrintConfig
derived containers.
2021-05-24 14:10:04 +02:00
Vojtech Bubnik
740773db85
WIP: Refactoring of PrintRegions. It nearly compiles!
2021-05-21 17:57:37 +02:00
Vojtech Bubnik
ef9004cee4
Fix of its_collect_mesh_projection_points_above()
...
Fix of perl integration tests after introduction of not using the mesh
below the print bed.
2021-05-20 13:58:27 +02:00
Vojtech Bubnik
ff6623b0f4
Fixing
2021-05-19 16:51:25 +02:00
Vojtech Bubnik
116e2b2112
Fixing the slice_mesh() after recent refactoring.
2021-05-19 16:09:45 +02:00
Vojtech Bubnik
68b0d92183
Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions
2021-05-19 14:00:21 +02:00
Vojtech Bubnik
31942e03db
Optimization of its_collect_mesh_projection_points_above(): Reserve points.
2021-05-19 13:59:34 +02:00
Vojtech Bubnik
e952aded78
cut_mesh(): new parameter to optionally not triangulate the caps.
2021-05-19 13:52:47 +02:00
Vojtech Bubnik
66cf7ea9d3
Extracting its_collect_mesh_projection_points_above() out of
...
its_convex_hull_2d_above(), so that the projected points may get
collected over multiple volumes before applying Geometry::convex_hull()
2021-05-19 13:39:56 +02:00
Vojtech Bubnik
5644b98d3b
Factored out convex hull calculation from ModelObject::convex_hull_2d()
...
to Geometry::convex_hull().
Update Geometry::convex_hull() to handle duplicate points.
2021-05-19 13:23:19 +02:00
Vojtech Bubnik
8db2d96c75
Point::ccw() optimization: Calculate with int64, not doubles.
2021-05-19 12:01:30 +02:00
Vojtech Bubnik
6b54f34ce1
New functions: its_convex_hull_2d_above()
2021-05-19 11:35:42 +02:00
Vojtech Bubnik
682c405fc2
Merge remote-tracking branch 'remotes/origin/master' into vb_print_regions
2021-05-19 09:40:24 +02:00
Vojtech Bubnik
f5f912e6e9
WIP: Refactoring of PrintRegions
2021-05-19 09:38:51 +02:00
Vojtech Bubnik
c28cd957d5
New utility function its_merge_vertices().
...
Implemented contour simplification inside slice_mesh_ex().
2021-05-18 17:57:55 +02:00
Vojtech Bubnik
3481898d4d
Fixed missing include
2021-05-18 16:15:54 +02:00
Vojtech Bubnik
78c0199523
TriangleMeshSlicer: Optimized out unnecessary transformations.
2021-05-18 16:12:49 +02:00
Vojtech Bubnik
70b4915f9c
TriangleMeshSlicer: Got rid of admesh!
2021-05-18 15:05:30 +02:00
Vojtech Bubnik
308d6b7809
WIP: Reworked slicing
...
1) Slicing code moved to TriangleMeshSlicer.cpp,hpp from TriangleMesh.cpp,hpp
2) Refactored to use as little as possible of admesh.
2021-05-17 20:25:59 +02:00
Vojtech Bubnik
2b9e41e695
Fix of a special case in auto color print feature, which crashed with
...
single layer PrintObjects.
Fixes Segmentation fault (GLib-GObject null pointer) #6516
2021-05-14 14:57:41 +02:00
Vojtech Bubnik
221af991c2
Fixed update of PrintRegions after removing an object.
...
The bug has been introduced during recent PrintRegion refactoring.
2021-05-14 11:52:33 +02:00
Vojtech Bubnik
5828decfc7
Fixing multi-material printing after recent refactoring ( d21b9aa to 1c6333e)
2021-05-10 09:32:24 +02:00
Vojtech Bubnik
5c35fa4539
Commenting source of Polygon::centroid() algorithm
2021-05-07 11:54:25 +02:00
Vojtech Bubnik
52b3c655ff
Fixed Polygon::centroid()
...
Ported Polygon unit tests from Perl to C++.
2021-05-07 11:42:21 +02:00
Vojtech Bubnik
1c26367ba1
Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
2021-05-07 09:45:33 +02:00
Vojtech Bubnik
68fabfea62
Fix of Polygon::area().
2021-05-07 09:45:27 +02:00
Vojtech Bubnik
feefbc575a
Refactored PrintObject::m_region_volumes for extensibility.
...
WIP for multi-material painting.
2021-05-06 15:48:38 +02:00
Vojtech Bubnik
dd72016159
FDM backend refactoring for const correctness, clarity ...
2021-05-06 15:08:57 +02:00
Vojtech Bubnik
b5573f959b
Refactoring for code clarity: Replaced this->m_xxx with m_xxx
...
as the m_ prefix already signifies a class local variable.
2021-05-06 14:43:36 +02:00
Vojtech Bubnik
f16d4953be
Removing offset2 from Perl bindings and other minor cleanup.
2021-05-06 14:29:20 +02:00
Vojtech Bubnik
1c6333e557
Fixing Perl integration
2021-05-06 13:58:37 +02:00
Vojtech Bubnik
0ca6b12da1
Print/PrintObject/PrintRegion refactoring:
...
Newly the PrintObjects own PrintRegions and Print contains references
to PrintRegions owned by PrintObjects, so that a PrintRegion of the same
content is referenced by Print only once.
The refactoring is a WIP to support multi-material painting.
2021-05-06 13:01:09 +02:00
Vojtech Bubnik
ee15f00574
FDM backend refactoring: Return PrintRegion by reference, not by pointer.
...
Added PrintRegion hashing.
2021-05-05 18:13:58 +02:00
Vojtech Bubnik
b8db1922f7
Fixing perl bindings
2021-05-05 17:03:11 +02:00
Vojtech Bubnik
714149dab2
WIP: Moving ownership of PrintRegions to PrintObjects.
2021-05-05 16:21:55 +02:00
Vojtech Bubnik
d21b9aa089
Fixing perl integration
2021-05-05 15:05:52 +02:00
Vojtech Bubnik
a7c67415c7
Another try of fixing compilation on gcc.
2021-05-05 14:34:54 +02:00
Vojtech Bubnik
18001fbb4e
Fixing compilation on gcc
2021-05-05 14:32:19 +02:00
Vojtech Bubnik
d6c5961eb0
Factored out the Print::apply() method and its dependending free functions
...
into PrintApply.cpp module.
2021-05-05 14:30:09 +02:00
Vojtech Bubnik
72ce8cb28d
PrintRegion refactoring: Getting rid of the Print pointer.
2021-05-05 14:17:36 +02:00
Vojtech Bubnik
9537c4e8d0
Fixed a perl test that was mistkanely adjusted after ClipperLib refactoring.
2021-05-05 13:30:19 +02:00
Vojtech Bubnik
5764d8984c
Fixed perl unit tests
2021-05-05 13:27:00 +02:00
Vojtech Bubnik
a2de09e11e
Fixing unit tests.
2021-05-05 13:19:01 +02:00
Vojtech Bubnik
7d4b3f2992
Fix of safety_offset() after ClipperUtils refactoring.
...
Fixes Solid infill where there should be none #6482
Also the safety offsetting was revised to be enabled only where needed,
the "do safety offset" is now easy to discover by
a new ApplySafetyOffset::Yes enum, and safety offset over union, which
is better done by offset() / offset_ex() has been replaced with
new union_safety_offset() / union_safety_offset_ex() functions, which
better convey their meaning and which could be better optimized than
union() with the safety offset applied.
2021-05-05 12:16:47 +02:00
Vojtech Bubnik
fd3dd1611c
Fixed alignment of sparse infill over multiple layers of the same region,
...
which was broken with 68666de521b1cb15e41ac6728c0e8d3b4b0d4ed0
"Reworked the "new" bridging to respect the bridge_flow_ratio
by maintaining extrusion spacing, but modifying the extrusion width
and / or height."
2021-05-04 18:27:53 +02:00
Vojtech Bubnik
00835c7367
Fixing compilation on clang in debug mode.
2021-05-04 16:13:40 +02:00
Vojtech Bubnik
1aef86f650
Implemented generic mechanism for executing tasks on UI thread synchronously
...
from the background slicing thread, that supports cancellation.
The generic mechanism is used for generating thumbnails into G-code and
Fixes Fix deadlock when canceling the slicing while gcode is creating thumbnails #6476
Thanks @supermerill for pointing out the issue.
2021-05-04 16:07:32 +02:00
Vojtech Bubnik
5cc6dc59dc
Fixed compilation with GCC
2021-05-04 11:22:38 +02:00
Vojtech Bubnik
a7368b9deb
Fixing thread-safe StaticConfig creations #6477
...
fix un-threadsafe code for creating config enum hashtable. #6475
2021-05-04 11:03:26 +02:00
Vojtech Bubnik
ab74ea5c90
One more fix after merge.
2021-05-03 15:30:10 +02:00
Vojtech Bubnik
2aadc1cefa
Fixing after merge.
2021-05-03 15:28:03 +02:00
Vojtech Bubnik
eb66111eda
Merge branch 'vb_clipper_optimization'
2021-05-03 15:24:04 +02:00
Vojtech Bubnik
ef07644bf2
Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
2021-05-03 15:23:57 +02:00
Vojtech Bubnik
7563c885a1
Fixing compiler warnings
2021-05-03 15:00:23 +02:00
Vojtech Bubnik
0e6e60705d
Fixing one unit test, which seems to indicate that the refactoring
...
fixed one issue (hopefully it was not that a newly introduced bug
hides an old one).
2021-05-03 14:12:08 +02:00
Vojtech Bubnik
96f8744e05
Another fix for C++ conformant compilers
2021-05-03 11:55:23 +02:00
Vojtech Bubnik
c7c7983e77
Fixing compilation on C++ conforming compilers
2021-05-03 11:50:05 +02:00
Vojtech Bubnik
09a80d954c
Further rework of ClipperUtils: Replaced many to_polygons() /
...
to_expolygons() calls with templated ClipperUtils variants to avoid
memory allocation and copying.
2021-05-03 11:39:53 +02:00
Vojtech Bubnik
9fbba855ef
Clipper optimization:
...
1) Removed the already commented-out scaling / unscaling when doing
"safe offsetting"
2) Removed some of the "safe offsetting" at calls where it never was used.
3) Reworked Clipper & ClipperUtils to pass Polygons / ExPolygons / Surfaces
as input parameters without conversion to ClipperLib::Paths. This
should save a lot of memory allocation and copying.
4) Reworked conversions from ClipperLib::Paths & PolyTree to Polygons /
ExPolygons to use the move operator to avoid many unnecessary allocations.
5) Reworked some "union with safe ofsetting" to "offset_ex", which should
be cheaper.
2021-04-30 11:49:57 +02:00
Vojtech Bubnik
b327314b02
Layer::make_perimeters() - when merging regions, use OffsetEx instead
...
of safety offset of UnionEx, which may not be robust.
2021-04-29 11:05:11 +02:00
Vojtech Bubnik
d1cfdcb49e
Refactoring of StaticPrintConfig & derived classes:
...
1) Using boost::preprocessor to reduce code duplicities when defining
new configuration values.
2) Implemented static hash() and operator== on StaticPrintConfig derived
classes to support hash tables of instances thereof.
2021-04-26 18:37:10 +02:00
Vojtech Bubnik
9f4e9da5c6
Merge branch 'tm_vb_clipper_eigen'
2021-04-23 11:44:25 +02:00
Vojtech Bubnik
1d588dad90
Fixed Perl bindings of Clipper after Clipper was adapted to Slic3r::Point
2021-04-23 11:02:16 +02:00
Vojtech Bubnik
38bb7d2950
1) New methods PrintObject::num_regions() and ::has_region() to make
...
the code more readable and to highlight where PrintObject::region_volumes
are actually set and consumed.
2) Replaced Slic3r::clamp() with std::clamp(). They differ in the order
of their parameters, thus hopefully no new bugs were introduced.
3) Some refactoring of MultiMaterialSegmentation for efficiency.
2021-04-22 11:41:26 +02:00
Vojtech Bubnik
3b86cb3a3c
Added missing files
2021-04-22 09:26:07 +02:00
Vojtech Bubnik
8d0950ce12
Convincing ClipperLib to use Slic3r's own Point type internally.
2021-04-21 20:15:49 +02:00
Vojtech Bubnik
bb8112f099
and the final Perl unit test fix
2021-04-21 15:47:28 +02:00
Vojtech Bubnik
dcfa1d10cf
Yet another Perl test
2021-04-21 15:46:47 +02:00
Vojtech Bubnik
ee53894c40
Another last perl unit test fix
2021-04-21 15:43:41 +02:00
Vojtech Bubnik
39deffdf5b
One more perl unit test fix
2021-04-21 15:40:43 +02:00
Vojtech Bubnik
c013b73308
Fixing perl unit tests
2021-04-21 15:38:00 +02:00
Vojtech Bubnik
542d95a593
Fixing unit tests
2021-04-21 15:31:06 +02:00
Vojtech Bubnik
0c1953a929
Further fixes of the first_layer_height refactoring.
2021-04-21 14:34:49 +02:00
Vojtech Bubnik
ba94fa4867
Fixed unit tests.
2021-04-21 13:30:32 +02:00
Vojtech Bubnik
d9ed9149ae
1) Moved first_layer_heigth frrom PrintObjectConfig to PrintConfig.
...
Thus the first_layer_height is no more object specific. That makes
a lot of sense due to the brim calculation being performed over
all layers at once and due to future merging of supports of
different objects at first layer.
2) Because now first_layer_height is print specific, the relative
first layer height derived from the object layer height was partially
disabled: First the relative first layer height is converted to
an absolute value when importing config, second the side text
was changed from "mm or %" to "mm". Still the UI allows entering %.
Both changes may be controversial, let's wait for user feedback.
2021-04-21 12:09:43 +02:00
Vojtech Bubnik
4f950343c8
MMU segmentation refactoring: Most of the MMU segmentation code
...
was extracted to its own file.
2021-04-20 15:07:05 +02:00
Vojtech Bubnik
48a93e40fb
After issuing the color change custom G-code, which is most likely
...
just M600, reset the internal retract counter, so that a retract
will happen after the firmware returns from M600 to the initial position.
Fixes "Blobs on print after manual color change #6362 "
2021-04-15 16:29:30 +02:00
Vojtech Bubnik
eb428d48fc
Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer
2021-04-15 13:48:29 +02:00
Vojtech Bubnik
d5ddf8b00e
RemovableManager on OSX: Testing for dictionary values for nullness.
...
Hopefully it fixes Can not start slicer on mac Bigsur #5719
2021-04-15 13:48:20 +02:00
Vojtech Bubnik
0625788583
Fixed obvious bug in move operator, discovered by clang lint ran by Tamas.
2021-04-14 14:25:30 +02:00
Vojtech Bubnik
7112ac61b6
Replacing ClipperLib::IntPoint with Eigen point as a first step to
...
make the ClipperLib paths and polygons compatible with Slic3r paths
and polygons without conversions and memory allocations.
2021-04-14 09:22:51 +02:00
Vojtech Bubnik
29cd8aac26
WIP: Fix of arrangement after reducing ClipperLib::cInt
...
from int64_t to int32_t
2021-04-13 16:35:46 +02:00