mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-05-19 17:18:09 +08:00
Fix of sla gizmo (it sometimes showed supports for hidden objects)
This commit is contained in:
parent
9652e8193a
commit
3f7f8f978e
@ -2293,10 +2293,12 @@ int GLCanvas3D::check_volumes_outside_state() const
|
|||||||
return (int)state;
|
return (int)state;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLCanvas3D::toggle_sla_auxiliaries_visibility(bool visible)
|
void GLCanvas3D::toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo, int instance_idx)
|
||||||
{
|
{
|
||||||
for (GLVolume* vol : m_volumes.volumes) {
|
for (GLVolume* vol : m_volumes.volumes) {
|
||||||
if (vol->composite_id.volume_id < 0)
|
if ((mo == nullptr || m_model->objects[vol->composite_id.object_id] == mo)
|
||||||
|
&& (instance_idx == -1 || vol->composite_id.instance_id == instance_idx)
|
||||||
|
&& vol->composite_id.volume_id < 0)
|
||||||
vol->is_active = visible;
|
vol->is_active = visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2313,7 +2315,7 @@ void GLCanvas3D::toggle_model_objects_visibility(bool visible, const ModelObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (visible && !mo)
|
if (visible && !mo)
|
||||||
toggle_sla_auxiliaries_visibility(true);
|
toggle_sla_auxiliaries_visibility(true, mo, instance_idx);
|
||||||
|
|
||||||
if (!mo && !visible && !m_model->objects.empty() && (m_model->objects.size() > 1 || m_model->objects.front()->instances.size() > 1))
|
if (!mo && !visible && !m_model->objects.empty() && (m_model->objects.size() > 1 || m_model->objects.front()->instances.size() > 1))
|
||||||
_set_warning_texture(WarningTexture::SomethingNotShown, true);
|
_set_warning_texture(WarningTexture::SomethingNotShown, true);
|
||||||
|
@ -584,6 +584,9 @@ private:
|
|||||||
bool m_regenerate_volumes;
|
bool m_regenerate_volumes;
|
||||||
bool m_moving;
|
bool m_moving;
|
||||||
bool m_tab_down;
|
bool m_tab_down;
|
||||||
|
|
||||||
|
// Following variable is obsolete and it should be safe to remove it.
|
||||||
|
// I just don't want to do it now before a release (Lukas Matena 24.3.2019)
|
||||||
bool m_render_sla_auxiliaries;
|
bool m_render_sla_auxiliaries;
|
||||||
|
|
||||||
std::string m_color_by;
|
std::string m_color_by;
|
||||||
@ -610,7 +613,7 @@ public:
|
|||||||
void reset_volumes();
|
void reset_volumes();
|
||||||
int check_volumes_outside_state() const;
|
int check_volumes_outside_state() const;
|
||||||
|
|
||||||
void toggle_sla_auxiliaries_visibility(bool visible);
|
void toggle_sla_auxiliaries_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1);
|
||||||
void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1);
|
void toggle_model_objects_visibility(bool visible, const ModelObject* mo = nullptr, int instance_idx = -1);
|
||||||
|
|
||||||
void set_config(const DynamicPrintConfig* config);
|
void set_config(const DynamicPrintConfig* config);
|
||||||
|
@ -666,7 +666,7 @@ RENDER_AGAIN:
|
|||||||
m_imgui->end();
|
m_imgui->end();
|
||||||
|
|
||||||
if (m_editing_mode != m_old_editing_state) { // user toggled between editing/non-editing mode
|
if (m_editing_mode != m_old_editing_state) { // user toggled between editing/non-editing mode
|
||||||
m_parent.toggle_sla_auxiliaries_visibility(!m_editing_mode);
|
m_parent.toggle_sla_auxiliaries_visibility(!m_editing_mode, m_model_object, m_active_instance);
|
||||||
force_refresh = true;
|
force_refresh = true;
|
||||||
}
|
}
|
||||||
m_old_editing_state = m_editing_mode;
|
m_old_editing_state = m_editing_mode;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user