Browse Source

Fix displaying layers with python3.6

sheinz 7 years ago
parent
commit
de62a3c0fe
2 changed files with 4 additions and 4 deletions
  1. 1 1
      cura/LayerDataBuilder.py
  2. 3 3
      plugins/LayerView/LayerPass.py

+ 1 - 1
cura/LayerDataBuilder.py

@@ -69,7 +69,7 @@ class LayerDataBuilder(MeshBuilder):
 
         vertex_offset = 0
         index_offset = 0
-        for layer, data in self._layers.items():
+        for layer, data in sorted(self._layers.items()):
             ( vertex_offset, index_offset ) = data.build( vertex_offset, index_offset, vertices, colors, line_dimensions, extruders, line_types, indices)
             self._element_counts[layer] = data.elementCount
 

+ 3 - 3
plugins/LayerView/LayerPass.py

@@ -82,12 +82,12 @@ class LayerPass(RenderPass):
                     start = 0
                     end = 0
                     element_counts = layer_data.getElementCounts()
-                    for layer, counts in element_counts.items():
+                    for layer in sorted(element_counts.keys()):
                         if layer > self._layer_view._current_layer_num:
                             break
                         if self._layer_view._minimum_layer_num > layer:
-                            start += counts
-                        end += counts
+                            start += element_counts[layer]
+                        end += element_counts[layer]
 
                     # This uses glDrawRangeElements internally to only draw a certain range of lines.
                     batch = RenderBatch(self._layer_shader, type = RenderBatch.RenderType.Solid, mode = RenderBatch.RenderMode.Lines, range = (start, end))