FIX: tree suppoort generates wrong sharp tails

support_critical_regions_only may generate wrong supports on sharp tails

Test case: calicat.stl

Change-Id: I73671d9bf0f9c27ef70efa5765cd291761c4d18d
(cherry picked from commit 8ff2ac7ce437dc2f9eee6068d596294c054dee1b)
This commit is contained in:
Arthur 2022-11-24 11:45:17 +08:00 committed by Lane.Wei
parent 86631eab47
commit 5df1317f40

View file

@ -1144,7 +1144,12 @@ void TreeSupport::detect_object_overhangs()
TreeSupportLayer* ts_layer = m_object->get_tree_support_layer(layer_nr + m_raft_layers);
if (support_critical_regions_only) {
auto layer = m_object->get_layer(layer_nr);
ts_layer->overhang_areas = layer->sharp_tails;
auto lower_layer = layer->lower_layer;
if (lower_layer == nullptr)
ts_layer->overhang_areas = layer->sharp_tails;
else
ts_layer->overhang_areas = diff_ex(layer->sharp_tails, lower_layer->lslices);
append(ts_layer->overhang_areas, layer->cantilevers);
}