"""Authored processing stages for the shared image geometry assets.""" from node_layout import arrange_nodes LAYOUTS = { "O Mesh Plane": ( { "Bounding Box": (-2320, 440), "Vector Math": (-2100, 650), "Separate XYZ": (-1870, 650), "Math": (-1870, 990), "Math.001": (-1650, 850), "Math.002": (-1430, 850), "Math.003": (-1200, 850), "Math.004": (-980, 850), "Math.005": (-760, 850), "Math.006": (-1650, 510), "Math.007": (-1430, 510), "Math.008": (-1200, 510), "Math.009": (-980, 510), "Math.010": (-760, 510), "Grid": (520, 340), "Position": (-950, -480), "Separate XYZ.001": (-720, -480), "Math.011": (-500, -340), "Math.012": (-280, -340), "Math.013": (-500, -610), "Math.014": (-280, -610), "Combine XYZ": (0, -340), "Store Named Attribute": (770, 340), "Vector Math.001": (740, 710), "Vector Math.002": (960, 710), "Transform Geometry": (1030, 340), "Bounding Box.001": (-1170, -990), "Vector Math.003": (-950, -990), "Separate XYZ.002": (-720, -990), "Bounding Box.002": (-330, 140), "Vector Math.004": (-100, 140), "Separate XYZ.003": (120, 270), "Math.015": (-520, 1390), "Math.016": (-290, 1390), "Math.017": (-520, 1160), "Math.018": (-290, 1160), "Math.019": (-70, 1390), "Math.020": (150, 1390), "Math.021": (380, 1390), "Math.022": (600, 1390), "Math.023": (830, 1390), "Math.024": (1050, 1390), "Combine XYZ.001": (280, 0), "Cube": (520, -170), "Store Named Attribute.001": (770, -170), "Transform Geometry.001": (1030, -170), "Compare": (1320, 410), "Switch": (1360, 0), "Capture Attribute": (1320, -580), "Join Geometry": (1720, 0), "Set Material Index": (1940, 0), "Delete Geometry": (2170, 0), "Group Output": (2390, 0), }, ( (("Bounding Box",), (-2550, 440)), (("Math",), (-2100, 1020)), (("Math.021",), (150, 1600)), (("Combine XYZ.001",), (120, 60)), (("Compare",), (1140, 540)), (("Capture Attribute",), (1140, -580)), (("Bounding Box.001",), (-1390, -990)), (("Bounding Box.002",), (-550, 140)), ), ), "O Image Depth Plane": ( { "Group": (0, 0), "Transform Geometry": (520, 0), "Set Position": (2470, 0), "Set Shade Smooth": (2730, 0), "Group Output": (2990, 0), "Math": (60, 340), "Combine XYZ": (240, 340), "Named Attribute": (240, -450), "Image Texture": (460, -450), "Separate XYZ": (640, -450), "Math.001": (820, -450), "Math.002": (1000, -450), "Math.003": (1180, -450), "Math.004": (1180, -660), "Math.005": (1380, -450), "Math.006": (1740, -1060), "Switch": (1760, -450), "Position": (820, -820), "Separate XYZ.001": (1000, -820), "Math.007": (1180, -820), "Math.008": (1380, -820), "Math.009": (1560, -820), "Switch.001": (1760, -820), "Math.010": (1970, -520), "Combine XYZ.001": (2150, -520), }, ( (("Group",), (-240, 0)), (("Math",), (-120, 340)), (("Image Texture",), (240, -310)), (("Math.001",), (640, -310)), (("Math.002", "Math.003"), (820, -590)), (("Math.004",), (1000, -660)), (("Math.006",), (1560, -1060)), (("Math.007",), (1000, -980)), ), ), } def layout_geometry(group): """Apply the authored layout for one geometry asset.""" positions, inputs = LAYOUTS[group.name] arrange_nodes(group, positions, inputs)