protected void BuildParameterCustom(GraphParameterValue v) { try { PropertyInfo info2 = v.GetType().GetProperty("Value"); if (v.Value is double || v.Value is float || v.Value is int || v.Type == NodeType.Float) { NumberSlider sp = new NumberSlider(); sp.Set(v.Min, v.Max, info2, v); Stack.Children.Add(sp); } else if (v.Value is bool || v.Type == NodeType.Bool) { ToggleControl tc = new ToggleControl(v.Name, info2, v); Stack.Children.Add(tc); } else if (v.Type == NodeType.Float2 || v.Type == NodeType.Float3 || v.Type == NodeType.Float4) { VectorSlider vs = new VectorSlider(info2, v, v.Min, v.Max, v.Type); Stack.Children.Add(vs); } else if (v.Value is MVector || v.Type == NodeType.Color || v.Type == NodeType.Gray) { ColorSelect cs = new ColorSelect(info2, v); Stack.Children.Add(cs); } } catch (Exception e) { Console.WriteLine(e.StackTrace); } }
protected void BuildParameter(string parameter, GraphParameterValue v, Node n) { try { PropertyInfo info1 = n.GetType().GetProperty(parameter); PropertyInfo info2 = v.GetType().GetProperty("Value"); if (info1 == null) { if (v.Value is float) { NumberInput np = new NumberInput(NumberInputType.Float, v, info2); Stack.Children.Add(np); } else if (v.Value is int) { NumberInput np = new NumberInput(NumberInputType.Int, v, info2); Stack.Children.Add(np); } else if (v.Value is bool) { ToggleControl tc = new ToggleControl("True", info2, v); Stack.Children.Add(tc); } } else { if (v.Value is float || v.Value is int) { SliderAttribute sl = info1.GetCustomAttribute <SliderAttribute>(); if (sl != null) { NumberSlider inp = new NumberSlider(sl, info2, v); Stack.Children.Add(inp); } else if (v.Value is float) { NumberInput np = new NumberInput(NumberInputType.Float, v, info2); Stack.Children.Add(np); } else if (v.Value is int) { NumberInput np = new NumberInput(NumberInputType.Int, v, info2); Stack.Children.Add(np); } } else if (v.Value is bool) { ToggleControl tc = new ToggleControl(v.Name, info2, v); Stack.Children.Add(tc); } else if (v.Value is Vector4) { ColorSelect cs = new ColorSelect(info2, v); Stack.Children.Add(cs); } } } catch (Exception e) { Console.WriteLine(e.StackTrace); } }