diff options
author | Jaime van Kessel <nallath@gmail.com> | 2019-05-29 16:53:23 +0300 |
---|---|---|
committer | Jaime van Kessel <nallath@gmail.com> | 2019-05-29 16:53:23 +0300 |
commit | 07ff08f6bbba692abca59044357d3f6a296ee949 (patch) | |
tree | 65e2e4cd85fb815ed6092a09d195457f72d9af07 /cura/PreviewPass.py | |
parent | f6627daa49ecde38df115a88c8bfc61c834518e8 (diff) |
Ensure that objects outside build volume are not added to thumbnail
CURA-6545
Diffstat (limited to 'cura/PreviewPass.py')
-rw-r--r-- | cura/PreviewPass.py | 47 |
1 files changed, 24 insertions, 23 deletions
diff --git a/cura/PreviewPass.py b/cura/PreviewPass.py index befb52ee5e..49e2befd28 100644 --- a/cura/PreviewPass.py +++ b/cura/PreviewPass.py @@ -84,29 +84,30 @@ class PreviewPass(RenderPass): # Fill up the batch with objects that can be sliced. for node in DepthFirstIterator(self._scene.getRoot()): #type: ignore #Ignore type error because iter() should get called automatically by Python syntax. - if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible(): - per_mesh_stack = node.callDecoration("getStack") - if node.callDecoration("isNonThumbnailVisibleMesh"): - # Non printing mesh - continue - elif per_mesh_stack is not None and per_mesh_stack.getProperty("support_mesh", "value"): - # Support mesh - uniforms = {} - shade_factor = 0.6 - diffuse_color = node.getDiffuseColor() - diffuse_color2 = [ - diffuse_color[0] * shade_factor, - diffuse_color[1] * shade_factor, - diffuse_color[2] * shade_factor, - 1.0] - uniforms["diffuse_color"] = prettier_color(diffuse_color) - uniforms["diffuse_color_2"] = diffuse_color2 - batch_support_mesh.addItem(node.getWorldTransformation(), node.getMeshData(), uniforms = uniforms) - else: - # Normal scene node - uniforms = {} - uniforms["diffuse_color"] = prettier_color(node.getDiffuseColor()) - batch.addItem(node.getWorldTransformation(), node.getMeshData(), uniforms = uniforms) + if hasattr(node, "_outside_buildarea") and not node._outside_buildarea: + if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible(): + per_mesh_stack = node.callDecoration("getStack") + if node.callDecoration("isNonThumbnailVisibleMesh"): + # Non printing mesh + continue + elif per_mesh_stack is not None and per_mesh_stack.getProperty("support_mesh", "value"): + # Support mesh + uniforms = {} + shade_factor = 0.6 + diffuse_color = node.getDiffuseColor() + diffuse_color2 = [ + diffuse_color[0] * shade_factor, + diffuse_color[1] * shade_factor, + diffuse_color[2] * shade_factor, + 1.0] + uniforms["diffuse_color"] = prettier_color(diffuse_color) + uniforms["diffuse_color_2"] = diffuse_color2 + batch_support_mesh.addItem(node.getWorldTransformation(), node.getMeshData(), uniforms = uniforms) + else: + # Normal scene node + uniforms = {} + uniforms["diffuse_color"] = prettier_color(node.getDiffuseColor()) + batch.addItem(node.getWorldTransformation(), node.getMeshData(), uniforms = uniforms) self.bind() |