Lukáš Hejl
3db66af716
Fix another compiler warning
2020-11-16 14:22:32 +01:00
Lukáš Hejl
266e6dee5d
Fix compiler warnings
2020-11-16 14:22:32 +01:00
Lukáš Hejl
c00c7eaed3
Rework of outer borders to reduce unnecessary detours along the border.
...
The resulting path now contains all intersection with borders, which allows eliminating more unnecessary detours and more simplify the path.
2020-11-16 14:22:32 +01:00
Lukáš Hejl
ef9de07740
Disabling wipe for avoid crossing perimeters
2020-11-16 14:22:32 +01:00
Lukáš Hejl
7f94e9fa59
Fixed perimeters crossing when supports are printed.
2020-11-16 14:22:32 +01:00
Lukáš Hejl
2afeea5b6f
Fixed division by zero when the layer is empty
2020-11-16 14:22:32 +01:00
Lukáš Hejl
3e98e2a4bd
Fixed avoiding of other printed objects, again
...
Calling std::move on itself causes that the first polygon is empty, which results in disabling this feature on Linux.
This was fixed before, but I accidentally reverted it when AvoidCrossingPerimeters was moved to separate file.
2020-11-16 14:22:32 +01:00
Lukáš Hejl
8adf02a289
Moved AvoidCrossingPerimeters to separate file
2020-11-16 14:22:32 +01:00
Lukáš Hejl
20916e2362
Disable filed with max detour length when avoid crossing perimeters is disabled
2020-11-16 14:22:32 +01:00
Lukáš Hejl
4288be0e06
Fixed a case when the intersection is one of the endpoints of the line
2020-11-16 14:22:32 +01:00
Lukáš Hejl
c828a5d6e9
Added the possibility to set the maximum length of the detour
2020-11-16 14:22:32 +01:00
Lukáš Hejl
c16aad7e0b
Reworked the algorithm for avoid crossing perimeters for multiple objects
2020-11-16 14:21:36 +01:00
Lukáš Hejl
69658a57d8
Fixed crossing perimeters in some cases
2020-11-16 14:21:36 +01:00
Lukáš Hejl
556c212f9d
Fixed crossing perimeters when option "Wipe while retracting" is enabled
2020-11-16 14:21:36 +01:00
Lukáš Hejl
39e3358af5
Avoid crossing perimeters bugfix
2020-11-16 14:21:36 +01:00
Lukáš Hejl
a4fc435f75
Clear generated boundaries from previous layer
2020-11-16 14:21:36 +01:00
Lukáš Hejl
5c073d0ddb
Improved documentation of avoid crossing perimeters algorithm.
2020-11-16 14:21:36 +01:00
Lukáš Hejl
46bae74e48
Finalization of avoid crossing perimeters algorithm
...
EdgeGrid::Grid is used to find the intersection of a path with a polygon.
Simplification of find path.
Calculation of boundaries that not be crossed.
2020-11-16 14:21:36 +01:00
Lukáš Hejl
074406647a
Fixed bug when algorithm stuck in a loop
2020-11-16 14:21:36 +01:00
Lukáš Hejl
6573bc15a5
Selection of shortest path around polygon boundary
2020-11-16 14:21:36 +01:00
Lukáš Hejl
7a4ba7d131
A simple algorithm to follow the boundary of polygons
2020-11-16 14:21:36 +01:00
Lukáš Hejl
6ed25f6e1c
Fixed avoiding of other printed objects
...
Calling std::move on itself causes that the first polygon is empty, which results in disabling this feature
2020-10-06 13:19:39 +02:00
Lukáš Hejl
0b0709b3d8
Fix crash in adaptive infill when an extrusion line width is zero.
...
When an extrusion line width is set to zero, then an extrusion line width is calculated from nozzle diameter.
2020-09-25 09:54:27 +02:00
Lukáš Hejl
50a6680dcd
Merge branch 'lh_adaptive_support_infill_fix'
2020-09-10 23:12:32 +02:00
Lukáš Hejl
137e7a0712
Fix compiler warnings and failing compilation on macOS
2020-09-10 22:57:58 +02:00
Lukáš Hejl
7ef5def077
Fix typo in function build_octree
2020-09-10 22:38:37 +02:00
Lukáš Hejl
e9a325c9ca
Fix rotation in support cubic infill
2020-09-10 22:30:49 +02:00
Lukáš Hejl
40a7a44495
Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer
2020-09-10 17:02:54 +02:00
Lukáš Hejl
cf838a47c4
Merge branch 'lh_adaptive_support_infill'
2020-09-10 17:01:56 +02:00
Lukáš Hejl
f49144a9ef
Move support cubic infill to separate class.
...
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
Lukáš Hejl
8fb9b290b2
A prototype of adaptive support infill
2020-09-10 14:55:48 +02:00
Lukáš Hejl
680b1b9809
Construct octree based on inserted points
2020-09-10 14:52:26 +02:00
Lukáš Hejl
c261624999
A simple version of adaptive cubic support, for testing purposes
2020-09-10 14:52:26 +02:00
Lukáš Hejl
e55d184a7d
Fix missing initialization in TriangleMesh constructor
2020-09-10 14:52:26 +02:00
Lukáš Hejl
70cb67430c
Move rotation from building octree to infill generating
2020-09-10 14:52:21 +02:00
Lukáš Hejl
e28b29699b
Merge branch 'lh_adaptive_infill'
2020-09-09 14:42:03 +02:00
Lukáš Hejl
5e9399247c
Check if exist any boundary polyline
2020-09-09 14:40:14 +02:00
Lukáš Hejl
5633526ecf
Enable changing adaptive infill density for different objects
2020-09-09 14:40:14 +02:00
Lukáš Hejl
aca212c5bc
Octree representation rework
2020-09-09 14:40:14 +02:00
Lukáš Hejl
acedb66cdc
Change to using raw_mesh instead of mesh
2020-09-09 14:40:14 +02:00
Lukáš Hejl
000987451a
Fix bug in lines merging
2020-09-09 14:40:14 +02:00
Lukáš Hejl
03e103fcc8
Connect infill to perimeters
2020-09-09 14:40:14 +02:00
Lukáš Hejl
398d429ce1
Code cleanup
2020-09-09 14:40:14 +02:00
Lukáš Hejl
d09ac41d2c
Octree's first cube depends on model size.
2020-09-09 14:40:14 +02:00
Lukáš Hejl
2debffc496
Fix tests which expect make_fills without arguments
2020-09-09 14:40:14 +02:00
Lukáš Hejl
33121b705a
Change in passing octree struct
2020-09-09 14:40:08 +02:00
Lukáš Hejl
9eeb5e4364
Fix wrong data type
2020-09-09 14:37:20 +02:00
Lukáš Hejl
65ba40f044
Fix crash on inconsistent input
2020-09-09 14:37:20 +02:00
Lukáš Hejl
867681ae56
Fix discontinuous extrusion lines for adaptive infill
2020-09-09 14:37:20 +02:00
Lukáš Hejl
14a7fbc9f7
Switch to smart pointers
2020-09-09 14:37:17 +02:00
Lukáš Hejl
c0d21bd2b4
Polylines merging
2020-09-09 14:34:04 +02:00
Lukáš Hejl
c311b84b21
Add function for check existence of triangle in define radius
2020-09-09 14:34:04 +02:00
Lukáš Hejl
9f049b2619
Generating polylines from octree
2020-09-09 14:34:04 +02:00
Lukáš Hejl
34f38c4a79
Building octree based on distance from mesh
2020-09-09 14:34:04 +02:00
Lukáš Hejl
0d26df3cf6
Preparation for new infill
2020-09-09 14:34:04 +02:00
Lukáš Hejl
97e62be902
Check if exist any boundary polyline
2020-09-07 09:14:06 +02:00
Lukáš Hejl
6c01d537e4
Enable changing adaptive infill density for different objects
2020-09-03 23:15:46 +02:00
Lukáš Hejl
ce18b824ad
Octree representation rework
2020-09-03 19:21:55 +02:00
Lukáš Hejl
c2af265df8
Change to using raw_mesh instead of mesh
2020-09-03 16:08:40 +02:00
Lukáš Hejl
184cb7afd9
Fix bug in lines merging
2020-09-03 14:28:25 +02:00
Lukáš Hejl
353c65fa4c
Connect infill to perimeters
2020-09-03 13:05:28 +02:00
Lukáš Hejl
a3a1c20172
Code cleanup
2020-09-03 11:56:41 +02:00
Lukáš Hejl
fd3a31651c
Octree's first cube depends on model size.
2020-09-03 08:04:05 +02:00
Lukáš Hejl
71237cf11f
Fix tests which expect make_fills without arguments
2020-09-03 07:52:53 +02:00
Lukáš Hejl
5997f2759c
Change in passing octree struct
2020-09-02 22:53:10 +02:00
Lukáš Hejl
423d1f2f40
Fix wrong data type
2020-08-31 08:49:17 +02:00
Lukáš Hejl
8e6760e033
Fix crash on inconsistent input
2020-08-30 20:38:07 +02:00
Lukáš Hejl
b28f9b8935
Fix discontinuous extrusion lines for adaptive infill
2020-08-27 13:04:53 +02:00
Lukáš Hejl
c5a73a7cd6
Switch to smart pointers
2020-08-27 07:28:43 +02:00
Lukáš Hejl
cb328c99aa
Polylines merging
2020-08-27 01:59:35 +02:00
Lukáš Hejl
fb24d8167a
Add function for check existence of triangle in define radius
2020-08-26 23:28:52 +02:00
Lukáš Hejl
eaaff4e707
Generating polylines from octree
2020-08-26 22:18:51 +02:00
Lukáš Hejl
3ac16d9c9c
Building octree based on distance from mesh
2020-08-26 18:15:59 +02:00
Lukáš Hejl
42a7f2b1d8
Preparation for new infill
2020-08-26 16:51:34 +02:00