Skip to content

Commit 74b71e9

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

File tree

3 files changed

+57
-22
lines changed

3 files changed

+57
-22
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/discover/classify.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1599,7 +1599,7 @@ def filter_amf_components(
15991599
for filtered_amf_components_dict in filtered_amf_components_dicts
16001600
]
16011601

1602-
return filtered_amf_components
1602+
return sorted(filtered_amf_components)
16031603

16041604

16051605
if __name__ == "__main__":

opencolorio_config_aces/config/reference/generate/config.py

Lines changed: 46 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,20 @@ 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(
978+
{
979+
aces_transform_id,
980+
*amf_components.get(aces_transform_id, []),
981+
}
982+
)
983+
970984
# Checking whether the linked "DisplayColorspace"
971985
# "BuiltinTransform" style exists.
972986
style = transform_data["linked_display_colorspace_style"]
@@ -1100,6 +1114,11 @@ def generate_config_aces(
11001114
describe,
11011115
signature_only=True,
11021116
scheme=scheme,
1117+
interchange_mapping={
1118+
"amf_transform_ids": "\n".join(
1119+
filter_amf_components(amf_components, style)
1120+
)
1121+
},
11031122
)
11041123
view_transform["transforms_data"] = [transform_data]
11051124
view_transforms.append(view_transform)
@@ -1110,13 +1129,6 @@ def generate_config_aces(
11101129

11111130
display_style = transform_data["linked_display_colorspace_style"]
11121131

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-
11201132
display = style_to_display_colorspace(
11211133
display_style,
11221134
describe,
@@ -1126,11 +1138,20 @@ def generate_config_aces(
11261138
categories=transform_data.get("categories"),
11271139
aliases=transform_data_aliases(transform_data),
11281140
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-
),
1141+
interchange_mapping={
1142+
"amf_transform_ids": "\n".join(
1143+
filter_amf_components(
1144+
amf_components,
1145+
display_style,
1146+
additional_filterers["any"].get(
1147+
"amf_component_display_filterers"
1148+
),
1149+
additional_filterers["all"].get(
1150+
"amf_component_display_filterers"
1151+
),
1152+
)
1153+
)
1154+
},
11341155
)
11351156
display["transforms_data"] = [transform_data]
11361157
display_name = display["name"]
@@ -1170,6 +1191,11 @@ def generate_config_aces(
11701191
"style": style,
11711192
},
11721193
process_space=scene_reference_colorspace["name"],
1194+
interchange_mapping={
1195+
"amf_transform_ids": "\n".join(
1196+
filter_amf_components(amf_components, style)
1197+
)
1198+
},
11731199
)
11741200
look["transforms_data"] = [transform_data]
11751201
if look not in looks:
@@ -1180,10 +1206,6 @@ def generate_config_aces(
11801206
style,
11811207
)
11821208

1183-
filtered_amf_components = filter_amf_components(
1184-
amf_components, ctl_transform.aces_transform_id.aces_transform_id
1185-
)
1186-
11871209
colorspace = ctl_transform_to_colorspace(
11881210
ctl_transform,
11891211
describe,
@@ -1198,11 +1220,14 @@ def generate_config_aces(
11981220
categories=transform_data.get("categories"),
11991221
aliases=transform_data_aliases(transform_data),
12001222
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-
),
1223+
interchange_mapping={
1224+
"amf_transform_ids": "\n".join(
1225+
filter_amf_components(
1226+
amf_components,
1227+
ctl_transform.aces_transform_id.aces_transform_id,
1228+
)
1229+
)
1230+
},
12061231
)
12071232
colorspace["transforms_data"] = [transform_data]
12081233
if colorspace not in colorspaces:

0 commit comments

Comments
 (0)