mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 16:57:53 -06:00
Hollowing gizmo can now trigger the backend calculation
This commit is contained in:
parent
d58ee47e4d
commit
1c0aedbbe5
5 changed files with 25 additions and 4 deletions
|
@ -1119,6 +1119,10 @@ TriangleMesh SLAPrintObject::get_mesh(SLAPrintObjectStep step) const
|
||||||
return this->support_mesh();
|
return this->support_mesh();
|
||||||
case slaposPad:
|
case slaposPad:
|
||||||
return this->pad_mesh();
|
return this->pad_mesh();
|
||||||
|
case slaposHollowing:
|
||||||
|
if (m_hollowing_data)
|
||||||
|
return m_hollowing_data->hollow_mesh_with_holes;
|
||||||
|
[[fallthrough]];
|
||||||
default:
|
default:
|
||||||
return TriangleMesh();
|
return TriangleMesh();
|
||||||
}
|
}
|
||||||
|
|
|
@ -608,10 +608,14 @@ void GLGizmoHollow::update_mesh_raycaster(std::unique_ptr<MeshRaycaster> &&rc)
|
||||||
m_c->m_volume_with_cavity.reset();
|
m_c->m_volume_with_cavity.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLGizmoHollow::hollow_mesh()
|
void GLGizmoHollow::hollow_mesh(bool postpone_error_messages)
|
||||||
{
|
{
|
||||||
// Trigger a UI job to hollow the mesh.
|
// Trigger a UI job to hollow the mesh.
|
||||||
wxGetApp().plater()->hollow();
|
// wxGetApp().plater()->hollow();
|
||||||
|
|
||||||
|
wxGetApp().CallAfter([this, postpone_error_messages]() {
|
||||||
|
wxGetApp().plater()->reslice_SLA_hollowing(*m_c->m_model_object, postpone_error_messages);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ private:
|
||||||
void render_hollowed_mesh() const;
|
void render_hollowed_mesh() const;
|
||||||
bool is_mesh_update_necessary() const;
|
bool is_mesh_update_necessary() const;
|
||||||
void update_mesh();
|
void update_mesh();
|
||||||
void hollow_mesh();
|
void hollow_mesh(bool postpone_error_messages = false);
|
||||||
bool unsaved_changes() const;
|
bool unsaved_changes() const;
|
||||||
|
|
||||||
bool m_show_supports = true;
|
bool m_show_supports = true;
|
||||||
|
|
|
@ -5099,6 +5099,16 @@ void Plater::reslice()
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plater::reslice_SLA_supports(const ModelObject &object, bool postpone_error_messages)
|
void Plater::reslice_SLA_supports(const ModelObject &object, bool postpone_error_messages)
|
||||||
|
{
|
||||||
|
reslice_SLA_until_step(slaposPad, object, postpone_error_messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Plater::reslice_SLA_hollowing(const ModelObject &object, bool postpone_error_messages)
|
||||||
|
{
|
||||||
|
reslice_SLA_until_step(slaposHollowing, object, postpone_error_messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Plater::reslice_SLA_until_step(SLAPrintObjectStep step, const ModelObject &object, bool postpone_error_messages)
|
||||||
{
|
{
|
||||||
//FIXME Don't reslice if export of G-code or sending to OctoPrint is running.
|
//FIXME Don't reslice if export of G-code or sending to OctoPrint is running.
|
||||||
// bitmask of UpdateBackgroundProcessReturnState
|
// bitmask of UpdateBackgroundProcessReturnState
|
||||||
|
@ -5117,7 +5127,7 @@ void Plater::reslice_SLA_supports(const ModelObject &object, bool postpone_error
|
||||||
// Otherwise calculate everything, but start with the provided object.
|
// Otherwise calculate everything, but start with the provided object.
|
||||||
if (!this->p->background_processing_enabled()) {
|
if (!this->p->background_processing_enabled()) {
|
||||||
task.single_model_instance_only = true;
|
task.single_model_instance_only = true;
|
||||||
task.to_object_step = slaposPad;
|
task.to_object_step = step;
|
||||||
}
|
}
|
||||||
this->p->background_process.set_task(task);
|
this->p->background_process.set_task(task);
|
||||||
// and let the background processing start.
|
// and let the background processing start.
|
||||||
|
|
|
@ -26,6 +26,7 @@ class Model;
|
||||||
class ModelObject;
|
class ModelObject;
|
||||||
class Print;
|
class Print;
|
||||||
class SLAPrint;
|
class SLAPrint;
|
||||||
|
enum SLAPrintObjectStep : unsigned int;
|
||||||
|
|
||||||
namespace UndoRedo {
|
namespace UndoRedo {
|
||||||
class Stack;
|
class Stack;
|
||||||
|
@ -197,6 +198,8 @@ public:
|
||||||
void hollow();
|
void hollow();
|
||||||
void reslice();
|
void reslice();
|
||||||
void reslice_SLA_supports(const ModelObject &object, bool postpone_error_messages = false);
|
void reslice_SLA_supports(const ModelObject &object, bool postpone_error_messages = false);
|
||||||
|
void reslice_SLA_hollowing(const ModelObject &object, bool postpone_error_messages = false);
|
||||||
|
void reslice_SLA_until_step(SLAPrintObjectStep step, const ModelObject &object, bool postpone_error_messages = false);
|
||||||
void changed_object(int obj_idx);
|
void changed_object(int obj_idx);
|
||||||
void changed_objects(const std::vector<size_t>& object_idxs);
|
void changed_objects(const std::vector<size_t>& object_idxs);
|
||||||
void schedule_background_process(bool schedule = true);
|
void schedule_background_process(bool schedule = true);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue