mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-13 03:59:04 +08:00
Do not show not printed models on snapshot for UFP files
CURA-5373
This commit is contained in:
parent
8eea60bada
commit
1f149b2821
@ -34,9 +34,10 @@ def prettier_color(color_list):
|
|||||||
#
|
#
|
||||||
# This is useful to get a preview image of a scene taken from a different location as the active camera.
|
# This is useful to get a preview image of a scene taken from a different location as the active camera.
|
||||||
class PreviewPass(RenderPass):
|
class PreviewPass(RenderPass):
|
||||||
def __init__(self, width: int, height: int):
|
def __init__(self, width: int, height: int, skip_non_printed_objects: bool = False):
|
||||||
super().__init__("preview", width, height, 0)
|
super().__init__("preview", width, height, 0)
|
||||||
|
|
||||||
|
self._skip_non_printed_objects = skip_non_printed_objects
|
||||||
self._camera = None # type: Optional[Camera]
|
self._camera = None # type: Optional[Camera]
|
||||||
|
|
||||||
self._renderer = Application.getInstance().getRenderer()
|
self._renderer = Application.getInstance().getRenderer()
|
||||||
@ -112,7 +113,9 @@ class PreviewPass(RenderPass):
|
|||||||
|
|
||||||
batch.render(render_camera)
|
batch.render(render_camera)
|
||||||
batch_support_mesh.render(render_camera)
|
batch_support_mesh.render(render_camera)
|
||||||
batch_non_printing.render(render_camera)
|
|
||||||
|
if not self._skip_non_printed_objects:
|
||||||
|
batch_non_printing.render(render_camera)
|
||||||
|
|
||||||
self.release()
|
self.release()
|
||||||
|
|
||||||
|
@ -43,7 +43,8 @@ class Snapshot:
|
|||||||
render_width, render_height = active_camera.getWindowSize()
|
render_width, render_height = active_camera.getWindowSize()
|
||||||
render_width = int(render_width)
|
render_width = int(render_width)
|
||||||
render_height = int(render_height)
|
render_height = int(render_height)
|
||||||
preview_pass = PreviewPass(render_width, render_height)
|
skip_non_printed_objects = True
|
||||||
|
preview_pass = PreviewPass(render_width, render_height, skip_non_printed_objects)
|
||||||
|
|
||||||
root = scene.getRoot()
|
root = scene.getRoot()
|
||||||
camera = Camera("snapshot", root)
|
camera = Camera("snapshot", root)
|
||||||
@ -51,7 +52,7 @@ class Snapshot:
|
|||||||
# determine zoom and look at
|
# determine zoom and look at
|
||||||
bbox = None
|
bbox = None
|
||||||
for node in DepthFirstIterator(root):
|
for node in DepthFirstIterator(root):
|
||||||
if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible():
|
if node.callDecoration("isSliceable") and node.getMeshData() and node.isVisible() and not node.callDecoration("isNonPrintingMesh"):
|
||||||
if bbox is None:
|
if bbox is None:
|
||||||
bbox = node.getBoundingBox()
|
bbox = node.getBoundingBox()
|
||||||
else:
|
else:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user