1 using System.Collections.Generic;
2 using System.Reflection;
4 using SiliconStudio.Paradox.Effects;
6 using Paradox.Effects.Yebis;
8 using SiliconStudio.Paradox.Games;
9 using SiliconStudio.Paradox.Games.Mathematics;
10 using SiliconStudio.Paradox.Games.ViewModel;
18 public void GenerateChildren(ViewModelContext context, IViewModelNode viewModelNode, ref
bool handled)
22 viewModelNode.Children.Add(
new ViewModelNode(
"Name",
new PropertyInfoViewModelContent(
new ParentNodeValueViewModelContent(), typeof(ComponentBase).GetProperty(
"Name"))));
23 viewModelNode.Children.Add(
new ViewModelNode(
"EventOpen",
new RootViewModelContent((ExecuteCommand)((viewModel2, parameter) =>
25 SelectedRenderPassPluginContext.ViewModelByGuid.Clear();
27 SelectedRenderPassPluginContext.Root =
new ViewModelNode(
"Root",
new RootViewModelContent(
new[] {
new ViewModelReference(viewModel2.Parent.NodeValue,
true) }, typeof(IList<ViewModelReference>)));
37 public void GenerateChildren(ViewModelContext context, IViewModelNode viewModelNode, ref
bool handled)
41 var pluginType = viewModelNode.NodeValue.GetType();
43 foreach (var propertyInfo
in pluginType.GetProperties(BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance))
45 IViewModelContent viewModelContent =
new PropertyInfoViewModelContent(
new ParentNodeValueViewModelContent(), propertyInfo);
47 if (propertyInfo.PropertyType == typeof(
RenderPass) || propertyInfo.PropertyType.IsSubclassOf(typeof(
RenderPass)))
48 viewModelContent = LambdaViewModelContent<ViewModelReference>.FromOperand<RenderPass>(viewModelContent, x =>
new ViewModelReference(x,
false));
49 else if (!propertyInfo.PropertyType.IsValueType || !propertyInfo.PropertyType.FullName.StartsWith(
"System."))
52 viewModelNode.Children.Add(
new ViewModelNode(propertyInfo.Name, viewModelContent));
56 foreach (var fieldinfo
in pluginType.GetFields( BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance))
58 IViewModelContent viewModelContent =
new FieldInfoViewModelContent(
new ParentNodeValueViewModelContent(pluginType), fieldinfo);
61 viewModelNode.Children.Add(
new ViewModelNode(fieldinfo.Name, viewModelContent).GenerateChildren(context));
65 else if (viewModelNode.Type.Namespace == typeof(ToneMap).Namespace
66 && viewModelNode.Type.IsValueType && !viewModelNode.Type.IsPrimitive && !viewModelNode.Type.IsEnum)
69 foreach (var fieldinfo
in viewModelNode.Type.GetFields(BindingFlags.FlattenHierarchy | BindingFlags.Public | BindingFlags.Instance))
71 IViewModelContent viewModelContent =
new FieldInfoViewModelContent(
new ParentValueViewModelContent(viewModelNode.Type), fieldinfo);
75 if (fieldinfo.FieldType.IsArray)
77 viewModelNode.Children.Add(
new ViewModelNode(fieldinfo.Name, viewModelContent).GenerateChildren(context));
void GenerateChildren(ViewModelContext context, IViewModelNode viewModelNode, ref bool handled)
void GenerateChildren(ViewModelContext context, IViewModelNode viewModelNode, ref bool handled)
ViewModelContext SelectedRenderPassPluginContext
RenderPass is a hierarchy that defines how to collect and render meshes.