FIX: [STUDIO-3345] take snapshot for mesh boolean

Change-Id: I316a94b7f1122d48c5499b22c44a4c55545d2703
This commit is contained in:
chunmao.guo 2023-06-26 15:58:53 +08:00 committed by Lane.Wei
parent 257e2e0bbb
commit f55f4e60bb
2 changed files with 23 additions and 0 deletions

View File

@ -381,7 +381,23 @@ void GLGizmoMeshBoolean::on_render_input_window(float x, float y, float bottom_l
ImGuiWrapper::pop_toolbar_style();
}
void GLGizmoMeshBoolean::on_load(cereal::BinaryInputArchive &ar)
{
ar(m_enable, m_operation_mode, m_selecting_state, m_diff_delete_input, m_inter_delete_input, m_src, m_tool);
ModelObject *curr_model_object = m_c->selection_info() ? m_c->selection_info()->model_object() : nullptr;
m_src.mv = curr_model_object == nullptr ? nullptr : m_src.volume_idx < 0 ? nullptr : curr_model_object->volumes[m_src.volume_idx];
m_tool.mv = curr_model_object == nullptr ? nullptr : m_tool.volume_idx < 0 ? nullptr : curr_model_object->volumes[m_tool.volume_idx];
}
void GLGizmoMeshBoolean::on_save(cereal::BinaryOutputArchive &ar) const
{
ar(m_enable, m_operation_mode, m_selecting_state, m_diff_delete_input, m_inter_delete_input, m_src, m_tool);
}
void GLGizmoMeshBoolean::generate_new_volume(bool delete_input, const TriangleMesh& mesh_result) {
wxGetApp().plater()->take_snapshot("Mesh Boolean");
ModelObject* curr_model_object = m_c->selection_info()->model_object();
// generate new volume

View File

@ -30,6 +30,10 @@ struct VolumeInfo {
volume_idx = -1;
trafo = Transform3d::Identity();
};
template<class Archive>
void serialize(Archive& ar) {
ar(volume_idx, trafo);
}
};
class GLGizmoMeshBoolean : public GLGizmoBase
{
@ -63,6 +67,9 @@ protected:
virtual CommonGizmosDataID on_get_requirements() const override;
virtual void on_render_input_window(float x, float y, float bottom_limit);
void on_load(cereal::BinaryInputArchive &ar) override;
void on_save(cereal::BinaryOutputArchive &ar) const override;
private:
bool m_enable{ false };
MeshBooleanOperation m_operation_mode;