mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-09 07:56:24 -06:00
FIX: hybrid support is too slow
Change-Id: I5c0d0432a0ce4010de044816780fbfbd9aabe30c (cherry picked from commit 6be3b9cd71ac5708ba03fe6678966c31b73c90eb)
This commit is contained in:
parent
8614d24932
commit
d402e302f3
1 changed files with 4 additions and 10 deletions
|
@ -2454,16 +2454,6 @@ void TreeSupport::drop_nodes(std::vector<std::vector<Node*>>& contact_nodes)
|
||||||
continue;
|
continue;
|
||||||
m_object->print()->set_status(60, (boost::format(_L("Support: propagate branches at layer %d")) % layer_nr).str());
|
m_object->print()->set_status(60, (boost::format(_L("Support: propagate branches at layer %d")) % layer_nr).str());
|
||||||
|
|
||||||
for (Node* p_node : layer_contact_nodes)
|
|
||||||
{
|
|
||||||
if (p_node->type == ePolygon) {
|
|
||||||
const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], p_node->position);
|
|
||||||
Node * next_node = new Node(p_node->position, p_node->distance_to_top + 1, p_node->skin_direction, p_node->support_roof_layers_below - 1, to_buildplate, p_node,
|
|
||||||
m_object->get_layer(layer_nr - 1)->print_z, m_object->get_layer(layer_nr - 1)->height);
|
|
||||||
contact_nodes[layer_nr - 1].emplace_back(next_node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Polygons layer_contours = std::move(m_ts_data->get_contours_with_holes(layer_nr));
|
Polygons layer_contours = std::move(m_ts_data->get_contours_with_holes(layer_nr));
|
||||||
//std::unordered_map<Line, bool, LineHash>& mst_line_x_layer_contour_cache = m_mst_line_x_layer_contour_caches[layer_nr];
|
//std::unordered_map<Line, bool, LineHash>& mst_line_x_layer_contour_cache = m_mst_line_x_layer_contour_caches[layer_nr];
|
||||||
std::unordered_map<Line, bool, LineHash> mst_line_x_layer_contour_cache;
|
std::unordered_map<Line, bool, LineHash> mst_line_x_layer_contour_cache;
|
||||||
|
@ -2506,6 +2496,10 @@ void TreeSupport::drop_nodes(std::vector<std::vector<Node*>>& contact_nodes)
|
||||||
}
|
}
|
||||||
if (node.type == ePolygon) {
|
if (node.type == ePolygon) {
|
||||||
// polygon node do not merge or move
|
// polygon node do not merge or move
|
||||||
|
const bool to_buildplate = !is_inside_ex(m_ts_data->m_layer_outlines[layer_nr], p_node->position);
|
||||||
|
Node *next_node = new Node(p_node->position, p_node->distance_to_top + 1, p_node->skin_direction, p_node->support_roof_layers_below - 1, to_buildplate, p_node,
|
||||||
|
m_object->get_layer(layer_nr - 1)->print_z, m_object->get_layer(layer_nr - 1)->height);
|
||||||
|
contact_nodes[layer_nr - 1].emplace_back(next_node);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* Find which part this node is located in and group the nodes in
|
/* Find which part this node is located in and group the nodes in
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue