bubnikv
0558b53493
WIP: Moved sources int src/, separated most of the source code from Perl.
...
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00
bubnikv
3ddaccb641
Replaced CONFESS with throw std::exception in libslic3r, so now
...
libslic3r should be compilable without Perl.
2018-09-18 10:09:58 +02:00
bubnikv
5b94f53cd7
Removed the Point::wkt() and Point::dump_perl() methods.
...
Added to_string() for the basis Eigen vector types.
2018-08-17 16:54:07 +02:00
bubnikv
65011f9382
Removed the x(), y(), z() Point/Pointf/Point3/Pointf3 accessors.
2018-08-17 15:53:43 +02:00
bubnikv
1ba64da3fe
Removed Point::scale(),translate(),coincides_with(),distance_to(),
...
distance_to_squared(),perp_distance_to(),negative(),vector_to(),
translate(), distance_to() etc,
replaced with the Eigen equivalents.
2018-08-17 14:14:24 +02:00
bubnikv
3b89717149
Changing the internal representation of Point / Pointf / Point3 / Pointf3 to Eigen Matrix types:
...
Changed the Point3 / Pointf3 to derive from the Eigen Vec3crd / Vec3d.
Replaced the Point::concide_with() method calls with == operator.
Reduced some compiler warnings.
2018-08-15 13:51:40 +02:00
bubnikv
86da661097
Changing the internal representation of Point / Pointf / Point3 / Pointf3 to Eigen Matrix types, first step
2018-08-14 18:33:26 +02:00
bubnikv
3f08ef70f1
Fix of extraneous infill over thin walls.
...
Fixes https://github.com/prusa3d/Slic3r/issues/670
and some of https://github.com/prusa3d/Slic3r/issues/895
PerimeterGenerator was using an unsafe clipper offset function,
which performed offset for both a contour and its holes together.
With this commit the offsets were replaced with their safe counterparts,
though these safe counterparts may be somehow slower
(performing offset on ExPolygon or ExPolygons, piece by piece).
Also there was a bug, where if the infill & gap fill consumed
everything of the polygon, a polygon one onion shell above was still
used for infill.
2018-05-18 09:52:09 +02:00
bubnikv
74b95e9152
Adapted BoundingBox get_extents(const ExPolygons &expolygons)
...
to work even with empty polygons.
2017-04-05 09:52:06 +02:00
bubnikv
04cd474708
Fixed some instance of simplify_polygons() invocation.
...
Geometry::deg2rad() made a template.
Some methods of Layer made inline.
Added a helper template remove_nulls().
2017-03-22 15:35:09 +01:00
bubnikv
6582182e0c
Adapted to the new ClipperUtils.hpp interface by @alexrj
2016-12-13 19:22:23 +01:00
bubnikv
317e9131e8
New sparse infill: "stars" - David's star shaped infill.
...
This is very similar to a "triangles" infill, but maximum two lines
intersect at a single point.
added utility function get_extents_vector()
2016-11-09 15:39:12 +01:00
bubnikv
5a81731577
Implemented utility functions to operate over lines, polylines, polygons,
...
surfaces.
2016-11-07 22:49:11 +01:00
bubnikv
95ede7c4b8
Rewrote Fill2.pm to C++, deleted Perl infills for good.
...
Removed dependency on Perl Math::PlanePath module.
Fixed compilation with Visual Studio and SLIC3R_DEBUG: Visual Studio older than 2015 does not support the prinf type specifier %zu. Use %Iu instead.
C++11 move semantics enabled.
2016-11-02 10:47:00 +01:00
bubnikv
15d3e94a66
Unified the creation of paths of debugging output files
...
pointing to a predefined output directory.
2016-10-21 10:18:01 +02:00
bubnikv
f788f50b5a
Disabled asserts in the release build (-DNDEBUG).
...
Added a safe variant of offset(const Slic3r::ExPolygon...), which offsets each loop separately.
New functions "remove_sticks" to remove zero area parts of polygons.
New functions "remove_small" and "remove_degenerate" for polygon clean up.
Extended the C++ supports, those are not finalized yet though.
2016-10-20 13:04:23 +02:00
bubnikv
d2635ab799
Finished merging of bridging regions.
2016-09-30 16:11:19 +02:00
bubnikv
3a81e6bee4
Bugfix of bottom bridges. If close regions shall be closed by bridges,
...
these regions are grown to anchor the bridge lines to the bottom surface.
The grown regions may overlap. In that case the regions are now merged
before the bridging direction is calculated for the merged region.
2016-09-30 15:23:18 +02:00
bubnikv
620c6c7378
Ported from the playground branch. Various documentation and optimization.
2016-09-13 13:30:00 +02:00
bubnikv
9fcc8fe9ae
Meged with release_candidate_1_3
2016-09-12 11:29:39 +02:00
Alessandro Ranellucci
9e8022f6f6
More refactoring to medial axis and gap fill, more robust
2016-05-20 17:03:57 +02:00
bubnikv
bcfbe02c8d
New method to rotate only polygons, not translate.
...
New free function to_polygons. Whithout this function one needs to construct the ExPolygonCollection, which means a deep copy.
2016-04-10 19:12:32 +02:00
Alessandro Ranellucci
36d5272f05
Filter gap fill using length relative to the actual width. #2781
2016-03-26 18:10:17 +01:00
Alessandro Ranellucci
7041bb5bd9
Rewritten the medial axis algorithm, now more robust (don't just prune MAT from endpoints, but validate all single edges)
2016-03-26 01:45:08 +01:00
Alessandro Ranellucci
6dc42ee902
Variable-width gap fill. Yay! #2960
2016-03-19 19:20:04 +01:00
Alessandro Ranellucci
1a286fc906
Fixes and improvements to MotionPlanner, much smarter now
2015-12-21 14:46:35 +01:00
Alessandro Ranellucci
4913e90e10
Remove any Perl related code from libslic3r
2015-12-08 00:39:54 +01:00
ntfshard
dbcd1e2df6
Fix: memory leak in ExPolygon::triangulate_p2t
2015-11-04 20:49:20 +01:00
Alessandro Ranellucci
b4515cf695
Finished porting PerimeterGenerator to C++
2015-07-23 15:53:02 +02:00
Alessandro Ranellucci
0e18b094d1
More work for porting PerimeterGenerator to XS
2015-07-07 01:17:31 +02:00
Alessandro Ranellucci
31e0fc7f17
Fixes and improvements to thin wall detection. #2829
2015-05-22 01:46:01 +02:00
Alessandro Ranellucci
e2b1b52679
Added a new Slic3r::Geometry::simplify_polygons() function
2015-01-30 18:33:20 +01:00
Alessandro Ranellucci
8791f5a493
Cleanup of some method signatures and of XS return types
2015-01-19 18:53:04 +01:00
Alessandro Ranellucci
8f4cbefd0d
Lots of improvements to MotionPlanner/avoid_crossing_perimeters. Smoother paths and several edge cases now handled better
2015-01-06 20:52:36 +01:00
Alessandro Ranellucci
634bc09e2c
Refactoring: renamed all contains_*() methods to contains() in C++
2014-11-23 20:14:13 +01:00
Alessandro Ranellucci
bf0eb1af0c
Refactored ClipperUtils API for a more consistent arguments convention
2014-11-15 23:44:03 +01:00
Alessandro Ranellucci
6adc3477c9
Moved C++ code into new libslic3r directory
2014-08-03 19:42:29 +02:00