Bases: InstancePlugin
Validates Camera instance contents.
A Camera instance may only hold a SINGLE camera's transform
Source code in client/ayon_max/plugins/publish/validate_camera_contents.py
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | class ValidateCameraContent(pyblish.api.InstancePlugin):
"""Validates Camera instance contents.
A Camera instance may only hold a SINGLE camera's transform
"""
order = pyblish.api.ValidatorOrder
families = ["camera", "review"]
hosts = ["max"]
label = "Camera Contents"
camera_type = ["$Free_Camera", "$Target_Camera",
"$Physical_Camera", "$Target"]
def process(self, instance):
invalid = self.get_invalid(instance)
if invalid:
raise PublishValidationError(("Camera instance must only include"
"camera (and camera target). "
f"Invalid content {invalid}"))
def get_invalid(self, instance):
"""
Get invalid nodes if the instance is not camera
"""
invalid = []
container = instance.data["instance_node"]
self.log.info(f"Validating camera content for {container}")
selection_list = instance.data["members"]
for sel in selection_list:
# to avoid Attribute Error from pymxs wrapper
sel_tmp = str(sel)
found = any(sel_tmp.startswith(cam) for cam in self.camera_type)
if not found:
self.log.error("Camera not found")
invalid.append(sel)
return invalid
|
get_invalid(instance)
Get invalid nodes if the instance is not camera
Source code in client/ayon_max/plugins/publish/validate_camera_contents.py
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 | def get_invalid(self, instance):
"""
Get invalid nodes if the instance is not camera
"""
invalid = []
container = instance.data["instance_node"]
self.log.info(f"Validating camera content for {container}")
selection_list = instance.data["members"]
for sel in selection_list:
# to avoid Attribute Error from pymxs wrapper
sel_tmp = str(sel)
found = any(sel_tmp.startswith(cam) for cam in self.camera_type)
if not found:
self.log.error("Camera not found")
invalid.append(sel)
return invalid
|