diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp index bf023a3cc2..b41f896a22 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp @@ -195,15 +195,18 @@ bool GLGizmoSVG::create_volume(ModelVolumeType volume_type) return start_create_volume_without_position(input, std::move(base)); } -bool GLGizmoSVG::create_volume(std::string_view svg_file, ModelVolumeType volume_type, const Vec2d &mouse_pos) +bool GLGizmoSVG::create_volume(std::string_view svg_file, ModelVolumeType volume_type){ + CreateVolumeParams input = create_input(m_parent, m_raycast_manager, volume_type); + DataBasePtr base = create_emboss_data_base(m_job_cancel, volume_type, svg_file); + if (!base) return false; // Uninterpretable svg + return start_create_volume_without_position(input, std::move(base)); +} + +bool GLGizmoSVG::create_volume(std::string_view svg_file, const Vec2d &mouse_pos, ModelVolumeType volume_type) { CreateVolumeParams input = create_input(m_parent, m_raycast_manager, volume_type); DataBasePtr base = create_emboss_data_base(m_job_cancel, volume_type, svg_file); if (!base) return false; // Uninterpretable svg - // is not a number || is infinity - if (mouse_pos.x() != mouse_pos.x() || - mouse_pos.y() != mouse_pos.y()) - return start_create_volume_without_position(input, std::move(base)); return start_create_volume(input, std::move(base), mouse_pos); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSVG.hpp b/src/slic3r/GUI/Gizmos/GLGizmoSVG.hpp index 426f4ee703..94115f5ff9 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSVG.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSVG.hpp @@ -39,7 +39,7 @@ struct Texture{ class GLGizmoSVG : public GLGizmoBase { public: - GLGizmoSVG(GLCanvas3D &parent); + explicit GLGizmoSVG(GLCanvas3D &parent); /// /// Create new embossed text volume by type on position of mouse @@ -60,10 +60,11 @@ public: /// Create volume from already selected svg file /// /// File path - /// Object part / Negative volume / Modifier /// Position on screen where to create volume + /// Object part / Negative volume / Modifier /// True on succesfull start creation otherwise False - bool create_volume(std::string_view svg_file, ModelVolumeType volume_type = ModelVolumeType::MODEL_PART, const Vec2d &mouse_pos = Vec2d(std::nan, std::nan)); + bool create_volume(std::string_view svg_file, const Vec2d &mouse_pos, ModelVolumeType volume_type = ModelVolumeType::MODEL_PART); + bool create_volume(std::string_view svg_file, ModelVolumeType volume_type = ModelVolumeType::MODEL_PART); /// /// Check whether volume is object containing only emboss volume diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index a51b39e98d..3d1806c36e 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -1656,7 +1656,7 @@ bool emboss_svg(Plater& plater, const wxString &svg_file, const Vec2d& mouse_dro evt.SetPosition(wxPoint(mouse_drop_position.x(), mouse_drop_position.y())); canvas->on_mouse(evt); // call render where is call GLCanvas3D::_picking_pass() - return svg->create_volume(svg_file_str, ModelVolumeType::MODEL_PART, mouse_drop_position); + return svg->create_volume(svg_file_str, mouse_drop_position, ModelVolumeType::MODEL_PART); } }