mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-11 08:47:52 -06:00
Some rework on layout of imgui dialogs
This commit is contained in:
parent
e747577271
commit
57d069bd0a
13 changed files with 50 additions and 96 deletions
|
@ -26,8 +26,6 @@
|
||||||
|
|
||||||
// Disable synchronization of unselected instances
|
// Disable synchronization of unselected instances
|
||||||
#define DISABLE_INSTANCES_SYNCH (0 && ENABLE_1_42_0_ALPHA1)
|
#define DISABLE_INSTANCES_SYNCH (0 && ENABLE_1_42_0_ALPHA1)
|
||||||
// Disable imgui dialog for move, rotate and scale gizmos
|
|
||||||
#define DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI (1 && ENABLE_1_42_0_ALPHA1)
|
|
||||||
// Use wxDataViewRender instead of wxDataViewCustomRenderer
|
// Use wxDataViewRender instead of wxDataViewCustomRenderer
|
||||||
#define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0_ALPHA1)
|
#define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0_ALPHA1)
|
||||||
|
|
||||||
|
|
|
@ -322,7 +322,6 @@ void Camera::zoom_to_volumes(const GLVolumePtrs& volumes, int canvas_w, int canv
|
||||||
void Camera::debug_render() const
|
void Camera::debug_render() const
|
||||||
{
|
{
|
||||||
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
||||||
imgui.set_next_window_bg_alpha(0.5f);
|
|
||||||
imgui.begin(std::string("Camera statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
imgui.begin(std::string("Camera statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
std::string type = get_type_as_string();
|
std::string type = get_type_as_string();
|
||||||
|
|
|
@ -133,7 +133,7 @@ GLCanvas3D::LayersEditing::LayersEditing()
|
||||||
, m_slicing_parameters(nullptr)
|
, m_slicing_parameters(nullptr)
|
||||||
, m_layer_height_profile_modified(false)
|
, m_layer_height_profile_modified(false)
|
||||||
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
, m_adaptive_cusp(0.2f)
|
, m_adaptive_cusp(0.0f)
|
||||||
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
, state(Unknown)
|
, state(Unknown)
|
||||||
, band_width(2.0f)
|
, band_width(2.0f)
|
||||||
|
@ -225,7 +225,7 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
static const ImVec4 orange(0.757f, 0.404f, 0.216f, 1.0f);
|
static const ImVec4 ORANGE(1.0f, 0.49f, 0.22f, 1.0f);
|
||||||
|
|
||||||
const Size& cnv_size = canvas.get_canvas_size();
|
const Size& cnv_size = canvas.get_canvas_size();
|
||||||
float canvas_w = (float)cnv_size.get_width();
|
float canvas_w = (float)cnv_size.get_width();
|
||||||
|
@ -233,37 +233,34 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
||||||
|
|
||||||
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
||||||
imgui.set_next_window_pos(canvas_w - imgui.get_style_scaling() * THICKNESS_BAR_WIDTH, canvas_h, ImGuiCond_Always, 1.0f, 1.0f);
|
imgui.set_next_window_pos(canvas_w - imgui.get_style_scaling() * THICKNESS_BAR_WIDTH, canvas_h, ImGuiCond_Always, 1.0f, 1.0f);
|
||||||
imgui.set_next_window_bg_alpha(0.5f);
|
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
|
|
||||||
|
|
||||||
imgui.begin(_(L("Variable layer height")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
imgui.begin(_(L("Variable layer height")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, orange);
|
ImGui::PushStyleColor(ImGuiCol_Text, ORANGE);
|
||||||
imgui.text(_(L("Left mouse button:")));
|
imgui.text(_(L("Left mouse button:")));
|
||||||
ImGui::PopStyleColor();
|
ImGui::PopStyleColor();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
imgui.text(_(L("Add detail")));
|
imgui.text(_(L("Add detail")));
|
||||||
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, orange);
|
ImGui::PushStyleColor(ImGuiCol_Text, ORANGE);
|
||||||
imgui.text(_(L("Right mouse button:")));
|
imgui.text(_(L("Right mouse button:")));
|
||||||
ImGui::PopStyleColor();
|
ImGui::PopStyleColor();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
imgui.text(_(L("Remove detail")));
|
imgui.text(_(L("Remove detail")));
|
||||||
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, orange);
|
ImGui::PushStyleColor(ImGuiCol_Text, ORANGE);
|
||||||
imgui.text(_(L("Shift + Left mouse button:")));
|
imgui.text(_(L("Shift + Left mouse button:")));
|
||||||
ImGui::PopStyleColor();
|
ImGui::PopStyleColor();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
imgui.text(_(L("Reset to base")));
|
imgui.text(_(L("Reset to base")));
|
||||||
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, orange);
|
ImGui::PushStyleColor(ImGuiCol_Text, ORANGE);
|
||||||
imgui.text(_(L("Shift + Right mouse button:")));
|
imgui.text(_(L("Shift + Right mouse button:")));
|
||||||
ImGui::PopStyleColor();
|
ImGui::PopStyleColor();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
imgui.text(_(L("Smoothing")));
|
imgui.text(_(L("Smoothing")));
|
||||||
|
|
||||||
ImGui::PushStyleColor(ImGuiCol_Text, orange);
|
ImGui::PushStyleColor(ImGuiCol_Text, ORANGE);
|
||||||
imgui.text(_(L("Mouse wheel:")));
|
imgui.text(_(L("Mouse wheel:")));
|
||||||
ImGui::PopStyleColor();
|
ImGui::PopStyleColor();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -275,12 +272,20 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
float text_align = ImGui::GetCursorPosX();
|
float text_align = ImGui::GetCursorPosX();
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
imgui.text(_(L("Cusp (mm)")));
|
imgui.text(_(L("Cusp (mm)")));
|
||||||
|
if (ImGui::IsItemHovered())
|
||||||
|
{
|
||||||
|
ImGui::BeginTooltip();
|
||||||
|
ImGui::TextUnformatted(_(L("I am a tooltip")));
|
||||||
|
ImGui::EndTooltip();
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
float widget_align = ImGui::GetCursorPosX();
|
float widget_align = ImGui::GetCursorPosX();
|
||||||
ImGui::PushItemWidth(imgui.get_style_scaling() * 120.0f);
|
ImGui::PushItemWidth(imgui.get_style_scaling() * 120.0f);
|
||||||
m_adaptive_cusp = clamp((float)m_slicing_parameters->min_layer_height, (float)m_slicing_parameters->max_layer_height, m_adaptive_cusp);
|
m_adaptive_cusp = clamp(0.0f, 0.5f * (float)m_slicing_parameters->layer_height, m_adaptive_cusp);
|
||||||
ImGui::SliderFloat("", &m_adaptive_cusp, (float)m_slicing_parameters->min_layer_height, (float)m_slicing_parameters->max_layer_height, "%.2f");
|
ImGui::SliderFloat("", &m_adaptive_cusp, 0.0f, 0.5f * (float)m_slicing_parameters->layer_height, "%.3f");
|
||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
if (imgui.button(_(L("Smooth"))))
|
if (imgui.button(_(L("Smooth"))))
|
||||||
|
@ -288,6 +293,7 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
||||||
|
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::SetCursorPosX(text_align);
|
ImGui::SetCursorPosX(text_align);
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
imgui.text(_(L("Radius")));
|
imgui.text(_(L("Radius")));
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
ImGui::SetCursorPosX(widget_align);
|
ImGui::SetCursorPosX(widget_align);
|
||||||
|
@ -297,10 +303,12 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
||||||
m_smooth_params.radius = (unsigned int)radius;
|
m_smooth_params.radius = (unsigned int)radius;
|
||||||
|
|
||||||
ImGui::SetCursorPosX(text_align);
|
ImGui::SetCursorPosX(text_align);
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
imgui.text(_(L("Keep min")));
|
imgui.text(_(L("Keep min")));
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::GetCursorPosX() < widget_align) // because of line lenght after localization
|
if (ImGui::GetCursorPosX() < widget_align) // because of line lenght after localization
|
||||||
ImGui::SetCursorPosX(widget_align);
|
ImGui::SetCursorPosX(widget_align);
|
||||||
|
|
||||||
ImGui::PushItemWidth(imgui.get_style_scaling() * 120.0f);
|
ImGui::PushItemWidth(imgui.get_style_scaling() * 120.0f);
|
||||||
imgui.checkbox("##2", m_smooth_params.keep_min);
|
imgui.checkbox("##2", m_smooth_params.keep_min);
|
||||||
|
|
||||||
|
@ -310,8 +318,6 @@ void GLCanvas3D::LayersEditing::render_overlay(const GLCanvas3D& canvas) const
|
||||||
|
|
||||||
imgui.end();
|
imgui.end();
|
||||||
|
|
||||||
ImGui::PopStyleVar();
|
|
||||||
|
|
||||||
const Rect& bar_rect = get_bar_rect_viewport(canvas);
|
const Rect& bar_rect = get_bar_rect_viewport(canvas);
|
||||||
#else
|
#else
|
||||||
const Rect& bar_rect = get_bar_rect_viewport(canvas);
|
const Rect& bar_rect = get_bar_rect_viewport(canvas);
|
||||||
|
@ -651,7 +657,6 @@ void GLCanvas3D::LayersEditing::adaptive_layer_height_profile(GLCanvas3D& canvas
|
||||||
void GLCanvas3D::LayersEditing::smooth_layer_height_profile(GLCanvas3D& canvas, const HeightProfileSmoothingParams& smoothing_params)
|
void GLCanvas3D::LayersEditing::smooth_layer_height_profile(GLCanvas3D& canvas, const HeightProfileSmoothingParams& smoothing_params)
|
||||||
{
|
{
|
||||||
this->update_slicing_parameters();
|
this->update_slicing_parameters();
|
||||||
|
|
||||||
m_layer_height_profile = smooth_height_profile(m_layer_height_profile, *m_slicing_parameters, smoothing_params);
|
m_layer_height_profile = smooth_height_profile(m_layer_height_profile, *m_slicing_parameters, smoothing_params);
|
||||||
const_cast<ModelObject*>(m_model_object)->layer_height_profile = m_layer_height_profile;
|
const_cast<ModelObject*>(m_model_object)->layer_height_profile = m_layer_height_profile;
|
||||||
m_layers_texture.valid = false;
|
m_layers_texture.valid = false;
|
||||||
|
@ -707,6 +712,11 @@ void GLCanvas3D::LayersEditing::update_slicing_parameters()
|
||||||
m_slicing_parameters = new SlicingParameters();
|
m_slicing_parameters = new SlicingParameters();
|
||||||
*m_slicing_parameters = PrintObject::slicing_parameters(*m_config, *m_model_object, m_object_max_z);
|
*m_slicing_parameters = PrintObject::slicing_parameters(*m_config, *m_model_object, m_object_max_z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
|
if (m_adaptive_cusp == 0.0f)
|
||||||
|
m_adaptive_cusp = 0.25f * m_slicing_parameters->layer_height;
|
||||||
|
#endif // ENABLE_ADAPTIVE_LAYER_HEIGHT_PROFILE
|
||||||
}
|
}
|
||||||
|
|
||||||
float GLCanvas3D::LayersEditing::thickness_bar_width(const GLCanvas3D &canvas)
|
float GLCanvas3D::LayersEditing::thickness_bar_width(const GLCanvas3D &canvas)
|
||||||
|
@ -1897,7 +1907,6 @@ void GLCanvas3D::render()
|
||||||
|
|
||||||
#if ENABLE_RENDER_STATISTICS
|
#if ENABLE_RENDER_STATISTICS
|
||||||
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
||||||
imgui.set_next_window_bg_alpha(0.5f);
|
|
||||||
imgui.begin(std::string("Render statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
imgui.begin(std::string("Render statistics"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
||||||
imgui.text("Last frame: ");
|
imgui.text("Last frame: ");
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
|
@ -3837,7 +3846,6 @@ void GLCanvas3D::_render_undo_redo_stack(const bool is_undo, float pos_x) const
|
||||||
|
|
||||||
const float x = pos_x * (float)get_camera().get_zoom() + 0.5f * (float)get_canvas_size().get_width();
|
const float x = pos_x * (float)get_camera().get_zoom() + 0.5f * (float)get_canvas_size().get_width();
|
||||||
imgui->set_next_window_pos(x, m_undoredo_toolbar.get_height(), ImGuiCond_Always, 0.5f, 0.0f);
|
imgui->set_next_window_pos(x, m_undoredo_toolbar.get_height(), ImGuiCond_Always, 0.5f, 0.0f);
|
||||||
imgui->set_next_window_bg_alpha(0.5f);
|
|
||||||
std::string title = is_undo ? L("Undo History") : L("Redo History");
|
std::string title = is_undo ? L("Undo History") : L("Redo History");
|
||||||
imgui->begin(_(title), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
imgui->begin(_(title), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
|
|
|
@ -140,17 +140,22 @@ void GLGizmoCut::on_render_input_window(float x, float y, float bottom_limit)
|
||||||
y = std::min(y, bottom_limit - approx_height);
|
y = std::min(y, bottom_limit - approx_height);
|
||||||
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
||||||
|
|
||||||
m_imgui->set_next_window_bg_alpha(0.5f);
|
m_imgui->begin(_(L("Cut")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
m_imgui->begin(_(L("Cut")), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
ImGui::AlignTextToFramePadding();
|
||||||
|
m_imgui->text("Z");
|
||||||
|
ImGui::SameLine();
|
||||||
|
ImGui::PushItemWidth(m_imgui->get_style_scaling() * 150.0f);
|
||||||
|
ImGui::InputDouble("", &m_cut_z, 0.0f, 0.0f, "%.2f");
|
||||||
|
|
||||||
ImGui::PushItemWidth(m_imgui->scaled(5.0f));
|
ImGui::Separator();
|
||||||
ImGui::InputDouble("Z", &m_cut_z, 0.0f, 0.0f, "%.2f");
|
|
||||||
|
|
||||||
m_imgui->checkbox(_(L("Keep upper part")), m_keep_upper);
|
m_imgui->checkbox(_(L("Keep upper part")), m_keep_upper);
|
||||||
m_imgui->checkbox(_(L("Keep lower part")), m_keep_lower);
|
m_imgui->checkbox(_(L("Keep lower part")), m_keep_lower);
|
||||||
m_imgui->checkbox(_(L("Rotate lower part upwards")), m_rotate_lower);
|
m_imgui->checkbox(_(L("Rotate lower part upwards")), m_rotate_lower);
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
|
||||||
m_imgui->disabled_begin(!m_keep_upper && !m_keep_lower);
|
m_imgui->disabled_begin(!m_keep_upper && !m_keep_lower);
|
||||||
const bool cut_clicked = m_imgui->button(_(L("Perform cut")));
|
const bool cut_clicked = m_imgui->button(_(L("Perform cut")));
|
||||||
m_imgui->disabled_end();
|
m_imgui->disabled_end();
|
||||||
|
|
|
@ -173,25 +173,6 @@ void GLGizmoMove3D::on_render_for_picking() const
|
||||||
render_grabber_extension(Z, box, true);
|
render_grabber_extension(Z, box, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
void GLGizmoMove3D::on_render_input_window(float x, float y, float bottom_limit)
|
|
||||||
{
|
|
||||||
const Selection& selection = m_parent.get_selection();
|
|
||||||
bool show_position = selection.is_single_full_instance();
|
|
||||||
const Vec3d& position = selection.get_bounding_box().center();
|
|
||||||
|
|
||||||
Vec3d displacement = show_position ? position : m_displacement;
|
|
||||||
wxString label = show_position ? _(L("Position (mm)")) : _(L("Displacement (mm)"));
|
|
||||||
|
|
||||||
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
|
||||||
m_imgui->set_next_window_bg_alpha(0.5f);
|
|
||||||
m_imgui->begin(label, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
|
||||||
m_imgui->input_vec3("", displacement, 100.0f, "%.2f");
|
|
||||||
|
|
||||||
m_imgui->end();
|
|
||||||
}
|
|
||||||
#endif // !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
|
|
||||||
double GLGizmoMove3D::calc_projection(const UpdateData& data) const
|
double GLGizmoMove3D::calc_projection(const UpdateData& data) const
|
||||||
{
|
{
|
||||||
double projection = 0.0;
|
double projection = 0.0;
|
||||||
|
|
|
@ -41,9 +41,6 @@ protected:
|
||||||
virtual void on_update(const UpdateData& data);
|
virtual void on_update(const UpdateData& data);
|
||||||
virtual void on_render() const;
|
virtual void on_render() const;
|
||||||
virtual void on_render_for_picking() const;
|
virtual void on_render_for_picking() const;
|
||||||
#if !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
virtual void on_render_input_window(float x, float y, float bottom_limit);
|
|
||||||
#endif // !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
double calc_projection(const UpdateData& data) const;
|
double calc_projection(const UpdateData& data) const;
|
||||||
|
|
|
@ -482,21 +482,5 @@ void GLGizmoRotate3D::on_render() const
|
||||||
m_gizmos[Z].render();
|
m_gizmos[Z].render();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
void GLGizmoRotate3D::on_render_input_window(float x, float y, float bottom_limit)
|
|
||||||
{
|
|
||||||
Vec3d rotation(Geometry::rad2deg(m_gizmos[0].get_angle()), Geometry::rad2deg(m_gizmos[1].get_angle()), Geometry::rad2deg(m_gizmos[2].get_angle()));
|
|
||||||
wxString label = _(L("Rotation (deg)"));
|
|
||||||
|
|
||||||
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
|
||||||
m_imgui->set_next_window_bg_alpha(0.5f);
|
|
||||||
m_imgui->begin(label, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
|
||||||
m_imgui->input_vec3("", rotation, 100.0f, "%.2f");
|
|
||||||
m_imgui->end();
|
|
||||||
}
|
|
||||||
#endif // !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace GUI
|
} // namespace GUI
|
||||||
} // namespace Slic3r
|
} // namespace Slic3r
|
||||||
|
|
|
@ -124,13 +124,8 @@ protected:
|
||||||
g.render_for_picking();
|
g.render_for_picking();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
virtual void on_render_input_window(float x, float y, float bottom_limit);
|
|
||||||
#endif // !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace GUI
|
} // namespace GUI
|
||||||
} // namespace Slic3r
|
} // namespace Slic3r
|
||||||
|
|
||||||
|
|
|
@ -289,21 +289,6 @@ void GLGizmoScale3D::on_render_for_picking() const
|
||||||
render_grabbers_for_picking(m_parent.get_selection().get_bounding_box());
|
render_grabbers_for_picking(m_parent.get_selection().get_bounding_box());
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
void GLGizmoScale3D::on_render_input_window(float x, float y, float bottom_limit)
|
|
||||||
{
|
|
||||||
const Selection& selection = m_parent.get_selection();
|
|
||||||
bool single_instance = selection.is_single_full_instance();
|
|
||||||
wxString label = _(L("Scale (%)"));
|
|
||||||
|
|
||||||
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
|
||||||
m_imgui->set_next_window_bg_alpha(0.5f);
|
|
||||||
m_imgui->begin(label, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
|
|
||||||
m_imgui->input_vec3("", m_scale * 100.f, 100.0f, "%.2f");
|
|
||||||
m_imgui->end();
|
|
||||||
}
|
|
||||||
#endif // !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
|
|
||||||
void GLGizmoScale3D::render_grabbers_connection(unsigned int id_1, unsigned int id_2) const
|
void GLGizmoScale3D::render_grabbers_connection(unsigned int id_1, unsigned int id_2) const
|
||||||
{
|
{
|
||||||
unsigned int grabbers_count = (unsigned int)m_grabbers.size();
|
unsigned int grabbers_count = (unsigned int)m_grabbers.size();
|
||||||
|
|
|
@ -50,9 +50,6 @@ protected:
|
||||||
virtual void on_update(const UpdateData& data);
|
virtual void on_update(const UpdateData& data);
|
||||||
virtual void on_render() const;
|
virtual void on_render() const;
|
||||||
virtual void on_render_for_picking() const;
|
virtual void on_render_for_picking() const;
|
||||||
#if !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
virtual void on_render_input_window(float x, float y, float bottom_limit);
|
|
||||||
#endif // !DISABLE_MOVE_ROTATE_SCALE_GIZMOS_IMGUI
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void render_grabbers_connection(unsigned int id_1, unsigned int id_2) const;
|
void render_grabbers_connection(unsigned int id_1, unsigned int id_2) const;
|
||||||
|
|
|
@ -700,7 +700,6 @@ RENDER_AGAIN:
|
||||||
const float approx_height = m_imgui->scaled(18.0f);
|
const float approx_height = m_imgui->scaled(18.0f);
|
||||||
y = std::min(y, bottom_limit - approx_height);
|
y = std::min(y, bottom_limit - approx_height);
|
||||||
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
m_imgui->set_next_window_pos(x, y, ImGuiCond_Always);
|
||||||
m_imgui->set_next_window_bg_alpha(0.5f);
|
|
||||||
m_imgui->begin(on_get_name(), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse);
|
m_imgui->begin(on_get_name(), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
// First calculate width of all the texts that are could possibly be shown. We will decide set the dialog width based on that:
|
// First calculate width of all the texts that are could possibly be shown. We will decide set the dialog width based on that:
|
||||||
|
@ -725,6 +724,7 @@ RENDER_AGAIN:
|
||||||
float diameter_upper_cap = static_cast<ConfigOptionFloat*>(wxGetApp().preset_bundle->sla_prints.get_edited_preset().config.option("support_pillar_diameter"))->value;
|
float diameter_upper_cap = static_cast<ConfigOptionFloat*>(wxGetApp().preset_bundle->sla_prints.get_edited_preset().config.option("support_pillar_diameter"))->value;
|
||||||
if (m_new_point_head_diameter > diameter_upper_cap)
|
if (m_new_point_head_diameter > diameter_upper_cap)
|
||||||
m_new_point_head_diameter = diameter_upper_cap;
|
m_new_point_head_diameter = diameter_upper_cap;
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
m_imgui->text(m_desc.at("head_diameter"));
|
m_imgui->text(m_desc.at("head_diameter"));
|
||||||
ImGui::SameLine(diameter_slider_left);
|
ImGui::SameLine(diameter_slider_left);
|
||||||
ImGui::PushItemWidth(window_width - diameter_slider_left);
|
ImGui::PushItemWidth(window_width - diameter_slider_left);
|
||||||
|
@ -785,6 +785,7 @@ RENDER_AGAIN:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else { // not in editing mode:
|
else { // not in editing mode:
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
m_imgui->text(m_desc.at("minimal_distance"));
|
m_imgui->text(m_desc.at("minimal_distance"));
|
||||||
ImGui::SameLine(settings_sliders_left);
|
ImGui::SameLine(settings_sliders_left);
|
||||||
ImGui::PushItemWidth(window_width - settings_sliders_left);
|
ImGui::PushItemWidth(window_width - settings_sliders_left);
|
||||||
|
@ -798,6 +799,7 @@ RENDER_AGAIN:
|
||||||
bool slider_edited = ImGui::IsItemEdited(); // someone is dragging the slider
|
bool slider_edited = ImGui::IsItemEdited(); // someone is dragging the slider
|
||||||
bool slider_released = ImGui::IsItemDeactivatedAfterEdit(); // someone has just released the slider
|
bool slider_released = ImGui::IsItemDeactivatedAfterEdit(); // someone has just released the slider
|
||||||
|
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
m_imgui->text(m_desc.at("points_density"));
|
m_imgui->text(m_desc.at("points_density"));
|
||||||
ImGui::SameLine(settings_sliders_left);
|
ImGui::SameLine(settings_sliders_left);
|
||||||
|
|
||||||
|
@ -828,7 +830,7 @@ RENDER_AGAIN:
|
||||||
if (generate)
|
if (generate)
|
||||||
auto_generate();
|
auto_generate();
|
||||||
|
|
||||||
m_imgui->text("");
|
ImGui::Separator();
|
||||||
if (m_imgui->button(m_desc.at("manual_editing")))
|
if (m_imgui->button(m_desc.at("manual_editing")))
|
||||||
switch_to_editing_mode();
|
switch_to_editing_mode();
|
||||||
|
|
||||||
|
@ -845,9 +847,12 @@ RENDER_AGAIN:
|
||||||
|
|
||||||
|
|
||||||
// Following is rendered in both editing and non-editing mode:
|
// Following is rendered in both editing and non-editing mode:
|
||||||
m_imgui->text("");
|
ImGui::Separator();
|
||||||
if (m_clipping_plane_distance == 0.f)
|
if (m_clipping_plane_distance == 0.f)
|
||||||
|
{
|
||||||
|
ImGui::AlignTextToFramePadding();
|
||||||
m_imgui->text(m_desc.at("clipping_of_view"));
|
m_imgui->text(m_desc.at("clipping_of_view"));
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
if (m_imgui->button(m_desc.at("reset_direction"))) {
|
if (m_imgui->button(m_desc.at("reset_direction"))) {
|
||||||
wxGetApp().CallAfter([this](){
|
wxGetApp().CallAfter([this](){
|
||||||
|
|
|
@ -514,13 +514,18 @@ void ImGuiWrapper::init_style()
|
||||||
(hex_color & 0xff) / 255.0f);
|
(hex_color & 0xff) / 255.0f);
|
||||||
};
|
};
|
||||||
|
|
||||||
static const unsigned COL_GREY_DARK = 0x444444ff;
|
static const unsigned COL_WINDOW_BACKGROND = 0x222222cc;
|
||||||
|
static const unsigned COL_GREY_DARK = 0x555555ff;
|
||||||
static const unsigned COL_GREY_LIGHT = 0x666666ff;
|
static const unsigned COL_GREY_LIGHT = 0x666666ff;
|
||||||
static const unsigned COL_ORANGE_DARK = 0xc16737ff;
|
static const unsigned COL_ORANGE_DARK = 0xc16737ff;
|
||||||
static const unsigned COL_ORANGE_LIGHT = 0xff7d38ff;
|
static const unsigned COL_ORANGE_LIGHT = 0xff7d38ff;
|
||||||
|
|
||||||
// Generics
|
// Window
|
||||||
|
style.WindowRounding = 4.0f;
|
||||||
|
set_color(ImGuiCol_WindowBg, COL_WINDOW_BACKGROND);
|
||||||
set_color(ImGuiCol_TitleBgActive, COL_ORANGE_DARK);
|
set_color(ImGuiCol_TitleBgActive, COL_ORANGE_DARK);
|
||||||
|
|
||||||
|
// Generics
|
||||||
set_color(ImGuiCol_FrameBg, COL_GREY_DARK);
|
set_color(ImGuiCol_FrameBg, COL_GREY_DARK);
|
||||||
set_color(ImGuiCol_FrameBgHovered, COL_GREY_LIGHT);
|
set_color(ImGuiCol_FrameBgHovered, COL_GREY_LIGHT);
|
||||||
set_color(ImGuiCol_FrameBgActive, COL_GREY_LIGHT);
|
set_color(ImGuiCol_FrameBgActive, COL_GREY_LIGHT);
|
||||||
|
|
|
@ -248,9 +248,6 @@ void Mouse3DController::render_settings_dialog(unsigned int canvas_width, unsign
|
||||||
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
ImGuiWrapper& imgui = *wxGetApp().imgui();
|
||||||
|
|
||||||
imgui.set_next_window_pos(0.5f * (float)canvas_width, 0.5f * (float)canvas_height, ImGuiCond_Always, 0.5f, 0.5f);
|
imgui.set_next_window_pos(0.5f * (float)canvas_width, 0.5f * (float)canvas_height, ImGuiCond_Always, 0.5f, 0.5f);
|
||||||
imgui.set_next_window_bg_alpha(0.5f);
|
|
||||||
|
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
|
|
||||||
|
|
||||||
imgui.begin(_(L("3Dconnexion settings")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
imgui.begin(_(L("3Dconnexion settings")), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse);
|
||||||
|
|
||||||
|
@ -327,8 +324,6 @@ void Mouse3DController::render_settings_dialog(unsigned int canvas_width, unsign
|
||||||
#endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
#endif // ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT
|
||||||
|
|
||||||
imgui.end();
|
imgui.end();
|
||||||
|
|
||||||
ImGui::PopStyleVar();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Mouse3DController::connect_device()
|
bool Mouse3DController::connect_device()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue