+ look_names = [look[0] for look in looks]
+
+ # Option 1 - Add a 'look' to each Display
+ # - Assumes there is a Display for each ACES Output Transform
+ if multiple_displays:
+ for look_name in look_names:
+ config_data['looks'].append(look_name)
+
+ # Option 2
+ # - Copy each Output Transform colorspace
+ # - For each copy, add a LookTransform at the head of the from_reference
+ # transform list
+ # - Add these new copied colorspaces for the Displays / Views
+ else:
+ for display, view_list in config_data['displays'].iteritems():
+ output_colorspace_copy = None
+ look_names_string = ""
+ for view_name, output_colorspace in view_list.iteritems():
+ if view_name == "Output Transform":
+
+ print( "Adding new View that incorporates looks" )
+
+ # Make a copy of the output colorspace
+ output_colorspace_copy = copy.deepcopy(output_colorspace)
+
+ #for look_name in look_names:
+ for i in range(len(look_names)):
+ look_name = look_names[i]
+
+ # Add the LookTransform to the head of the from_reference transform list
+ if output_colorspace_copy.from_reference_transforms:
+ output_colorspace_copy.from_reference_transforms.insert(i, {'type': 'look',
+ 'look': look_name,
+ 'src': reference_name,
+ 'dst': reference_name,
+ 'direction': 'forward'})
+
+ # Add the LookTransform to the end of the to_reference transform list
+ if output_colorspace_copy.to_reference_transforms:
+ inverse_look_name = look_names[len(look_names) -1 -i]
+
+ output_colorspace_copy.to_reference_transforms.append({'type': 'look',
+ 'look': inverse_look_name,
+ 'src': reference_name,
+ 'dst': reference_name,
+ 'direction': 'inverse'})
+
+ if not look_name in config_data['looks']:
+ config_data['looks'].append(look_name)
+
+ look_names_string = ", ".join(look_names)
+ output_colorspace_copy.name = "%s with %s" % (output_colorspace.name, look_names_string)
+ output_colorspace_copy.aliases = ["out_%s" % compact(output_colorspace_copy.name)]
+
+ print( "Colorspace that incorporates looks created : %s" % output_colorspace_copy.name )
+
+ config_data['colorSpaces'].append(output_colorspace_copy)
+
+ if output_colorspace_copy:
+ print( "Adding colorspace that incorporates looks into view list" )
+
+ # Change the name of the View
+ view_list["Output Transform with %s" % look_names_string] = output_colorspace_copy
+ config_data['displays'][display] = view_list
+
+ #print( "Display : %s, View List : %s" % (display, ", ".join(view_list)) )
+
+def create_config(config_data,
+ aliases=False,
+ prefix=False,
+ multiple_displays=False,
+ look_info=[],
+ custom_lut_dir=None):
+ """
+ Object description.
+
+ Parameters
+ ----------
+ parameter : type
+ Parameter description.
+
+ Returns
+ -------
+ type
+ Return value description.
+ """
+
+ prefixed_names = {}
+ alias_colorspaces = []