Alessandro Ranellucci
98e40d3fe4
Store width and height in ExtrusionEntity objects for debugging purposes
2014-04-29 23:16:16 +02:00
Alessandro Ranellucci
a31b2e6ca2
Stricter implementation of the overhang detection. Includes unit tests
2014-04-29 19:58:58 +02:00
Alessandro Ranellucci
caf7b3f97e
Prune bridge angles
2014-04-29 18:36:50 +02:00
Alessandro Ranellucci
f7421053cc
Improvements to bridge angle detection: use coverage test for all cases (including two-sided bridges and C-shaped bridges) and check for all angles equal to directions of bridge sides
2014-04-28 22:15:40 +02:00
Alessandro Ranellucci
2720000a17
New get_trapezoids() implementation. Maybe heavier but it doesn't fail with some versions of GCC like the one provided by Boost.Polygon. #1965
2014-04-28 20:14:20 +02:00
Alessandro Ranellucci
ce9cf4d964
Don't put supports under bridges and potential bridges
2014-04-26 17:19:50 +02:00
Alessandro Ranellucci
148c773319
Exclude support from bridged areas
2014-04-26 16:07:43 +02:00
Alessandro Ranellucci
7ac0095018
Fix regression causing default extrusion width to be ignored. #1958
2014-04-25 19:39:27 +02:00
Alessandro Ranellucci
f6897a346a
Fix islands not being ordered efficiently with the logic that completes each of them before moving to the next one (which is now the default behavior). #1137
2014-04-25 19:11:17 +02:00
Alessandro Ranellucci
6201aacf88
New coverage detection for bridges. Includes implementation of ExPolygon::get_trapezoids()
2014-04-24 13:44:39 +02:00
Petr Ledvina
802ebfb0d6
Fix bridge detector
...
Test line direction is changed to reflect 0=east angle system
Test patern rotation direction is reversed - $angle represents infill direction
Angle test is changed to avoid returning negative value (this does happen otherwise - adding increments to $angle
creates ~ 1e-15 rounding error)
2014-04-23 11:35:58 +02:00
Alessandro Ranellucci
9989ebaabd
Refactored the BridgeDetector class to expose a cleaner API and make it stateful
2014-04-22 00:59:14 +02:00
Alessandro Ranellucci
f7e8a99078
More tests and related fixes to bridge detection. #1917
2014-04-21 20:44:21 +02:00
Alessandro Ranellucci
15628a90ed
Regression test for numerical issues causing thin gaps between perimeters and infill. #1803
2014-04-18 17:30:35 +02:00
Alessandro Ranellucci
93f4fe05e1
Better logic for gap fill: don't subtract from fill surfaces those gaps that medial axis was unable to fill. Thanks ledvinap for the idea and proof of concept implementation. Includes a tolerance factor for avoiding being too strict when collapsing loops (allow some overlap if that helps avoiding triggering medial axis). #1803
2014-04-15 01:41:40 +02:00
Alessandro Ranellucci
e02d33bbce
Remove weak test. #1803
2014-04-15 00:57:43 +02:00
Alessandro Ranellucci
43ffb7d3e8
Bugfix: sometimes a tiny gap was left between infill and perimeters. Includes regression test. #1803
2014-04-15 00:22:31 +02:00
Alessandro Ranellucci
8e5ca0ab76
Fixed a couple typos
2014-04-09 00:36:13 +02:00
Alessandro Ranellucci
627f23d5fe
Make angle increment (i.e. angle resolution) configurable
2014-04-08 16:53:32 +02:00
Alessandro Ranellucci
38f6e3b643
More unit tests for bridge angle detection
2014-04-08 15:18:37 +02:00
Alessandro Ranellucci
9be57f750d
Some fixes to bridge direction detection. Includes regression tests
2014-04-08 14:51:55 +02:00
Alessandro Ranellucci
23e6abff49
Added first unit test for bridge direction
2014-04-08 13:08:42 +02:00
Alessandro Ranellucci
119778caa9
Refactoring: move bridge angle detection to a separate class for easier unit testing
2014-04-07 23:18:11 +02:00
Alessandro Ranellucci
432a87e73d
New option for forcing the generation of interface shells. #1847
2014-03-25 01:11:28 +01:00
Alessandro Ranellucci
5d3c8575c5
Bugfix: holes were not sorted using the nearest-neighbor search, resulting in inefficient paths. #1785
2014-03-23 19:55:31 +01:00
Alessandro Ranellucci
52de292a48
Fixed wrong refactoring of perimeter tree traversal. #1832
2014-03-15 02:16:04 +01:00
Alessandro Ranellucci
b71d28bd5a
Fix minor error and update MANIFEST
2014-03-11 19:19:34 +01:00
Alessandro Ranellucci
f344426873
Better linear gap fill, now with adaptive extrusion width
2014-03-11 19:08:14 +01:00
Alessandro Ranellucci
98b7ae0022
Initial implementation of linear gap fill
2014-03-09 21:26:03 +01:00
Alessandro Ranellucci
7f5442265e
Include thin walls in general top-level perimeter sorting to get more efficient paths
2014-03-09 20:19:30 +01:00
Alessandro Ranellucci
2a73ab988f
Recursive pruning. Some more unit tests
2014-03-09 17:46:02 +01:00
Alessandro Ranellucci
04d80ca392
Some improvements to pruning and some additions here and there
2014-03-05 18:43:01 +01:00
Alessandro Ranellucci
c2ed6090d3
Fix the max width supplied to medial axis code: it's up to two extrusions
2014-03-05 00:53:51 +01:00
Alessandro Ranellucci
4a894b1e20
Add safety offset to thin wall regions to prevent overlapping geometry and corrupt Voronoi diagram
2014-03-05 00:45:17 +01:00
Alessandro Ranellucci
3c77b301a7
Promising approach to medial axis pruning
2014-03-04 23:33:13 +01:00
Alessandro Ranellucci
8644440070
Minor improvements to SVG debug output for medial axis
2014-03-03 14:20:15 +01:00
Alessandro Ranellucci
eadffe4a9e
Merge branch 'master' into boost-medialaxis
...
Conflicts:
lib/Slic3r/Layer/Region.pm
xs/src/ExPolygon.cpp
xs/src/Point.cpp
xs/src/Point.hpp
xs/src/TriangleMesh.cpp
xs/t/01_trianglemesh.t
2014-03-02 22:36:20 +01:00
Alessandro Ranellucci
0f9e143ba1
Removed debugging line
2014-03-02 00:44:16 +01:00
Alessandro Ranellucci
2295d48947
Better pruning of thin walls to avoid unwanted extra extrusions. Includes regression test. #1794
...
Conflicts:
lib/Slic3r/Layer/Region.pm
2014-03-02 00:31:17 +01:00
Alessandro Ranellucci
dfd9bc8958
Bugfix: prevent fatal error in the rare case that no bridge anchors are found. #1607
2014-01-15 00:24:37 +01:00
Alessandro Ranellucci
a51743a8c1
Bugfix: lack of strong type checking when passing arrayref objects to XS caused random lack of infill. Now added strong type checking for all XS entities. Also fixes a potential issue with bridges caused by the same error. #1652
...
Conflicts:
lib/Slic3r/Layer/Region.pm
2014-01-12 00:54:10 +01:00
Alessandro Ranellucci
7b0decbeb1
Finished implementing Boost.Polygon medial axis. Some cleanup needed
2014-01-10 16:18:55 +01:00
Alessandro Ranellucci
07a4c37c4c
Semi-working Boost.Polygon medial axis. Hangs after perimeters, though. Needs pruning and chaining
2014-01-10 11:47:16 +01:00
Alessandro Ranellucci
bf91f3096a
Incomplete work for using Boost.Polygon to compute medial axis
2014-01-09 17:26:39 +01:00
Alessandro Ranellucci
c8a48b4527
Implement modifier volumes and port _merge_loops() to XS
2014-01-07 15:40:38 +01:00
Alessandro Ranellucci
8ed738d3f7
More incomplete work for Flow/Extruder refactoring
2014-01-03 18:27:46 +01:00
Alessandro Ranellucci
e2f1040a76
More work
2014-01-02 10:44:54 +01:00
Alessandro Ranellucci
83326845dd
More incomplete work
2013-12-31 14:33:03 +01:00
Alessandro Ranellucci
beb1baa096
Incomplete work for refactoring regions and flows
2013-12-30 18:28:41 +01:00
Alessandro Ranellucci
13d7b39072
Fix random crashes on 32-bit. Thank you Valgrind
2013-12-28 15:37:04 +01:00
Alessandro Ranellucci
1a690589a8
Satisfy test suite
2013-12-24 12:03:30 +01:00
Alessandro Ranellucci
1157a7f859
Remove package variable $Slic3r::Config
2013-12-24 11:29:31 +01:00
Alessandro Ranellucci
87c5427010
Fixed regression causing incomplete gap fill when all configured perimeters were successfully generated. #1589
2013-12-23 21:23:26 +01:00
Alessandro Ranellucci
cacbaa7319
Fix regression causing thin walls to come out as zigzag paths. #1573 #1575
2013-12-23 20:37:46 +01:00
Alessandro Ranellucci
57fd6ad563
Removed dependency on ->object from Region.pm
2013-11-26 18:46:48 +01:00
Alessandro Ranellucci
a93c862338
Ported traverse_pt() to XS
2013-11-23 23:21:59 +01:00
Alessandro Ranellucci
b47b8ee34f
Adapt new code to contains_point()
2013-11-23 22:45:17 +01:00
Alessandro Ranellucci
fc4483d09c
Do perimeters one island at time instead of doing all holes before all contours
2013-11-23 22:45:00 +01:00
Alessandro Ranellucci
30297ee4dc
Removed chained_path_items()
2013-11-23 21:47:33 +01:00
Alessandro Ranellucci
e75dbf37fa
Never scale TriangleMesh objects
2013-11-23 19:25:33 +01:00
Alessandro Ranellucci
a331f4d27a
Finished porting group() to XS
2013-11-23 18:15:59 +01:00
Alessandro Ranellucci
df8d889481
More unfinished work
2013-11-22 02:16:10 +01:00
Alessandro Ranellucci
3aef663f7f
Removed clip_with_polygon() and clip_with_expolygon()
2013-11-21 18:16:03 +01:00
Alessandro Ranellucci
5f81292f3f
Ported encloses_point() to XS and renamed to contains_point()
2013-11-21 16:21:42 +01:00
Alessandro Ranellucci
3025c77675
Use Clipper for line clipping
2013-11-21 14:15:38 +01:00
Alessandro Ranellucci
50c0081d25
Update Clipper to 6.0.0
2013-11-20 11:35:58 +01:00
Alessandro Ranellucci
d49052779f
Remove useless code (thin walls and gaps are detected by the same logic now, so no need for additional checks)
2013-11-19 15:55:22 +01:00
Alessandro Ranellucci
abe56f96da
Cleaner logic for perimeters, thin walls and gaps. More correct results and faster processing
2013-11-18 17:06:08 +01:00
Alessandro Ranellucci
9f41f0279e
Some work to reduce recursive dependencies between classes
2013-11-11 20:37:06 +01:00
Alessandro Ranellucci
09be25a156
Removed useless functions
2013-11-06 21:09:28 +01:00
Alessandro Ranellucci
9918c1e97d
Minor improvements in debug output
2013-10-13 12:12:03 +02:00
Alessandro Ranellucci
9a51964e98
Clean medial axis code and gap fill
2013-09-17 10:37:01 +02:00
Alessandro Ranellucci
09684c67c2
Optimization: Remove useless calls to union()
2013-09-07 00:28:53 +02:00
Alessandro Ranellucci
e02ae0d18a
Return Surface objects by reference from SurfaceCollection objects and fix a bug in XS code causing some shell options to be ignored
2013-09-06 18:36:38 +02:00
Alessandro Ranellucci
a49dc603cc
Many changes and fixes to remove leaks and return objects by reference
2013-09-03 19:26:58 +02:00
Alessandro Ranellucci
275422fac7
Don't return first_point() and last_point() by reference
2013-09-02 22:33:03 +02:00
Alessandro Ranellucci
c0789506e4
Return objects by reference instead of always cloning
2013-09-02 20:22:20 +02:00
Alessandro Ranellucci
bd7b0e2aed
Ported ExtrusionPath::Collection->chained_path
2013-08-29 11:47:59 +02:00
Alessandro Ranellucci
5d6fd7f4d9
Optimizations for better usage of XS code
2013-08-29 01:36:42 +02:00
Alessandro Ranellucci
fb763b0187
Removed dependency on Math::Clipper
2013-08-27 01:26:44 +02:00
Alessandro Ranellucci
da0b85c0d9
Ported ExPolygon->contour and ExPolygon->holes
2013-08-26 23:09:18 +02:00
Alessandro Ranellucci
9cf831b9c5
Ported union_pt() to XS
2013-08-26 18:37:19 +02:00
Alessandro Ranellucci
443d4e52cb
Fixed everything in the XS port
2013-08-26 17:58:37 +02:00
Alessandro Ranellucci
fc9cec9d81
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print/Object.pm
2013-08-25 19:59:42 +02:00
Alessandro Ranellucci
3d6fb1b05c
New feature: ability to override specific settings for individual objects in the plater. #344
2013-08-25 14:37:50 +02:00
Alessandro Ranellucci
097912755b
Fix handling of dirty models with overlapping facets, where some holes became filled because of wrong slice nesting
2013-08-19 16:53:54 +02:00
Alessandro Ranellucci
fa07c512b4
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print.pm
lib/Slic3r/Print/Object.pm
2013-08-16 09:09:56 +02:00
Alessandro Ranellucci
2b36778dc1
Fix a situation where extra perimeters prevented top shell to be fully propagated. #1387
2013-08-13 09:45:33 +02:00
Alessandro Ranellucci
3751e3813c
Fix regression causing too much collapsing of infill regions
2013-08-09 16:18:21 +02:00
Alessandro Ranellucci
3427b29a93
Fix wrong slices when many overlapping facets were present in the model
2013-08-08 16:27:41 +02:00
Alessandro Ranellucci
b38cc2c244
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r.pm
lib/Slic3r/ExPolygon.pm
lib/Slic3r/Fill.pm
lib/Slic3r/Fill/Rectilinear.pm
lib/Slic3r/GCode.pm
lib/Slic3r/GUI/Plater.pm
lib/Slic3r/Geometry/Clipper.pm
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print.pm
lib/Slic3r/Print/Object.pm
lib/Slic3r/TriangleMesh.pm
t/shells.t
xs/MANIFEST
2013-08-08 02:10:34 +02:00
Alessandro Ranellucci
2a2d15e422
Fix error after recent change about bridges
2013-07-29 12:15:30 +02:00
Alessandro Ranellucci
1f36406a62
Bugfix: thin bridge anchors were ignored. #304
2013-07-29 11:54:32 +02:00
Alessandro Ranellucci
a145f1b6aa
Don't merge adjacent bridges so that more correct angles can be detected for each one
2013-07-26 12:31:44 +02:00
Alessandro Ranellucci
37bf0fa53b
Bugfix: medial axis thin wall detection was triggered when not needed
2013-07-26 00:13:24 +02:00
Alessandro Ranellucci
8fe228fcee
Smarter ordering of gap fill
2013-07-26 00:03:28 +02:00
Alessandro Ranellucci
e29aca3553
Reapply correct optimization for simplifiying fill_surfaces before performing the offset. #1325
2013-07-20 12:22:41 +02:00
Alessandro Ranellucci
1b285f3f46
Thread-safe integration of ExtrusionPath::Collection
2013-07-18 22:29:12 +02:00
Alessandro Ranellucci
c030e38908
Ported ExtrusionPath::Collection
2013-07-18 19:09:07 +02:00
Alessandro Ranellucci
c7b6818ccf
Ported offset() and offset2()
2013-07-17 00:48:29 +02:00