Commit Graph

411 Commits (e158d1e6124de731a9d22365bf3788b2bb45b4ac)

Author SHA1 Message Date
Alessandro Ranellucci fe1691c151 New --cut feature 2014-04-25 10:20:30 +02:00
Alessandro Ranellucci 37c7b958d4 New ExPolygon::triangulate() method 2014-04-24 17:06:16 +02:00
Alessandro Ranellucci bb0ce3cccd New Polygon::triangulate_convex() method 2014-04-24 16:59:36 +02:00
Alessandro Ranellucci ca4d4211c9 Refactored signatures of many C++ methods for more efficient and safer style. Includes a bugfix for Point::nearest_point() which was returning a pointer to freed memory. #1961 2014-04-24 16:40:10 +02:00
Alessandro Ranellucci 6201aacf88 New coverage detection for bridges. Includes implementation of ExPolygon::get_trapezoids() 2014-04-24 13:44:39 +02:00
Alessandro Ranellucci 1fc76b73a4 Merge pull request #1953 from ledvinap/fix-clipper-1834
Apply bug fix from upstream clipper. Fixes #1834
2014-04-22 15:39:42 +02:00
Petr Ledvina c30040b691 Apply bug fix from upstream clipper
Clipper fix in commit [r463] for bug repport #92 (http://sourceforge.net/p/polyclipping/code/463/tree//trunk/cpp/clipper.cpp?diff=504b9404fd48f873331e913b:462)
is applied here.
2014-04-22 15:19:35 +02:00
Alessandro Ranellucci bc101bd93e Assume bridge angle is stored in radians in infill generation. #1917 2014-04-21 23:21:15 +02:00
Alessandro Ranellucci 7041ebdd22 Workaround for upstream module bug causing command line option parsing for multi-boolean options like retract-layer-change and wipe 2014-04-19 19:14:41 +02:00
Alessandro Ranellucci 8018eac0f0 Set min temperature to 0 2014-04-19 18:32:04 +02:00
Alessandro Ranellucci c3bb8a69db Bugfix: crash when extending an array option by 2+ positions. #1908 2014-04-19 16:38:28 +02:00
Alessandro Ranellucci f51921a11a Default extruder wasn't applied to perimeter extruder. Includes regression test. #1868 2014-04-19 11:43:41 +02:00
Alessandro Ranellucci 93a7d87fc6 Bugfix: pillars support material crashed when no overhangs were detected 2014-04-07 16:59:22 +02:00
Alessandro Ranellucci 1c020eda78 Merge pull request #1911 from sapir/speed
Rewriting the extrusion path gcode generation in C++
2014-04-07 09:38:21 +02:00
Alessandro Ranellucci d6d6a51e0d Fix for incomplete extrusion on solid surfaces 2014-04-05 10:54:24 +02:00
Alessandro Ranellucci b68c55fec0 Bugfix: the Y coordinate of Point config fields was not correctly validated and lead to a crash when entering non-numeric values. Includes regression test. #1906 2014-04-05 09:40:24 +02:00
Y. Sapir 4deeff995a Move extrusion path gcode generation to C++ for speed. 2014-04-01 21:11:43 +03:00
Alessandro Ranellucci bbebcca82c Set default support material pattern to pillars 2014-03-27 00:05:22 +01:00
Alessandro Ranellucci 071097d3f1 Fix extruder assignment and tests 2014-03-27 00:01:33 +01:00
Alessandro Ranellucci 4540350b66 Specify that extruder indices are 1-based in tooltips 2014-03-26 00:14:45 +01:00
Alessandro Ranellucci 0ff33f47f1 Fix the extruder override logic. All role-based extruder options now default to 0, meaning no override is defined and the default (inherited) extruder is used. The default extruder option does not use the shortcut logic anymore (it was thus moved to be a CLI-specific logic) 2014-03-26 00:08:15 +01:00
Alessandro Ranellucci 432a87e73d New option for forcing the generation of interface shells. #1847 2014-03-25 01:11:28 +01:00
Alessandro Ranellucci 91799a9e58 Rephrase the tooltip for start G-code to make its position more clear. #1822 2014-03-24 22:06:35 +01:00
Alessandro Ranellucci 9fa2a17136 Better tooltip for top_solid_infill_speed. #1752 2014-03-24 14:25:12 +01:00
Alessandro Ranellucci 4c6f9703df Fix bad deserialization of extruder_offset = 0x0 2014-03-24 14:16:37 +01:00
Alessandro Ranellucci 7a58457add Prevent GUI from crashing when invalid values were written in numeric fields. Includes basic validation. #1709 2014-03-24 01:07:30 +01:00
Alessandro Ranellucci e9620c30b1 Update Clipper to 6.1.3a 2014-03-23 21:40:35 +01:00
Alessandro Ranellucci d02b64b31b Bugfix: binary STL export produced corrupt results on Windows. #1814 2014-03-23 19:17:56 +01:00
Alessandro Ranellucci 9f8b5f80d1 Add 0% to fill_density combobox 2014-03-23 16:57:12 +01:00
Alessandro Ranellucci d75417601e Make the override panel prettier and prevent the default extruder setting from being deleted since it can't be readded manually 2014-03-23 15:18:08 +01:00
Alessandro Ranellucci 21e6de0e59 Only expand shortcut options in StaticConfig objects. This way we can keep a default extruder value in the parts panel 2014-03-22 20:12:54 +01:00
Alessandro Ranellucci b5b735c988 ComboBox for fill density values 2014-03-22 17:01:48 +01:00
Alessandro Ranellucci 7421a7bf63 Turn fill_density into percentage 2014-03-22 16:23:33 +01:00
Alessandro Ranellucci ed8a2f7330 Extend medial axis endpoints to fill the entire length. Includes fix for a minor memory leak caused by usage of old signature for Line::point_at() 2014-03-15 16:53:20 +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 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 33da6adc3c Better pruning 2014-03-08 11:36:48 +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 e1f93fd112 Consider contour thickness when validating medial axis segments 2014-03-05 00:05:26 +01:00
Alessandro Ranellucci 3c77b301a7 Promising approach to medial axis pruning 2014-03-04 23:33:13 +01:00
Alessandro Ranellucci b49a652736 Rewritten half-edge traversal in a more robust way. Includes first medial axis unit test 2014-03-03 01:48:05 +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 691db31da0 Some incomplete work for per-region config 2014-02-14 22:26:00 +01:00
Alessandro Ranellucci cfc1c5037d Mark strings as UTF-8 when passing them to Perl 2014-02-14 22:25:59 +01:00
Alessandro Ranellucci 3d483722c6 Perform additional checks before merging solid surfaces (i.e. take flow and fill pattern into account) 2014-02-10 13:19:44 +01:00
Kamil Kwolek c20489ee40 fix XS build on Windows #1433 #1681 2014-02-01 11:53:45 +01:00
Alessandro Ranellucci 42519174cd New erase() method for DynamicConfig objects 2014-01-22 21:15:19 +01:00
Alessandro Ranellucci bc832f1a6d Updated MANIFEST with Boost files 2014-01-18 14:37:17 +01:00
Alessandro Ranellucci 90194ee581 Fix overflow in Point::ccw() affecting convex hull generation. Includes regression test 2014-01-17 14:49:51 +01:00
Alessandro Ranellucci 0d7f0705f0 Fix overflow in distance_to(Line*). It was affecting Douglas-Peucker causing massive loss of geometry. Includes regression test and a couple wkt() implementations 2014-01-17 14:22:37 +01:00
Alessandro Ranellucci 3a3e53b59b Fixed some obvious mistakes and applied strict type checking to SurfaceCollections too 2014-01-16 19:02:50 +01:00
Alessandro Ranellucci a831f5b176 Refactor loop building code to make_loops() 2014-01-16 11:38:17 +01:00
Alessandro Ranellucci 86f91bb3c4 New TriangleMeshSlicer::cut() method 2014-01-16 11:25:26 +01:00
Alessandro Ranellucci 519ed91c68 Refactored mesh slicing code into a new TriangleMeshSlicer class 2014-01-15 20:31:38 +01:00
Alessandro Ranellucci fcaa3a03c2 Bugfix: incomplete slicing when a horizontal surface was tangent to the slicing plane and it shared an edge with an adjacent volume. #1672 2014-01-13 00:45:19 +01:00
Alessandro Ranellucci b0a7baa454 Add a (failing) test for slicing at the same height of a horizontal surface attached to a volume. In this case, the loop isn't completed. #1672 2014-01-13 00:06:16 +01:00
Alessandro Ranellucci 3637ca39df TriangleMesh::slice() now accepts a vector of floats instead of doubles for consistency with mesh coordinates 2014-01-12 23:56:07 +01:00
Alessandro Ranellucci 69f1f65a8b Because of numerical instability, lower_bound() was not including a layer having z == 0.8 even if the facet's min_z == 0.8. #1672 2014-01-12 16:01:14 +01:00
Alessandro Ranellucci bac743a602 Little cleanup to slice(): only used scaled coordinates in slicing instead of mixing them with unscaled 2014-01-12 14:48:51 +01:00
Alessandro Ranellucci 51af10da4f Some fixes to config API 2014-01-12 12:35:13 +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 c0a74780cb The ratio_over parameter was missing in the definition of first_layer_extrusion_width 2014-01-11 14:48:13 +01:00
Alessandro Ranellucci 15ef762e43 Fix failing XS test 2014-01-10 17:07:47 +01:00
Alessandro Ranellucci 170a7d24de Fix failing XS test 2014-01-10 17:07:18 +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 f9642786d3 More work to get Boost.Polygon to compile 2014-01-09 19:56:12 +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 6da98a6ecc Fix GUI 2014-01-07 19:08:37 +01:00
Alessandro Ranellucci c8a48b4527 Implement modifier volumes and port _merge_loops() to XS 2014-01-07 15:40:38 +01:00
Alessandro Ranellucci b17d06f9d1 Finished porting BoundingBox to XS 2014-01-07 12:48:09 +01:00
Alessandro Ranellucci ea47f3b6e7 More fixes to BoundingBox 2014-01-06 19:42:31 +01:00
Alessandro Ranellucci 9c0a6a79d3 Incomplete work for porting BoundingBox to XS 2014-01-06 18:29:10 +01:00
Alessandro Ranellucci 3e93a14912 New support material pattern: pillars! 2014-01-05 16:51:16 +01:00
Alessandro Ranellucci 0bdea60b53 Merge branch 'region-config'
Conflicts:
	lib/Slic3r/Format/AMF/Parser.pm
2014-01-05 14:59:36 +01:00
Alessandro Ranellucci c523ddea35 Fix option names not showing in plater object settings 2014-01-05 14:58:41 +01:00
Alessandro Ranellucci 036badf932 Ported Flow to XS 2014-01-05 13:16:13 +01:00
Alessandro Ranellucci 07b9b12475 Make tests pass 2014-01-05 00:36:33 +01:00
Alessandro Ranellucci 8ed738d3f7 More incomplete work for Flow/Extruder refactoring 2014-01-03 18:27:46 +01:00
Alessandro Ranellucci b9793b3f12 Moved first_layer_extrusion_width to PrintConfig 2014-01-03 00:34:30 +01:00
Alessandro Ranellucci 81663215c5 Adapt plater to the new split config 2014-01-02 22:06:58 +01:00
Alessandro Ranellucci 44e7e542c2 Bugfix: overflow causing full object facets reversal when STL file has large coordinates. #1666 2014-01-02 18:52:27 +01:00
Alessandro Ranellucci bfa2ee2770 Remove scale, rotate, duplicate, duplicate_grid from config (but leave them in CLI) 2014-01-02 18:01:21 +01:00
Alessandro Ranellucci 5bf0942f45 Satisfy test suite and CLI 2014-01-02 17:24:23 +01:00
Miro Hrončok aad41ee023 Rename some admesh functions to preserve compatibility with oiriginal admesh #1525 2014-01-02 15:10:03 +01:00
Alessandro Ranellucci e2f1040a76 More work 2014-01-02 10:44:54 +01:00
Alessandro Ranellucci 0883d0f4eb More work here and there 2014-01-01 17:29:15 +01:00
Alessandro Ranellucci 51b976721d Split PrintConfig into PrintObjectConfig and PrintRegionConfig 2013-12-31 15:52:37 +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 bd133d9434 Update Clipper to 6.1.2 2013-12-24 12:40:46 +01:00
Alessandro Ranellucci 0693cfb116 Simplify print_def structure 2013-12-24 01:16:51 +01:00
Alessandro Ranellucci c5ead0f2a6 Fixes to Config and plater; also refactored the arrange() code 2013-12-24 00:30:51 +01:00
Alessandro Ranellucci 5b9bbe43b2 Fix MANIFEST 2013-12-23 22:48:41 +01:00
Alessandro Ranellucci ab25cc4940 Merge branch 'xs-config'
Conflicts:
	lib/Slic3r/Config.pm
	xs/MANIFEST
2013-12-22 01:41:55 +01:00
Alessandro Ranellucci c0070a8d54 Satisfy test suite with new XS based config 2013-12-22 01:38:10 +01:00
Alessandro Ranellucci 4515d90052 Finished porting Config and option definition to XS 2013-12-22 00:39:03 +01:00
Alessandro Ranellucci 9836e963a5 Incomplete work for adapting the application to the new XS-based Config 2013-12-21 21:06:45 +01:00
Alessandro Ranellucci e0c0a42a8b Expose static PrintConfig objects to Perl and test apply() 2013-12-21 16:32:11 +01:00
Alessandro Ranellucci 56d4da2ac7 Decoupled a generic Config implementation from the PrintConfig definitions 2013-12-21 16:15:41 +01:00
Alessandro Ranellucci b2b67372ad Inline serialize() and deserialize() for ConfigOptionEnum 2013-12-21 14:48:25 +01:00
Alessandro Ranellucci 872e9bf810 Support for more array config types 2013-12-21 14:27:58 +01:00
Alessandro Ranellucci bb5bbe191f Support enum config options 2013-12-21 10:46:43 +01:00
Alessandro Ranellucci f274287b0e Support bool options in XS 2013-12-20 21:32:18 +01:00
Alessandro Ranellucci 64e549a46f More work for XS Config 2013-12-20 20:54:11 +01:00
Alessandro Ranellucci 008f38cf68 More work for porting Config to XS 2013-12-20 16:37:28 +01:00
Alessandro Ranellucci a6a6a6888b Ported Slic3r::Print::State to XS 2013-12-20 01:36:42 +01:00
Alessandro Ranellucci 916a0a0e58 Fix compilation and test suite 2013-12-18 16:34:31 +01:00
Alessandro Ranellucci 250608aa52 Move centering outside the Print object 2013-12-15 16:17:12 +01:00
Alessandro Ranellucci 5470fbbebc Make quick_slice() work with new model handling 2013-12-13 12:18:30 +01:00
Alessandro Ranellucci 0e8a0ef1ca Refactoring. Use Model class for representing the plate in GUI 2013-12-12 20:19:33 +01:00
Alessandro Ranellucci f55e057504 More work for refactoring add_model() to add_model_object(). Tests pass 2013-12-09 01:12:37 +01:00
Alessandro Ranellucci 4d066840ba Initial work for porting Slic3r::Config to XS 2013-12-07 16:14:30 +01:00
Alessandro Ranellucci e9b87b69df Bugfix: segfault in SurfaceCollection->group(), fixed with a better implementation. #1566 2013-12-04 00:11:08 +01:00
Alessandro Ranellucci bd8c430afd Merge branch 'stable'
Conflicts:
	lib/Slic3r/Geometry/Clipper.pm
	lib/Slic3r/Layer/Region.pm
2013-11-24 22:48:31 +01:00
Alessandro Ranellucci 7b7e45fd43 Merge branch 'master' of github.com:alexrj/Slic3r 2013-11-24 22:44:08 +01:00
Alessandro Ranellucci 3fca0956bc Adapt plater to new convex hull 2013-11-24 22:42:52 +01:00
Alessandro Ranellucci bed1625d6b Split objects could not be repositioned in plater. 3D preview and stats were not available too. #1543 2013-11-24 14:28:17 +01:00
Alessandro Ranellucci af457cd3d7 Fix compilation on Windows 2013-11-24 11:24:10 +01:00
Alessandro Ranellucci 9cf138574c New TriangleMesh::convex_hull() 2013-11-24 01:15:52 +01:00
Alessandro Ranellucci a93c862338 Ported traverse_pt() to XS 2013-11-23 23:21:59 +01:00
Alessandro Ranellucci 3a5e4931cc Move Geometry.cpp to Slic3r::Geometry namespace 2013-11-23 21:54:56 +01:00
Alessandro Ranellucci 0516aac715 Ported chained_path() to XS 2013-11-23 21:39:05 +01:00
Alessandro Ranellucci 4d5d003ba7 Ported horizontal_projection() to XS 2013-11-23 19:41:40 +01:00
Alessandro Ranellucci e75dbf37fa Never scale TriangleMesh objects 2013-11-23 19:25:33 +01:00
Alessandro Ranellucci 46e3b3180e Ported Surface->offset() to XS 2013-11-23 18:29:25 +01:00
Alessandro Ranellucci a331f4d27a Finished porting group() to XS 2013-11-23 18:15:59 +01:00
Alessandro Ranellucci 67a7e4f769 Change method signature for slice() 2013-11-23 00:15:42 +01:00
Alessandro Ranellucci 878d587196 Ported is_solid() and is_bridge() to XS. Also ported (but not used yet) group() to SurfaceCollection::group() 2013-11-23 00:07:04 +01:00
Alessandro Ranellucci de9d5403e8 Finished porting convex_hull() to XS and removed dependency on Math::ConvexHull::MonotoneChain 2013-11-22 22:48:07 +01:00
Alessandro Ranellucci 5309e3ef22 More files for convex_hull 2013-11-22 22:38:30 +01:00
Alessandro Ranellucci 4577f0725c Incomplete work for XS-based convex_hull 2013-11-22 21:43:35 +01:00
Alessandro Ranellucci a950fbe0c2 Removed more unused functions and fixed tests 2013-11-22 16:19:15 +01:00
Alessandro Ranellucci 132d170f73 Ported simplify() to XS and removed dependency on Boost::Geometry::Utils 2013-11-22 16:01:50 +01:00
Alessandro Ranellucci df8d889481 More unfinished work 2013-11-22 02:16:10 +01:00
Alessandro Ranellucci 518798beb3 Incomplete work for porting simplify() to XS 2013-11-21 20:25:24 +01:00
Alessandro Ranellucci 5f2b2c90b6 Fix error in contains_point() port 2013-11-21 18:42:16 +01:00
Alessandro Ranellucci ac88fbcbb0 Ported clip_end(), length(), is_perimeter(), is_fill(), is_bridge() to XS 2013-11-21 18:03:40 +01:00
Alessandro Ranellucci 761f261a68 Ported intersect_expolygons() and subtract_expolygons() to XS 2013-11-21 17:53:50 +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 a225a8b2ef Ported contains_line() to XS 2013-11-21 15:12:06 +01:00
Alessandro Ranellucci 3025c77675 Use Clipper for line clipping 2013-11-21 14:15:38 +01:00
Alessandro Ranellucci 1d6a18071a Support the new Clipper API 2013-11-20 15:59:19 +01:00
Alessandro Ranellucci 50c0081d25 Update Clipper to 6.0.0 2013-11-20 11:35:58 +01:00
Alessandro Ranellucci e62ef35fbf Bugfix: some binary STL files were not correctly parsed on Windows. #1370 1467 2013-11-12 16:58:26 +01:00
Alessandro Ranellucci 3464e646f7 Use fread() to read facet number 2013-11-12 15:27:42 +01:00