diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 06ec17e1ce..2c623c5d97 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -92,44 +92,44 @@ set(SLIC3R_GUI_SOURCES GUI/Gizmos/GLGizmoMmuSegmentation.hpp GUI/Gizmos/GLGizmoMeasure.cpp GUI/Gizmos/GLGizmoMeasure.hpp -#==================================================================================================================== - GUI/LibVGCode/Bitset.hpp - GUI/LibVGCode/Bitset.cpp - GUI/LibVGCode/CogMarker.hpp - GUI/LibVGCode/CogMarker.cpp - GUI/LibVGCode/ColorRange.hpp - GUI/LibVGCode/ColorRange.cpp - GUI/LibVGCode/ExtrusionRoles.hpp - GUI/LibVGCode/ExtrusionRoles.cpp - GUI/LibVGCode/GCodeInputData.hpp - GUI/LibVGCode/GCodeInputData.cpp - GUI/LibVGCode/Layers.hpp - GUI/LibVGCode/Layers.cpp - GUI/LibVGCode/OpenGLUtils.hpp - GUI/LibVGCode/OpenGLUtils.cpp - GUI/LibVGCode/OptionTemplate.hpp - GUI/LibVGCode/OptionTemplate.cpp - GUI/LibVGCode/PathVertex.hpp - GUI/LibVGCode/PathVertex.cpp - GUI/LibVGCode/Range.hpp - GUI/LibVGCode/Range.cpp - GUI/LibVGCode/SegmentTemplate.hpp - GUI/LibVGCode/SegmentTemplate.cpp - GUI/LibVGCode/Settings.hpp - GUI/LibVGCode/Settings.cpp - GUI/LibVGCode/Shaders.hpp - GUI/LibVGCode/ToolMarker.hpp - GUI/LibVGCode/ToolMarker.cpp - GUI/LibVGCode/Types.hpp - GUI/LibVGCode/Types.cpp - GUI/LibVGCode/Utils.hpp - GUI/LibVGCode/Utils.cpp - GUI/LibVGCode/Viewer.hpp - GUI/LibVGCode/Viewer.cpp - GUI/LibVGCode/ViewerImpl.hpp - GUI/LibVGCode/ViewerImpl.cpp - GUI/LibVGCode/ViewRange.hpp - GUI/LibVGCode/ViewRange.cpp +#==================================================================================================================== + GUI/LibVGCode/include/GCodeInputData.hpp + GUI/LibVGCode/include/PathVertex.hpp + GUI/LibVGCode/include/Types.hpp + GUI/LibVGCode/include/Viewer.hpp + GUI/LibVGCode/src/Bitset.hpp + GUI/LibVGCode/src/Bitset.cpp + GUI/LibVGCode/src/CogMarker.hpp + GUI/LibVGCode/src/CogMarker.cpp + GUI/LibVGCode/src/ColorRange.hpp + GUI/LibVGCode/src/ColorRange.cpp + GUI/LibVGCode/src/ExtrusionRoles.hpp + GUI/LibVGCode/src/ExtrusionRoles.cpp + GUI/LibVGCode/src/GCodeInputData.cpp + GUI/LibVGCode/src/Layers.hpp + GUI/LibVGCode/src/Layers.cpp + GUI/LibVGCode/src/OpenGLUtils.hpp + GUI/LibVGCode/src/OpenGLUtils.cpp + GUI/LibVGCode/src/OptionTemplate.hpp + GUI/LibVGCode/src/OptionTemplate.cpp + GUI/LibVGCode/src/PathVertex.cpp + GUI/LibVGCode/src/Range.hpp + GUI/LibVGCode/src/Range.cpp + GUI/LibVGCode/src/SegmentTemplate.hpp + GUI/LibVGCode/src/SegmentTemplate.cpp + GUI/LibVGCode/src/Settings.hpp + GUI/LibVGCode/src/Settings.cpp + GUI/LibVGCode/src/Shaders.hpp + GUI/LibVGCode/src/ToolMarker.hpp + GUI/LibVGCode/src/ToolMarker.cpp + GUI/LibVGCode/src/Types.cpp + GUI/LibVGCode/src/Utils.hpp + GUI/LibVGCode/src/Utils.cpp + GUI/LibVGCode/src/Viewer.cpp + GUI/LibVGCode/src/ViewerImpl.hpp + GUI/LibVGCode/src/ViewerImpl.cpp + GUI/LibVGCode/src/ViewRange.hpp + GUI/LibVGCode/src/ViewRange.cpp #==================================================================================================================== GUI/GLSelectionRectangle.cpp GUI/GLSelectionRectangle.hpp diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index b825a4e465..b80ee508e1 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -4012,8 +4012,8 @@ void GCodeViewer::render_new_toolpaths() add_range_property_row("fan speed range", m_new_viewer.get_fan_speed_range()); add_range_property_row("temperature range", m_new_viewer.get_temperature_range()); add_range_property_row("volumetric rate range", m_new_viewer.get_volumetric_rate_range()); - add_range_property_row("layer time linear range", m_new_viewer.get_layer_time_range(libvgcode::ColorRange::EType::Linear)); - add_range_property_row("layer time logarithmic range", m_new_viewer.get_layer_time_range(libvgcode::ColorRange::EType::Logarithmic)); + add_range_property_row("layer time linear range", m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Linear)); + add_range_property_row("layer time logarithmic range", m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Logarithmic)); ImGui::EndTable(); @@ -4051,9 +4051,13 @@ void GCodeViewer::render_new_toolpaths() ImGui::TableSetColumnIndex(0); imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker color"); ImGui::TableSetColumnIndex(1); - libvgcode::Color color = m_new_viewer.get_tool_marker_color(); - if (ImGui::ColorPicker3("##ToolColor", color.data())) - m_new_viewer.set_tool_marker_color(color); + const libvgcode::Color& color = m_new_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) }); + } ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 3ea469ae98..149686f23f 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -14,7 +14,9 @@ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #if ENABLE_NEW_GCODE_VIEWER -#include "LibVGCode/Viewer.hpp" +#include "LibVGCode/include/Viewer.hpp" +#include "LibVGCode/include/PathVertex.hpp" +#include "LibVGCode/include/GCodeInputData.hpp" #endif // ENABLE_NEW_GCODE_VIEWER //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ diff --git a/src/slic3r/GUI/LibVGCode/GCodeInputData.hpp b/src/slic3r/GUI/LibVGCode/include/GCodeInputData.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/GCodeInputData.hpp rename to src/slic3r/GUI/LibVGCode/include/GCodeInputData.hpp diff --git a/src/slic3r/GUI/LibVGCode/PathVertex.hpp b/src/slic3r/GUI/LibVGCode/include/PathVertex.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/PathVertex.hpp rename to src/slic3r/GUI/LibVGCode/include/PathVertex.hpp diff --git a/src/slic3r/GUI/LibVGCode/Types.hpp b/src/slic3r/GUI/LibVGCode/include/Types.hpp similarity index 96% rename from src/slic3r/GUI/LibVGCode/Types.hpp rename to src/slic3r/GUI/LibVGCode/include/Types.hpp index 0931b1fd53..f27021938e 100644 --- a/src/slic3r/GUI/LibVGCode/Types.hpp +++ b/src/slic3r/GUI/LibVGCode/include/Types.hpp @@ -142,6 +142,18 @@ enum class ETimeMode : uint8_t static constexpr size_t Time_Modes_Count = static_cast(ETimeMode::COUNT); +// +// Color range type +// +enum class EColorRangeType : uint8_t +{ + Linear, + Logarithmic, + COUNT +}; + +static constexpr size_t Color_Range_Types_Count = static_cast(EColorRangeType::COUNT); + // // Predefined colors // diff --git a/src/slic3r/GUI/LibVGCode/Viewer.hpp b/src/slic3r/GUI/LibVGCode/include/Viewer.hpp similarity index 96% rename from src/slic3r/GUI/LibVGCode/Viewer.hpp rename to src/slic3r/GUI/LibVGCode/include/Viewer.hpp index bacc79ea3d..5aabed653e 100644 --- a/src/slic3r/GUI/LibVGCode/Viewer.hpp +++ b/src/slic3r/GUI/LibVGCode/include/Viewer.hpp @@ -10,17 +10,19 @@ #if ENABLE_NEW_GCODE_VIEWER //################################################################################################################################ -#include "ViewerImpl.hpp" #include "Types.hpp" -#include "GCodeInputData.hpp" namespace libvgcode { +class ViewerImpl; +struct GCodeInputData; +struct PathVertex; + class Viewer { public: - Viewer() = default; - ~Viewer() = default; + Viewer(); + ~Viewer(); Viewer(const Viewer& other) = delete; Viewer(Viewer&& other) = delete; Viewer& operator = (const Viewer& other) = delete; @@ -139,7 +141,7 @@ public: const std::array& get_fan_speed_range() const; const std::array& get_temperature_range() const; const std::array& get_volumetric_rate_range() const; - std::array get_layer_time_range(ColorRange::EType type) const; + std::array get_layer_time_range(EColorRangeType type) const; #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS // @@ -176,7 +178,7 @@ public: #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS private: - ViewerImpl m_impl; + ViewerImpl* m_impl{ nullptr }; }; } // namespace libvgcode diff --git a/src/slic3r/GUI/LibVGCode/Bitset.cpp b/src/slic3r/GUI/LibVGCode/src/Bitset.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Bitset.cpp rename to src/slic3r/GUI/LibVGCode/src/Bitset.cpp diff --git a/src/slic3r/GUI/LibVGCode/Bitset.hpp b/src/slic3r/GUI/LibVGCode/src/Bitset.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Bitset.hpp rename to src/slic3r/GUI/LibVGCode/src/Bitset.hpp diff --git a/src/slic3r/GUI/LibVGCode/CogMarker.cpp b/src/slic3r/GUI/LibVGCode/src/CogMarker.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/CogMarker.cpp rename to src/slic3r/GUI/LibVGCode/src/CogMarker.cpp diff --git a/src/slic3r/GUI/LibVGCode/CogMarker.hpp b/src/slic3r/GUI/LibVGCode/src/CogMarker.hpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/CogMarker.hpp rename to src/slic3r/GUI/LibVGCode/src/CogMarker.hpp index 8fdbb1caa5..1da6bfc9de 100644 --- a/src/slic3r/GUI/LibVGCode/CogMarker.hpp +++ b/src/slic3r/GUI/LibVGCode/src/CogMarker.hpp @@ -11,7 +11,7 @@ #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS //################################################################################################################################ -#include "Types.hpp" +#include "..\include\Types.hpp" namespace libvgcode { diff --git a/src/slic3r/GUI/LibVGCode/ColorRange.cpp b/src/slic3r/GUI/LibVGCode/src/ColorRange.cpp similarity index 86% rename from src/slic3r/GUI/LibVGCode/ColorRange.cpp rename to src/slic3r/GUI/LibVGCode/src/ColorRange.cpp index dcbbc29d75..73d9ce156d 100644 --- a/src/slic3r/GUI/LibVGCode/ColorRange.cpp +++ b/src/slic3r/GUI/LibVGCode/src/ColorRange.cpp @@ -19,7 +19,7 @@ namespace libvgcode { -ColorRange::ColorRange(EType type) +ColorRange::ColorRange(EColorRangeType type) : m_type(type) { } @@ -35,23 +35,23 @@ void ColorRange::reset() m_range = { FLT_MAX, -FLT_MAX }; } -static float step_size(const std::array& range, ColorRange::EType type) +static float step_size(const std::array& range, EColorRangeType type) { switch (type) { default: - case ColorRange::EType::Linear: + case EColorRangeType::Linear: { - return (range[1] - range[0]) / ((float)Ranges_Colors.size() - 1.0f); + return (range[1] - range[0]) / (static_cast(Ranges_Colors.size()) - 1.0f); } - case ColorRange::EType::Logarithmic: + case EColorRangeType::Logarithmic: { - return (range[0] != 0.0f) ? std::log(range[1] / range[0]) / ((float)Ranges_Colors.size() - 1.0f) : 0.0f; + return (range[0] != 0.0f) ? std::log(range[1] / range[0]) / (static_cast(Ranges_Colors.size()) - 1.0f) : 0.0f; } } } -ColorRange::EType ColorRange::get_type() const +EColorRangeType ColorRange::get_type() const { return m_type; } @@ -63,7 +63,7 @@ Color ColorRange::get_color_at(float value) const value = std::clamp(value, m_range[0], m_range[1]); const float step = step_size(m_range, m_type); if (step > 0.0f) { - if (m_type == EType::Logarithmic) { + if (m_type == EColorRangeType::Logarithmic) { if (m_range[0] != 0.0f) global_t = log(value / m_range[0]) / step; } diff --git a/src/slic3r/GUI/LibVGCode/ColorRange.hpp b/src/slic3r/GUI/LibVGCode/src/ColorRange.hpp similarity index 77% rename from src/slic3r/GUI/LibVGCode/ColorRange.hpp rename to src/slic3r/GUI/LibVGCode/src/ColorRange.hpp index 8b33ea4453..5f79b6e118 100644 --- a/src/slic3r/GUI/LibVGCode/ColorRange.hpp +++ b/src/slic3r/GUI/LibVGCode/src/ColorRange.hpp @@ -10,38 +10,33 @@ #if ENABLE_NEW_GCODE_VIEWER //################################################################################################################################ -#include "Types.hpp" +#include "../include/Types.hpp" namespace libvgcode { class ColorRange { public: - enum class EType : uint8_t - { - Linear, - Logarithmic, - COUNT - }; - - explicit ColorRange(EType type = EType::Linear); + explicit ColorRange(EColorRangeType type = EColorRangeType::Linear); void update(float value); void reset(); - EType get_type() const; + EColorRangeType get_type() const; Color get_color_at(float value) const; const std::array& get_range() const; private: - EType m_type{ EType::Linear }; - // [0] = min, [1] = max + EColorRangeType m_type{ EColorRangeType::Linear }; + + // + // [0] = min + // [1] = max + // std::array m_range{ FLT_MAX, -FLT_MAX }; }; -static constexpr size_t Color_Range_Types_Count = static_cast(ColorRange::EType::COUNT); - } // namespace libvgcode //################################################################################################################################ diff --git a/src/slic3r/GUI/LibVGCode/ExtrusionRoles.cpp b/src/slic3r/GUI/LibVGCode/src/ExtrusionRoles.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/ExtrusionRoles.cpp rename to src/slic3r/GUI/LibVGCode/src/ExtrusionRoles.cpp diff --git a/src/slic3r/GUI/LibVGCode/ExtrusionRoles.hpp b/src/slic3r/GUI/LibVGCode/src/ExtrusionRoles.hpp similarity index 97% rename from src/slic3r/GUI/LibVGCode/ExtrusionRoles.hpp rename to src/slic3r/GUI/LibVGCode/src/ExtrusionRoles.hpp index 12ecb3e017..19e212b744 100644 --- a/src/slic3r/GUI/LibVGCode/ExtrusionRoles.hpp +++ b/src/slic3r/GUI/LibVGCode/src/ExtrusionRoles.hpp @@ -10,7 +10,7 @@ #if ENABLE_NEW_GCODE_VIEWER //################################################################################################################################ -#include "Types.hpp" +#include "../include/Types.hpp" #include diff --git a/src/slic3r/GUI/LibVGCode/GCodeInputData.cpp b/src/slic3r/GUI/LibVGCode/src/GCodeInputData.cpp similarity index 96% rename from src/slic3r/GUI/LibVGCode/GCodeInputData.cpp rename to src/slic3r/GUI/LibVGCode/src/GCodeInputData.cpp index 92030d978c..ba4fb22698 100644 --- a/src/slic3r/GUI/LibVGCode/GCodeInputData.cpp +++ b/src/slic3r/GUI/LibVGCode/src/GCodeInputData.cpp @@ -7,7 +7,7 @@ ///|/ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ -#include "GCodeInputData.hpp" +#include "../include/GCodeInputData.hpp" //################################################################################################################################ // PrusaSlicer development only -> !!!TO BE REMOVED!!! diff --git a/src/slic3r/GUI/LibVGCode/Layers.cpp b/src/slic3r/GUI/LibVGCode/src/Layers.cpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/Layers.cpp rename to src/slic3r/GUI/LibVGCode/src/Layers.cpp index 24f983fe3e..01e562e6d9 100644 --- a/src/slic3r/GUI/LibVGCode/Layers.cpp +++ b/src/slic3r/GUI/LibVGCode/src/Layers.cpp @@ -9,7 +9,7 @@ ///|/ #include "Layers.hpp" -#include "PathVertex.hpp" +#include "../include/PathVertex.hpp" //################################################################################################################################ // PrusaSlicer development only -> !!!TO BE REMOVED!!! diff --git a/src/slic3r/GUI/LibVGCode/Layers.hpp b/src/slic3r/GUI/LibVGCode/src/Layers.hpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/Layers.hpp rename to src/slic3r/GUI/LibVGCode/src/Layers.hpp index ab91ca8af2..a57b3ef2e4 100644 --- a/src/slic3r/GUI/LibVGCode/Layers.hpp +++ b/src/slic3r/GUI/LibVGCode/src/Layers.hpp @@ -10,7 +10,7 @@ #if ENABLE_NEW_GCODE_VIEWER //################################################################################################################################ -#include "Types.hpp" +#include "../include/Types.hpp" #include "Range.hpp" namespace libvgcode { diff --git a/src/slic3r/GUI/LibVGCode/OpenGLUtils.cpp b/src/slic3r/GUI/LibVGCode/src/OpenGLUtils.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/OpenGLUtils.cpp rename to src/slic3r/GUI/LibVGCode/src/OpenGLUtils.cpp diff --git a/src/slic3r/GUI/LibVGCode/OpenGLUtils.hpp b/src/slic3r/GUI/LibVGCode/src/OpenGLUtils.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/OpenGLUtils.hpp rename to src/slic3r/GUI/LibVGCode/src/OpenGLUtils.hpp diff --git a/src/slic3r/GUI/LibVGCode/OptionTemplate.cpp b/src/slic3r/GUI/LibVGCode/src/OptionTemplate.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/OptionTemplate.cpp rename to src/slic3r/GUI/LibVGCode/src/OptionTemplate.cpp diff --git a/src/slic3r/GUI/LibVGCode/OptionTemplate.hpp b/src/slic3r/GUI/LibVGCode/src/OptionTemplate.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/OptionTemplate.hpp rename to src/slic3r/GUI/LibVGCode/src/OptionTemplate.hpp diff --git a/src/slic3r/GUI/LibVGCode/PathVertex.cpp b/src/slic3r/GUI/LibVGCode/src/PathVertex.cpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/PathVertex.cpp rename to src/slic3r/GUI/LibVGCode/src/PathVertex.cpp index dfb988b832..ced052bb5b 100644 --- a/src/slic3r/GUI/LibVGCode/PathVertex.cpp +++ b/src/slic3r/GUI/LibVGCode/src/PathVertex.cpp @@ -7,7 +7,7 @@ ///|/ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ -#include "PathVertex.hpp" +#include "../include/PathVertex.hpp" //################################################################################################################################ // PrusaSlicer development only -> !!!TO BE REMOVED!!! diff --git a/src/slic3r/GUI/LibVGCode/Range.cpp b/src/slic3r/GUI/LibVGCode/src/Range.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Range.cpp rename to src/slic3r/GUI/LibVGCode/src/Range.cpp diff --git a/src/slic3r/GUI/LibVGCode/Range.hpp b/src/slic3r/GUI/LibVGCode/src/Range.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Range.hpp rename to src/slic3r/GUI/LibVGCode/src/Range.hpp diff --git a/src/slic3r/GUI/LibVGCode/SegmentTemplate.cpp b/src/slic3r/GUI/LibVGCode/src/SegmentTemplate.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/SegmentTemplate.cpp rename to src/slic3r/GUI/LibVGCode/src/SegmentTemplate.cpp diff --git a/src/slic3r/GUI/LibVGCode/SegmentTemplate.hpp b/src/slic3r/GUI/LibVGCode/src/SegmentTemplate.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/SegmentTemplate.hpp rename to src/slic3r/GUI/LibVGCode/src/SegmentTemplate.hpp diff --git a/src/slic3r/GUI/LibVGCode/Settings.cpp b/src/slic3r/GUI/LibVGCode/src/Settings.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Settings.cpp rename to src/slic3r/GUI/LibVGCode/src/Settings.cpp diff --git a/src/slic3r/GUI/LibVGCode/Settings.hpp b/src/slic3r/GUI/LibVGCode/src/Settings.hpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/Settings.hpp rename to src/slic3r/GUI/LibVGCode/src/Settings.hpp index bbf2723b45..77f9836a85 100644 --- a/src/slic3r/GUI/LibVGCode/Settings.hpp +++ b/src/slic3r/GUI/LibVGCode/src/Settings.hpp @@ -10,7 +10,7 @@ #if ENABLE_NEW_GCODE_VIEWER //################################################################################################################################ -#include "Types.hpp" +#include "../include/Types.hpp" #include diff --git a/src/slic3r/GUI/LibVGCode/Shaders.hpp b/src/slic3r/GUI/LibVGCode/src/Shaders.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Shaders.hpp rename to src/slic3r/GUI/LibVGCode/src/Shaders.hpp diff --git a/src/slic3r/GUI/LibVGCode/ToolMarker.cpp b/src/slic3r/GUI/LibVGCode/src/ToolMarker.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/ToolMarker.cpp rename to src/slic3r/GUI/LibVGCode/src/ToolMarker.cpp diff --git a/src/slic3r/GUI/LibVGCode/ToolMarker.hpp b/src/slic3r/GUI/LibVGCode/src/ToolMarker.hpp similarity index 96% rename from src/slic3r/GUI/LibVGCode/ToolMarker.hpp rename to src/slic3r/GUI/LibVGCode/src/ToolMarker.hpp index 6403a24d9b..8450a07247 100644 --- a/src/slic3r/GUI/LibVGCode/ToolMarker.hpp +++ b/src/slic3r/GUI/LibVGCode/src/ToolMarker.hpp @@ -11,7 +11,7 @@ #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS //################################################################################################################################ -#include "Types.hpp" +#include "..\include\Types.hpp" namespace libvgcode { @@ -47,7 +47,7 @@ private: bool m_enabled{ false }; Vec3 m_position{ 0.0f, 0.0f, 0.0f }; float m_offset_z{ 0.5f }; - Color m_color{ 1.0f, 1.0f, 1.0f }; + Color m_color{ 255, 255, 255 }; float m_alpha{ 0.5f }; uint16_t m_indices_count{ 0 }; diff --git a/src/slic3r/GUI/LibVGCode/Types.cpp b/src/slic3r/GUI/LibVGCode/src/Types.cpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/Types.cpp rename to src/slic3r/GUI/LibVGCode/src/Types.cpp index ea4c34bc6f..4a41c2ab24 100644 --- a/src/slic3r/GUI/LibVGCode/Types.cpp +++ b/src/slic3r/GUI/LibVGCode/src/Types.cpp @@ -7,7 +7,7 @@ ///|/ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ -#include "Types.hpp" +#include "../include/Types.hpp" //################################################################################################################################ // PrusaSlicer development only -> !!!TO BE REMOVED!!! diff --git a/src/slic3r/GUI/LibVGCode/Utils.cpp b/src/slic3r/GUI/LibVGCode/src/Utils.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/Utils.cpp rename to src/slic3r/GUI/LibVGCode/src/Utils.cpp diff --git a/src/slic3r/GUI/LibVGCode/Utils.hpp b/src/slic3r/GUI/LibVGCode/src/Utils.hpp similarity index 97% rename from src/slic3r/GUI/LibVGCode/Utils.hpp rename to src/slic3r/GUI/LibVGCode/src/Utils.hpp index 24b2703cf3..93ad748acb 100644 --- a/src/slic3r/GUI/LibVGCode/Utils.hpp +++ b/src/slic3r/GUI/LibVGCode/src/Utils.hpp @@ -10,9 +10,7 @@ #if ENABLE_NEW_GCODE_VIEWER //################################################################################################################################ -#include "Types.hpp" - -#include +#include "../include/Types.hpp" namespace libvgcode { diff --git a/src/slic3r/GUI/LibVGCode/ViewRange.cpp b/src/slic3r/GUI/LibVGCode/src/ViewRange.cpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/ViewRange.cpp rename to src/slic3r/GUI/LibVGCode/src/ViewRange.cpp diff --git a/src/slic3r/GUI/LibVGCode/ViewRange.hpp b/src/slic3r/GUI/LibVGCode/src/ViewRange.hpp similarity index 100% rename from src/slic3r/GUI/LibVGCode/ViewRange.hpp rename to src/slic3r/GUI/LibVGCode/src/ViewRange.hpp diff --git a/src/slic3r/GUI/LibVGCode/Viewer.cpp b/src/slic3r/GUI/LibVGCode/src/Viewer.cpp similarity index 63% rename from src/slic3r/GUI/LibVGCode/Viewer.cpp rename to src/slic3r/GUI/LibVGCode/src/Viewer.cpp index a6cf4f229c..1e0c3076af 100644 --- a/src/slic3r/GUI/LibVGCode/Viewer.cpp +++ b/src/slic3r/GUI/LibVGCode/src/Viewer.cpp @@ -7,7 +7,8 @@ ///|/ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ -#include "Viewer.hpp" +#include "..\include\Viewer.hpp" +#include "ViewerImpl.hpp" //################################################################################################################################ // PrusaSlicer development only -> !!!TO BE REMOVED!!! @@ -16,310 +17,320 @@ namespace libvgcode { +Viewer::Viewer() +{ + m_impl = new ViewerImpl(); +} + +Viewer::~Viewer() +{ + delete m_impl; +} + void Viewer::init() { - m_impl.init(); + m_impl->init(); } void Viewer::reset() { - m_impl.reset(); + m_impl->reset(); } void Viewer::load(GCodeInputData&& gcode_data) { - m_impl.load(std::move(gcode_data)); + m_impl->load(std::move(gcode_data)); } void Viewer::render(const Mat4x4& view_matrix, const Mat4x4& projection_matrix) { - m_impl.render(view_matrix, projection_matrix); + m_impl->render(view_matrix, projection_matrix); } EViewType Viewer::get_view_type() const { - return m_impl.get_view_type(); + return m_impl->get_view_type(); } void Viewer::set_view_type(EViewType type) { - m_impl.set_view_type(type); + m_impl->set_view_type(type); } ETimeMode Viewer::get_time_mode() const { - return m_impl.get_time_mode(); + return m_impl->get_time_mode(); } void Viewer::set_time_mode(ETimeMode mode) { - m_impl.set_time_mode(mode); + m_impl->set_time_mode(mode); } const std::array& Viewer::get_layers_range() const { - return m_impl.get_layers_range(); + return m_impl->get_layers_range(); } void Viewer::set_layers_range(const std::array& range) { - m_impl.set_layers_range(range); + m_impl->set_layers_range(range); } void Viewer::set_layers_range(uint32_t min, uint32_t max) { - m_impl.set_layers_range(min, max); + m_impl->set_layers_range(min, max); } bool Viewer::is_top_layer_only_view_range() const { - return m_impl.is_top_layer_only_view_range(); + return m_impl->is_top_layer_only_view_range(); } void Viewer::set_top_layer_only_view_range(bool top_layer_only_view_range) { - m_impl.set_top_layer_only_view_range(top_layer_only_view_range); + m_impl->set_top_layer_only_view_range(top_layer_only_view_range); } bool Viewer::is_option_visible(EOptionType type) const { - return m_impl.is_option_visible(type); + return m_impl->is_option_visible(type); } void Viewer::toggle_option_visibility(EOptionType type) { - m_impl.toggle_option_visibility(type); + m_impl->toggle_option_visibility(type); } bool Viewer::is_extrusion_role_visible(EGCodeExtrusionRole role) const { - return m_impl.is_extrusion_role_visible(role); + return m_impl->is_extrusion_role_visible(role); } void Viewer::toggle_extrusion_role_visibility(EGCodeExtrusionRole role) { - m_impl.toggle_extrusion_role_visibility(role); + m_impl->toggle_extrusion_role_visibility(role); } const std::array& Viewer::get_view_full_range() const { - return m_impl.get_view_full_range(); + return m_impl->get_view_full_range(); } const std::array& Viewer::get_view_enabled_range() const { - return m_impl.get_view_enabled_range(); + return m_impl->get_view_enabled_range(); } const std::array& Viewer::get_view_visible_range() const { - return m_impl.get_view_visible_range(); + return m_impl->get_view_visible_range(); } void Viewer::set_view_visible_range(uint32_t min, uint32_t max) { - m_impl.set_view_visible_range(min, max); + m_impl->set_view_visible_range(min, max); } uint32_t Viewer::get_vertices_count() const { - return m_impl.get_vertices_count(); + return m_impl->get_vertices_count(); } PathVertex Viewer::get_current_vertex() const { - return m_impl.get_current_vertex(); + return m_impl->get_current_vertex(); } PathVertex Viewer::get_vertex_at(uint32_t id) const { - return m_impl.get_vertex_at(id); + return m_impl->get_vertex_at(id); } size_t Viewer::get_enabled_segments_count() const { - return m_impl.get_enabled_segments_count(); + return m_impl->get_enabled_segments_count(); } const std::array& Viewer::get_enabled_segments_range() const { - return m_impl.get_enabled_segments_range(); + return m_impl->get_enabled_segments_range(); } size_t Viewer::get_enabled_options_count() const { - return m_impl.get_enabled_options_count(); + return m_impl->get_enabled_options_count(); } const std::array& Viewer::get_enabled_options_range() const { - return m_impl.get_enabled_options_range(); + return m_impl->get_enabled_options_range(); } uint32_t Viewer::get_extrusion_roles_count() const { - return m_impl.get_extrusion_roles_count(); + return m_impl->get_extrusion_roles_count(); } std::vector Viewer::get_extrusion_roles() const { - return m_impl.get_extrusion_roles(); + return m_impl->get_extrusion_roles(); } float Viewer::get_extrusion_role_time(EGCodeExtrusionRole role) const { - return m_impl.get_extrusion_role_time(role); + return m_impl->get_extrusion_role_time(role); } float Viewer::get_extrusion_role_time(EGCodeExtrusionRole role, ETimeMode mode) const { - return m_impl.get_extrusion_role_time(role, mode); + return m_impl->get_extrusion_role_time(role, mode); } float Viewer::get_travels_time() const { - return m_impl.get_travels_time(); + return m_impl->get_travels_time(); } float Viewer::get_travels_time(ETimeMode mode) const { - return m_impl.get_travels_time(mode); + return m_impl->get_travels_time(mode); } std::vector Viewer::get_layers_times() const { - return m_impl.get_layers_times(); + return m_impl->get_layers_times(); } std::vector Viewer::get_layers_times(ETimeMode mode) const { - return m_impl.get_layers_times(mode); + return m_impl->get_layers_times(mode); } size_t Viewer::get_tool_colors_count() const { - return m_impl.get_tool_colors_count(); + return m_impl->get_tool_colors_count(); } const std::vector& Viewer::get_tool_colors() const { - return m_impl.get_tool_colors(); + return m_impl->get_tool_colors(); } void Viewer::set_tool_colors(const std::vector& colors) { - m_impl.set_tool_colors(colors); + m_impl->set_tool_colors(colors); } const std::array& Viewer::get_height_range() const { - return m_impl.get_height_range(); + return m_impl->get_height_range(); } const std::array& Viewer::get_width_range() const { - return m_impl.get_width_range(); + return m_impl->get_width_range(); } const std::array& Viewer::get_speed_range() const { - return m_impl.get_speed_range(); + return m_impl->get_speed_range(); } const std::array& Viewer::get_fan_speed_range() const { - return m_impl.get_fan_speed_range(); + return m_impl->get_fan_speed_range(); } const std::array& Viewer::get_temperature_range() const { - return m_impl.get_temperature_range(); + return m_impl->get_temperature_range(); } const std::array& Viewer::get_volumetric_rate_range() const { - return m_impl.get_volumetric_rate_range(); + return m_impl->get_volumetric_rate_range(); } -std::array Viewer::get_layer_time_range(ColorRange::EType type) const +std::array Viewer::get_layer_time_range(EColorRangeType type) const { - return m_impl.get_layer_time_range(type); + return m_impl->get_layer_time_range(type); } #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS Vec3 Viewer::get_cog_position() const { - return m_impl.get_cog_marker_position(); + return m_impl->get_cog_marker_position(); } float Viewer::get_cog_marker_scale_factor() const { - return m_impl.get_cog_marker_scale_factor(); + return m_impl->get_cog_marker_scale_factor(); } void Viewer::set_cog_marker_scale_factor(float factor) { - m_impl.set_cog_marker_scale_factor(factor); + m_impl->set_cog_marker_scale_factor(factor); } bool Viewer::is_tool_marker_enabled() const { - return m_impl.is_tool_marker_enabled(); + return m_impl->is_tool_marker_enabled(); } void Viewer::enable_tool_marker(bool value) { - m_impl.enable_tool_marker(value); + m_impl->enable_tool_marker(value); } const Vec3& Viewer::get_tool_marker_position() const { - return m_impl.get_tool_marker_position(); + return m_impl->get_tool_marker_position(); } void Viewer::set_tool_marker_position(const Vec3& position) { - m_impl.set_tool_marker_position(position); + m_impl->set_tool_marker_position(position); } float Viewer::get_tool_marker_offset_z() const { - return m_impl.get_tool_marker_offset_z(); + return m_impl->get_tool_marker_offset_z(); } void Viewer::set_tool_marker_offset_z(float offset_z) { - m_impl.set_tool_marker_offset_z(offset_z); + m_impl->set_tool_marker_offset_z(offset_z); } float Viewer::get_tool_marker_scale_factor() const { - return m_impl.get_tool_marker_scale_factor(); + return m_impl->get_tool_marker_scale_factor(); } void Viewer::set_tool_marker_scale_factor(float factor) { - m_impl.set_tool_marker_scale_factor(factor); + m_impl->set_tool_marker_scale_factor(factor); } const Color& Viewer::get_tool_marker_color() const { - return m_impl.get_tool_marker_color(); + return m_impl->get_tool_marker_color(); } void Viewer::set_tool_marker_color(const Color& color) { - m_impl.set_tool_marker_color(color); + m_impl->set_tool_marker_color(color); } float Viewer::get_tool_marker_alpha() const { - return m_impl.get_tool_marker_alpha(); + return m_impl->get_tool_marker_alpha(); } void Viewer::set_tool_marker_alpha(float alpha) { - m_impl.set_tool_marker_alpha(alpha); + m_impl->set_tool_marker_alpha(alpha); } #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS diff --git a/src/slic3r/GUI/LibVGCode/ViewerImpl.cpp b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp similarity index 99% rename from src/slic3r/GUI/LibVGCode/ViewerImpl.cpp rename to src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp index d6f2950788..4aa07236eb 100644 --- a/src/slic3r/GUI/LibVGCode/ViewerImpl.cpp +++ b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.cpp @@ -8,10 +8,10 @@ ///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ #include "ViewerImpl.hpp" +#include "../include/GCodeInputData.hpp" #include "Shaders.hpp" #include "OpenGLUtils.hpp" #include "Utils.hpp" -#include "GCodeInputData.hpp" //################################################################################################################################ // PrusaSlicer development only -> !!!TO BE REMOVED!!! @@ -969,7 +969,7 @@ const std::array& ViewerImpl::get_volumetric_rate_range() const return m_volumetric_rate_range.get_range(); } -std::array ViewerImpl::get_layer_time_range(ColorRange::EType type) const +std::array ViewerImpl::get_layer_time_range(EColorRangeType type) const { try { return m_layer_time_range[static_cast(type)].get_range(); diff --git a/src/slic3r/GUI/LibVGCode/ViewerImpl.hpp b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp similarity index 98% rename from src/slic3r/GUI/LibVGCode/ViewerImpl.hpp rename to src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp index 6f3bc796ee..f7065a1cca 100644 --- a/src/slic3r/GUI/LibVGCode/ViewerImpl.hpp +++ b/src/slic3r/GUI/LibVGCode/src/ViewerImpl.hpp @@ -17,7 +17,7 @@ #include "CogMarker.hpp" #include "ToolMarker.hpp" #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS -#include "PathVertex.hpp" +#include "../include/PathVertex.hpp" #include "Bitset.hpp" #include "ColorRange.hpp" #include "ViewRange.hpp" @@ -125,7 +125,7 @@ public: const std::array& get_fan_speed_range() const; const std::array& get_temperature_range() const; const std::array& get_volumetric_rate_range() const; - std::array get_layer_time_range(ColorRange::EType type) const; + std::array get_layer_time_range(EColorRangeType type) const; #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS Vec3 get_cog_marker_position() const; @@ -207,7 +207,7 @@ private: ColorRange m_temperature_range; ColorRange m_volumetric_rate_range; std::array m_layer_time_range{ - ColorRange(ColorRange::EType::Linear), ColorRange(ColorRange::EType::Logarithmic) + ColorRange(EColorRangeType::Linear), ColorRange(EColorRangeType::Logarithmic) }; std::vector m_tool_colors;