Use collected cameras in validation, instead of collecting again.

This commit is contained in:
Roy Nieterau 2018-11-23 18:01:05 +01:00
parent 0fab828311
commit 40bf199f6e

View file

@ -3,7 +3,6 @@ from maya import cmds
import pyblish.api
import colorbleed.api
import colorbleed.maya.action
import colorbleed.maya.lib as lib
class ValidateRenderNoDefaultCameras(pyblish.api.InstancePlugin):
@ -18,19 +17,14 @@ class ValidateRenderNoDefaultCameras(pyblish.api.InstancePlugin):
@staticmethod
def get_invalid(instance):
layer = instance.data["setMembers"]
renderable = set(instance.data["cameras"])
# Collect default cameras
cameras = cmds.ls(type='camera', long=True)
defaults = [cam for cam in cameras if
cmds.camera(cam, query=True, startupCamera=True)]
defaults = set(cam for cam in cameras if
cmds.camera(cam, query=True, startupCamera=True))
invalid = []
for cam in defaults:
if lib.get_attr_in_layer(cam + ".renderable", layer=layer):
invalid.append(cam)
return invalid
return [cam for cam in renderable if cam in defaults]
def process(self, instance):
"""Process all the cameras in the instance"""