From d68804772aaa20e7b4e37c3a880896ed3782d238 Mon Sep 17 00:00:00 2001
From: Enrico Turri <enricoturri@seznam.cz>
Date: Fri, 9 Mar 2018 15:27:38 +0100
Subject: [PATCH] GCode Preview - Added handling of G10 and G11 commands

---
 xs/src/libslic3r/GCode/Analyzer.cpp | 22 ++++++++++++++++++++++
 xs/src/libslic3r/GCode/Analyzer.hpp |  6 ++++++
 2 files changed, 28 insertions(+)

diff --git a/xs/src/libslic3r/GCode/Analyzer.cpp b/xs/src/libslic3r/GCode/Analyzer.cpp
index ee1e55beb..15b99b2fb 100644
--- a/xs/src/libslic3r/GCode/Analyzer.cpp
+++ b/xs/src/libslic3r/GCode/Analyzer.cpp
@@ -177,6 +177,16 @@ void GCodeAnalyzer::_process_gcode_line(GCodeReader&, const GCodeReader::GCodeLi
                         _processG1(line);
                         break;
                     }
+                case 10: // Retract
+                    {
+                        _processG10(line);
+                        break;
+                    }
+                case 11: // Unretract
+                    {
+                        _processG11(line);
+                        break;
+                    }
                 case 22: // Firmware controlled Retract
                     {
                         _processG22(line);
@@ -305,6 +315,18 @@ void GCodeAnalyzer::_processG1(const GCodeReader::GCodeLine& line)
         _store_move(type);
 }
 
+void GCodeAnalyzer::_processG10(const GCodeReader::GCodeLine& line)
+{
+    // stores retract move
+    _store_move(GCodeMove::Retract);
+}
+
+void GCodeAnalyzer::_processG11(const GCodeReader::GCodeLine& line)
+{
+    // stores unretract move
+    _store_move(GCodeMove::Unretract);
+}
+
 void GCodeAnalyzer::_processG22(const GCodeReader::GCodeLine& line)
 {
     // stores retract move
diff --git a/xs/src/libslic3r/GCode/Analyzer.hpp b/xs/src/libslic3r/GCode/Analyzer.hpp
index 7939d432d..e2f38292e 100644
--- a/xs/src/libslic3r/GCode/Analyzer.hpp
+++ b/xs/src/libslic3r/GCode/Analyzer.hpp
@@ -127,6 +127,12 @@ private:
     // Move
     void _processG1(const GCodeReader::GCodeLine& line);
 
+    // Retract
+    void _processG10(const GCodeReader::GCodeLine& line);
+
+    // Unretract
+    void _processG11(const GCodeReader::GCodeLine& line);
+
     // Firmware controlled Retract
     void _processG22(const GCodeReader::GCodeLine& line);