Commit Graph

320 Commits

Author SHA1 Message Date
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