Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2016-11-09 17:39:12 +0300
committerbubnikv <bubnikv@gmail.com>2016-11-09 17:39:12 +0300
commit317e9131e89782c98201849a21c0e2e91c8fc142 (patch)
tree1a889265c9d11c9e8574a29216af703b59d54568 /xs/src/libslic3r/Fill/FillRectilinear2.cpp
parenteb0ab3861872a8cf1ab08b0d02a16942acdabaac (diff)
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()
Diffstat (limited to 'xs/src/libslic3r/Fill/FillRectilinear2.cpp')
-rw-r--r--xs/src/libslic3r/Fill/FillRectilinear2.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/xs/src/libslic3r/Fill/FillRectilinear2.cpp b/xs/src/libslic3r/Fill/FillRectilinear2.cpp
index 3d32f164e..20709cbde 100644
--- a/xs/src/libslic3r/Fill/FillRectilinear2.cpp
+++ b/xs/src/libslic3r/Fill/FillRectilinear2.cpp
@@ -1517,12 +1517,26 @@ Polylines FillTriangles::fill_surface(const Surface *surface, const FillParams &
Polylines polylines_out;
if (! fill_surface_by_lines(surface, params2, 0.f, 0., polylines_out) ||
! fill_surface_by_lines(surface, params2, float(M_PI / 3.), 0., polylines_out) ||
- ! fill_surface_by_lines(surface, params2, float(2. * M_PI / 3.), 0., polylines_out)) {
+ ! fill_surface_by_lines(surface, params2, float(2. * M_PI / 3.), 0.5 * this->spacing / params2.density, polylines_out)) {
printf("FillTriangles::fill_surface() failed to fill a region.\n");
}
return polylines_out;
}
+Polylines FillStars::fill_surface(const Surface *surface, const FillParams &params)
+{
+ // Each linear fill covers 1/3 of the target coverage.
+ FillParams params2 = params;
+ params2.density *= 0.333333333f;
+ Polylines polylines_out;
+ if (! fill_surface_by_lines(surface, params2, 0.f, 0., polylines_out) ||
+ ! fill_surface_by_lines(surface, params2, float(M_PI / 3.), 0., polylines_out) ||
+ ! fill_surface_by_lines(surface, params2, float(2. * M_PI / 3.), 0., polylines_out)) {
+ printf("FillStars::fill_surface() failed to fill a region.\n");
+ }
+ return polylines_out;
+}
+
Polylines FillCubic::fill_surface(const Surface *surface, const FillParams &params)
{
// Each linear fill covers 1/3 of the target coverage.