FIX: fix for the previous changes

1. keep growing when collison do not contain the circle of the node.
2. when contact_node is nullptr,  cannot assign it a type.

jira: none
Change-Id: I6168a3a19ceec087e93c919625c0c3b654fc7d7e
This commit is contained in:
jiaxi.chen 2025-02-25 11:31:56 +08:00 committed by lane.wei
parent 4005d78f5d
commit f61beec992
1 changed files with 6 additions and 1 deletions

View File

@ -2845,9 +2845,13 @@ void TreeSupport::drop_nodes()
// Can't rest on model and unable to reach the build plate. Then we must drop the node and leave parts unsupported.
if (support_on_buildplate_only) {
unsupported_branch_leaves.push_front({layer_nr, p_node});
continue;
}
//If permitted to fall on the model, downward growth ceases.
continue;
auto overlap_with_circle = shrink_ex(get_collision(0, obj_layer_nr), scale_(node.radius));
if (!overlap_with_circle.empty() && is_inside_ex(overlap_with_circle, node.position)) {
continue;
}
}
if (node.to_buildplate || parts.empty()) //It's outside, so make it go towards the build plate.
{
@ -3840,6 +3844,7 @@ void TreeSupport::generate_contact_points()
double radius = unscale_(overhang_bounds.radius());
Point candidate = overhang_bounds.center();
SupportNode *contact_node = insert_point(candidate, overhang, radius, true, true);
if (!contact_node) continue;
contact_node->type = ePolygon;
curr_nodes.emplace_back(contact_node);
}