diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp index 0b692da28..ce0cff23f 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp @@ -1649,6 +1649,23 @@ void GLGizmoAdvancedCut::process_contours() toggle_model_objects_visibility(); } +void GLGizmoAdvancedCut::render_flip_plane_button(bool disable_pred /*=false*/) +{ + ImGui::SameLine(); + + if (m_hover_id == c_plate_move_id) + ImGui::PushStyleColor(ImGuiCol_Button, ImGui::GetColorU32(ImGuiCol_ButtonHovered)); + + m_imgui->disabled_begin(disable_pred); + if (m_imgui->button(_L("Flip cut plane"))) + flip_cut_plane(); + m_imgui->disabled_end(); + + if (m_hover_id == c_plate_move_id) + ImGui::PopStyleColor(); +} + + void GLGizmoAdvancedCut::toggle_model_objects_visibility(bool show_in_3d) { if (m_part_selection && m_part_selection->valid() && show_in_3d == false && (m_is_dragging == false || m_connectors_editing)) // BBL @@ -2169,6 +2186,8 @@ void GLGizmoAdvancedCut::render_connectors_input_window(float x, float y, float reset_connectors(); m_imgui->disabled_end(); + render_flip_plane_button(m_connectors_editing && connectors.empty()); + m_imgui->text(_L("Type")); ImGui::PushStyleColor(ImGuiCol_CheckMark, ImVec4(0.00f, 0.00f, 0.00f, 1.00f)); bool type_changed = render_connect_type_radio_button(CutConnectorType::Plug); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp index 6a7424350..9b9f16b06 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.hpp @@ -312,6 +312,7 @@ private: bool has_valid_groove() const; bool has_valid_contour() const; void reset_cut_by_contours(); + void render_flip_plane_button(bool disable_pred = false); void process_contours(); void toggle_model_objects_visibility(bool show_in_3d = false); void deal_connector_pos_by_type(Vec3d &pos, float &height, CutConnectorType, CutConnectorStyle, bool looking_forward, bool is_edit, const Vec3d &clp_normal);