5 namespace SiliconStudio.
Paradox.Effects
20 var newParams =
new T();
21 parameterCollection.CopyTo(newParams);
31 public static void CopyTo<T>(
this T parameters, ParameterCollection parametersTo) where T : ParameterCollection
33 if (parametersTo == null)
throw new ArgumentNullException(
"parametersTo");
34 foreach (var parameter
in parameters)
36 parametersTo.SetObject(parameter.Key, parameter.Value);
46 public static bool IsSubsetOf(
this ParameterCollection subset, ParameterCollection against)
48 foreach (var keyValuePair
in subset.InternalValues)
50 object value = against.GetObject(keyValuePair.Key);
52 var innerFrom = keyValuePair.Value.Object as ParameterCollection;
53 if (innerFrom != null)
55 var innerTo = value as ParameterCollection;
61 if (ReferenceEquals(innerFrom, innerTo))
66 if (!innerFrom.IsSubsetOf(innerTo))
73 var innerFromArray = keyValuePair.Value.Object as ParameterCollection[];
74 if (innerFromArray != null)
76 var innerToArray = value as ParameterCollection[];
77 if (innerToArray == null)
82 if (innerFromArray.Length != innerToArray.Length)
87 for (
int i = 0; i < innerFromArray.Length; i++)
89 if (ReferenceEquals(innerFromArray[i], innerToArray[i]))
94 if (innerFromArray[i] == null || innerToArray[i] == null)
99 if (!innerFromArray[i].IsSubsetOf(innerToArray[i]))
105 else if (!Equals(keyValuePair.Value.Object, value))
Extensions for ParameterCollection.
static bool IsSubsetOf(this ParameterCollection subset, ParameterCollection against)
Determines whether this instance container is the subset of another container.
A container to handle a hierarchical collection of effect variables.