@@ -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