Skip to content

Commit 9b28e0d

Browse files
committed
Add *AMF* component IDs to *Look* and *ViewTransform*.
Signed-off-by: Thomas Mansencal <[email protected]>
1 parent 3abd27c commit 9b28e0d

File tree

2 files changed

+51
-21
lines changed

2 files changed

+51
-21
lines changed

opencolorio_config_aces/config/generation/factories.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ def view_transform_factory(
383383
from_reference: Mapping[str, Any] | ocio.Transform | None = None,
384384
reference_space: str | int | None = None,
385385
base_view_transform: Mapping[str, Any] | ocio.ViewTransform | None = None,
386+
interchange_mapping: dict[str, str] | None = None,
386387
**kwargs: Any,
387388
) -> ocio.ViewTransform:
388389
"""
@@ -463,6 +464,10 @@ def view_transform_factory(
463464
if description is not None:
464465
view_transform.setDescription(description) # pyright: ignore
465466

467+
if interchange_mapping is not None:
468+
for key, value in interchange_mapping.items():
469+
view_transform.setInterchangeAttribute(key, value) # pyright: ignore
470+
466471
return view_transform
467472

468473

@@ -473,6 +478,7 @@ def look_factory(
473478
forward_transform: Mapping[str, Any] | ocio.Transform | None = None,
474479
inverse_transform: Mapping[str, Any] | ocio.Transform | None = None,
475480
base_look: Mapping[str, Any] | ocio.Look | None = None,
481+
interchange_mapping: dict[str, str] | None = None,
476482
**kwargs: Any,
477483
) -> ocio.Look:
478484
"""
@@ -534,6 +540,10 @@ def look_factory(
534540
if description is not None:
535541
look.setDescription(description) # pyright: ignore
536542

543+
if interchange_mapping is not None:
544+
for key, value in interchange_mapping.items():
545+
look.setInterchangeAttribute(key, value) # pyright: ignore
546+
537547
return look
538548

539549

opencolorio_config_aces/config/reference/generate/config.py

Lines changed: 41 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,15 @@ def generate_config_aces(
967967
)
968968
continue
969969

970+
# Extending the "AMF" relations.
971+
if not amf_components.get(style):
972+
amf_components[style] = []
973+
974+
if (
975+
aces_transform_id := transform_data.get("aces_transform_id")
976+
) is not None:
977+
amf_components[style].extend([aces_transform_id])
978+
970979
# Checking whether the linked "DisplayColorspace"
971980
# "BuiltinTransform" style exists.
972981
style = transform_data["linked_display_colorspace_style"]
@@ -1100,6 +1109,11 @@ def generate_config_aces(
11001109
describe,
11011110
signature_only=True,
11021111
scheme=scheme,
1112+
interchange_mapping={
1113+
"amf_transform_ids": "\n".join(
1114+
filter_amf_components(amf_components, style)
1115+
)
1116+
},
11031117
)
11041118
view_transform["transforms_data"] = [transform_data]
11051119
view_transforms.append(view_transform)
@@ -1110,13 +1124,6 @@ def generate_config_aces(
11101124

11111125
display_style = transform_data["linked_display_colorspace_style"]
11121126

1113-
filtered_amf_components = filter_amf_components(
1114-
amf_components,
1115-
display_style,
1116-
additional_filterers["any"].get("amf_component_display_filterers"),
1117-
additional_filterers["all"].get("amf_component_display_filterers"),
1118-
)
1119-
11201127
display = style_to_display_colorspace(
11211128
display_style,
11221129
describe,
@@ -1126,11 +1133,20 @@ def generate_config_aces(
11261133
categories=transform_data.get("categories"),
11271134
aliases=transform_data_aliases(transform_data),
11281135
interop_id=transform_data.get("interop_id"),
1129-
interchange_mapping=(
1130-
None
1131-
if filtered_amf_components is None
1132-
else {"amf_transform_ids": "\n".join(filtered_amf_components)}
1133-
),
1136+
interchange_mapping={
1137+
"amf_transform_ids": "\n".join(
1138+
filter_amf_components(
1139+
amf_components,
1140+
display_style,
1141+
additional_filterers["any"].get(
1142+
"amf_component_display_filterers"
1143+
),
1144+
additional_filterers["all"].get(
1145+
"amf_component_display_filterers"
1146+
),
1147+
)
1148+
)
1149+
},
11341150
)
11351151
display["transforms_data"] = [transform_data]
11361152
display_name = display["name"]
@@ -1170,6 +1186,11 @@ def generate_config_aces(
11701186
"style": style,
11711187
},
11721188
process_space=scene_reference_colorspace["name"],
1189+
interchange_mapping={
1190+
"amf_transform_ids": "\n".join(
1191+
filter_amf_components(amf_components, style)
1192+
)
1193+
},
11731194
)
11741195
look["transforms_data"] = [transform_data]
11751196
if look not in looks:
@@ -1180,10 +1201,6 @@ def generate_config_aces(
11801201
style,
11811202
)
11821203

1183-
filtered_amf_components = filter_amf_components(
1184-
amf_components, ctl_transform.aces_transform_id.aces_transform_id
1185-
)
1186-
11871204
colorspace = ctl_transform_to_colorspace(
11881205
ctl_transform,
11891206
describe,
@@ -1198,11 +1215,14 @@ def generate_config_aces(
11981215
categories=transform_data.get("categories"),
11991216
aliases=transform_data_aliases(transform_data),
12001217
interop_id=transform_data.get("interop_id"),
1201-
interchange_mapping=(
1202-
None
1203-
if filtered_amf_components is None
1204-
else {"amf_transform_ids": "\n".join(filtered_amf_components)}
1205-
),
1218+
interchange_mapping={
1219+
"amf_transform_ids": "\n".join(
1220+
filter_amf_components(
1221+
amf_components,
1222+
ctl_transform.aces_transform_id.aces_transform_id,
1223+
)
1224+
)
1225+
},
12061226
)
12071227
colorspace["transforms_data"] = [transform_data]
12081228
if colorspace not in colorspaces:

0 commit comments

Comments
 (0)