From b2270b3f3ef978925b142e8a5c534b7f008994eb Mon Sep 17 00:00:00 2001
From: Scott Lahteine <sourcetree@thinkyhead.com>
Date: Mon, 6 Mar 2017 02:39:23 -0600
Subject: [PATCH] Apply prior nozzle clean update

---
 Marlin/nozzle.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/Marlin/nozzle.cpp b/Marlin/nozzle.cpp
index f890cca935e..92f697df1e8 100644
--- a/Marlin/nozzle.cpp
+++ b/Marlin/nozzle.cpp
@@ -62,8 +62,8 @@ void Nozzle::zigzag(
   __attribute__((unused)) uint8_t const &objects
 ) {
   #if ENABLED(NOZZLE_CLEAN_FEATURE)
-    float A = fabs(end.y - start.y); // [twice the] Amplitude
-    float P = fabs(end.x - start.x) / (objects << 1); // Period
+    const float A = nozzle_clean_horizontal ? nozzle_clean_height : nozzle_clean_length, // [twice the] Amplitude
+                P = (nozzle_clean_horizontal ? nozzle_clean_length : nozzle_clean_height) / (objects << 1); // Period
 
     // Don't allow impossible triangles
     if (A <= 0.0f || P <= 0.0f ) return;
@@ -80,16 +80,16 @@ void Nozzle::zigzag(
 
     for (uint8_t j = 0; j < strokes; j++) {
       for (uint8_t i = 0; i < (objects << 1); i++) {
-        float const x = start.x + i * P;
-        float const y = start.y + (A/P) * (P - fabs(fmod((i*P), (2*P)) - P));
+        float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
+        float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
 
         do_blocking_move_to_xy(x, y);
         if (i == 0) do_blocking_move_to_z(start.z);
       }
 
       for (int i = (objects << 1); i > -1; i--) {
-        float const x = start.x + i * P;
-        float const y = start.y + (A/P) * (P - fabs(fmod((i*P), (2*P)) - P));
+        float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
+        float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
 
         do_blocking_move_to_xy(x, y);
       }