Commit Graph

3420 Commits

Author SHA1 Message Date
Alessandro Ranellucci
ce9cf4d964 Don't put supports under bridges and potential bridges 2014-04-26 17:19:50 +02:00
Alessandro Ranellucci
7e3024d6ad Explain that infill_every_layers can be set to arbitrarily large values in the tooltip 2014-04-25 20:29:37 +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
924cb2e558 Update MANIFEST. #1969 2014-04-25 19:14:03 +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
8db4913b04 New option for rotating the lower part resulting from the cut so that the flat surface lies on the print bed 2014-04-25 17:50:03 +02:00
Alessandro Ranellucci
4f17c2b7d1 First working implementation of a GUI for cutting 2014-04-25 17:14:39 +02:00
Alessandro Ranellucci
334bc4c581 Fix cut() test 2014-04-25 13:27:45 +02:00
Alessandro Ranellucci
4f5d9ca795 Finished --cut implementation 2014-04-25 12:40:21 +02:00
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
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
ae7600ee55 Update MANIFEST 2013-09-19 16:06:57 +02:00
Alessandro Ranellucci
4fe0675380 Removed ZTable code 2013-09-17 23:55:38 +02:00
Alessandro Ranellucci
e0da81e8bf Introduce a ->count method for all collections to save time 2013-09-17 23:38:23 +02:00
Alessandro Ranellucci
0c2bfab5f2 Fix an overflow point causing wrong chained path 2013-09-17 13:04:36 +02:00
Alessandro Ranellucci
aef5c05c57 Update brim generation code. Includes regression test. #1440 2013-09-16 10:33:30 +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
2280804daa Update xs/MANIFEST 2013-09-12 11:14:54 +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
bc48e17dff Use precomputed normals in 3D preview 2013-09-11 20:15:42 +02:00
Alessandro Ranellucci
d4512a12df Make plater work with new XS code 2013-09-11 20:00:51 +02:00
Alessandro Ranellucci
a821eb7f3c More work to avoid working with vertices outside XS 2013-09-11 11:55:08 +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
2d4aa439ae Merge branch 'master' into xsslice 2013-09-09 21:43:52 +02:00
Alessandro Ranellucci
c592932cee Use a general-purpose T_ARRAYREF_PTR typemap 2013-09-09 21:43:28 +02:00
Alessandro Ranellucci
1fbf9c3952 Move confess_at() to utils.cpp 2013-09-09 21:41:45 +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
Alessandro Ranellucci
46bd407da4 More porting work 2013-09-08 00:44:01 +02:00
Alessandro Ranellucci
5adb187dd2 More porting work 2013-09-07 21:08:53 +02:00
Alessandro Ranellucci
346c17d483 Some initial work for porting slice() 2013-09-07 14:06:09 +02:00
Alessandro Ranellucci
907ba55aab Some minor fixes needed after the xsdata merge. #1421 2013-09-06 22:52:56 +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
cb677c45de Don't grow horizontal shells having acute angles. #1387 2013-09-06 17:43:40 +02:00
Anders Sundman
d9646ff6ba Fixed: Missing include directive 2013-09-04 22:41:25 +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
1741301973 Fix segfault when appending an ExtrusionPath::Collection to another Collection 2013-08-31 01:23:47 +02:00
Alessandro Ranellucci
dd70f6be2f Return ExtrusionPath->polyline and ExtrusionLoop->polygon by reference 2013-08-31 00:50:03 +02:00
Alessandro Ranellucci
d2e4bba074 Fixed memory leak in ExtrusionPath::Collection and return collection items by reference 2013-08-31 00:37:17 +02:00
Alessandro Ranellucci
bb45437526 Return Surface->expolygon by reference 2013-08-31 00:28:24 +02:00
Alessandro Ranellucci
1cfdf7e955 Ported Slic3r::Polyline::Collection 2013-08-30 00:06:10 +02:00
Alessandro Ranellucci
bd7b0e2aed Ported ExtrusionPath::Collection->chained_path 2013-08-29 11:47:59 +02:00
Alessandro Ranellucci
ea1d138c95 Ported ExtrusionLoop->make_counter_clockwise() 2013-08-29 01:40:42 +02:00
Alessandro Ranellucci
5d6fd7f4d9 Optimizations for better usage of XS code 2013-08-29 01:36:42 +02:00
Alessandro Ranellucci
e19c6a1494 Ported Point->distance_to() and Line->length() 2013-08-28 20:41:41 +02:00
Alessandro Ranellucci
fb763b0187 Removed dependency on Math::Clipper 2013-08-27 01:26:44 +02:00
Alessandro Ranellucci
b11b595c97 Ported nearest_point() and nearest_point_index() 2013-08-27 00:52:20 +02:00
Alessandro Ranellucci
9fb14f2119 Ported (and used) ExtrusionPath->first_point 2013-08-26 23:42:00 +02:00
Alessandro Ranellucci
fe42427a54 Ported Polygon->is_valid() and ExPolygon->is_valid() 2013-08-26 23:27:51 +02:00
Alessandro Ranellucci
da0b85c0d9 Ported ExPolygon->contour and ExPolygon->holes 2013-08-26 23:09:18 +02:00
Alessandro Ranellucci
85011dfef3 Ported Surface->p 2013-08-26 23:03:00 +02:00
Alessandro Ranellucci
706851f836 Ported ExPolygon->area() 2013-08-26 22:50:26 +02:00
Alessandro Ranellucci
792fcba7be Ported Polygon->area 2013-08-26 22:44:40 +02:00
Alessandro Ranellucci
1f734807b9 Ported Polygon->split_at() 2013-08-26 22:39:35 +02:00
Alessandro Ranellucci
f8ac3aa68f Fix compilation on Windows 2013-08-26 20:56:36 +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
b6005327d6 Downgrade Clipper to 5.1.5 2013-08-26 15:57:54 +02:00
Alessandro Ranellucci
0933a2cf6b Added failing test case 2013-08-25 22:51:12 +02:00
Alessandro Ranellucci
ee5b999ab0 Initialize no_sort to prevent it from being unexpectedly true 2013-08-25 20:29:45 +02:00
Alessandro Ranellucci
94ca28644e Ported union() to XS 2013-08-17 12:24:04 +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
d881c5ab2f Ported TriangleMesh->rotate 2013-08-05 19:52:37 +02:00
Alessandro Ranellucci
9402898c58 Ported TriangleMesh->size 2013-08-05 19:39:10 +02:00
Alessandro Ranellucci
9d50616c7d Ported align_to_origin() 2013-08-05 19:22:33 +02:00
Alessandro Ranellucci
597e9e6c14 Finish porting TriangleMesh->translate 2013-08-05 19:17:13 +02:00
Alessandro Ranellucci
04d5d1bb9b Incomplete work for porting translate() 2013-08-05 10:48:38 +02:00
Alessandro Ranellucci
515d5707c9 Ported TriangleMesh->scale 2013-08-04 21:34:26 +02:00
Alessandro Ranellucci
a0bd152243 Remove ->ToPerl and add ->vertices and ->facets 2013-08-04 21:23:27 +02:00
Alessandro Ranellucci
1479d6933b Prevent admesh to reverse all facets twice in some mostly-random situations. Normalizing a null normal should still return a null normal in order to fix it properly later instead of treating it as if it was a true normal and thus reversing the facet (and if that is the first facet, all of the others would be reversed as well). #1362 2013-07-31 00:32:48 +02:00
Alessandro Ranellucci
dd935e2036 Some comments and minor fixes to admesh code by Andy Doucette 2013-07-31 00:01:53 +02:00
Alessandro Ranellucci
995c68b57f Can't NULL floats... 2013-07-26 17:08:08 +02:00
Alessandro Ranellucci
4bc1c6e3d8 Update MANIFEST* 2013-07-23 23:27:06 +02:00
Alessandro Ranellucci
6f1a1b546f Update MANIFEST* 2013-07-23 23:25:57 +02:00
Alessandro Ranellucci
9d13a90837 Missing #include causing XS build to fail. #1349 2013-07-23 11:36:18 +02:00
Alessandro Ranellucci
b1147861dd Implement lower_bound() and upper_bound() methods for ZTable 2013-07-20 21:19:59 +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
0efea9e442 Ported diff() and intersection() 2013-07-17 01:21:30 +02:00
Alessandro Ranellucci
c7b6818ccf Ported offset() and offset2() 2013-07-17 00:48:29 +02:00
Alessandro Ranellucci
bf8c799685 Ported diff_ex, intersection_ex, union_ex, xor_ex 2013-07-17 00:29:09 +02:00
Alessandro Ranellucci
f7ada2b5db Ported make_clockwise() and make_counter_clockwise() 2013-07-16 21:09:29 +02:00
Alessandro Ranellucci
fe061b19ad Ported Polygon->is_counter_clockwise() and rearranged code in .cpp files 2013-07-16 21:04:14 +02:00
Alessandro Ranellucci
bd3fb21cfd Make offset_ex(), offset2_ex() and diff_ex() available to C++ code 2013-07-16 20:36:27 +02:00
Alessandro Ranellucci
79db996696 Ported diff_ex() to XS 2013-07-16 20:29:15 +02:00
Alessandro Ranellucci
898007fc36 Port offset_ex() and offset2_ex() to XS 2013-07-16 20:09:53 +02:00
Alessandro Ranellucci
9458c7db97 Fix integration of XS containers 2013-07-16 17:13:01 +02:00
Alessandro Ranellucci
9b582a11ff Adopt XS containers everywhere (incomplete work) 2013-07-16 09:49:34 +02:00
Alessandro Ranellucci
339ba9e5c3 Implement split_at_index() and split_at_first_point() in ExtrusionLoop too 2013-07-15 23:56:01 +02:00
Alessandro Ranellucci
0d07a2e4e6 Implemented split_at_index() and split_at_first_point() for Polygon 2013-07-15 23:38:06 +02:00
Alessandro Ranellucci
62e5bd0ee7 Polygon->lines 2013-07-15 23:28:23 +02:00
Alessandro Ranellucci
77c479c127 Add test for polyline lines 2013-07-15 23:23:35 +02:00
Alessandro Ranellucci
439255ca46 Polyline->lines 2013-07-15 23:12:13 +02:00
Alessandro Ranellucci
ab6b3d41a7 XS interface completed, including new Line class 2013-07-15 22:57:22 +02:00
Alessandro Ranellucci
9af2a1c007 Use XS Point everywhere 2013-07-15 20:31:43 +02:00
Alessandro Ranellucci
d0701cdcd4 Implemented Slic3r::ExtrusionLoop 2013-07-15 16:21:09 +02:00
Alessandro Ranellucci
c9749ca3b3 More integration of Slic3r::Point::XS 2013-07-15 16:04:49 +02:00
Alessandro Ranellucci
e485f0b130 Return a reference to the actual item instead of a clone when accessing contents of a SurfaceCollection 2013-07-15 13:50:53 +02:00
Alessandro Ranellucci
f612d4c64e Ported ExtrusionPath to XS. Failing test for Surface 2013-07-15 12:14:22 +02:00
Alessandro Ranellucci
8c1e1cc3ea Have Polygon inherit from Polyline 2013-07-14 16:09:54 +02:00
Alessandro Ranellucci
06de21b154 Better polymorphism for ExPolygon::XS->rotate 2013-07-14 16:03:06 +02:00
Alessandro Ranellucci
28a4f1a61e Move Polygon class to Polygon.hpp 2013-07-14 15:53:53 +02:00
Alessandro Ranellucci
13e3a9129c Use Slic3r::ExPolygon::Collection for Layer->slices 2013-07-14 15:06:49 +02:00
Alessandro Ranellucci
5885be881c New Slic3r::Surface::Collection class 2013-07-14 14:56:43 +02:00
Alessandro Ranellucci
0099218f61 Cleaner clone() implementation 2013-07-14 13:11:01 +02:00
Alessandro Ranellucci
399bc80899 Ported Slic3r::Surface to XS 2013-07-14 13:05:55 +02:00
Alessandro Ranellucci
b1ad466189 Ported Slic3r::ExPolygon::Collection to XS 2013-07-14 00:38:01 +02:00
Alessandro Ranellucci
31809d473f Merge branch 'master' into xsdata
Conflicts:
	lib/Slic3r/GCode.pm
	xs/src/Point.hpp
2013-07-13 21:00:19 +02:00
Alessandro Ranellucci
6affa23297 Show repair stats in object info dialog 2013-07-13 20:23:03 +02:00
Alessandro Ranellucci
00683195c8 Add two more repair actions and add volume to stats 2013-07-13 19:00:38 +02:00
Alessandro Ranellucci
b709acf10f New TriangleMesh::XS->stats method 2013-07-13 18:51:49 +02:00
Alessandro Ranellucci
89fae9ee15 Make threaded perls work with XS data in plater thumbnails. Includes cleaner ->arrayref implementation 2013-07-11 19:34:37 +02:00
Alessandro Ranellucci
fb7cea3cb9 Make plater work with XS data in single-thread environment 2013-07-11 19:13:43 +02:00
Alessandro Ranellucci
87a5de193d ExPolygon::XS->rotate() 2013-07-11 18:55:51 +02:00
Alessandro Ranellucci
3037b42b47 New ->translate() method for ExPolygon::XS 2013-07-11 14:13:30 +02:00
Alessandro Ranellucci
e0052b01d3 New ->scale() method for ExPolygon::XS 2013-07-11 14:08:11 +02:00
Alessandro Ranellucci
98726fdef4 Move everything into the Slic3r namespace. #1301 2013-07-07 22:36:14 +02:00
Alessandro Ranellucci
21816acbd7 Merge branch 'master' into xsdata
Conflicts:
	xs/xsp/ExPolygon.xsp
2013-07-07 16:53:58 +02:00
Alessandro Ranellucci
f4db7625bc Fix destructors 2013-07-07 16:51:02 +02:00
Alessandro Ranellucci
a1e4bda670 Have Clipper.pm only return ExPolygon::XS objects 2013-07-07 15:17:09 +02:00
Alessandro Ranellucci
9dc1a3c69d Implement ExPolygon::XS->clone() 2013-07-07 15:06:01 +02:00
Alessandro Ranellucci
989e48ede0 Bless arrayref representation into Slic3r classes 2013-07-07 13:34:55 +02:00
Alessandro Ranellucci
d06ac3e31e Rename _toPerl() to arrayref() 2013-07-07 12:41:54 +02:00
Alessandro Ranellucci
b42333feed Don't exit when admesh fails to repair a mesh, but continue 2013-07-06 22:17:19 +02:00
Alessandro Ranellucci
51dd4d4e8a Compile fixes 2013-07-06 22:00:54 +02:00
Alessandro Ranellucci
4093280566 Remove Point.cpp 2013-07-06 16:39:22 +02:00
Alessandro Ranellucci
5a11d4df89 New Slic3r::ExPolygon::XS class 2013-07-06 16:33:49 +02:00
Alessandro Ranellucci
c2d63bcd09 Remove MANIFEST.bak from repository 2013-07-06 15:28:13 +02:00
Alessandro Ranellucci
d6713ab7d7 Update xs MANIFEST 2013-07-06 15:26:54 +02:00
Alessandro Ranellucci
c50ecfb7f8 New Slic3r::Point::XS class 2013-07-06 15:26:32 +02:00
Alessandro Ranellucci
6373322b84 New ReadFromPerl() method 2013-07-03 11:38:01 +02:00
Alessandro Ranellucci
6e19ac9eda Removed debugging statements during repair 2013-06-24 20:36:51 +02:00
Alessandro Ranellucci
5975145426 Automatically repair any input STL file 2013-06-24 20:34:57 +02:00
Alessandro Ranellucci
d30b4f0310 New Slic3r::TriangleMesh::XS->ToPerl() method 2013-06-24 20:11:56 +02:00
Alessandro Ranellucci
f29faf0548 New Slic3r::TriangleMesh::XS class 2013-06-24 19:35:49 +02:00
Alessandro Ranellucci
2a2633da0a New automatic built-in STL repair 2013-06-23 21:11:46 +02:00
Alessandro Ranellucci
f62896a77a Require some recent versions 2013-06-23 20:05:20 +02:00
Alessandro Ranellucci
77440b774d Include admesh code for STL repair 2013-06-23 18:18:38 +02:00
Alessandro Ranellucci
f3a9d41c70 Cache a Z table for layer range search 2013-06-23 17:07:12 +02:00
Alessandro Ranellucci
37105e8237 Ported get_layer_range() to C 2013-06-23 15:33:07 +02:00
Alessandro Ranellucci
9d27b5e4a7 New XS framework for C and C++ code 2013-06-22 17:16:45 +02:00