diff options
author | Vojtech Bubnik <bubnikv@gmail.com> | 2021-10-28 16:07:29 +0300 |
---|---|---|
committer | Vojtech Bubnik <bubnikv@gmail.com> | 2021-10-28 16:07:29 +0300 |
commit | b6c4e94d815dcb772be265134bf1e57e7beef6bd (patch) | |
tree | e0270095ca1ca11fac3e76021260a1c58f6b2b25 /src/libslic3r/PrintObject.cpp | |
parent | 93e91bcacb5c079198f186cbc78a3a781586f280 (diff) |
Fixing projection of bottom surfaces in MM segmentation and for
support blockers / enforcers.
All slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters.
Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by
slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh().
Before this commit, slice_mesh_slabs() projected bottom facing faces upwards to its coplanar slicing plane,
which is different from how slice_mesh() or slice_mesh_ex() work, leading to ignored support enforcer / blocker strokes.
Diffstat (limited to 'src/libslic3r/PrintObject.cpp')
-rw-r--r-- | src/libslic3r/PrintObject.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index cd973ac9d..eee0c2aba 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -2284,6 +2284,7 @@ void PrintObject::project_and_append_custom_facets( seam, out); else { std::vector<Polygons> projected; + // Support blockers or enforcers. Project downward facing painted areas upwards to their respective slicing plane. slice_mesh_slabs(custom_facets, zs_from_layers(this->layers()), this->trafo_centered() * mv->get_matrix(), nullptr, &projected, [](){}); // Merge these projections with the output, layer by layer. assert(! projected.empty()); |