Skip to content

Commit b553d70

Browse files
committed
Ignore invisible object for selection in paint mode
CURA-12660
1 parent 856da7e commit b553d70

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

UM/Qt/QtRenderer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def queueNode(self, node: "SceneNode", **kwargs) -> None:
143143

144144
self._batches.append(batch)
145145

146-
def createRenderBatch(self, **kwargs):
146+
def createRenderBatch(self, **kwargs) -> RenderBatch:
147147
type = kwargs.pop("type", RenderBatch.RenderType.Solid)
148148
if kwargs.pop("transparent", False):
149149
type = RenderBatch.RenderType.Transparent

UM/View/SelectionPass.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ def __init__(self, width, height):
6767
Selection.selectedFaceChanged.connect(self._onSelectedFaceChanged)
6868

6969
self._output = None
70+
self._ignore_unselected_objects_during_next_render = False
7071

7172
def _onActiveToolChanged(self):
7273
self._toolhandle_selection_map = self._default_toolhandle_selection_map.copy()
@@ -85,13 +86,18 @@ def _onActiveToolChanged(self):
8586
def _onSelectedFaceChanged(self):
8687
self._mode = SelectionPass.SelectionMode.FACES if Selection.getFaceSelectMode() else SelectionPass.SelectionMode.OBJECTS
8788

89+
def setIgnoreUnselectedObjectsDuringNextRender(self):
90+
self._ignore_unselected_objects_during_next_render = True
91+
8892
def render(self):
8993
"""Perform the actual rendering."""
9094
if self._mode == SelectionPass.SelectionMode.OBJECTS:
9195
self.renderObjectsMode()
9296
elif self._mode == SelectionPass.SelectionMode.FACES:
9397
self.renderFacesMode()
9498

99+
self._ignore_unselected_objects_during_next_render = False
100+
95101
def renderObjectsMode(self):
96102
self._selection_map = self._toolhandle_selection_map.copy()
97103

@@ -103,7 +109,7 @@ def renderObjectsMode(self):
103109
tool_handle.addItem(node.getWorldTransformation(copy = False), mesh = node.getSelectionMesh())
104110
continue
105111

106-
if node.isSelectable() and node.getMeshData():
112+
if node.isSelectable() and node.getMeshData() and (not self._ignore_unselected_objects_during_next_render or Selection.isSelected(node)):
107113
selectable_objects = True
108114
batch.addItem(transformation = node.getWorldTransformation(copy = False), mesh = node.getMeshData(), uniforms = { "selection_color": self._getNodeColor(node)}, normal_transformation=node.getCachedNormalMatrix())
109115

0 commit comments

Comments
 (0)