From 381a19fc04303c2677a373921df558a13613860d Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 8 Jul 2024 16:46:55 +0200 Subject: [PATCH] One more fixup... --- .../include/libvgcode/ColorPrint.hpp | 22 - .../include/libvgcode/ColorRange.hpp | 107 ----- .../include/libvgcode/GCodeInputData.hpp | 36 -- .../include/libvgcode/PathVertex.hpp | 121 ----- src/libvgcode/include/libvgcode/Types.hpp | 218 --------- src/libvgcode/include/libvgcode/Viewer.hpp | 419 ------------------ src/slic3r/GUI/GCodeViewer.hpp | 2 +- src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp | 4 +- src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.hpp | 12 +- 9 files changed, 10 insertions(+), 931 deletions(-) delete mode 100644 src/libvgcode/include/libvgcode/ColorPrint.hpp delete mode 100644 src/libvgcode/include/libvgcode/ColorRange.hpp delete mode 100644 src/libvgcode/include/libvgcode/GCodeInputData.hpp delete mode 100644 src/libvgcode/include/libvgcode/PathVertex.hpp delete mode 100644 src/libvgcode/include/libvgcode/Types.hpp delete mode 100644 src/libvgcode/include/libvgcode/Viewer.hpp diff --git a/src/libvgcode/include/libvgcode/ColorPrint.hpp b/src/libvgcode/include/libvgcode/ColorPrint.hpp deleted file mode 100644 index 0cd1eb7d93..0000000000 --- a/src/libvgcode/include/libvgcode/ColorPrint.hpp +++ /dev/null @@ -1,22 +0,0 @@ -///|/ Copyright (c) Prusa Research 2023 Enrico Turri @enricoturri1966, Pavel Mikuš @Godrak -///|/ -///|/ libvgcode is released under the terms of the AGPLv3 or higher -///|/ -#ifndef VGCODE_COLORPRINT_HPP -#define VGCODE_COLORPRINT_HPP - -#include "Types.hpp" - -namespace libvgcode { - -struct ColorPrint -{ - uint8_t extruder_id{ 0 }; - uint8_t color_id{ 0 }; - uint32_t layer_id{ 0 }; - std::array times{ 0.0f, 0.0f }; -}; - -} // namespace libvgcode - -#endif // VGCODE_COLORPRINT_HPP diff --git a/src/libvgcode/include/libvgcode/ColorRange.hpp b/src/libvgcode/include/libvgcode/ColorRange.hpp deleted file mode 100644 index 707fc9efc6..0000000000 --- a/src/libvgcode/include/libvgcode/ColorRange.hpp +++ /dev/null @@ -1,107 +0,0 @@ -///|/ Copyright (c) Prusa Research 2023 Enrico Turri @enricoturri1966, Pavel Mikuš @Godrak -///|/ -///|/ libvgcode is released under the terms of the AGPLv3 or higher -///|/ -#ifndef VGCODE_COLORRANGE_HPP -#define VGCODE_COLORRANGE_HPP - -#include "Types.hpp" - -#include - -namespace libvgcode { - -static const Palette DEFAULT_RANGES_COLORS{ { - { 11, 44, 122 }, // bluish - { 19, 89, 133 }, - { 28, 136, 145 }, - { 4, 214, 15 }, - { 170, 242, 0 }, - { 252, 249, 3 }, - { 245, 206, 10 }, - { 227, 136, 32 }, - { 209, 104, 48 }, - { 194, 82, 60 }, - { 148, 38, 22 } // reddish -} }; - -class ColorRange -{ -public: - // - // Constructor - // - explicit ColorRange(EColorRangeType type = EColorRangeType::Linear); - // - // Return the type of this ColorRange. - // - EColorRangeType get_type() const; - // - // Return the palette used by this ColorRange. - // Default is DEFAULT_RANGES_COLORS - // - const Palette& get_palette() const; - // - // Set the palette to be used by this ColorRange. - // The given palette must contain at least two colors. - // - void set_palette(const Palette& palette); - // - // Return the interpolated color at the given value. - // Value is clamped to [get_range()[0]..get_range()[1]]. - // - Color get_color_at(float value) const; - // - // Return the range of this ColorRange. - // The range is detected during the call to Viewer::load(). - // [0] -> min - // [1] -> max - // - const std::array& get_range() const; - // - // Return the values corresponding to the detected color bins of this ColorRange. - // The size of the returned vector can be: - // 1 - If only one value was detected while setting up this ColorRange. - // 2 - If only two values were detected while setting up this ColorRange. - // get_palette().size() - If more than two distinct values were detected while setting up this ColorRange. - // - std::vector get_values() const; - // - // Return the size of the palette, in bytes - // - std::size_t size_in_bytes_cpu() const; - - static const ColorRange DUMMY_COLOR_RANGE; - -private: - EColorRangeType m_type{ EColorRangeType::Linear }; - // - // The palette used by this ColorRange - // - Palette m_palette; - // - // [0] = min - // [1] = max - // - std::array m_range{ FLT_MAX, -FLT_MAX }; - // - // Count of different values passed to update() - // - std::size_t m_count{ 0 }; - - // - // Use the passed value to update the range. - // - void update(float value); - // - // Reset the range - // Call this method before reuse an instance of ColorRange. - // - void reset(); - - friend class ViewerImpl; -}; - -} // namespace libvgcode - -#endif // VGCODE_COLORRANGE_HPP diff --git a/src/libvgcode/include/libvgcode/GCodeInputData.hpp b/src/libvgcode/include/libvgcode/GCodeInputData.hpp deleted file mode 100644 index 5085322e37..0000000000 --- a/src/libvgcode/include/libvgcode/GCodeInputData.hpp +++ /dev/null @@ -1,36 +0,0 @@ -///|/ Copyright (c) Prusa Research 2023 Enrico Turri @enricoturri1966 -///|/ -///|/ libvgcode is released under the terms of the AGPLv3 or higher -///|/ -#ifndef VGCODE_GCODEINPUTDATA_HPP -#define VGCODE_GCODEINPUTDATA_HPP - -#include "PathVertex.hpp" - -namespace libvgcode { - -struct GCodeInputData -{ - // - // Whether or not the gcode was generated with spiral vase mode enabled. - // Required to properly detect fictitious layer changes when spiral vase mode is enabled. - // - bool spiral_vase_mode{ false }; - // - // List of path vertices (gcode moves) - // See: PathVertex - // - std::vector vertices; - // - // Palette for extruders colors - // - Palette tools_colors; - // - // Palette for color print colors - // - Palette color_print_colors; -}; - -} // namespace libvgcode - -#endif // VGCODE_BITSET_HPP diff --git a/src/libvgcode/include/libvgcode/PathVertex.hpp b/src/libvgcode/include/libvgcode/PathVertex.hpp deleted file mode 100644 index d2c39ce40d..0000000000 --- a/src/libvgcode/include/libvgcode/PathVertex.hpp +++ /dev/null @@ -1,121 +0,0 @@ -///|/ Copyright (c) Prusa Research 2023 Enrico Turri @enricoturri1966, Pavel Mikuš @Godrak -///|/ -///|/ libvgcode is released under the terms of the AGPLv3 or higher -///|/ -#ifndef VGCODE_PATHVERTEX_HPP -#define VGCODE_PATHVERTEX_HPP - -#include "Types.hpp" - -#include - -namespace libvgcode { - -// -// Struct representating a gcode move (toolpath segment) -// -struct PathVertex -{ - // - // Segment end position - // - Vec3 position{ FLT_MAX, FLT_MAX, FLT_MAX }; - // - // Segment height - // - float height{ 0.0f }; - // - // Segment width - // - float width{ 0.0f }; - // - // Segment speed - // - float feedrate{ 0.0f }; - // - // Segment actual speed - // - float actual_feedrate{ 0.0f }; - // - // Segment mm3_per_mm - // - float mm3_per_mm{ 0.0f }; - // - // Segment fan speed - // - float fan_speed{ 0.0f }; - // - // Segment temperature - // - float temperature{ 0.0f }; -#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS - // - // Segment weight - // - float weight{ 0.0f }; -#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS - // - // Segment extrusion role - // - EGCodeExtrusionRole role{ EGCodeExtrusionRole::None }; - // - // Segment move type - // - EMoveType type{ EMoveType::Noop }; - // - // Segment gcode line id - // - uint32_t gcode_id{ 0 }; - // - // Segment layer id - // - uint32_t layer_id{ 0 }; - // - // Segment extruder id - // - uint8_t extruder_id{ 0 }; - // - // Segment color id - // - uint8_t color_id{ 0 }; - // - // Segment estimated times - // - std::array times{ 0.0f, 0.0f }; - - // - // Return true if the segment is an extrusion move - // - bool is_extrusion() const; - // - // Return true if the segment is an travel move - // - bool is_travel() const; - // - // Return true if the segment is an option - // See: EOptionType - // - bool is_option() const; - // - // Return true if the segment is a wipe move - // - bool is_wipe() const; - // - // Return true if the segment was generated by custom gcode - // - bool is_custom_gcode() const; - // - // Return the volumetric flow rate of the segment - // - float volumetric_rate() const { return feedrate * mm3_per_mm; } - // - // Return the acutal volumetric flow rate of the segment - // - float actual_volumetric_rate() const { return actual_feedrate * mm3_per_mm; } - - static const PathVertex DUMMY_PATH_VERTEX; -}; - -} // namespace libvgcode - -#endif // VGCODE_PATHVERTEX_HPP \ No newline at end of file diff --git a/src/libvgcode/include/libvgcode/Types.hpp b/src/libvgcode/include/libvgcode/Types.hpp deleted file mode 100644 index a18712f7ba..0000000000 --- a/src/libvgcode/include/libvgcode/Types.hpp +++ /dev/null @@ -1,218 +0,0 @@ -///|/ Copyright (c) Prusa Research 2023 Enrico Turri @enricoturri1966, Pavel Mikuš @Godrak -///|/ -///|/ libvgcode is released under the terms of the AGPLv3 or higher -///|/ -#ifndef VGCODE_TYPES_HPP -#define VGCODE_TYPES_HPP - -#define VGCODE_ENABLE_COG_AND_TOOL_MARKERS 0 - -#include -#include -#include - -namespace libvgcode { - -static constexpr float PI = 3.141592f; - -// -// Predefined values for the radius, in mm, of the cylinders used to render the travel moves. -// -static constexpr float DEFAULT_TRAVELS_RADIUS_MM = 0.1f; -static constexpr float MIN_TRAVELS_RADIUS_MM = 0.05f; -static constexpr float MAX_TRAVELS_RADIUS_MM = 1.0f; - -// -// Predefined values for the radius, in mm, of the cylinders used to render the wipe moves. -// -static constexpr float DEFAULT_WIPES_RADIUS_MM = 0.1f; -static constexpr float MIN_WIPES_RADIUS_MM = 0.05f; -static constexpr float MAX_WIPES_RADIUS_MM = 1.0f; - -// -// Vector in 3 dimensions -// [0] -> x -// [1] -> y -// [2] -> z -// Used for positions, displacements and so on. -// -using Vec3 = std::array; - -// -// 4x4 square matrix with elements in column-major order: -// | a[0] a[4] a[8] a[12] | -// | a[1] a[5] a[9] a[13] | -// | a[2] a[6] a[10] a[14] | -// | a[3] a[7] a[11] a[15] | -// -using Mat4x4 = std::array; - -// -// RGB color -// [0] -> red -// [1] -> green -// [2] -> blue -// -using Color = std::array; - -// -// Color palette -// -using Palette = std::vector; - -// -// Axis aligned box in 3 dimensions -// [0] -> { min_x, min_y, min_z } -// [1] -> { max_x, max_y, max_z } -// -using AABox = std::array; - -// -// One dimensional natural numbers interval -// [0] -> min -// [1] -> max -// -using Interval = std::array; - -// -// View types -// -enum class EViewType : uint8_t -{ - FeatureType, - Height, - Width, - Speed, - ActualSpeed, - FanSpeed, - Temperature, - VolumetricFlowRate, - ActualVolumetricFlowRate, - LayerTimeLinear, - LayerTimeLogarithmic, - Tool, - ColorPrint, - COUNT -}; - -static constexpr std::size_t VIEW_TYPES_COUNT = static_cast(EViewType::COUNT); - -// -// Move types -// -enum class EMoveType : uint8_t -{ - Noop, - Retract, - Unretract, - Seam, - ToolChange, - ColorChange, - PausePrint, - CustomGCode, - Travel, - Wipe, - Extrude, - COUNT -}; - -static constexpr std::size_t MOVE_TYPES_COUNT = static_cast(EMoveType::COUNT); - -// -// Extrusion roles -// -enum class EGCodeExtrusionRole : uint8_t -{ - // This enum is used as in index into extrusion_roles_visibility. - // Better only add things to the end. - None, - Perimeter, - ExternalPerimeter, - OverhangPerimeter, - InternalInfill, - SolidInfill, - TopSolidInfill, - Ironing, - BridgeInfill, - GapFill, - Skirt, - SupportMaterial, - SupportMaterialInterface, - WipeTower, - Custom, - COUNT -}; - -static constexpr std::size_t GCODE_EXTRUSION_ROLES_COUNT = static_cast(EGCodeExtrusionRole::COUNT); - -// -// Option types -// -enum class EOptionType : uint8_t -{ - // This enum is used as in index into options_visibility. - // Better only add things to the end. - Travels, - Wipes, - Retractions, - Unretractions, - Seams, - ToolChanges, - ColorChanges, - PausePrints, - CustomGCodes, -#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS - CenterOfGravity, - ToolMarker, -#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS - COUNT -}; - -static constexpr std::size_t OPTION_TYPES_COUNT = static_cast(EOptionType::COUNT); - -// -// Time modes -// -enum class ETimeMode : uint8_t -{ - Normal, - Stealth, - COUNT -}; - -static constexpr std::size_t TIME_MODES_COUNT = static_cast(ETimeMode::COUNT); - -// -// Color range types -// -enum class EColorRangeType : uint8_t -{ - Linear, - Logarithmic, - COUNT -}; - -static constexpr std::size_t COLOR_RANGE_TYPES_COUNT = static_cast(EColorRangeType::COUNT); - -// -// Predefined colors -// -static const Color DUMMY_COLOR{ 64, 64, 64 }; - -// -// Mapping from EMoveType to EOptionType -// Returns EOptionType::COUNT if the given move type does not correspond -// to any option type. -// -extern EOptionType move_type_to_option(EMoveType type); - -// -// Returns the linear interpolation between the two given colors -// at the given t. -// t is clamped in the range [0..1] -// -extern Color lerp(const Color& c1, const Color& c2, float t); - -} // namespace libvgcode - -#endif // VGCODE_TYPES_HPP diff --git a/src/libvgcode/include/libvgcode/Viewer.hpp b/src/libvgcode/include/libvgcode/Viewer.hpp deleted file mode 100644 index a66b88f1a5..0000000000 --- a/src/libvgcode/include/libvgcode/Viewer.hpp +++ /dev/null @@ -1,419 +0,0 @@ -///|/ Copyright (c) Prusa Research 2023 Enrico Turri @enricoturri1966, Pavel Mikuš @Godrak -///|/ -///|/ libvgcode is released under the terms of the AGPLv3 or higher -///|/ -#ifndef VGCODE_VIEWER_HPP -#define VGCODE_VIEWER_HPP - -#include "Types.hpp" - -#include - -namespace libvgcode { - -class ViewerImpl; -struct GCodeInputData; -struct PathVertex; -class ColorRange; -struct ColorPrint; - -class Viewer -{ -public: - Viewer(); - ~Viewer(); - Viewer(const Viewer& other) = delete; - Viewer(Viewer&& other) = delete; - Viewer& operator = (const Viewer& other) = delete; - Viewer& operator = (Viewer&& other) = delete; - - // - // Initialize the viewer. - // Param opengl_context_version must be the string returned by glGetString(GL_VERSION). - // This method must be called after a valid OpenGL context has been already created - // and before calling any other method of the viewer. - // Throws an std::runtime_error exception if: - // * the method is called before creating an OpenGL context - // * the created OpenGL context does not support OpenGL 3.2 or greater - // * when using OpenGL ES, the created OpenGL ES context does not support OpenGL ES 2.0 or greater - // * any of the shaders fails to compile - // - void init(const std::string& opengl_context_version); - // - // Release the resources used by the viewer. - // This method must be called before releasing the OpenGL context if the viewer - // goes out of scope after releasing it. - // - void shutdown(); - // - // Reset the contents of the viewer. - // Automatically called by load() method. - // - void reset(); - // - // Setup the viewer content from the given data. - // See: GCodeInputData - // - void load(GCodeInputData&& gcode_data); - // - // Render the toolpaths according to the current settings and - // using the given camera matrices. - // - void render(const Mat4x4& view_matrix, const Mat4x4& projection_matrix); - - // - // ************************************************************************ - // Settings - // The following methods can be used to query/customize the parameters - // used to render the toolpaths. - // ************************************************************************ - // - - // - // View type - // See: EViewType - // - EViewType get_view_type() const; - void set_view_type(EViewType type); - // - // Time mode - // See: ETimeMode - // - ETimeMode get_time_mode() const; - void set_time_mode(ETimeMode mode); - // - // Top layer only - // Whether or not the visible range is limited to the current top layer only. - // - bool is_top_layer_only_view_range() const; - // - // Toggle the top layer only state. - // - void toggle_top_layer_only_view_range(); - // - // Returns true if the given option is visible. - // - bool is_option_visible(EOptionType type) const; - // - // Toggle the visibility state of the given option. - // - void toggle_option_visibility(EOptionType type); - // - // Returns true if the given extrusion role is visible. - // - bool is_extrusion_role_visible(EGCodeExtrusionRole role) const; - // - // Toggle the visibility state of the given extrusion role. - // - void toggle_extrusion_role_visibility(EGCodeExtrusionRole role); - // - // Return the color used to render the given extrusion rols. - // - const Color& get_extrusion_role_color(EGCodeExtrusionRole role) const; - // - // Set the color used to render the given extrusion role. - // - void set_extrusion_role_color(EGCodeExtrusionRole role, const Color& color); - // - // Reset the colors used to render the extrusion roles to the default value. - // - void reset_default_extrusion_roles_colors(); - // - // Return the color used to render the given option. - // - const Color& get_option_color(EOptionType type) const; - // - // Set the color used to render the given option. - // - void set_option_color(EOptionType type, const Color& color); - // - // Reset the colors used to render the options to the default value. - // - void reset_default_options_colors(); - // - // Return the count of colors in the palette used to render - // the toolpaths when the view type is EViewType::Tool. - // - size_t get_tool_colors_count() const; - // - // Return the palette used to render the toolpaths when - // the view type is EViewType::Tool. - // - const Palette& get_tool_colors() const; - // - // Set the palette used to render the toolpaths when - // the view type is EViewType::Tool with the given one. - // - void set_tool_colors(const Palette& colors); - // - // Return the count of colors in the palette used to render - // the toolpaths when the view type is EViewType::ColorPrint. - // - size_t get_color_print_colors_count() const; - // - // Return the palette used to render the toolpaths when - // the view type is EViewType::ColorPrint. - // - const Palette& get_color_print_colors() const; - // - // Set the palette used to render the toolpaths when - // the view type is EViewType::ColorPrint with the given one. - // - void set_color_print_colors(const Palette& colors); - // - // Get the color range for the given view type. - // Valid view types are: - // EViewType::Height - // EViewType::Width - // EViewType::Speed - // EViewType::ActualSpeed - // EViewType::FanSpeed - // EViewType::Temperature - // EViewType::VolumetricFlowRate - // EViewType::ActualVolumetricFlowRate - // EViewType::LayerTimeLinear - // EViewType::LayerTimeLogarithmic - // - const ColorRange& get_color_range(EViewType type) const; - // - // Set the palette for the color range corresponding to the given view type - // with the given value. - // Valid view types are: - // EViewType::Height - // EViewType::Width - // EViewType::Speed - // EViewType::ActualSpeed - // EViewType::FanSpeed - // EViewType::Temperature - // EViewType::VolumetricFlowRate - // EViewType::ActualVolumetricFlowRate - // EViewType::LayerTimeLinear - // EViewType::LayerTimeLogarithmic - // - void set_color_range_palette(EViewType type, const Palette& palette); - // - // Get the radius, in mm, of the cylinders used to render the travel moves. - // - float get_travels_radius() const; - // - // Set the radius, in mm, of the cylinders used to render the travel moves. - // Radius is clamped to [MIN_TRAVELS_RADIUS_MM..MAX_TRAVELS_RADIUS_MM] - // - void set_travels_radius(float radius); - // - // Get the radius, in mm, of the cylinders used to render the wipe moves. - // - float get_wipes_radius() const; - // - // Set the radius, in mm, of the cylinders used to render the wipe moves. - // Radius is clamped to [MIN_WIPES_RADIUS_MM..MAX_WIPES_RADIUS_MM] - // - void set_wipes_radius(float radius); - // - // Return the count of detected layers. - // - size_t get_layers_count() const; - // - // Return the current visible layers range. - // - const Interval& get_layers_view_range() const; - // - // Set the current visible layers range with the given interval. - // Values are clamped to [0..get_layers_count() - 1]. - // - void set_layers_view_range(const Interval& range); - // - // Set the current visible layers range with the given min and max values. - // Values are clamped to [0..get_layers_count() - 1]. - // - void set_layers_view_range(Interval::value_type min, Interval::value_type max); - // - // Return the current visible range. - // Three ranges are defined: full, enabled and visible. - // For all of them the range endpoints represent: - // [0] -> min vertex id - // [1] -> max vertex id - // Full is the range of vertices that could potentially be visualized accordingly to the current settings. - // Enabled is the part of the full range that is selected for visualization accordingly to the current settings. - // Visible is the part of the enabled range that is actually visualized accordingly to the current settings. - // - const Interval& get_view_visible_range() const; - // - // Set the current visible range. - // Values are clamped to the current view enabled range; - // - void set_view_visible_range(Interval::value_type min, Interval::value_type max); - // - // Return the current full range. - // - const Interval& get_view_full_range() const; - // - // Return the current enabled range. - // - const Interval& get_view_enabled_range() const; - - // - // ************************************************************************ - // Property getters - // The following methods can be used to query detected properties. - // ************************************************************************ - // - - // - // Spiral vase mode - // Whether or not the gcode was generated with spiral vase mode enabled. - // See: GCodeInputData - // - bool is_spiral_vase_mode() const; - // - // Return the z of the layer with the given id - // or 0.0f if the id does not belong to [0..get_layers_count() - 1]. - // - float get_layer_z(size_t layer_id) const; - // - // Return the list of zs of the detected layers. - // - std::vector get_layers_zs() const; - // - // Return the id of the layer closest to the given z. - // - size_t get_layer_id_at(float z) const; - // - // Return the count of detected used extruders. - // - size_t get_used_extruders_count() const; - // - // Return the list of ids of the detected used extruders. - // - std::vector get_used_extruders_ids() const; - // - // Return the list of detected time modes. - // - std::vector get_time_modes() const; - // - // Return the count of vertices used to render the toolpaths - // - size_t get_vertices_count() const; - // - // Return the vertex pointed by the max value of the view visible range - // - const PathVertex& get_current_vertex() const; - // - // Return the index of vertex pointed by the max value of the view visible range - // - size_t get_current_vertex_id() const; - // - // Return the vertex at the given index - // - const PathVertex& get_vertex_at(size_t id) const; - // - // Return the total estimated time, in seconds, using the current time mode. - // - float get_estimated_time() const; - // - // Return the estimated time, in seconds, at the vertex with the given index - // using the current time mode. - // - float get_estimated_time_at(size_t id) const; - // - // Return the color used to render the given vertex with the current settings. - // - Color get_vertex_color(const PathVertex& vertex) const; - // - // Return the count of detected extrusion roles - // - size_t get_extrusion_roles_count() const; - // - // Return the list of detected extrusion roles - // - std::vector get_extrusion_roles() const; - // - // Return the count of detected options. - // - size_t get_options_count() const; - // - // Return the list of detected options. - // - const std::vector& get_options() const; - // - // Return the count of detected color prints. - // - size_t get_color_prints_count(uint8_t extruder_id) const; - // - // Return the list of detected color prints. - // - std::vector get_color_prints(uint8_t extruder_id) const; - // - // Return the estimated time for the given role and the current time mode. - // - float get_extrusion_role_estimated_time(EGCodeExtrusionRole role) const; - // - // Return the estimated time for the travel moves and the current time mode. - // - float get_travels_estimated_time() const; - // - // Return the list of layers time for the current time mode. - // - std::vector get_layers_estimated_times() const; - // - // Return the axes aligned bounding box containing all the given types. - // - AABox get_bounding_box(const std::vector& types = { - EMoveType::Retract, EMoveType::Unretract, EMoveType::Seam, EMoveType::ToolChange, - EMoveType::ColorChange, EMoveType::PausePrint, EMoveType::CustomGCode, EMoveType::Travel, - EMoveType::Wipe, EMoveType::Extrude }) const; - // - // Return the axes aligned bounding box containing all the extrusions with the given roles. - // - AABox get_extrusion_bounding_box(const std::vector& roles = { - EGCodeExtrusionRole::Perimeter, EGCodeExtrusionRole::ExternalPerimeter, EGCodeExtrusionRole::OverhangPerimeter, - EGCodeExtrusionRole::InternalInfill, EGCodeExtrusionRole::SolidInfill, EGCodeExtrusionRole::TopSolidInfill, - EGCodeExtrusionRole::Ironing, EGCodeExtrusionRole::BridgeInfill, EGCodeExtrusionRole::GapFill, - EGCodeExtrusionRole::Skirt, EGCodeExtrusionRole::SupportMaterial, EGCodeExtrusionRole::SupportMaterialInterface, - EGCodeExtrusionRole::WipeTower, EGCodeExtrusionRole::Custom }) const; - // - // Return the size of the used cpu memory, in bytes - // - size_t get_used_cpu_memory() const; - // - // Return the size of the used gpu memory, in bytes - // - size_t get_used_gpu_memory() const; - -#if VGCODE_ENABLE_COG_AND_TOOL_MARKERS - // - // Returns the position of the center of gravity of the toolpaths. - // It does not take in account extrusions of type: - // Skirt - // Support Material - // Support Material Interface - // WipeTower - // Custom - // - Vec3 get_cog_position() const; - - float get_cog_marker_scale_factor() const; - void set_cog_marker_scale_factor(float factor); - - const Vec3& get_tool_marker_position() const; - - float get_tool_marker_offset_z() const; - void set_tool_marker_offset_z(float offset_z); - - float get_tool_marker_scale_factor() const; - void set_tool_marker_scale_factor(float factor); - - const Color& get_tool_marker_color() const; - void set_tool_marker_color(const Color& color); - - float get_tool_marker_alpha() const; - void set_tool_marker_alpha(float alpha); -#endif // VGCODE_ENABLE_COG_AND_TOOL_MARKERS - -private: - ViewerImpl* m_impl{ nullptr }; -}; - -} // namespace libvgcode - -#endif // VGCODE_VIEWER_HPP diff --git a/src/slic3r/GUI/GCodeViewer.hpp b/src/slic3r/GUI/GCodeViewer.hpp index 75c24a6264..21ca5b81ba 100644 --- a/src/slic3r/GUI/GCodeViewer.hpp +++ b/src/slic3r/GUI/GCodeViewer.hpp @@ -14,7 +14,7 @@ #include "LibVGCode/LibVGCodeWrapper.hpp" // needed for tech VGCODE_ENABLE_COG_AND_TOOL_MARKERS -#include +#include "../../src/libvgcode/include/Types.hpp" #include #include diff --git a/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp b/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp index 5cd9ae9a8e..4e6981708e 100644 --- a/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp +++ b/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.cpp @@ -24,8 +24,8 @@ #include "libslic3r/Line.hpp" #include "libslic3r/Polyline.hpp" #include "libslic3r/PrintConfig.hpp" -#include "libvgcode/GCodeInputData.hpp" -#include "libvgcode/PathVertex.hpp" +#include "../../src/libvgcode/include/GCodeInputData.hpp" +#include "../../src/libvgcode/include/PathVertex.hpp" namespace libvgcode { class Viewer; diff --git a/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.hpp b/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.hpp index 447b85b20b..a4b21e2745 100644 --- a/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.hpp +++ b/src/slic3r/GUI/LibVGCode/LibVGCodeWrapper.hpp @@ -5,10 +5,12 @@ #ifndef slic3r_LibVGCodeWrapper_hpp_ #define slic3r_LibVGCodeWrapper_hpp_ -#include -#include -#include -#include +#include <../../src/libvgcode/include/Viewer.hpp> +#include <../../src/libvgcode/include/PathVertex.hpp> +#include <../../src/libvgcode/include/GCodeInputData.hpp> +#include <../../src/libvgcode/include/ColorRange.hpp> +#include "../../src/libvgcode/include/Types.hpp" + #include #include #include @@ -18,7 +20,7 @@ #include "slic3r/GUI/GUI_Preview.hpp" #include "libslic3r/ExtrusionRole.hpp" #include "libslic3r/Point.hpp" -#include "libvgcode/Types.hpp" + namespace Slic3r { class Print;