From 0e4ecfaf56ffe276340a4f9ab7f963eee1c56d7b Mon Sep 17 00:00:00 2001 From: bubnikv Date: Tue, 2 Jan 2018 13:29:40 +0100 Subject: Fix of time estimator (int abs used instead of float abs) --- xs/src/libslic3r/GCodeTimeEstimator.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'xs/src/libslic3r') diff --git a/xs/src/libslic3r/GCodeTimeEstimator.cpp b/xs/src/libslic3r/GCodeTimeEstimator.cpp index 56cff252c..43b331676 100644 --- a/xs/src/libslic3r/GCodeTimeEstimator.cpp +++ b/xs/src/libslic3r/GCodeTimeEstimator.cpp @@ -2,6 +2,8 @@ #include #include +#include + static const std::string AXIS_STR = "XYZE"; static const float MMMIN_TO_MMSEC = 1.0f / 60.0f; static const float MILLISEC_TO_SEC = 0.001f; @@ -60,7 +62,7 @@ namespace Slic3r { float GCodeTimeEstimator::Block::move_length() const { float length = ::sqrt(sqr(delta_pos[X]) + sqr(delta_pos[Y]) + sqr(delta_pos[Z])); - return (length > 0.0f) ? length : ::abs(delta_pos[E]); + return (length > 0.0f) ? length : std::abs(delta_pos[E]); } float GCodeTimeEstimator::Block::is_extruder_only_move() const @@ -165,11 +167,13 @@ namespace Slic3r { void GCodeTimeEstimator::add_gcode_line(const std::string& gcode_line) { + PROFILE_FUNC(); _parser.parse_line(gcode_line, boost::bind(&GCodeTimeEstimator::_process_gcode_line, this, _1, _2)); } void GCodeTimeEstimator::calculate_time() { + PROFILE_FUNC(); _calculate_time(); _reset(); } @@ -401,6 +405,7 @@ namespace Slic3r { void GCodeTimeEstimator::_process_gcode_line(GCodeReader&, const GCodeReader::GCodeLine& line) { + PROFILE_FUNC(); if (line.cmd.length() > 1) { switch (::toupper(line.cmd[0])) @@ -540,7 +545,7 @@ namespace Slic3r { for (unsigned char a = X; a < Num_Axis; ++a) { block.delta_pos[a] = new_pos[a] - get_axis_position((EAxis)a); - max_abs_delta = std::max(max_abs_delta, ::abs(block.delta_pos[a])); + max_abs_delta = std::max(max_abs_delta, std::abs(block.delta_pos[a])); } // is it a move ? @@ -557,7 +562,7 @@ namespace Slic3r { for (unsigned char a = X; a < Num_Axis; ++a) { _curr.axis_feedrate[a] = _curr.feedrate * block.delta_pos[a] * invDistance; - _curr.abs_axis_feedrate[a] = ::abs(_curr.axis_feedrate[a]); + _curr.abs_axis_feedrate[a] = std::abs(_curr.axis_feedrate[a]); if (_curr.abs_axis_feedrate[a] > 0.0f) min_feedrate_factor = std::min(min_feedrate_factor, get_axis_max_feedrate((EAxis)a) / _curr.abs_axis_feedrate[a]); } @@ -576,7 +581,7 @@ namespace Slic3r { for (unsigned char a = X; a < Num_Axis; ++a) { float axis_max_acceleration = get_axis_max_acceleration((EAxis)a); - if (acceleration * ::abs(block.delta_pos[a]) * invDistance > axis_max_acceleration) + if (acceleration * std::abs(block.delta_pos[a]) * invDistance > axis_max_acceleration) acceleration = axis_max_acceleration; } -- cgit v1.2.3