Commit Graph

339 Commits (7eaba2d1326e93db322fdbac202a05fb0518f881)

Author SHA1 Message Date
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 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 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 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 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 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 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 c5ead0f2a6 Fixes to Config and plater; also refactored the arrange() code 2013-12-24 00:30:51 +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 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 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 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
Alessandro Ranellucci d0d842e24a Use fread() to read binary STL files 2013-11-12 15:23:48 +01:00
Alessandro Ranellucci 885ab5844e Ported regular_points() to XS and renamed it to equally_spaced_points() 2013-11-11 20:59:58 +01:00
Alessandro Ranellucci 3ac94bd6d8 Fix a valgrind warning about mismatched free() 2013-11-11 15:07:38 +01:00
Alessandro e024b08762 Round Perl coordinates instead of truncating them to integers. #1486 #1445 #1464 2013-11-11 13:00:50 +01:00
Alessandro Ranellucci c133a33ed2 Ported point_line_distance() and removed same_point() 2013-11-06 23:08:03 +01:00
Alessandro Ranellucci d8e098ab0e Ported same_line() to XS 2013-11-06 19:38:10 +01:00
Alessandro Ranellucci b5aaeb9b12 More work on the clipping method for medial axis. Includes Polyline->is_valid() 2013-11-06 19:30:45 +01:00
Nicolas Dandrimont 067cc1a74a Fix rounding error in clipper.cpp
This fixes half of #1486 (test failure in t/geometry.t)
2013-11-03 01:13:23 +01:00
Alessandro Ranellucci 29b83517cb Ported point_along_segment(), Polyline::length(), Polyline::clip_end() to XS 2013-10-27 22:57:25 +01:00
Alessandro Ranellucci e6efda4ba4 Bugfix: incomplete slicing when more than two facets shared the same edge. #1483 2013-10-26 14:43:47 +02:00
Alessandro Ranellucci 5988f14b14 Flag for arrows in SVG.cpp 2013-10-26 14:41:37 +02:00
Alessandro Ranellucci d59e62c9d8 Bugfix: wrong slicing (error in XS port). #1469 2013-10-13 16:00:20 +02:00
Alessandro Ranellucci ac93e15c98 New class for generating SVG from XS. Includes some minor refactoring to TriangleMesh 2013-10-13 15:59:38 +02:00
Alessandro Ranellucci 9918c1e97d Minor improvements in debug output 2013-10-13 12:12:03 +02:00
Alessandro Ranellucci ac5e713323 Fix segfault when calling chained_path() on an ExtrusionPathCollection using no_sort. Includes regression test 2013-09-28 15:30:10 +02:00
Alessandro Ranellucci 91289fad49 Fix compilation on Windows. #1433 2013-09-23 11:27:35 +02:00
Alessandro Ranellucci b1a3bd65ea Remove unused variable and add missing define 2013-09-19 16:19:47 +02:00
Alessandro Ranellucci 4fe0675380 Removed ZTable code 2013-09-17 23:55:38 +02:00
Alessandro Ranellucci 0c2bfab5f2 Fix an overflow point causing wrong chained path 2013-09-17 13:04:36 +02:00
Alessandro Ranellucci 4dce461aaf Minor optimizations 2013-09-13 15:19:15 +02:00
Alessandro Ranellucci 6e22a82e7d Conditional compilation to exclude all Perl/XS stuff from C++ code 2013-09-13 14:48:40 +02:00
Alessandro Ranellucci 749b8421b0 Merge pull request #1435 from jluis/master
Round results when rotating to minimize errors & pass the tests
2013-09-12 02:10:18 -07:00
Alessandro Ranellucci d660a1de0a Fix XS STL reader not populating stats.size correctly 2013-09-12 10:29:42 +02:00
Alessandro Ranellucci d4512a12df Make plater work with new XS code 2013-09-11 20:00:51 +02:00
Alessandro Ranellucci 11e18f681d Incomplete work to store TriangleMesh objects in Model objects instead of extracting vertices and facets 2013-09-11 09:49:28 +02:00
Jose Luis Perez Diez 69a92c10f0 Round results when rotating to minimize errors & pass the tests 2013-09-10 17:14:49 +02:00
Alessandro Ranellucci 566d38a472 Replace TriangleMesh with the XS port 2013-09-10 00:40:46 +02:00
Alessandro Ranellucci 311eda7d42 Implemented TriangleMesh->clone 2013-09-10 00:09:56 +02:00
Alessandro Ranellucci 9b12d6037a Ported TriangleMesh::scale_xyz() 2013-09-09 23:38:49 +02:00
Alessandro Ranellucci 5e34a9cf21 Make Repair() idempotent and lowercase 2013-09-09 23:18:33 +02:00
Alessandro Ranellucci 28b043e9a9 Add unit test for split() 2013-09-09 23:09:56 +02:00
Alessandro Ranellucci 3919ba83d8 Implemented TriangleMesh->merge 2013-09-09 22:45:22 +02:00
Alessandro Ranellucci 27e7c6b9f7 Finished implementation of TriangleMesh->split 2013-09-09 22:27:58 +02:00
Alessandro Ranellucci 93dddb7ee2 Untested implementation of split_mesh() 2013-09-09 21:41:28 +02:00
Alessandro Ranellucci b6548137de Move confess_at() to utils.cpp 2013-09-09 21:40:57 +02:00
Alessandro Ranellucci 873762491b Fix a bad access after recent change about ->p returning objects by reference 2013-09-09 17:10:54 +02:00
Alessandro Ranellucci dbf739318a Almost finished porting slice() 2013-09-09 12:18:52 +02:00