diff options
Diffstat (limited to 'xs/src/libslic3r')
-rw-r--r-- | xs/src/libslic3r/GCodeTimeEstimator.cpp | 16 | ||||
-rw-r--r-- | xs/src/libslic3r/GCodeTimeEstimator.hpp | 1 |
2 files changed, 14 insertions, 3 deletions
diff --git a/xs/src/libslic3r/GCodeTimeEstimator.cpp b/xs/src/libslic3r/GCodeTimeEstimator.cpp index b65ff555b..22821a708 100644 --- a/xs/src/libslic3r/GCodeTimeEstimator.cpp +++ b/xs/src/libslic3r/GCodeTimeEstimator.cpp @@ -153,6 +153,9 @@ namespace Slic3r { [this](GCodeReader &reader, const GCodeReader::GCodeLine &line) { this->_process_gcode_line(reader, line); }); + _calculate_time(); + + _reset_blocks(); _reset(); } @@ -163,6 +166,7 @@ namespace Slic3r { _parser.parse_file(file, boost::bind(&GCodeTimeEstimator::_process_gcode_line, this, _1, _2)); _calculate_time(); + _reset_blocks(); _reset(); } @@ -176,6 +180,7 @@ namespace Slic3r { _parser.parse_line(line, action); _calculate_time(); + _reset_blocks(); _reset(); } @@ -203,6 +208,7 @@ namespace Slic3r { { PROFILE_FUNC(); _calculate_time(); + _reset_blocks(); _reset(); } @@ -387,6 +393,7 @@ namespace Slic3r { void GCodeTimeEstimator::reset() { _time = 0.0f; + _reset_blocks(); _reset(); } @@ -416,8 +423,6 @@ namespace Slic3r { void GCodeTimeEstimator::_reset() { - _blocks.clear(); - _curr.reset(); _prev.reset(); @@ -428,6 +433,11 @@ namespace Slic3r { set_additional_time(0.0f); } + void GCodeTimeEstimator::_reset_blocks() + { + _blocks.clear(); + } + void GCodeTimeEstimator::_calculate_time() { _forward_pass(); @@ -954,7 +964,7 @@ namespace Slic3r { void GCodeTimeEstimator::_simulate_st_synchronize() { _calculate_time(); - _reset(); + _reset_blocks(); } void GCodeTimeEstimator::_forward_pass() diff --git a/xs/src/libslic3r/GCodeTimeEstimator.hpp b/xs/src/libslic3r/GCodeTimeEstimator.hpp index 63dd0a6c6..fb41a2753 100644 --- a/xs/src/libslic3r/GCodeTimeEstimator.hpp +++ b/xs/src/libslic3r/GCodeTimeEstimator.hpp @@ -246,6 +246,7 @@ namespace Slic3r { private: void _reset(); + void _reset_blocks(); // Calculates the time estimate void _calculate_time(); |