From dcd8b308424c13b96532118ca617ff6a3e695c39 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Wed, 13 Dec 2023 09:25:11 +0100 Subject: [PATCH] Some refactoring and warning fix --- src/slic3r/GUI/GCodeViewer.cpp | 306 ++++++++++---------- src/slic3r/GUI/GCodeViewer.hpp | 35 +-- src/slic3r/GUI/GLCanvas3D.cpp | 6 + src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp | 47 +++ src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp | 70 ++--- 5 files changed, 243 insertions(+), 221 deletions(-) diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index 6677ede888..e918069f8a 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -1121,7 +1121,7 @@ void GCodeViewer::init() #if ENABLE_NEW_GCODE_VIEWER try { - m_new_viewer.init(); + m_viewer.init(); } catch (const std::exception& e) { @@ -1136,10 +1136,10 @@ void GCodeViewer::init() #if ENABLE_NEW_GCODE_VIEWER void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const Print& print, const std::vector& str_tool_colors) { - m_new_viewer.set_top_layer_only_view_range(get_app_config()->get_bool("seq_top_layer_only")); + m_viewer.set_top_layer_only_view_range(get_app_config()->get_bool("seq_top_layer_only")); std::vector tool_colors; - if (m_new_viewer.get_view_type() == libvgcode::EViewType::Tool && !gcode_result.extruder_colors.empty()) + if (m_viewer.get_view_type() == libvgcode::EViewType::Tool && !gcode_result.extruder_colors.empty()) // update tool colors from config stored in the gcode decode_colors(gcode_result.extruder_colors, tool_colors); else @@ -1157,7 +1157,7 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const for (const ColorRGBA& color : tool_colors) { colors.emplace_back(libvgcode::convert(color)); } - m_new_viewer.set_tool_colors(colors); + m_viewer.set_tool_colors(colors); // avoid processing if called with the same gcode_result if (m_last_result_id == gcode_result.id) @@ -1169,17 +1169,17 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const reset(); // convert data from PrusaSlicer format to libvgcode format - libvgcode::GCodeInputData data = libvgcode::convert(gcode_result, m_new_viewer.get_travels_radius(), m_new_viewer.get_wipes_radius()); + libvgcode::GCodeInputData data = libvgcode::convert(gcode_result, m_viewer.get_travels_radius(), m_viewer.get_wipes_radius()); // send data to the viewer - m_new_viewer.reset_default_extrusion_roles_colors(); - m_new_viewer.load(std::move(data)); + m_viewer.reset_default_extrusion_roles_colors(); + m_viewer.load(std::move(data)); #if ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS - const uint32_t vertices_count = m_new_viewer.get_vertices_count(); + const uint32_t vertices_count = m_viewer.get_vertices_count(); m_cog.reset(); for (uint32_t i = 1; i < vertices_count; ++i) { - const libvgcode::PathVertex& curr = m_new_viewer.get_vertex_at(i); + const libvgcode::PathVertex& curr = m_viewer.get_vertex_at(i); if (curr.type == libvgcode::EMoveType::Extrude && curr.role != libvgcode::EGCodeExtrusionRole::Skirt && curr.role != libvgcode::EGCodeExtrusionRole::SupportMaterial && @@ -1187,13 +1187,13 @@ void GCodeViewer::load_as_gcode(const GCodeProcessorResult& gcode_result, const curr.role != libvgcode::EGCodeExtrusionRole::WipeTower && curr.role != libvgcode::EGCodeExtrusionRole::Custom) { const Vec3d curr_pos = libvgcode::convert(curr.position).cast(); - const Vec3d prev_pos = libvgcode::convert(m_new_viewer.get_vertex_at(i - 1).position).cast(); + const Vec3d prev_pos = libvgcode::convert(m_viewer.get_vertex_at(i - 1).position).cast(); m_cog.add_segment(curr_pos, prev_pos, curr.volumetric_rate / curr.feedrate * (curr_pos - prev_pos).norm()); } } #endif // ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS - const libvgcode::AABox bbox = m_new_viewer.get_bounding_box(wxGetApp().is_gcode_viewer() ? libvgcode::EBBoxType::Full : libvgcode::EBBoxType::ExtrusionNoCustom); + const libvgcode::AABox bbox = m_viewer.get_bounding_box(wxGetApp().is_gcode_viewer() ? libvgcode::EBBoxType::Full : libvgcode::EBBoxType::ExtrusionNoCustom); m_paths_bounding_box.min = libvgcode::convert(bbox[0]).cast(); m_paths_bounding_box.max = libvgcode::convert(bbox[1]).cast(); @@ -1238,7 +1238,7 @@ void GCodeViewer::load(const GCodeProcessorResult & gcode_result, const Print & //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - if (m_new_viewer.get_layers_count() == 0) + if (m_viewer.get_layers_count() == 0) return; #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1298,12 +1298,12 @@ void GCodeViewer::load(const GCodeProcessorResult & gcode_result, const Print & //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - PrintEstimatedStatistics::ETimeMode time_mode = convert(m_new_viewer.get_time_mode()); - if (m_new_viewer.get_time_mode() != libvgcode::ETimeMode::Normal) { + PrintEstimatedStatistics::ETimeMode time_mode = convert(m_viewer.get_time_mode()); + if (m_viewer.get_time_mode() != libvgcode::ETimeMode::Normal) { const float time = m_print_statistics.modes[static_cast(time_mode)].time; if (time == 0.0f || short_time(get_time_dhms(time)) == short_time(get_time_dhms(m_print_statistics.modes[static_cast(PrintEstimatedStatistics::ETimeMode::Normal)].time))) - m_new_viewer.set_time_mode(libvgcode::convert(PrintEstimatedStatistics::ETimeMode::Normal)); + m_viewer.set_time_mode(libvgcode::convert(PrintEstimatedStatistics::ETimeMode::Normal)); } #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1321,7 +1321,7 @@ void GCodeViewer::load(const GCodeProcessorResult & gcode_result, const Print & if (m_conflict_result.has_value()) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - m_conflict_result->layer = m_new_viewer.get_layer_id_at(static_cast(m_conflict_result->_height)); + m_conflict_result->layer = m_viewer.get_layer_id_at(static_cast(m_conflict_result->_height)); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ m_conflict_result->layer = m_layers.get_l_at(m_conflict_result->_height); @@ -1334,7 +1334,7 @@ void GCodeViewer::load(const GCodeProcessorResult & gcode_result, const Print & #if ENABLE_NEW_GCODE_VIEWER void GCodeViewer::load_as_preview(libvgcode::GCodeInputData&& data, const std::vector& str_tool_colors) { - m_new_viewer.reset(); + m_viewer.reset(); if (!str_tool_colors.empty()) { std::vector tool_colors; @@ -1344,19 +1344,19 @@ void GCodeViewer::load_as_preview(libvgcode::GCodeInputData&& data, const std::v for (const ColorRGBA& color : tool_colors) { colors.emplace_back(libvgcode::convert(color)); } - m_new_viewer.set_tool_colors(colors); + m_viewer.set_tool_colors(colors); } - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::Skirt, { 127, 255, 127 }); - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::ExternalPerimeter, { 255, 255, 0 }); - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::SupportMaterial, { 127, 255, 127 }); - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::SupportMaterialInterface, { 127, 255, 127 }); - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::InternalInfill, { 255, 127, 127 }); - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::SolidInfill, { 255, 127, 127 }); - m_new_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::WipeTower, { 127, 255, 127 }); - m_new_viewer.load(std::move(data)); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::Skirt, { 127, 255, 127 }); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::ExternalPerimeter, { 255, 255, 0 }); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::SupportMaterial, { 127, 255, 127 }); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::SupportMaterialInterface, { 127, 255, 127 }); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::InternalInfill, { 255, 127, 127 }); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::SolidInfill, { 255, 127, 127 }); + m_viewer.set_extrusion_role_color(libvgcode::EGCodeExtrusionRole::WipeTower, { 127, 255, 127 }); + m_viewer.load(std::move(data)); - const libvgcode::AABox bbox = m_new_viewer.get_bounding_box(libvgcode::EBBoxType::Extrusion); + const libvgcode::AABox bbox = m_viewer.get_bounding_box(libvgcode::EBBoxType::Extrusion); const BoundingBoxf3 paths_bounding_box(libvgcode::convert(bbox[0]).cast(), libvgcode::convert(bbox[1]).cast()); m_contained_in_bed = wxGetApp().plater()->build_volume().all_paths_inside(GCodeProcessorResult(), paths_bounding_box); } @@ -1452,7 +1452,7 @@ void GCodeViewer::reset() { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - m_new_viewer.reset(); + m_viewer.reset(); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ m_moves_count = 0; @@ -1519,7 +1519,7 @@ void GCodeViewer::render() //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - if (m_new_viewer.get_extrusion_roles().empty()) + if (m_viewer.get_extrusion_roles().empty()) return; render_new_toolpaths(); @@ -1536,12 +1536,12 @@ void GCodeViewer::render() float legend_height = 0.0f; //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - if (m_new_viewer.get_layers_count() > 0) { + if (m_viewer.get_layers_count() > 0) { render_legend(legend_height); - if (m_new_viewer.get_view_enabled_range()[1] != m_new_viewer.get_view_visible_range()[1]) { - m_sequential_view.marker.set_world_position(libvgcode::convert(m_new_viewer.get_current_vertex().position)); + if (m_viewer.get_view_enabled_range()[1] != m_viewer.get_view_visible_range()[1]) { + m_sequential_view.marker.set_world_position(libvgcode::convert(m_viewer.get_current_vertex().position)); m_sequential_view.marker.set_z_offset(m_z_offset); - m_sequential_view.render(legend_height, &m_new_viewer, m_new_viewer.get_current_vertex().gcode_id); + m_sequential_view.render(legend_height, &m_viewer, m_viewer.get_current_vertex().gcode_id); } #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1570,36 +1570,38 @@ void GCodeViewer::render() //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS - ImGuiWrapper& imgui = *Slic3r::GUI::wxGetApp().imgui(); - const Size cnv_size = wxGetApp().plater()->get_current_canvas3D()->get_canvas_size(); - imgui.set_next_window_pos(static_cast(cnv_size.get_width()), static_cast(cnv_size.get_height()), ImGuiCond_Always, 1.0f, 1.0f); - imgui.begin(std::string("LibVGCode Viewer Controller"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize); + if (is_legend_shown()) { + ImGuiWrapper& imgui = *Slic3r::GUI::wxGetApp().imgui(); + const Size cnv_size = wxGetApp().plater()->get_current_canvas3D()->get_canvas_size(); + imgui.set_next_window_pos(static_cast(cnv_size.get_width()), static_cast(cnv_size.get_height()), ImGuiCond_Always, 1.0f, 1.0f); + imgui.begin(std::string("LibVGCode Viewer Controller"), ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoResize); - imgui.checkbox("Cog marker fixed screen size", m_cog_marker_fixed_screen_size); - if (ImGui::BeginTable("Cog", 2)) { + imgui.checkbox("Cog marker fixed screen size", m_cog_marker_fixed_screen_size); + if (ImGui::BeginTable("Cog", 2)) { - ImGui::TableNextRow(); - ImGui::TableSetColumnIndex(0); - imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Cog marker size"); - ImGui::TableSetColumnIndex(1); - imgui.slider_float("##CogSize", &m_cog_marker_size, 1.0f, 5.0f); + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Cog marker size"); + ImGui::TableSetColumnIndex(1); + imgui.slider_float("##CogSize", &m_cog_marker_size, 1.0f, 5.0f); - ImGui::EndTable(); + ImGui::EndTable(); + } + + imgui.checkbox("Tool marker fixed screen size", m_tool_marker_fixed_screen_size); + if (ImGui::BeginTable("Tool", 2)) { + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); + imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker size"); + ImGui::TableSetColumnIndex(1); + imgui.slider_float("##ToolSize", &m_tool_marker_size, 1.0f, 5.0f); + + ImGui::EndTable(); + } + + imgui.end(); } - - imgui.checkbox("Tool marker fixed screen size", m_tool_marker_fixed_screen_size); - if (ImGui::BeginTable("Tool", 2)) { - - ImGui::TableNextRow(); - ImGui::TableSetColumnIndex(0); - imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker size"); - ImGui::TableSetColumnIndex(1); - imgui.slider_float("##ToolSize", &m_tool_marker_size, 1.0f, 5.0f); - - ImGui::EndTable(); - } - - imgui.end(); #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #endif // ENABLE_NEW_GCODE_VIEWER //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1623,8 +1625,8 @@ void GCodeViewer::update_sequential_view_current(unsigned int first, unsigned in { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - m_new_viewer.set_view_visible_range(static_cast(first), static_cast(last)); - const std::array& enabled_range = m_new_viewer.get_view_enabled_range(); + m_viewer.set_view_visible_range(static_cast(first), static_cast(last)); + const std::array& enabled_range = m_viewer.get_view_enabled_range(); wxGetApp().plater()->enable_preview_moves_slider(enabled_range[1] > enabled_range[0]); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1740,7 +1742,7 @@ void GCodeViewer::set_layers_z_range(const std::array& layers_z { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - m_new_viewer.set_layers_view_range(static_cast(layers_z_range[0]), static_cast(layers_z_range[1])); + m_viewer.set_layers_view_range(static_cast(layers_z_range[0]), static_cast(layers_z_range[1])); wxGetApp().plater()->update_preview_moves_slider(); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -3655,12 +3657,12 @@ void GCodeViewer::render_new_toolpaths() libvgcode::Mat4x4 converted_view_matrix = libvgcode::convert(static_cast(camera.get_view_matrix().matrix().cast())); libvgcode::Mat4x4 converted_projetion_matrix = libvgcode::convert(static_cast(camera.get_projection_matrix().matrix().cast())); #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS - m_new_viewer.set_cog_marker_scale_factor(m_cog_marker_fixed_screen_size ? 10.0f * m_cog_marker_size * camera.get_inv_zoom() : m_cog_marker_size); - m_new_viewer.enable_tool_marker(m_new_viewer.get_view_enabled_range()[1] != m_new_viewer.get_view_visible_range()[1]); - m_new_viewer.set_tool_marker_position(m_new_viewer.get_current_vertex().position); - m_new_viewer.set_tool_marker_scale_factor(m_tool_marker_fixed_screen_size ? 10.0f * m_tool_marker_size * camera.get_inv_zoom() : m_tool_marker_size); + m_viewer.set_cog_marker_scale_factor(m_cog_marker_fixed_screen_size ? 10.0f * m_cog_marker_size * camera.get_inv_zoom() : m_cog_marker_size); + m_viewer.enable_tool_marker(m_viewer.get_view_enabled_range()[1] != m_viewer.get_view_visible_range()[1]); + m_viewer.set_tool_marker_position(m_viewer.get_current_vertex().position); + m_viewer.set_tool_marker_scale_factor(m_tool_marker_fixed_screen_size ? 10.0f * m_tool_marker_size * camera.get_inv_zoom() : m_tool_marker_size); #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS - m_new_viewer.render(converted_view_matrix, converted_projetion_matrix); + m_viewer.render(converted_view_matrix, converted_projetion_matrix); #if ENABLE_NEW_GCODE_VIEWER_DEBUG if (is_legend_shown()) { @@ -3675,22 +3677,22 @@ void GCodeViewer::render_new_toolpaths() ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "# vertices"); ImGui::TableSetColumnIndex(1); - imgui.text(std::to_string(m_new_viewer.get_vertices_count())); + imgui.text(std::to_string(m_viewer.get_vertices_count())); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "# enabled lines"); ImGui::TableSetColumnIndex(1); - const std::array& enabled_segments_range = m_new_viewer.get_enabled_segments_range(); - imgui.text(std::to_string(m_new_viewer.get_enabled_segments_count()) + " [" + std::to_string(enabled_segments_range[0]) + + const std::array& enabled_segments_range = m_viewer.get_enabled_segments_range(); + imgui.text(std::to_string(m_viewer.get_enabled_segments_count()) + " [" + std::to_string(enabled_segments_range[0]) + "-" + std::to_string(enabled_segments_range[1]) + "]"); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "# enabled options"); ImGui::TableSetColumnIndex(1); - const std::array& enabled_options_range = m_new_viewer.get_enabled_options_range(); - imgui.text(std::to_string(m_new_viewer.get_enabled_options_count()) + " [" + std::to_string(enabled_options_range[0]) + + const std::array& enabled_options_range = m_viewer.get_enabled_options_range(); + imgui.text(std::to_string(m_viewer.get_enabled_options_count()) + " [" + std::to_string(enabled_options_range[0]) + "-" + std::to_string(enabled_options_range[1]) + "]"); ImGui::Separator(); @@ -3699,35 +3701,35 @@ void GCodeViewer::render_new_toolpaths() ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "layers range"); ImGui::TableSetColumnIndex(1); - const std::array& layers_range = m_new_viewer.get_layers_view_range(); + const std::array& layers_range = m_viewer.get_layers_view_range(); imgui.text(std::to_string(layers_range[0]) + " - " + std::to_string(layers_range[1])); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "view range (full)"); ImGui::TableSetColumnIndex(1); - const std::array& full_view_range = m_new_viewer.get_view_full_range(); + const std::array& full_view_range = m_viewer.get_view_full_range(); imgui.text(std::to_string(full_view_range[0]) + " - " + std::to_string(full_view_range[1]) + " | " + - std::to_string(m_new_viewer.get_vertex_at(full_view_range[0]).gcode_id) + " - " + - std::to_string(m_new_viewer.get_vertex_at(full_view_range[1]).gcode_id)); + std::to_string(m_viewer.get_vertex_at(full_view_range[0]).gcode_id) + " - " + + std::to_string(m_viewer.get_vertex_at(full_view_range[1]).gcode_id)); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "view range (enabled)"); ImGui::TableSetColumnIndex(1); - const std::array& enabled_view_range = m_new_viewer.get_view_enabled_range(); + const std::array& enabled_view_range = m_viewer.get_view_enabled_range(); imgui.text(std::to_string(enabled_view_range[0]) + " - " + std::to_string(enabled_view_range[1]) + " | " + - std::to_string(m_new_viewer.get_vertex_at(enabled_view_range[0]).gcode_id) + " - " + - std::to_string(m_new_viewer.get_vertex_at(enabled_view_range[1]).gcode_id)); + std::to_string(m_viewer.get_vertex_at(enabled_view_range[0]).gcode_id) + " - " + + std::to_string(m_viewer.get_vertex_at(enabled_view_range[1]).gcode_id)); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "view range (visible)"); ImGui::TableSetColumnIndex(1); - const std::array& visible_view_range = m_new_viewer.get_view_visible_range(); + const std::array& visible_view_range = m_viewer.get_view_visible_range(); imgui.text(std::to_string(visible_view_range[0]) + " - " + std::to_string(visible_view_range[1]) + " | " + - std::to_string(m_new_viewer.get_vertex_at(visible_view_range[0]).gcode_id) + " - " + - std::to_string(m_new_viewer.get_vertex_at(visible_view_range[1]).gcode_id)); + std::to_string(m_viewer.get_vertex_at(visible_view_range[0]).gcode_id) + " - " + + std::to_string(m_viewer.get_vertex_at(visible_view_range[1]).gcode_id)); auto add_range_property_row = [&imgui](const std::string& label, const std::array& range) { ImGui::TableNextRow(); @@ -3739,14 +3741,14 @@ void GCodeViewer::render_new_toolpaths() imgui.text(buf); }; - add_range_property_row("height range", m_new_viewer.get_height_range().get_range()); - add_range_property_row("width range", m_new_viewer.get_width_range().get_range()); - add_range_property_row("speed range", m_new_viewer.get_speed_range().get_range()); - add_range_property_row("fan speed range", m_new_viewer.get_fan_speed_range().get_range()); - add_range_property_row("temperature range", m_new_viewer.get_temperature_range().get_range()); - add_range_property_row("volumetric rate range", m_new_viewer.get_volumetric_rate_range().get_range()); - add_range_property_row("layer time linear range", m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Linear).get_range()); - add_range_property_row("layer time logarithmic range", m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Logarithmic).get_range()); + add_range_property_row("height range", m_viewer.get_height_range().get_range()); + add_range_property_row("width range", m_viewer.get_width_range().get_range()); + add_range_property_row("speed range", m_viewer.get_speed_range().get_range()); + add_range_property_row("fan speed range", m_viewer.get_fan_speed_range().get_range()); + add_range_property_row("temperature range", m_viewer.get_temperature_range().get_range()); + add_range_property_row("volumetric rate range", m_viewer.get_volumetric_rate_range().get_range()); + add_range_property_row("layer time linear range", m_viewer.get_layer_time_range(libvgcode::EColorRangeType::Linear).get_range()); + add_range_property_row("layer time logarithmic range", m_viewer.get_layer_time_range(libvgcode::EColorRangeType::Logarithmic).get_range()); ImGui::EndTable(); @@ -3770,35 +3772,35 @@ void GCodeViewer::render_new_toolpaths() ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker scale factor"); ImGui::TableSetColumnIndex(1); - imgui.text(std::to_string(m_new_viewer.get_tool_marker_scale_factor())); + imgui.text(std::to_string(m_viewer.get_tool_marker_scale_factor())); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker z offset"); ImGui::TableSetColumnIndex(1); - float tool_z_offset = m_new_viewer.get_tool_marker_offset_z(); + float tool_z_offset = m_viewer.get_tool_marker_offset_z(); if (imgui.slider_float("##ToolZOffset", &tool_z_offset, 0.0f, 1.0f)) - m_new_viewer.set_tool_marker_offset_z(tool_z_offset); + m_viewer.set_tool_marker_offset_z(tool_z_offset); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker color"); ImGui::TableSetColumnIndex(1); - const libvgcode::Color& color = m_new_viewer.get_tool_marker_color(); + const libvgcode::Color& color = m_viewer.get_tool_marker_color(); std::array c = { static_cast(color[0]) / 255.0f, static_cast(color[1]) / 255.0f, static_cast(color[2]) / 255.0f }; if (ImGui::ColorPicker3("##ToolColor", c.data())) { - m_new_viewer.set_tool_marker_color({ static_cast(c[0] * 255.0f), - static_cast(c[1] * 255.0f), - static_cast(c[2] * 255.0f) }); + m_viewer.set_tool_marker_color({ static_cast(c[0] * 255.0f), + static_cast(c[1] * 255.0f), + static_cast(c[2] * 255.0f) }); } ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker alpha"); ImGui::TableSetColumnIndex(1); - float tool_alpha = m_new_viewer.get_tool_marker_alpha(); + float tool_alpha = m_viewer.get_tool_marker_alpha(); if (imgui.slider_float("##ToolAlpha", &tool_alpha, 0.25f, 0.75f)) - m_new_viewer.set_tool_marker_alpha(tool_alpha); + m_viewer.set_tool_marker_alpha(tool_alpha); ImGui::EndTable(); } @@ -3812,19 +3814,19 @@ void GCodeViewer::render_new_toolpaths() ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Travels radius"); ImGui::TableSetColumnIndex(1); - float travels_radius = m_new_viewer.get_travels_radius(); + float travels_radius = m_viewer.get_travels_radius(); ImGui::SetNextItemWidth(200.0f); if (imgui.slider_float("##TravelRadius", &travels_radius, 0.05f, 0.5f)) - m_new_viewer.set_travels_radius(travels_radius); + m_viewer.set_travels_radius(travels_radius); ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); imgui.text_colored(ImGuiWrapper::COL_ORANGE_LIGHT, "Wipes radius"); ImGui::TableSetColumnIndex(1); - float wipes_radius = m_new_viewer.get_wipes_radius(); + float wipes_radius = m_viewer.get_wipes_radius(); ImGui::SetNextItemWidth(200.0f); if (imgui.slider_float("##WipesRadius", &wipes_radius, 0.05f, 0.5f)) - m_new_viewer.set_wipes_radius(wipes_radius); + m_viewer.set_wipes_radius(wipes_radius); ImGui::EndTable(); } @@ -4221,8 +4223,8 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const PrintEstimatedStatistics::Mode& time_mode = m_print_statistics.modes[static_cast(m_new_viewer.get_time_mode())]; - const libvgcode::EViewType curr_view_type = m_new_viewer.get_view_type(); + const PrintEstimatedStatistics::Mode& time_mode = m_print_statistics.modes[static_cast(m_viewer.get_time_mode())]; + const libvgcode::EViewType curr_view_type = m_viewer.get_view_type(); const int curr_view_type_i = static_cast(curr_view_type); bool show_estimated_time = time_mode.time > 0.0f && (curr_view_type == libvgcode::EViewType::FeatureType || curr_view_type == libvgcode::EViewType::LayerTimeLinear || curr_view_type == libvgcode::EViewType::LayerTimeLogarithmic || @@ -4521,7 +4523,7 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const std::vector zs = m_new_viewer.get_layers_zs(); + const std::vector zs = m_viewer.get_layers_zs(); auto lower_b = std::lower_bound(zs.begin(), zs.end(), static_cast(item.print_z - Slic3r::DoubleSlider::epsilon())); #else @@ -4571,7 +4573,7 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER auto role_time_and_percent = [this, time_mode](libvgcode::EGCodeExtrusionRole role) { - const float time = m_new_viewer.get_extrusion_role_time(role); + const float time = m_viewer.get_extrusion_role_time(role); return std::make_pair(time, time / time_mode.time); }; #else @@ -4606,7 +4608,7 @@ void GCodeViewer::render_legend(float& legend_height) #if ENABLE_NEW_GCODE_VIEWER if (curr_view_type == libvgcode::EViewType::FeatureType) { // calculate offsets to align time/percentage data - const std::vector& roles = m_new_viewer.get_extrusion_roles(); + const std::vector& roles = m_viewer.get_extrusion_roles(); for (libvgcode::EGCodeExtrusionRole role : roles) { assert(static_cast(role) < libvgcode::GCode_Extrusion_Roles_Count); if (static_cast(role) < libvgcode::GCode_Extrusion_Roles_Count) { @@ -4678,7 +4680,7 @@ void GCodeViewer::render_legend(float& legend_height) const size_t extruders_count = get_extruders_count(); used_filaments_m = std::vector(extruders_count, 0.0); used_filaments_g = std::vector(extruders_count, 0.0); - const std::vector& used_extruders_ids = m_new_viewer.get_used_extruders_ids(); + const std::vector& used_extruders_ids = m_viewer.get_used_extruders_ids(); for (uint8_t extruder_id : used_extruders_ids) { #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -4730,7 +4732,7 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER const std::vector layers_times = get_layers_times(); - if (!layers_times.empty() && layers_times.size() == m_new_viewer.get_layers_count()) { + if (!layers_times.empty() && layers_times.size() == m_viewer.get_layers_count()) { #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if (!m_layers_times.empty() && m_layers.size() == m_layers_times.front().size()) { @@ -4778,13 +4780,13 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER if (curr_view_type_i != new_view_type_i) { - m_new_viewer.set_view_type(static_cast(new_view_type_i)); + m_viewer.set_view_type(static_cast(new_view_type_i)); wxGetApp().plater()->set_keep_current_preview_type(true); wxGetApp().plater()->refresh_print(); view_type_changed = true; } - const libvgcode::EViewType new_view_type = m_new_viewer.get_view_type(); + const libvgcode::EViewType new_view_type = m_viewer.get_view_type(); // extrusion paths section -> title if (new_view_type == libvgcode::EViewType::FeatureType) @@ -4831,22 +4833,22 @@ void GCodeViewer::render_legend(float& legend_height) { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const float travels_time = m_new_viewer.get_travels_time(); + const float travels_time = m_viewer.get_travels_time(); max_time_percent = std::max(max_time_percent, travels_time / time_mode.time); - const std::vector& roles = m_new_viewer.get_extrusion_roles(); + const std::vector& roles = m_viewer.get_extrusion_roles(); for (size_t i = 0; i < roles.size(); ++i) { libvgcode::EGCodeExtrusionRole role = roles[i]; if (static_cast(role) >= libvgcode::GCode_Extrusion_Roles_Count) continue; - const bool visible = m_new_viewer.is_extrusion_role_visible(role); + const bool visible = m_viewer.is_extrusion_role_visible(role); - append_item(EItemType::Rect, libvgcode::convert(m_new_viewer.get_extrusion_role_color(role)), labels[i], + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_extrusion_role_color(role)), labels[i], visible, times[i], percents[i], max_time_percent, offsets, used_filaments_m[i], used_filaments_g[i], [this, role]() { - const std::array view_visible_range = m_new_viewer.get_view_visible_range(); - const std::array view_enabled_range = m_new_viewer.get_view_enabled_range(); - m_new_viewer.toggle_extrusion_role_visibility((libvgcode::EGCodeExtrusionRole)role); + const std::array view_visible_range = m_viewer.get_view_visible_range(); + const std::array view_enabled_range = m_viewer.get_view_enabled_range(); + m_viewer.toggle_extrusion_role_visibility((libvgcode::EGCodeExtrusionRole)role); std::optional view_visible_range_min; std::optional view_visible_range_max; if (view_visible_range != view_enabled_range) { @@ -4884,9 +4886,9 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - if (m_new_viewer.is_option_visible(libvgcode::EOptionType::Travels)) - append_item(EItemType::Line, libvgcode::convert(m_new_viewer.get_travel_move_color(libvgcode::ETravelMoveType::Move)), _u8L("Travel"), true, short_time_ui(get_time_dhms(travels_time)), - travels_time / time_mode.time, max_time_percent, offsets, 0.0f, 0.0f); + if (m_viewer.is_option_visible(libvgcode::EOptionType::Travels)) + append_item(EItemType::Line, libvgcode::convert(m_viewer.get_travel_move_color(libvgcode::ETravelMoveType::Move)), _u8L("Travel"), true, short_time_ui(get_time_dhms(travels_time)), + travels_time / time_mode.time, max_time_percent, offsets, 0.0f, 0.0f); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if (m_buffers[buffer_id(EMoveType::Travel)].visible) @@ -4900,20 +4902,20 @@ void GCodeViewer::render_legend(float& legend_height) } //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - case libvgcode::EViewType::Height: { append_range(m_new_viewer.get_height_range(), 3); break; } - case libvgcode::EViewType::Width: { append_range(m_new_viewer.get_width_range(), 3); break; } - case libvgcode::EViewType::Speed: { append_range(m_new_viewer.get_speed_range(), 1); break; } - case libvgcode::EViewType::FanSpeed: { append_range(m_new_viewer.get_fan_speed_range(), 0); break; } - case libvgcode::EViewType::Temperature: { append_range(m_new_viewer.get_temperature_range(), 0); break; } - case libvgcode::EViewType::VolumetricFlowRate: { append_range(m_new_viewer.get_volumetric_rate_range(), 3); break; } - case libvgcode::EViewType::LayerTimeLinear: { append_time_range(m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Linear)); break; } - case libvgcode::EViewType::LayerTimeLogarithmic: { append_time_range(m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Logarithmic)); break; } + case libvgcode::EViewType::Height: { append_range(m_viewer.get_height_range(), 3); break; } + case libvgcode::EViewType::Width: { append_range(m_viewer.get_width_range(), 3); break; } + case libvgcode::EViewType::Speed: { append_range(m_viewer.get_speed_range(), 1); break; } + case libvgcode::EViewType::FanSpeed: { append_range(m_viewer.get_fan_speed_range(), 0); break; } + case libvgcode::EViewType::Temperature: { append_range(m_viewer.get_temperature_range(), 0); break; } + case libvgcode::EViewType::VolumetricFlowRate: { append_range(m_viewer.get_volumetric_rate_range(), 3); break; } + case libvgcode::EViewType::LayerTimeLinear: { append_time_range(m_viewer.get_layer_time_range(libvgcode::EColorRangeType::Linear)); break; } + case libvgcode::EViewType::LayerTimeLogarithmic: { append_time_range(m_viewer.get_layer_time_range(libvgcode::EColorRangeType::Logarithmic)); break; } case libvgcode::EViewType::Tool: { // shows only extruders actually used - const std::vector& used_extruders_ids = m_new_viewer.get_used_extruders_ids(); + const std::vector& used_extruders_ids = m_viewer.get_used_extruders_ids(); for (uint8_t extruder_id : used_extruders_ids) { if (used_filaments_m[extruder_id] > 0.0 && used_filaments_g[extruder_id] > 0.0) - append_item(EItemType::Rect, libvgcode::convert(m_new_viewer.get_tool_colors()[extruder_id]), _u8L("Extruder") + " " + std::to_string(extruder_id + 1), + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_tool_colors()[extruder_id]), _u8L("Extruder") + " " + std::to_string(extruder_id + 1), true, "", 0.0f, 0.0f, offsets, used_filaments_m[extruder_id], used_filaments_g[extruder_id]); } break; @@ -4947,7 +4949,7 @@ void GCodeViewer::render_legend(float& legend_height) size_t total_items = 1; //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const std::vector& used_extruders_ids = m_new_viewer.get_used_extruders_ids(); + const std::vector& used_extruders_ids = m_viewer.get_used_extruders_ids(); for (uint8_t extruder_id : used_extruders_ids) { total_items += color_print_ranges(extruder_id, custom_gcode_per_print_z).size(); } @@ -4979,7 +4981,7 @@ void GCodeViewer::render_legend(float& legend_height) if (items_cnt == 0) // There are no color changes, but there are some pause print or custom Gcode //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - append_item(EItemType::Rect, libvgcode::convert(m_new_viewer.get_tool_colors().front()), _u8L("Default color")); + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_tool_colors().front()), _u8L("Default color")); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ append_item(EItemType::Rect, m_tool_colors.front(), _u8L("Default color")); @@ -4992,7 +4994,7 @@ void GCodeViewer::render_legend(float& legend_height) if (i == 0) { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - append_item(EItemType::Rect, libvgcode::convert(m_new_viewer.get_tool_colors().front()), upto_label(cp_values.front().second.first)); + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_tool_colors().front()), upto_label(cp_values.front().second.first)); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ append_item(EItemType::Rect, m_tool_colors[0], upto_label(cp_values.front().second.first)); @@ -5013,7 +5015,7 @@ void GCodeViewer::render_legend(float& legend_height) // shows only extruders actually used //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const std::vector& used_extruders_ids = m_new_viewer.get_used_extruders_ids(); + const std::vector& used_extruders_ids = m_viewer.get_used_extruders_ids(); for (uint8_t extruder_id : used_extruders_ids) { const std::vector>> cp_values = color_print_ranges(extruder_id, custom_gcode_per_print_z); #else @@ -5028,7 +5030,7 @@ void GCodeViewer::render_legend(float& legend_height) // There are no color changes, but there are some pause print or custom Gcode //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - append_item(EItemType::Rect, libvgcode::convert(m_new_viewer.get_tool_colors()[extruder_id]), _u8L("Extruder") + " " + + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_tool_colors()[extruder_id]), _u8L("Extruder") + " " + std::to_string(extruder_id + 1) + " " + _u8L("default color")); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -5052,7 +5054,7 @@ void GCodeViewer::render_legend(float& legend_height) label += " " + upto_label(cp_values.front().second.first); //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - append_item(EItemType::Rect, libvgcode::convert(m_new_viewer.get_tool_colors()[extruder_id]), label); + append_item(EItemType::Rect, libvgcode::convert(m_viewer.get_tool_colors()[extruder_id]), label); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ append_item(EItemType::Rect, m_tool_colors[i], label); @@ -5122,7 +5124,7 @@ void GCodeViewer::render_legend(float& legend_height) const size_t extruders_count = get_extruders_count(); std::vector last_color(extruders_count); for (size_t i = 0; i < extruders_count; ++i) { - last_color[i] = libvgcode::convert(m_new_viewer.get_tool_colors()[i]); + last_color[i] = libvgcode::convert(m_viewer.get_tool_colors()[i]); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ std::vector last_color(m_extruders_count); @@ -5329,11 +5331,11 @@ void GCodeViewer::render_legend(float& legend_height) if (!m_settings_ids.filament.empty()) { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const std::vector& used_extruders_ids = m_new_viewer.get_used_extruders_ids(); + const std::vector& used_extruders_ids = m_viewer.get_used_extruders_ids(); for (uint8_t extruder_id : used_extruders_ids) { if (extruder_id < static_cast(m_settings_ids.filament.size()) && !m_settings_ids.filament[extruder_id].empty()) { std::string txt = _u8L("Filament"); - txt += (m_new_viewer.get_used_extruders_count() == 1) ? ":" : " " + std::to_string(extruder_id + 1); + txt += (m_viewer.get_used_extruders_count() == 1) ? ":" : " " + std::to_string(extruder_id + 1); add_strings_row_to_table(txt, ImGuiWrapper::COL_ORANGE_LIGHT, trim_text_if_needed(m_settings_ids.filament[extruder_id]), ImGuiWrapper::to_ImVec4(ColorRGBA::WHITE())); } @@ -5359,10 +5361,10 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER if (new_view_type == libvgcode::EViewType::Width || new_view_type == libvgcode::EViewType::VolumetricFlowRate) { - const std::vector& roles = m_new_viewer.get_extrusion_roles(); + const std::vector& roles = m_viewer.get_extrusion_roles(); const auto custom_it = std::find(roles.begin(), roles.end(), libvgcode::EGCodeExtrusionRole::Custom); if (custom_it != roles.end()) { - const bool custom_visible = m_new_viewer.is_extrusion_role_visible((libvgcode::EGCodeExtrusionRole)GCodeExtrusionRole::Custom); + const bool custom_visible = m_viewer.is_extrusion_role_visible((libvgcode::EGCodeExtrusionRole)GCodeExtrusionRole::Custom); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if (m_view_type == EViewType::Width || m_view_type == EViewType::VolumetricRate) { @@ -5377,7 +5379,7 @@ void GCodeViewer::render_legend(float& legend_height) if (imgui.button(btn_text, ImVec2(-1.0f, 0.0f), true)) { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - m_new_viewer.toggle_extrusion_role_visibility((libvgcode::EGCodeExtrusionRole)GCodeExtrusionRole::Custom); + m_viewer.toggle_extrusion_role_visibility((libvgcode::EGCodeExtrusionRole)GCodeExtrusionRole::Custom); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ m_extrusions.role_visibility_flags = custom_visible ? m_extrusions.role_visibility_flags & ~(1 << int(GCodeExtrusionRole::Custom)) : @@ -5430,7 +5432,7 @@ void GCodeViewer::render_legend(float& legend_height) //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const libvgcode::ETimeMode time_mode_id = m_new_viewer.get_time_mode(); + const libvgcode::ETimeMode time_mode_id = m_viewer.get_time_mode(); if (can_show_mode_button(time_mode_id)) { switch (time_mode_id) { @@ -5488,7 +5490,7 @@ void GCodeViewer::render_legend(float& legend_height) if (imgui.button(label)) { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - m_new_viewer.set_time_mode(mode); + m_viewer.set_time_mode(mode); #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ m_time_estimate_mode = mode; @@ -5551,10 +5553,10 @@ void GCodeViewer::render_legend(float& legend_height) case Preview::OptionType::CenterOfGravity: { active = m_cog.is_visible(); break; } case Preview::OptionType::ToolMarker: { active = m_sequential_view.marker.is_visible(); break; } case Preview::OptionType::Shells: { active = m_shells.visible; break; } - default: { active = m_new_viewer.is_option_visible(libvgcode::convert(type)); break; } + default: { active = m_viewer.is_option_visible(libvgcode::convert(type)); break; } } #else - active = (type == Preview::OptionType::Shells) ? m_shells.visible : m_new_viewer.is_option_visible(libvgcode::convert(type)); + active = (type == Preview::OptionType::Shells) ? m_shells.visible : m_viewer.is_option_visible(libvgcode::convert(type)); #endif // ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -5576,8 +5578,8 @@ void GCodeViewer::render_legend(float& legend_height) if (imgui.draw_radio_button(name, 1.5f * icon_size, active, draw_callback)) { //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const std::array view_visible_range = m_new_viewer.get_view_visible_range(); - const std::array view_enabled_range = m_new_viewer.get_view_enabled_range(); + const std::array view_visible_range = m_viewer.get_view_visible_range(); + const std::array view_enabled_range = m_viewer.get_view_enabled_range(); bool keep_visible_range = false; #if ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS switch (type) @@ -5586,7 +5588,7 @@ void GCodeViewer::render_legend(float& legend_height) case Preview::OptionType::ToolMarker: { m_sequential_view.marker.set_visible(!active); break; } case Preview::OptionType::Shells: { m_shells.visible = !active; break; } default: { - m_new_viewer.toggle_option_visibility(libvgcode::convert(type)); + m_viewer.toggle_option_visibility(libvgcode::convert(type)); if (view_visible_range != view_enabled_range) keep_visible_range = true; break; @@ -5596,7 +5598,7 @@ void GCodeViewer::render_legend(float& legend_height) if (type == Preview::OptionType::Shells) m_shells.visible = !active; else { - m_new_viewer.toggle_option_visibility(libvgcode::convert(type)); + m_viewer.toggle_option_visibility(libvgcode::convert(type)); if (view_visible_range != view_enabled_range) keep_visible_range = true; } diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index e832ab1f80..81db74aeca 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -916,12 +916,13 @@ private: COG m_cog; //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +#if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS // whether or not to render the cog model with fixed screen size bool m_cog_marker_fixed_screen_size{ true }; float m_cog_marker_size{ 1.0f }; bool m_tool_marker_fixed_screen_size{ false }; float m_tool_marker_size{ 1.0f }; +#endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS bool m_legend_visible{ true }; bool m_legend_enabled{ true }; #else @@ -945,12 +946,6 @@ private: PrintEstimatedStatistics::ETimeMode m_time_estimate_mode{ PrintEstimatedStatistics::ETimeMode::Normal }; std::array m_sequential_range_caps; std::array, static_cast(PrintEstimatedStatistics::ETimeMode::Count)> m_layers_times; -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -#endif // !ENABLE_NEW_GCODE_VIEWER -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -#if !ENABLE_NEW_GCODE_VIEWER -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_GCODE_VIEWER_STATISTICS Statistics m_statistics; #endif // ENABLE_GCODE_VIEWER_STATISTICS @@ -967,7 +962,7 @@ private: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - libvgcode::Viewer m_new_viewer; + libvgcode::Viewer m_viewer; #endif // ENABLE_NEW_GCODE_VIEWER //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1011,7 +1006,7 @@ public: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - bool has_data() const { return !m_new_viewer.get_extrusion_roles().empty(); } + bool has_data() const { return !m_viewer.get_extrusion_roles().empty(); } #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ bool has_data() const { return !m_roles.empty(); } @@ -1039,13 +1034,13 @@ public: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER std::vector get_layers_zs() const { - const std::vector zs = m_new_viewer.get_layers_zs(); + const std::vector zs = m_viewer.get_layers_zs(); std::vector ret; std::transform(zs.begin(), zs.end(), std::back_inserter(ret), [](float z) { return static_cast(z); }); return ret; } - std::vector get_layers_times() const { return m_new_viewer.get_layers_times(); } - std::vector get_layers_times(libvgcode::ETimeMode mode) const { return m_new_viewer.get_layers_times(mode); } + std::vector get_layers_times() const { return m_viewer.get_layers_times(); } + std::vector get_layers_times(libvgcode::ETimeMode mode) const { return m_viewer.get_layers_times(mode); } #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ const std::vector& get_layers_zs() const { return m_layers.get_zs(); } @@ -1058,10 +1053,10 @@ public: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - const std::array& get_gcode_view_full_range() const { return m_new_viewer.get_view_full_range(); } - const std::array& get_gcode_view_enabled_range() const { return m_new_viewer.get_view_enabled_range(); } - const std::array& get_gcode_view_visible_range() const { return m_new_viewer.get_view_visible_range(); } - libvgcode::PathVertex get_gcode_vertex_at(size_t id) const { return m_new_viewer.get_vertex_at(id); } + const std::array& get_gcode_view_full_range() const { return m_viewer.get_view_full_range(); } + const std::array& get_gcode_view_enabled_range() const { return m_viewer.get_view_enabled_range(); } + const std::array& get_gcode_view_visible_range() const { return m_viewer.get_view_visible_range(); } + libvgcode::PathVertex get_gcode_vertex_at(size_t id) const { return m_viewer.get_vertex_at(id); } #endif // ENABLE_NEW_GCODE_VIEWER //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ -1069,8 +1064,8 @@ public: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER - void set_view_type(libvgcode::EViewType type) { m_new_viewer.set_view_type(type); } - libvgcode::EViewType get_view_type() const { return m_new_viewer.get_view_type(); } + void set_view_type(libvgcode::EViewType type) { m_viewer.set_view_type(type); } + libvgcode::EViewType get_view_type() const { return m_viewer.get_view_type(); } #else //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ EViewType get_view_type() const { return m_view_type; } @@ -1122,8 +1117,8 @@ public: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS - float get_cog_marker_scale_factor() const { return m_new_viewer.get_cog_marker_scale_factor(); } - void set_cog_marker_scale_factor(float factor) { return m_new_viewer.set_cog_marker_scale_factor(factor); } + float get_cog_marker_scale_factor() const { return m_viewer.get_cog_marker_scale_factor(); } + void set_cog_marker_scale_factor(float factor) { return m_viewer.set_cog_marker_scale_factor(factor); } #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #endif // ENABLE_NEW_GCODE_VIEWER //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 3e06de6de3..5e63ac6ba8 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -89,8 +89,14 @@ static const Slic3r::ColorRGBA DEFAULT_BG_LIGHT_COLOR = { 0.753f, 0.753f, 0.753f static const Slic3r::ColorRGBA ERROR_BG_DARK_COLOR = { 0.478f, 0.192f, 0.039f, 1.0f }; static const Slic3r::ColorRGBA ERROR_BG_LIGHT_COLOR = { 0.753f, 0.192f, 0.039f, 1.0f }; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +#if !ENABLE_NEW_GCODE_VIEWER +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ // Number of floats static constexpr const size_t MAX_VERTEX_BUFFER_SIZE = 131072 * 6; // 3.15MB +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +#endif // !ENABLE_NEW_GCODE_VIEWER +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #define SHOW_IMGUI_DEMO_WINDOW #ifdef SHOW_IMGUI_DEMO_WINDOW diff --git a/src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp index 83d9cba3a3..d121831251 100644 --- a/src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp +++ b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp @@ -287,6 +287,53 @@ static void delete_buffers(unsigned int& id) } } +// +// Palette used to render extrusion moves by extrusion roles +// EViewType: FeatureType +// +const std::map ViewerImpl::Default_Extrusion_Roles_Colors{ { + { EGCodeExtrusionRole::None, { 230, 179, 179 } }, + { EGCodeExtrusionRole::Perimeter, { 255, 230, 77 } }, + { EGCodeExtrusionRole::ExternalPerimeter, { 255, 125, 56 } }, + { EGCodeExtrusionRole::OverhangPerimeter, { 31, 31, 255 } }, + { EGCodeExtrusionRole::InternalInfill, { 176, 48, 41 } }, + { EGCodeExtrusionRole::SolidInfill, { 150, 84, 204 } }, + { EGCodeExtrusionRole::TopSolidInfill, { 240, 64, 64 } }, + { EGCodeExtrusionRole::Ironing, { 255, 140, 105 } }, + { EGCodeExtrusionRole::BridgeInfill, { 77, 128, 186 } }, + { EGCodeExtrusionRole::GapFill, { 255, 255, 255 } }, + { EGCodeExtrusionRole::Skirt, { 0, 135, 110 } }, + { EGCodeExtrusionRole::SupportMaterial, { 0, 255, 0 } }, + { EGCodeExtrusionRole::SupportMaterialInterface, { 0, 128, 0 } }, + { EGCodeExtrusionRole::WipeTower, { 179, 227, 171 } }, + { EGCodeExtrusionRole::Custom, { 94, 209, 148 } } +} }; + +// +// Palette used to render options +// EViewType: FeatureType +// +const std::map ViewerImpl::Default_Options_Colors{ { + { EOptionType::Retractions, { 205, 34, 214 } }, + { EOptionType::Unretractions, { 73, 173, 207 } }, + { EOptionType::Seams, { 230, 230, 230 } }, + { EOptionType::ToolChanges, { 193, 190, 99 } }, + { EOptionType::ColorChanges, { 218, 148, 139 } }, + { EOptionType::PausePrints, { 82, 240, 131 } }, + { EOptionType::CustomGCodes, { 226, 210, 67 } } +} }; + +// +// Palette used to render travel moves +// EViewType: FeatureType, Height, Width, FanSpeed, Temperature, VolumetricFlowRate, +// LayerTimeLinear, LayerTimeLogarithmic +// +const std::map ViewerImpl::Default_Travel_Moves_Colors{ { + { ETravelMoveType::Move, { 56, 72, 155 } }, + { ETravelMoveType::Extrude, { 29, 108, 26 } }, + { ETravelMoveType::Retract, { 129, 16, 7 } } +} }; + ViewerImpl::~ViewerImpl() { reset(); diff --git a/src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp index 27d4ab5412..50d422f0ed 100644 --- a/src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp +++ b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp @@ -28,53 +28,6 @@ namespace libvgcode { struct GCodeInputData; -// -// Palette used to render extrusion moves by extrusion roles -// EViewType: FeatureType -// -static const std::map Default_Extrusion_Roles_Colors{ { - { EGCodeExtrusionRole::None, { 230, 179, 179 } }, - { EGCodeExtrusionRole::Perimeter, { 255, 230, 77 } }, - { EGCodeExtrusionRole::ExternalPerimeter, { 255, 125, 56 } }, - { EGCodeExtrusionRole::OverhangPerimeter, { 31, 31, 255 } }, - { EGCodeExtrusionRole::InternalInfill, { 176, 48, 41 } }, - { EGCodeExtrusionRole::SolidInfill, { 150, 84, 204 } }, - { EGCodeExtrusionRole::TopSolidInfill, { 240, 64, 64 } }, - { EGCodeExtrusionRole::Ironing, { 255, 140, 105 } }, - { EGCodeExtrusionRole::BridgeInfill, { 77, 128, 186 } }, - { EGCodeExtrusionRole::GapFill, { 255, 255, 255 } }, - { EGCodeExtrusionRole::Skirt, { 0, 135, 110 } }, - { EGCodeExtrusionRole::SupportMaterial, { 0, 255, 0 } }, - { EGCodeExtrusionRole::SupportMaterialInterface, { 0, 128, 0 } }, - { EGCodeExtrusionRole::WipeTower, { 179, 227, 171 } }, - { EGCodeExtrusionRole::Custom, { 94, 209, 148 } } -} }; - -// -// Palette used to render options -// EViewType: FeatureType -// -static const std::map Default_Options_Colors{ { - { EOptionType::Retractions, { 205, 34, 214 } }, - { EOptionType::Unretractions, { 73, 173, 207 } }, - { EOptionType::Seams, { 230, 230, 230 } }, - { EOptionType::ToolChanges, { 193, 190, 99 } }, - { EOptionType::ColorChanges, { 218, 148, 139 } }, - { EOptionType::PausePrints, { 82, 240, 131 } }, - { EOptionType::CustomGCodes, { 226, 210, 67 } } -} }; - -// -// Palette used to render travel moves -// EViewType: FeatureType, Height, Width, FanSpeed, Temperature, VolumetricFlowRate, -// LayerTimeLinear, LayerTimeLogarithmic -// -static const std::map Default_Travel_Moves_Colors{ { - { ETravelMoveType::Move, { 56, 72, 155 } }, - { ETravelMoveType::Extrude, { 29, 108, 26 } }, - { ETravelMoveType::Retract, { 129, 16, 7 } } -} }; - class ViewerImpl { public: @@ -221,7 +174,7 @@ public: void set_tool_marker_scale_factor(float factor); const Color& get_tool_marker_color() const; - void set_tool_marker_color(const Color & color); + void set_tool_marker_color(const Color& color); float get_tool_marker_alpha() const; void set_tool_marker_alpha(float size); @@ -301,8 +254,10 @@ private: // unsigned int m_segments_shader_id{ 0 }; unsigned int m_options_shader_id{ 0 }; +#if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS unsigned int m_cog_marker_shader_id{ 0 }; unsigned int m_tool_marker_shader_id{ 0 }; +#endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS // // Cache for OpenGL uniforms id for segments shader @@ -373,13 +328,30 @@ private: void update_view_full_range(); void update_color_ranges(); void update_heights_widths(); - Color select_color(const PathVertex& v) const; + Color select_color(const PathVertex& vertex) const; void render_segments(const Mat4x4& view_matrix, const Mat4x4& projection_matrix, const Vec3& camera_position); void render_options(const Mat4x4& view_matrix, const Mat4x4& projection_matrix); #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS void render_cog_marker(const Mat4x4& view_matrix, const Mat4x4& projection_matrix); void render_tool_marker(const Mat4x4& view_matrix, const Mat4x4& projection_matrix); #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS + + // + // Palette used to render extrusion moves by extrusion roles + // EViewType: FeatureType + // + static const std::map Default_Extrusion_Roles_Colors; + // + // Palette used to render options + // EViewType: FeatureType + // + static const std::map Default_Options_Colors; + // + // Palette used to render travel moves + // EViewType: FeatureType, Height, Width, FanSpeed, Temperature, VolumetricFlowRate, + // LayerTimeLinear, LayerTimeLogarithmic + // + static const std::map Default_Travel_Moves_Colors; }; } // namespace libvgcode