ENH: optimize layer time(log) display
Change-Id: Ibb43561f11dfd1c63b3a0da75a3cb10b95afc71e
This commit is contained in:
parent
e69c0ed7f6
commit
e1f97681f4
|
@ -77,8 +77,6 @@ static std::string get_view_type_string(GCodeViewer::EViewType view_type)
|
|||
return _u8L("Filament");
|
||||
else if (view_type == GCodeViewer::EViewType::LayerTime)
|
||||
return _u8L("Layer Time");
|
||||
else if (view_type == GCodeViewer::EViewType::LayerTimeLog)
|
||||
return _u8L("Layer Time (log)");
|
||||
return "";
|
||||
}
|
||||
|
||||
|
@ -282,12 +280,13 @@ float GCodeViewer::Extrusions::Range::get_value_at_step(int step) const {
|
|||
if (!log_scale)
|
||||
return min + static_cast<float>(step) * step_size();
|
||||
else
|
||||
// calculate log-average
|
||||
{
|
||||
float min_range = min;
|
||||
if (min_range == 0)
|
||||
min_range = 0.0001f;
|
||||
float step_size = std::log(max / min_range) / (static_cast<float>(Range_Colors.size()) - 1.0f);
|
||||
return std::log(min) + static_cast<float>(step) * step_size;
|
||||
return std::exp(std::log(min) + static_cast<float>(step) * step_size);
|
||||
}
|
||||
}
|
||||
GCodeViewer::SequentialRangeCap::~SequentialRangeCap() {
|
||||
|
@ -380,7 +379,6 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he
|
|||
std::string speed = ImGui::ColorMarkerStart + _u8L("Speed: ") + ImGui::ColorMarkerEnd;
|
||||
std::string flow = ImGui::ColorMarkerStart + _u8L("Flow: ") + ImGui::ColorMarkerEnd;
|
||||
std::string layer_time = ImGui::ColorMarkerStart + _u8L("Layer Time: ") + ImGui::ColorMarkerEnd;
|
||||
std::string layer_time_log = ImGui::ColorMarkerStart + _u8L("Layer Time(log): ") + ImGui::ColorMarkerEnd;
|
||||
std::string fanspeed = ImGui::ColorMarkerStart + _u8L("Fan Speed: ") + ImGui::ColorMarkerEnd;
|
||||
std::string temperature = ImGui::ColorMarkerStart + _u8L("Temperature: ") + ImGui::ColorMarkerEnd;
|
||||
const float item_size = imgui.calc_text_size("X: 000.000 ").x;
|
||||
|
@ -394,7 +392,7 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he
|
|||
if (view_type == EViewType::FeatureType || view_type == EViewType::ColorPrint)
|
||||
show_extra_text = false;
|
||||
// Feedrate and LayerTime shall always show extra text
|
||||
else if (view_type == EViewType::Feedrate || view_type == EViewType::LayerTime || view_type == EViewType::LayerTimeLog)
|
||||
else if (view_type == EViewType::Feedrate || view_type == EViewType::LayerTime)
|
||||
show_extra_text = true;
|
||||
if (show_extra_text)
|
||||
{
|
||||
|
@ -461,13 +459,6 @@ void GCodeViewer::SequentialView::Marker::render(int canvas_width, int canvas_he
|
|||
imgui.text(buf);
|
||||
break;
|
||||
}
|
||||
case EViewType::LayerTimeLog: {
|
||||
ImGui::SameLine(window_padding + item_size + item_spacing);
|
||||
sprintf(buf, "%s%.1f", layer_time_log.c_str(), std::log(m_curr_move.layer_duration));
|
||||
ImGui::PushItemWidth(item_size);
|
||||
imgui.text(buf);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -932,7 +923,6 @@ void GCodeViewer::update_by_mode(ConfigOptionMode mode)
|
|||
view_type_items.push_back(EViewType::Width);
|
||||
view_type_items.push_back(EViewType::VolumetricRate);
|
||||
view_type_items.push_back(EViewType::LayerTime);
|
||||
view_type_items.push_back(EViewType::LayerTimeLog);
|
||||
view_type_items.push_back(EViewType::FanSpeed);
|
||||
view_type_items.push_back(EViewType::Temperature);
|
||||
if (mode == ConfigOptionMode::comDevelop) {
|
||||
|
@ -1172,7 +1162,6 @@ void GCodeViewer::refresh(const GCodeProcessorResult& gcode_result, const std::v
|
|||
|
||||
if (curr.layer_duration > 0.f) {
|
||||
m_extrusions.ranges.layer_duration.update_from(curr.layer_duration);
|
||||
m_extrusions.ranges.layer_duration_log.update_from(curr.layer_duration);
|
||||
}
|
||||
[[fallthrough]];
|
||||
}
|
||||
|
@ -3256,7 +3245,6 @@ void GCodeViewer::refresh_render_paths(bool keep_sequential_current_first, bool
|
|||
case EViewType::FanSpeed: { color = m_extrusions.ranges.fan_speed.get_color_at(path.fan_speed); break; }
|
||||
case EViewType::Temperature: { color = m_extrusions.ranges.temperature.get_color_at(path.temperature); break; }
|
||||
case EViewType::LayerTime: { color = m_extrusions.ranges.layer_duration.get_color_at(path.layer_time); break; }
|
||||
case EViewType::LayerTimeLog: { color = m_extrusions.ranges.layer_duration_log.get_color_at(path.layer_time); break; }
|
||||
case EViewType::VolumetricRate: { color = m_extrusions.ranges.volumetric_rate.get_color_at(path.volumetric_rate); break; }
|
||||
case EViewType::Tool: { color = m_tools.m_tool_colors[path.extruder_id]; break; }
|
||||
case EViewType::ColorPrint: {
|
||||
|
@ -4533,7 +4521,6 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv
|
|||
case EViewType::Temperature: { imgui.title(_u8L("Temperature (°C)")); break; }
|
||||
case EViewType::VolumetricRate: { imgui.title(_u8L("Volumetric flow rate (mm³/s)")); break; }
|
||||
case EViewType::LayerTime: { imgui.title(_u8L("Layer Time (s)")); break; }
|
||||
case EViewType::LayerTimeLog: { imgui.title(_u8L("Layer Time (log) (s)")); break; }
|
||||
|
||||
case EViewType::Tool:
|
||||
{
|
||||
|
@ -4689,7 +4676,6 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv
|
|||
case EViewType::FanSpeed: { append_range(m_extrusions.ranges.fan_speed, 0); break; }
|
||||
case EViewType::Temperature: { append_range(m_extrusions.ranges.temperature, 0); break; }
|
||||
case EViewType::LayerTime: { append_range(m_extrusions.ranges.layer_duration, 1); break; }
|
||||
case EViewType::LayerTimeLog: { append_range(m_extrusions.ranges.layer_duration_log, 1); break; }
|
||||
case EViewType::VolumetricRate: { append_range(m_extrusions.ranges.volumetric_rate, 2); break; }
|
||||
case EViewType::Tool:
|
||||
{
|
||||
|
|
|
@ -408,7 +408,7 @@ class GCodeViewer
|
|||
min = std::min(min, value);
|
||||
max = std::max(max, value);
|
||||
}
|
||||
void reset(bool log = false) { min = FLT_MAX; max = -FLT_MAX; count = 0; log_scale = false; log_scale = log; }
|
||||
void reset(bool log = false) { min = FLT_MAX; max = -FLT_MAX; count = 0; log_scale = log; }
|
||||
|
||||
float step_size() const;
|
||||
Color get_color_at(float value) const;
|
||||
|
@ -432,7 +432,6 @@ class GCodeViewer
|
|||
Range temperature;
|
||||
// Color mapping by layer time.
|
||||
Range layer_duration;
|
||||
Range layer_duration_log;
|
||||
void reset() {
|
||||
height.reset();
|
||||
width.reset();
|
||||
|
@ -440,8 +439,7 @@ class GCodeViewer
|
|||
fan_speed.reset();
|
||||
volumetric_rate.reset();
|
||||
temperature.reset();
|
||||
layer_duration.reset();
|
||||
layer_duration_log.reset(true);
|
||||
layer_duration.reset(true);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -721,7 +719,6 @@ public:
|
|||
ColorPrint,
|
||||
FilamentId,
|
||||
LayerTime,
|
||||
LayerTimeLog,
|
||||
Count
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue