Commit Graph

37 Commits

Author SHA1 Message Date
3795e4062c Fixing perl bindings after refactoring 2020-01-06 09:36:03 +01:00
d72d96a1fe FDM Print refactoring:
Layer newly remembers bounding boxes of slices,
the bounding boxes are used by G-code generator & newly the support
generator.
Slices are stored as ExPolygons, not ExPolygonCollection.
2019-10-01 17:17:08 +02:00
ce217b6222 Rest of the path chaining has been replaced with the new algorithm.
PolylineCollection.cpp/hpp was removed, use Polylines instead.
Various first_point() / last_point() now return references, not copies.
2019-09-27 18:17:21 +02:00
452cdb2760 Some documentation, C++11 conversion, code beautification,
added some helper methods.
2018-07-25 16:11:31 +02:00
61e6f23ed2 Fix of
"Multimaterial printer switches filament at the wrong time during a print"
https://github.com/prusa3d/Slic3r/issues/607

There was a single layer between the raft top and the object first layer
missing on the wipe tower, and after this missing layer all the tool
changes were shifted by one layer, meaning two color print had the colors
switched.
2017-12-11 17:19:55 +01:00
cd084a33c6 Fixed a regression bug, which was made during the porting of
discover_horizontal_shells() fron Perl to C++, where
the already calculated bridge direction was being lost.

Improved constness of the debug methods
    void export_region_slices_to_svg(const char *path) const;
    void export_region_fill_surfaces_to_svg(const char *path) const;
2017-09-14 13:15:32 +02:00
41f50b246c Inlined Surface::any_internal_contains / any_bottom_contains 2017-07-10 13:15:36 +02:00
ed2ee2f6f3 Merged support_fills with support_interface_fills.
When extruding supports, the support is interleaved with interface
if possible (when extruded with the same extruder).
Otherwise the base is extruded first.
2017-04-07 17:37:30 +02:00
39679f9518 Missed this one at the last check-in. 2016-11-20 12:59:29 +01:00
79f5a16536 Reverted the perimeter generator to not save the perimeter areas.
These could be calculated from the fill areas if needed.
On the other side, the non-classified (non-split) fill areas are stored
now for use in the "ensure vertical wall thickness" feature,
also the non-split fill areas are re-used when recalculating the infills.
This is safer than trying to stitch the fill region together from the
classified fragments.

Modified the "ensure vertical wall thickness" feature to use the non-split
fill areas instead of perimeter areas for the calculation
of non-supported regions. This is cheaper as the fill areas contain
roughly half the edges.
2016-11-17 23:22:59 +01:00
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
e0d1aa8a1a Collect the perimeter surfaces when generating perimeters.
The perimeter surfaces are later used for performing infill
below overhangs and to maintan configured vertical wall thickness
at sloping surfaces.
2016-09-26 13:44:23 +02:00
4913e90e10 Remove any Perl related code from libslic3r 2015-12-08 00:39:54 +01:00
4f8a18bbad Ported Layer::maker_perimeters() to XS 2015-12-02 19:32:57 +01:00
9fcec10737 Finished porting LayerRegion to C++ 2015-10-26 23:24:46 +01:00
6ac79e3ed6 Ported make_perimeters() to C++ 2015-07-23 16:27:21 +02:00
3e739b87da Finished porting Slic3r::GCode to XS (speed boost!) 2015-07-02 20:24:16 +02:00
801f629fdc Ported Slic3r::GCode storage to XS 2015-07-01 21:47:17 +02:00
be2f46ca68 Ported Layer::merge_slices() to XS 2015-04-16 20:44:55 +02:00
bb3bf28e59 Ported prepare_fill_surfaces() to XS/C++ 2015-02-01 12:43:58 +01:00
8791f5a493 Cleanup of some method signatures and of XS return types 2015-01-19 18:53:04 +01:00
9f0283f808 Minor issue when dealing with files with empty layers at bottom. #2553 2015-01-18 12:35:05 +01:00
2562070232 Refactored the travel/retract/avoid_crossing_perimeters logic. Several edge cases are now handled correctly. #2498 2015-01-06 14:52:03 +01:00
7e82159620 Fixed one more case where only_retract_when_crossing_perimeters didn't apply. #2498 2015-01-06 11:29:34 +01:00
5a0f4eac8d One more retraction optimization 2014-12-25 11:37:54 +01:00
93507bfd49 Bugfix: only_retract_when_crossing_perimeters was not correctly applied on bottom layer when no bottom solid layers were printed 2014-12-22 11:46:16 +01:00
c8596c5c58 Limit "Only retract when crossing perimeters" so that retraction is triggered also when crossing the boundaries of a single region. #2298 2014-12-09 01:08:58 +01:00
5deadc8f12 Refactoring: removed _islands members in Slic3r::GCode 2014-11-23 20:03:16 +01:00
b69caff93c Ported LayerRegion::make_slices() to XS 2014-11-09 16:24:07 +01:00
6adc3477c9 Moved C++ code into new libslic3r directory 2014-08-03 19:42:29 +02:00
7ff13c063f Port PrintRegion::flow() and LayerRegion.flow() to XS 2014-08-03 19:17:23 +02:00
380dd8adfc Ported some methods to XS 2014-08-03 18:41:09 +02:00
5c54acf9ac Use ->ptr() for CoolingBuffer too 2014-06-10 16:17:34 +02:00
07dd799967 Fix inherited Layer::Support id and object accessors. 2014-05-25 00:50:49 +03:00
b8b8c746d9 Make clear_regions and delete_region methods private (both Print & Layer), and remove from XSP. 2014-05-25 00:11:17 +03:00
22b05cb187 Make read-only constructor parameters - private. 2014-05-24 23:50:45 +03:00
8da0bded1d Move Print object storage to C++. (along with its subobjects) 2014-05-24 23:50:29 +03:00