@@ -72,6 +72,12 @@ def setUp(self):
7272 mo = om .MFnDisplayLayerManager .currentDisplayLayerManager () if mayaUtils .ufeSupportFixLevel () >= 2 else om .MFnDisplayLayerManager ().currentDisplayLayerManager ()
7373 self .dlm = om .MFnDisplayLayerManager (mo )
7474
75+ # editDisplayLayerMembers became Ufe opt-in
76+ self .kwArgsEditDisplayLayerMembers = {'fn' : True }
77+ cmdHelp = cmds .help ('editDisplayLayerMembers' )
78+ if '-ufeObjects' in cmdHelp :
79+ self .kwArgsEditDisplayLayerMembers ['ufeObjects' ] = True
80+
7581 def displayLayer (self , layer_name ):
7682 displayLayerObjs = self .dlm .getAllDisplayLayers ()
7783 for dl in displayLayerObjs :
@@ -89,6 +95,29 @@ def _testLayerFromPath(self, pathStr, layerName):
8995 self .assertTrue (layer .contains (pathStr ))
9096 self .assertTrue (pathStr in layer .getMembers ().getSelectionStrings ())
9197
98+ def testDisplayLayerQuery (self ):
99+ cmdHelp = cmds .help ('editDisplayLayerMembers' )
100+ if '-ufeObjects' not in cmdHelp :
101+ self .skipTest ('Requires ufeObjects flag in editDisplayLayerMembers command.' )
102+
103+ # First create a layer and add some Maya objects and USD prims to it.
104+ cmds .createDisplayLayer (name = 'layer1' , number = 1 , empty = True )
105+ cmds .CreatePolygonSphere ()
106+ psPathStr = mayaUsd_createStageWithNewLayer .createStageWithNewLayer ()
107+ stage = mayaUsd .lib .GetPrim (psPathStr ).GetStage ()
108+ stage .DefinePrim ('/Sphere1' , 'Sphere' )
109+ cmds .editDisplayLayerMembers (self .LAYER1 , '|pSphere1' , self .SPHERE1 , noRecurse = True )
110+
111+ # Query the display layer members (default) without ufe.
112+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
113+ self .assertTrue ('|pSphere1' in layerObjs )
114+ self .assertFalse (self .SPHERE1 in layerObjs )
115+
116+ # Then query the display layer members with ufe.
117+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True , ufeObjects = True )
118+ self .assertTrue ('|pSphere1' in layerObjs )
119+ self .assertTrue (self .SPHERE1 in layerObjs )
120+
92121 @unittest .skipUnless (mayaUtils .ufeSupportFixLevel () >= 2 , "Requires Display Layer Ufe item rename fix." )
93122 def testDisplayLayerItemRename (self ):
94123 # First create Display Layer and add some prims to it.
@@ -104,7 +133,7 @@ def testDisplayLayerItemRename(self):
104133 cmds .editDisplayLayerMembers (self .LAYER1 , self .SPHERE1 , self .CUBE1 , noRecurse = True )
105134
106135 # Verify they are in layer.
107- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
136+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
108137 self .assertTrue (self .CUBE1 in layerObjs )
109138 self .assertTrue (self .SPHERE1 in layerObjs )
110139 self .assertFalse (self .NEW_SPHERE1 in layerObjs )
@@ -118,7 +147,7 @@ def testDisplayLayerItemRename(self):
118147 # Rename the Sphere and make sure it is still in the layer.
119148 cmds .select (self .SPHERE1 , replace = True )
120149 cmds .rename ('NewSphere1' )
121- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
150+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
122151 self .assertTrue (self .CUBE1 in layerObjs )
123152 self .assertFalse (self .SPHERE1 in layerObjs )
124153 self .assertTrue (self .NEW_SPHERE1 in layerObjs )
@@ -130,7 +159,7 @@ def testDisplayLayerItemRename(self):
130159
131160 # Undo the rename.
132161 cmds .undo ()
133- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
162+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
134163 self .assertTrue (self .CUBE1 in layerObjs )
135164 self .assertTrue (self .SPHERE1 in layerObjs )
136165 self .assertFalse (self .NEW_SPHERE1 in layerObjs )
@@ -142,7 +171,7 @@ def testDisplayLayerItemRename(self):
142171
143172 # Redo the rename.
144173 cmds .redo ()
145- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
174+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
146175 self .assertTrue (self .CUBE1 in layerObjs )
147176 self .assertFalse (self .SPHERE1 in layerObjs )
148177 self .assertTrue (self .NEW_SPHERE1 in layerObjs )
@@ -169,13 +198,13 @@ def testDisplayLayerItemRenameParent(self):
169198 # Rename the Xform1 (parent of Sphere1) and make sure Sphere1 is still in the layer.
170199 cmds .select (self .XFORM1 , replace = True )
171200 cmds .rename ('NewXform1' )
172- layerObjs = cmds .editDisplayLayerMembers (self .DEFAULT_LAYER , query = True , fn = True )
201+ layerObjs = cmds .editDisplayLayerMembers (self .DEFAULT_LAYER , query = True , ** self . kwArgsEditDisplayLayerMembers )
173202 self .assertFalse (self .XFORM1 in layerObjs )
174203 self .assertTrue (self .NEW_XFORM1 in layerObjs )
175204 self .assertFalse (self .XFORM1_SPHERE1 in layerObjs )
176205 self .assertFalse (self .NEW_XFORM1_SPHERE1 in layerObjs )
177206
178- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
207+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
179208 self .assertFalse (self .XFORM1 in layerObjs )
180209 self .assertFalse (self .NEW_XFORM1 in layerObjs )
181210 self .assertFalse (self .XFORM1_SPHERE1 in layerObjs )
@@ -199,7 +228,7 @@ def testDisplayLayerItemReparent(self):
199228 cmds .editDisplayLayerMembers (self .LAYER1 , self .SPHERE1 , self .CUBE1 , noRecurse = True )
200229
201230 # Verify they are in layer.
202- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
231+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
203232 self .assertTrue (self .CUBE1 in layerObjs )
204233 self .assertTrue (self .SPHERE1 in layerObjs )
205234 self .assertFalse (self .XFORM1 in layerObjs )
@@ -210,7 +239,7 @@ def testDisplayLayerItemReparent(self):
210239
211240 # Reparent the Sphere and make sure it is still in the layer.
212241 cmds .parent (self .SPHERE1 , self .XFORM1 )
213- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
242+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
214243 self .assertTrue (self .CUBE1 in layerObjs )
215244 self .assertTrue (self .XFORM1_SPHERE1 in layerObjs )
216245 self .assertFalse (self .XFORM1 in layerObjs )
@@ -221,7 +250,7 @@ def testDisplayLayerItemReparent(self):
221250
222251 # Undo the reparent.
223252 cmds .undo ()
224- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
253+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
225254 self .assertTrue (self .CUBE1 in layerObjs )
226255 self .assertTrue (self .SPHERE1 in layerObjs )
227256 self .assertFalse (self .XFORM1 in layerObjs )
@@ -232,7 +261,7 @@ def testDisplayLayerItemReparent(self):
232261
233262 # Redo the reparent.
234263 cmds .redo ()
235- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
264+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
236265 self .assertTrue (self .CUBE1 in layerObjs )
237266 self .assertTrue (self .XFORM1_SPHERE1 in layerObjs )
238267 self .assertFalse (self .XFORM1 in layerObjs )
@@ -255,7 +284,7 @@ def testDisplayLayerItemDelete(self):
255284 cmds .editDisplayLayerMembers (self .LAYER1 , self .SPHERE1 , self .CUBE1 , noRecurse = True )
256285
257286 # Verify they are in layer.
258- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
287+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
259288 self .assertTrue (self .CUBE1 in layerObjs )
260289 self .assertTrue (self .SPHERE1 in layerObjs )
261290 self .assertFalse (self .NEW_SPHERE1 in layerObjs )
@@ -265,7 +294,7 @@ def testDisplayLayerItemDelete(self):
265294
266295 # Delete the Sphere and make sure it is removed from the layer.
267296 cmds .delete (self .SPHERE1 )
268- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
297+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
269298 self .assertTrue (self .CUBE1 in layerObjs )
270299 self .assertFalse (self .SPHERE1 in layerObjs )
271300
@@ -301,15 +330,15 @@ def testDisplayLayerClear(self):
301330 # Verify that both prims are in layer.
302331 # Note: the editDisplayLayerMembers command only returns valid prims.
303332 # But the MFnDisplayLayer will return all prims (including invalid ones).
304- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
333+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
305334 self .assertTrue (self .CUBE1 in layerObjs )
306335 self .assertFalse (self .INVALID_PRIM in layerObjs )
307336 self ._testLayerFromPath (self .CUBE1 , self .LAYER1 )
308337 self ._testLayerFromPath (self .INVALID_PRIM , self .LAYER1 )
309338
310339 # Now clear the layer and make sure both prims (valid and invalid) got removed.
311340 cmds .editDisplayLayerMembers (self .LAYER1 , clear = True )
312- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
341+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
313342 self .assertIsNone (layerObjs )
314343 self .assertFalse (layer1 .contains (self .CUBE1 ))
315344 self .assertFalse (layer1 .contains (self .INVALID_PRIM ))
@@ -333,7 +362,7 @@ def testDisplayLayerSubtreeInvalidate(self):
333362 # Create a display layer and add the Sphere1 prim (currently the one under the Xform1).
334363 cmds .createDisplayLayer (name = self .LAYER1 , number = 1 , empty = True )
335364 cmds .editDisplayLayerMembers (self .LAYER1 , self .XFORM1_SPHERE1 , noRecurse = True )
336- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
365+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
337366 self .assertFalse (self .XFORM1_CUBE1 in layerObjs )
338367 self .assertTrue (self .XFORM1_SPHERE1 in layerObjs )
339368
@@ -347,7 +376,7 @@ def testDisplayLayerSubtreeInvalidate(self):
347376
348377 # The Cube1 should not be in the display layer.
349378 # The Sphere1 prim should still be in the display layer, but as an invalid path.
350- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
379+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
351380 self .assertIsNone (layerObjs )
352381 self ._testLayerFromPath (self .XFORM1_SPHERE1 , self .LAYER1 )
353382
@@ -356,7 +385,7 @@ def testDisplayLayerSubtreeInvalidate(self):
356385 ufeCmd .execute (cmd )
357386
358387 # The Sphere1 should be back (as valid path) in the display layer.
359- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
388+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
360389 self .assertFalse (self .XFORM1_CUBE1 in layerObjs )
361390 self .assertTrue (self .XFORM1_SPHERE1 in layerObjs )
362391 self ._testLayerFromPath (self .XFORM1_SPHERE1 , self .LAYER1 )
@@ -368,7 +397,7 @@ def testDisplayLayerSubtreeInvalidate(self):
368397 model .SetKind (Kind .Tokens .group )
369398
370399 # The Sphere1 should still be in the display layer as valid path.
371- layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , fn = True )
400+ layerObjs = cmds .editDisplayLayerMembers (self .LAYER1 , query = True , ** self . kwArgsEditDisplayLayerMembers )
372401 self .assertFalse (self .XFORM1_CUBE1 in layerObjs )
373402 self .assertTrue (self .XFORM1_SPHERE1 in layerObjs )
374403 self ._testLayerFromPath (self .XFORM1_SPHERE1 , self .LAYER1 )
0 commit comments