New gcode visualization integration - File structure of new code separated in api + src

This commit is contained in:
enricoturri1966 2023-11-28 08:53:47 +01:00 committed by Lukas Matena
parent 560263ea05
commit 71b2f5c288
40 changed files with 177 additions and 153 deletions

View File

@ -93,43 +93,43 @@ set(SLIC3R_GUI_SOURCES
GUI/Gizmos/GLGizmoMeasure.cpp GUI/Gizmos/GLGizmoMeasure.cpp
GUI/Gizmos/GLGizmoMeasure.hpp GUI/Gizmos/GLGizmoMeasure.hpp
#==================================================================================================================== #====================================================================================================================
GUI/LibVGCode/Bitset.hpp GUI/LibVGCode/include/GCodeInputData.hpp
GUI/LibVGCode/Bitset.cpp GUI/LibVGCode/include/PathVertex.hpp
GUI/LibVGCode/CogMarker.hpp GUI/LibVGCode/include/Types.hpp
GUI/LibVGCode/CogMarker.cpp GUI/LibVGCode/include/Viewer.hpp
GUI/LibVGCode/ColorRange.hpp GUI/LibVGCode/src/Bitset.hpp
GUI/LibVGCode/ColorRange.cpp GUI/LibVGCode/src/Bitset.cpp
GUI/LibVGCode/ExtrusionRoles.hpp GUI/LibVGCode/src/CogMarker.hpp
GUI/LibVGCode/ExtrusionRoles.cpp GUI/LibVGCode/src/CogMarker.cpp
GUI/LibVGCode/GCodeInputData.hpp GUI/LibVGCode/src/ColorRange.hpp
GUI/LibVGCode/GCodeInputData.cpp GUI/LibVGCode/src/ColorRange.cpp
GUI/LibVGCode/Layers.hpp GUI/LibVGCode/src/ExtrusionRoles.hpp
GUI/LibVGCode/Layers.cpp GUI/LibVGCode/src/ExtrusionRoles.cpp
GUI/LibVGCode/OpenGLUtils.hpp GUI/LibVGCode/src/GCodeInputData.cpp
GUI/LibVGCode/OpenGLUtils.cpp GUI/LibVGCode/src/Layers.hpp
GUI/LibVGCode/OptionTemplate.hpp GUI/LibVGCode/src/Layers.cpp
GUI/LibVGCode/OptionTemplate.cpp GUI/LibVGCode/src/OpenGLUtils.hpp
GUI/LibVGCode/PathVertex.hpp GUI/LibVGCode/src/OpenGLUtils.cpp
GUI/LibVGCode/PathVertex.cpp GUI/LibVGCode/src/OptionTemplate.hpp
GUI/LibVGCode/Range.hpp GUI/LibVGCode/src/OptionTemplate.cpp
GUI/LibVGCode/Range.cpp GUI/LibVGCode/src/PathVertex.cpp
GUI/LibVGCode/SegmentTemplate.hpp GUI/LibVGCode/src/Range.hpp
GUI/LibVGCode/SegmentTemplate.cpp GUI/LibVGCode/src/Range.cpp
GUI/LibVGCode/Settings.hpp GUI/LibVGCode/src/SegmentTemplate.hpp
GUI/LibVGCode/Settings.cpp GUI/LibVGCode/src/SegmentTemplate.cpp
GUI/LibVGCode/Shaders.hpp GUI/LibVGCode/src/Settings.hpp
GUI/LibVGCode/ToolMarker.hpp GUI/LibVGCode/src/Settings.cpp
GUI/LibVGCode/ToolMarker.cpp GUI/LibVGCode/src/Shaders.hpp
GUI/LibVGCode/Types.hpp GUI/LibVGCode/src/ToolMarker.hpp
GUI/LibVGCode/Types.cpp GUI/LibVGCode/src/ToolMarker.cpp
GUI/LibVGCode/Utils.hpp GUI/LibVGCode/src/Types.cpp
GUI/LibVGCode/Utils.cpp GUI/LibVGCode/src/Utils.hpp
GUI/LibVGCode/Viewer.hpp GUI/LibVGCode/src/Utils.cpp
GUI/LibVGCode/Viewer.cpp GUI/LibVGCode/src/Viewer.cpp
GUI/LibVGCode/ViewerImpl.hpp GUI/LibVGCode/src/ViewerImpl.hpp
GUI/LibVGCode/ViewerImpl.cpp GUI/LibVGCode/src/ViewerImpl.cpp
GUI/LibVGCode/ViewRange.hpp GUI/LibVGCode/src/ViewRange.hpp
GUI/LibVGCode/ViewRange.cpp GUI/LibVGCode/src/ViewRange.cpp
#==================================================================================================================== #====================================================================================================================
GUI/GLSelectionRectangle.cpp GUI/GLSelectionRectangle.cpp
GUI/GLSelectionRectangle.hpp GUI/GLSelectionRectangle.hpp

View File

@ -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("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("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("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 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::ColorRange::EType::Logarithmic)); add_range_property_row("layer time logarithmic range", m_new_viewer.get_layer_time_range(libvgcode::EColorRangeType::Logarithmic));
ImGui::EndTable(); ImGui::EndTable();
@ -4051,9 +4051,13 @@ void GCodeViewer::render_new_toolpaths()
ImGui::TableSetColumnIndex(0); ImGui::TableSetColumnIndex(0);
imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker color"); imgui.text_colored(Slic3r::GUI::ImGuiWrapper::COL_ORANGE_LIGHT, "Tool marker color");
ImGui::TableSetColumnIndex(1); ImGui::TableSetColumnIndex(1);
libvgcode::Color color = m_new_viewer.get_tool_marker_color(); const libvgcode::Color& color = m_new_viewer.get_tool_marker_color();
if (ImGui::ColorPicker3("##ToolColor", color.data())) std::array<float, 3> c = { static_cast<float>(color[0]) / 255.0f, static_cast<float>(color[1]) / 255.0f, static_cast<float>(color[2]) / 255.0f };
m_new_viewer.set_tool_marker_color(color); if (ImGui::ColorPicker3("##ToolColor", c.data())) {
m_new_viewer.set_tool_marker_color({ static_cast<uint8_t>(c[0] * 255.0f),
static_cast<uint8_t>(c[1] * 255.0f),
static_cast<uint8_t>(c[2] * 255.0f) });
}
ImGui::TableNextRow(); ImGui::TableNextRow();
ImGui::TableSetColumnIndex(0); ImGui::TableSetColumnIndex(0);

View File

@ -14,7 +14,9 @@
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#if ENABLE_NEW_GCODE_VIEWER #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 #endif // ENABLE_NEW_GCODE_VIEWER
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

View File

@ -142,6 +142,18 @@ enum class ETimeMode : uint8_t
static constexpr size_t Time_Modes_Count = static_cast<size_t>(ETimeMode::COUNT); static constexpr size_t Time_Modes_Count = static_cast<size_t>(ETimeMode::COUNT);
//
// Color range type
//
enum class EColorRangeType : uint8_t
{
Linear,
Logarithmic,
COUNT
};
static constexpr size_t Color_Range_Types_Count = static_cast<size_t>(EColorRangeType::COUNT);
// //
// Predefined colors // Predefined colors
// //

View File

@ -10,17 +10,19 @@
#if ENABLE_NEW_GCODE_VIEWER #if ENABLE_NEW_GCODE_VIEWER
//################################################################################################################################ //################################################################################################################################
#include "ViewerImpl.hpp"
#include "Types.hpp" #include "Types.hpp"
#include "GCodeInputData.hpp"
namespace libvgcode { namespace libvgcode {
class ViewerImpl;
struct GCodeInputData;
struct PathVertex;
class Viewer class Viewer
{ {
public: public:
Viewer() = default; Viewer();
~Viewer() = default; ~Viewer();
Viewer(const Viewer& other) = delete; Viewer(const Viewer& other) = delete;
Viewer(Viewer&& other) = delete; Viewer(Viewer&& other) = delete;
Viewer& operator = (const Viewer& other) = delete; Viewer& operator = (const Viewer& other) = delete;
@ -139,7 +141,7 @@ public:
const std::array<float, 2>& get_fan_speed_range() const; const std::array<float, 2>& get_fan_speed_range() const;
const std::array<float, 2>& get_temperature_range() const; const std::array<float, 2>& get_temperature_range() const;
const std::array<float, 2>& get_volumetric_rate_range() const; const std::array<float, 2>& get_volumetric_rate_range() const;
std::array<float, 2> get_layer_time_range(ColorRange::EType type) const; std::array<float, 2> get_layer_time_range(EColorRangeType type) const;
#if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #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 #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS
private: private:
ViewerImpl m_impl; ViewerImpl* m_impl{ nullptr };
}; };
} // namespace libvgcode } // namespace libvgcode

View File

@ -11,7 +11,7 @@
#if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "..\include\Types.hpp"
namespace libvgcode { namespace libvgcode {

View File

@ -19,7 +19,7 @@
namespace libvgcode { namespace libvgcode {
ColorRange::ColorRange(EType type) ColorRange::ColorRange(EColorRangeType type)
: m_type(type) : m_type(type)
{ {
} }
@ -35,23 +35,23 @@ void ColorRange::reset()
m_range = { FLT_MAX, -FLT_MAX }; m_range = { FLT_MAX, -FLT_MAX };
} }
static float step_size(const std::array<float, 2>& range, ColorRange::EType type) static float step_size(const std::array<float, 2>& range, EColorRangeType type)
{ {
switch (type) switch (type)
{ {
default: 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<float>(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<float>(Ranges_Colors.size()) - 1.0f) : 0.0f;
} }
} }
} }
ColorRange::EType ColorRange::get_type() const EColorRangeType ColorRange::get_type() const
{ {
return m_type; 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]); value = std::clamp(value, m_range[0], m_range[1]);
const float step = step_size(m_range, m_type); const float step = step_size(m_range, m_type);
if (step > 0.0f) { if (step > 0.0f) {
if (m_type == EType::Logarithmic) { if (m_type == EColorRangeType::Logarithmic) {
if (m_range[0] != 0.0f) if (m_range[0] != 0.0f)
global_t = log(value / m_range[0]) / step; global_t = log(value / m_range[0]) / step;
} }

View File

@ -10,38 +10,33 @@
#if ENABLE_NEW_GCODE_VIEWER #if ENABLE_NEW_GCODE_VIEWER
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "../include/Types.hpp"
namespace libvgcode { namespace libvgcode {
class ColorRange class ColorRange
{ {
public: public:
enum class EType : uint8_t explicit ColorRange(EColorRangeType type = EColorRangeType::Linear);
{
Linear,
Logarithmic,
COUNT
};
explicit ColorRange(EType type = EType::Linear);
void update(float value); void update(float value);
void reset(); void reset();
EType get_type() const; EColorRangeType get_type() const;
Color get_color_at(float value) const; Color get_color_at(float value) const;
const std::array<float, 2>& get_range() const; const std::array<float, 2>& get_range() const;
private: private:
EType m_type{ EType::Linear }; EColorRangeType m_type{ EColorRangeType::Linear };
// [0] = min, [1] = max
//
// [0] = min
// [1] = max
//
std::array<float, 2> m_range{ FLT_MAX, -FLT_MAX }; std::array<float, 2> m_range{ FLT_MAX, -FLT_MAX };
}; };
static constexpr size_t Color_Range_Types_Count = static_cast<size_t>(ColorRange::EType::COUNT);
} // namespace libvgcode } // namespace libvgcode
//################################################################################################################################ //################################################################################################################################

View File

@ -10,7 +10,7 @@
#if ENABLE_NEW_GCODE_VIEWER #if ENABLE_NEW_GCODE_VIEWER
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "../include/Types.hpp"
#include <map> #include <map>

View File

@ -7,7 +7,7 @@
///|/ ///|/
///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ libvgcode is released under the terms of the AGPLv3 or higher
///|/ ///|/
#include "GCodeInputData.hpp" #include "../include/GCodeInputData.hpp"
//################################################################################################################################ //################################################################################################################################
// PrusaSlicer development only -> !!!TO BE REMOVED!!! // PrusaSlicer development only -> !!!TO BE REMOVED!!!

View File

@ -9,7 +9,7 @@
///|/ ///|/
#include "Layers.hpp" #include "Layers.hpp"
#include "PathVertex.hpp" #include "../include/PathVertex.hpp"
//################################################################################################################################ //################################################################################################################################
// PrusaSlicer development only -> !!!TO BE REMOVED!!! // PrusaSlicer development only -> !!!TO BE REMOVED!!!

View File

@ -10,7 +10,7 @@
#if ENABLE_NEW_GCODE_VIEWER #if ENABLE_NEW_GCODE_VIEWER
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "../include/Types.hpp"
#include "Range.hpp" #include "Range.hpp"
namespace libvgcode { namespace libvgcode {

View File

@ -7,7 +7,7 @@
///|/ ///|/
///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ libvgcode is released under the terms of the AGPLv3 or higher
///|/ ///|/
#include "PathVertex.hpp" #include "../include/PathVertex.hpp"
//################################################################################################################################ //################################################################################################################################
// PrusaSlicer development only -> !!!TO BE REMOVED!!! // PrusaSlicer development only -> !!!TO BE REMOVED!!!

View File

@ -10,7 +10,7 @@
#if ENABLE_NEW_GCODE_VIEWER #if ENABLE_NEW_GCODE_VIEWER
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "../include/Types.hpp"
#include <map> #include <map>

View File

@ -11,7 +11,7 @@
#if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "..\include\Types.hpp"
namespace libvgcode { namespace libvgcode {
@ -47,7 +47,7 @@ private:
bool m_enabled{ false }; bool m_enabled{ false };
Vec3 m_position{ 0.0f, 0.0f, 0.0f }; Vec3 m_position{ 0.0f, 0.0f, 0.0f };
float m_offset_z{ 0.5f }; 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 }; float m_alpha{ 0.5f };
uint16_t m_indices_count{ 0 }; uint16_t m_indices_count{ 0 };

View File

@ -7,7 +7,7 @@
///|/ ///|/
///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ libvgcode is released under the terms of the AGPLv3 or higher
///|/ ///|/
#include "Types.hpp" #include "../include/Types.hpp"
//################################################################################################################################ //################################################################################################################################
// PrusaSlicer development only -> !!!TO BE REMOVED!!! // PrusaSlicer development only -> !!!TO BE REMOVED!!!

View File

@ -10,9 +10,7 @@
#if ENABLE_NEW_GCODE_VIEWER #if ENABLE_NEW_GCODE_VIEWER
//################################################################################################################################ //################################################################################################################################
#include "Types.hpp" #include "../include/Types.hpp"
#include <vector>
namespace libvgcode { namespace libvgcode {

View File

@ -7,7 +7,8 @@
///|/ ///|/
///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ 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!!! // PrusaSlicer development only -> !!!TO BE REMOVED!!!
@ -16,310 +17,320 @@
namespace libvgcode { namespace libvgcode {
Viewer::Viewer()
{
m_impl = new ViewerImpl();
}
Viewer::~Viewer()
{
delete m_impl;
}
void Viewer::init() void Viewer::init()
{ {
m_impl.init(); m_impl->init();
} }
void Viewer::reset() void Viewer::reset()
{ {
m_impl.reset(); m_impl->reset();
} }
void Viewer::load(GCodeInputData&& gcode_data) 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) 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 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) 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 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) void Viewer::set_time_mode(ETimeMode mode)
{ {
m_impl.set_time_mode(mode); m_impl->set_time_mode(mode);
} }
const std::array<uint32_t, 2>& Viewer::get_layers_range() const const std::array<uint32_t, 2>& 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<uint32_t, 2>& range) void Viewer::set_layers_range(const std::array<uint32_t, 2>& range)
{ {
m_impl.set_layers_range(range); m_impl->set_layers_range(range);
} }
void Viewer::set_layers_range(uint32_t min, uint32_t max) 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 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) 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 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) 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 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) 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<uint32_t, 2>& Viewer::get_view_full_range() const const std::array<uint32_t, 2>& Viewer::get_view_full_range() const
{ {
return m_impl.get_view_full_range(); return m_impl->get_view_full_range();
} }
const std::array<uint32_t, 2>& Viewer::get_view_enabled_range() const const std::array<uint32_t, 2>& Viewer::get_view_enabled_range() const
{ {
return m_impl.get_view_enabled_range(); return m_impl->get_view_enabled_range();
} }
const std::array<uint32_t, 2>& Viewer::get_view_visible_range() const const std::array<uint32_t, 2>& 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) 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 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 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 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 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<uint32_t, 2>& Viewer::get_enabled_segments_range() const const std::array<uint32_t, 2>& 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 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<uint32_t, 2>& Viewer::get_enabled_options_range() const const std::array<uint32_t, 2>& 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 uint32_t Viewer::get_extrusion_roles_count() const
{ {
return m_impl.get_extrusion_roles_count(); return m_impl->get_extrusion_roles_count();
} }
std::vector<EGCodeExtrusionRole> Viewer::get_extrusion_roles() const std::vector<EGCodeExtrusionRole> 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 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 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 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 float Viewer::get_travels_time(ETimeMode mode) const
{ {
return m_impl.get_travels_time(mode); return m_impl->get_travels_time(mode);
} }
std::vector<float> Viewer::get_layers_times() const std::vector<float> Viewer::get_layers_times() const
{ {
return m_impl.get_layers_times(); return m_impl->get_layers_times();
} }
std::vector<float> Viewer::get_layers_times(ETimeMode mode) const std::vector<float> 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 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<Color>& Viewer::get_tool_colors() const const std::vector<Color>& 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<Color>& colors) void Viewer::set_tool_colors(const std::vector<Color>& colors)
{ {
m_impl.set_tool_colors(colors); m_impl->set_tool_colors(colors);
} }
const std::array<float, 2>& Viewer::get_height_range() const const std::array<float, 2>& Viewer::get_height_range() const
{ {
return m_impl.get_height_range(); return m_impl->get_height_range();
} }
const std::array<float, 2>& Viewer::get_width_range() const const std::array<float, 2>& Viewer::get_width_range() const
{ {
return m_impl.get_width_range(); return m_impl->get_width_range();
} }
const std::array<float, 2>& Viewer::get_speed_range() const const std::array<float, 2>& Viewer::get_speed_range() const
{ {
return m_impl.get_speed_range(); return m_impl->get_speed_range();
} }
const std::array<float, 2>& Viewer::get_fan_speed_range() const const std::array<float, 2>& Viewer::get_fan_speed_range() const
{ {
return m_impl.get_fan_speed_range(); return m_impl->get_fan_speed_range();
} }
const std::array<float, 2>& Viewer::get_temperature_range() const const std::array<float, 2>& Viewer::get_temperature_range() const
{ {
return m_impl.get_temperature_range(); return m_impl->get_temperature_range();
} }
const std::array<float, 2>& Viewer::get_volumetric_rate_range() const const std::array<float, 2>& Viewer::get_volumetric_rate_range() const
{ {
return m_impl.get_volumetric_rate_range(); return m_impl->get_volumetric_rate_range();
} }
std::array<float, 2> Viewer::get_layer_time_range(ColorRange::EType type) const std::array<float, 2> 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 #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS
Vec3 Viewer::get_cog_position() const 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 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) 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 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) 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 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) 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 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) 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 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) 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 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) 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 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) 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 #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS

View File

@ -8,10 +8,10 @@
///|/ libvgcode is released under the terms of the AGPLv3 or higher ///|/ libvgcode is released under the terms of the AGPLv3 or higher
///|/ ///|/
#include "ViewerImpl.hpp" #include "ViewerImpl.hpp"
#include "../include/GCodeInputData.hpp"
#include "Shaders.hpp" #include "Shaders.hpp"
#include "OpenGLUtils.hpp" #include "OpenGLUtils.hpp"
#include "Utils.hpp" #include "Utils.hpp"
#include "GCodeInputData.hpp"
//################################################################################################################################ //################################################################################################################################
// PrusaSlicer development only -> !!!TO BE REMOVED!!! // PrusaSlicer development only -> !!!TO BE REMOVED!!!
@ -969,7 +969,7 @@ const std::array<float, 2>& ViewerImpl::get_volumetric_rate_range() const
return m_volumetric_rate_range.get_range(); return m_volumetric_rate_range.get_range();
} }
std::array<float, 2> ViewerImpl::get_layer_time_range(ColorRange::EType type) const std::array<float, 2> ViewerImpl::get_layer_time_range(EColorRangeType type) const
{ {
try { try {
return m_layer_time_range[static_cast<size_t>(type)].get_range(); return m_layer_time_range[static_cast<size_t>(type)].get_range();

View File

@ -17,7 +17,7 @@
#include "CogMarker.hpp" #include "CogMarker.hpp"
#include "ToolMarker.hpp" #include "ToolMarker.hpp"
#endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #endif // !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS
#include "PathVertex.hpp" #include "../include/PathVertex.hpp"
#include "Bitset.hpp" #include "Bitset.hpp"
#include "ColorRange.hpp" #include "ColorRange.hpp"
#include "ViewRange.hpp" #include "ViewRange.hpp"
@ -125,7 +125,7 @@ public:
const std::array<float, 2>& get_fan_speed_range() const; const std::array<float, 2>& get_fan_speed_range() const;
const std::array<float, 2>& get_temperature_range() const; const std::array<float, 2>& get_temperature_range() const;
const std::array<float, 2>& get_volumetric_rate_range() const; const std::array<float, 2>& get_volumetric_rate_range() const;
std::array<float, 2> get_layer_time_range(ColorRange::EType type) const; std::array<float, 2> get_layer_time_range(EColorRangeType type) const;
#if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS #if !ENABLE_NEW_GCODE_VIEWER_NO_COG_AND_TOOL_MARKERS
Vec3 get_cog_marker_position() const; Vec3 get_cog_marker_position() const;
@ -207,7 +207,7 @@ private:
ColorRange m_temperature_range; ColorRange m_temperature_range;
ColorRange m_volumetric_rate_range; ColorRange m_volumetric_rate_range;
std::array<ColorRange, Color_Range_Types_Count> m_layer_time_range{ std::array<ColorRange, Color_Range_Types_Count> m_layer_time_range{
ColorRange(ColorRange::EType::Linear), ColorRange(ColorRange::EType::Logarithmic) ColorRange(EColorRangeType::Linear), ColorRange(EColorRangeType::Logarithmic)
}; };
std::vector<Color> m_tool_colors; std::vector<Color> m_tool_colors;