From 89686b808d67f8d575ccd4b2f42ccc11e9846b51 Mon Sep 17 00:00:00 2001
From: Lukas Matena <lukasmatena@seznam.cz>
Date: Tue, 3 Apr 2018 13:51:12 +0200
Subject: [PATCH] Added a check that all objects have the same layer height
 profile

---
 xs/src/libslic3r/Print.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/xs/src/libslic3r/Print.cpp b/xs/src/libslic3r/Print.cpp
index 168bf1302..267062125 100644
--- a/xs/src/libslic3r/Print.cpp
+++ b/xs/src/libslic3r/Print.cpp
@@ -612,6 +612,15 @@ std::string Print::validate() const
             bool was_layer_height_profile_valid = object->layer_height_profile_valid;
             object->update_layer_height_profile();
             object->layer_height_profile_valid = was_layer_height_profile_valid;
+
+            PrintObject* first_object = this->objects.front();
+            int i = 0;
+            while ( i < first_object->layer_height_profile.size() && i < object->layer_height_profile.size() ) {
+                if (std::abs(first_object->layer_height_profile[i] - object->layer_height_profile[i]) > EPSILON )
+                    return "The Wipe tower is only supported if all objects have the same layer height profile";
+                ++i;
+            }
+
             /*for (size_t i = 5; i < object->layer_height_profile.size(); i += 2)
                 if (object->layer_height_profile[i-1] > slicing_params.object_print_z_min + EPSILON &&
                     std::abs(object->layer_height_profile[i] - object->config.layer_height) > EPSILON)