Exemplo n.º 1
0
        /// <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]);
             }
         }
     }
 }
Exemplo n.º 3
0
        /// <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
            });
        }