FIX: protect when support_style doesnt match type

jira: STUDIO-8800
Change-Id: I7d42f95ba43b4b3a47a83ae59afaaf9bc94baa5d
(cherry picked from commit d4bc450af6d2381bd5eb891c1395ebd50ca1c322)
This commit is contained in:
jiaxi.chen 2024-11-18 10:29:22 +08:00 committed by Noisyfox
parent 9f4d9fb463
commit 9e1b856e99
2 changed files with 8 additions and 0 deletions

View file

@ -163,6 +163,12 @@ struct SupportParameters {
std::numeric_limits<double>::max();
support_style = object_config.support_style;
if (support_style != smsDefault) {
if ((support_style == smsSnug || support_style == smsGrid) && is_tree(object_config.support_type)) support_style = smsDefault;
if ((support_style == smsTreeSlim || support_style == smsTreeStrong || support_style == smsTreeHybrid || support_style == smsTreeOrganic) &&
!is_tree(object_config.support_type))
support_style = smsDefault;
}
if (support_style == smsDefault) {
if (is_tree(object_config.support_type)) {
// Orca: use organic as default

View file

@ -1650,6 +1650,8 @@ void TreeSupport::move_bounds_to_contact_nodes(std::vector<TreeSupport3D::Suppor
void TreeSupport::generate()
{
if (!is_tree(m_object_config->support_type.value)) return;
if (m_support_params.support_style == smsTreeOrganic) {
generate_tree_support_3D(*m_object, this, this->throw_on_cancel);
return;