From 5cb9f979861158629ff8f250d6f32212513b03ad Mon Sep 17 00:00:00 2001 From: Seva Alekseyev Date: Thu, 11 Aug 2016 11:17:48 -0400 Subject: [PATCH] Slicing logic now index-aware, correctly processes scenes with vertex reuse --- plugins/CuraEngineBackend/StartSliceJob.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/CuraEngineBackend/StartSliceJob.py b/plugins/CuraEngineBackend/StartSliceJob.py index c7cedc92ca..abf1996e72 100644 --- a/plugins/CuraEngineBackend/StartSliceJob.py +++ b/plugins/CuraEngineBackend/StartSliceJob.py @@ -148,7 +148,12 @@ class StartSliceJob(Job): obj = group_message.addRepeatedMessage("objects") obj.id = id(object) - verts = numpy.array(mesh_data.getVertices()) + verts = mesh_data.getVertices() + indices = mesh_data.getIndices() + if not indices is None: + verts = numpy.array([verts[vert_index] for face in indices for vert_index in face]) + else: + verts = numpy.array(verts) # Convert from Y up axes to Z up axes. Equals a 90 degree rotation. verts[:, [1, 2]] = verts[:, [2, 1]]