Skip to content

Commit a2fdf40

Browse files
authored
Merge pull request #2524 from Autodesk/donnels/MAYA-124484/test_ufeObjects_flag
MAYA-124484: Display Layers
2 parents 387a1fa + 50fab7c commit a2fdf40

File tree

2 files changed

+55
-20
lines changed

2 files changed

+55
-20
lines changed

test/lib/mayaUsd/fileio/testDisplayLayerSaveRestore.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ def testDisplayLayerSaveAndRestore(self):
5454
if 'ufeMembers' not in cmds.listAttr('layer1'):
5555
self.skipTest('Maya DisplayLayer does not support saving/restoring Ufe (non-Maya) members.')
5656

57+
# editDisplayLayerMembers became Ufe opt-in
58+
kwArgs = {'fn' : True}
59+
cmdHelp = cmds.help('editDisplayLayerMembers')
60+
if '-ufeObjects' in cmdHelp:
61+
kwArgs['ufeObjects'] = True
62+
5763
# Create some objects to add to layer.
5864
cmds.CreatePolygonSphere()
5965
cmds.CreatePolygonCube()
@@ -67,7 +73,7 @@ def testDisplayLayerSaveAndRestore(self):
6773
cmds.editDisplayLayerMembers('layer1', '|pSphere1', '|stage1|stageShape1,/Sphere1', noRecurse=True)
6874

6975
# Verify they are in layer.
70-
layerObjs = cmds.editDisplayLayerMembers('layer1', query=True, fn=True)
76+
layerObjs = cmds.editDisplayLayerMembers('layer1', query=True, **kwArgs)
7177
self.assertTrue('|pSphere1' in layerObjs)
7278
self.assertTrue('|stage1|stageShape1,/Sphere1' in layerObjs)
7379

@@ -81,7 +87,7 @@ def testDisplayLayerSaveAndRestore(self):
8187
cmds.file(tempMayaFile, open=True)
8288

8389
# Verify the two objects (Maya and non-Maya are in layer).
84-
layerObjs = cmds.editDisplayLayerMembers('layer1', query=True, fn=True)
90+
layerObjs = cmds.editDisplayLayerMembers('layer1', query=True, **kwArgs)
8591
self.assertTrue('|pSphere1' in layerObjs)
8692
self.assertTrue('|stage1|stageShape1,/Sphere1' in layerObjs)
8793

test/lib/ufe/testDisplayLayer.py

Lines changed: 47 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)