/// <summary> /// Add the parameter to the collection. /// </summary> /// <typeparam name="T">The type of the parameter.</typeparam> /// <param name="key">The key of the variable.</param> /// <param name="value"></param> /// <param name="collection"></param> private void AddToCollection <T>(ParameterKey key, object value, ParameterCollectionData collection) { var pk = key as ParameterKey <T>; if (pk != null) { collection.Set(pk, value); } }
private static void SetShadowCasterReceiverConfiguration(ParameterCollectionData sourceParameters, ParameterCollectionData targetParameters, params ParameterKey[] keys) { if (sourceParameters != null) { foreach (var key in keys) { if (sourceParameters.ContainsKey(key)) { targetParameters.Set(key, sourceParameters[key]); } } } }
/// <summary> /// Gather all the parameters in the node hierarchy. /// </summary> /// <param name="node">The node to look into.</param> /// <param name="parameters">The parameter collection to fill.</param> private void GetParametersFromNode(IMaterialNode node, ParameterCollectionData parameters) { if (node == null) { return; } node.VisitNodes((context, nodeEntry) => { var shaderNode = nodeEntry.Node as MaterialShaderClassNode; if (shaderNode != null) { //foreach (var member in shaderNode.Members) foreach (var member in shaderNode.GetParameters(context)) { parameters.Set(member.Key, member.Value); } } }, new MaterialContext { Material = Material, ExploreGenerics = false }); }