public ExampleForm() { InitializeComponent(); var someNode = new Node("My Title"); someNode.Location = new Point(500, 100); var check1Item = new NodeCheckboxItem("Check 1", true, false); someNode.AddItem(check1Item); someNode.AddItem(new NodeCheckboxItem("Check 2", true, false)); graphControl.AddNode(someNode); var colorNode = new Node("Color"); colorNode.Location = new Point(200, 50); var redChannel = new NodeSliderItem("R", 64.0f, 16.0f, 0, 1.0f, 0.0f, false, false); var greenChannel = new NodeSliderItem("G", 64.0f, 16.0f, 0, 1.0f, 0.0f, false, false); var blueChannel = new NodeSliderItem("B", 64.0f, 16.0f, 0, 1.0f, 0.0f, false, false); var colorItem = new NodeColorItem("Color", Color.Black, false, true); EventHandler <NodeItemEventArgs> channelChangedDelegate = delegate(object sender, NodeItemEventArgs args) { var red = redChannel.Value; var green = blueChannel.Value; var blue = greenChannel.Value; colorItem.Color = Color.FromArgb((int)Math.Round(red * 255), (int)Math.Round(green * 255), (int)Math.Round(blue * 255)); }; redChannel.ValueChanged += channelChangedDelegate; greenChannel.ValueChanged += channelChangedDelegate; blueChannel.ValueChanged += channelChangedDelegate; colorNode.AddItem(redChannel); colorNode.AddItem(greenChannel); colorNode.AddItem(blueChannel); colorItem.Clicked += new EventHandler <NodeItemEventArgs>(OnColClicked); colorNode.AddItem(colorItem); graphControl.AddNode(colorNode); var textureNode = new Node("Texture"); textureNode.Location = new Point(300, 150); var imageItem = new NodeImageItem(Properties.Resources.example, 64, 64, false, true); imageItem.Clicked += new EventHandler <NodeItemEventArgs>(OnImgClicked); textureNode.AddItem(imageItem); graphControl.AddNode(textureNode); graphControl.ConnectionAdded += new EventHandler <AcceptNodeConnectionEventArgs>(OnConnectionAdded); graphControl.ConnectionRemoving += new EventHandler <AcceptNodeConnectionEventArgs>(OnConnectionRemoved); graphControl.Connect(colorItem, check1Item); }
private void TextureNode_MouseDown(object sender, MouseEventArgs e) { var textureNode = new Node("Texture"); textureNode.Location = new Point(300, 150); var imageItem = new NodeImageItem(Properties.Resources.example, 64, 64, false, true); imageItem.Clicked += new EventHandler <NodeItemEventArgs>(OnImgClicked); textureNode.AddItem(imageItem); this.DoDragDrop(textureNode, DragDropEffects.Copy); }
protected MyNodeView(MyNodeConfig nodeInfo, GraphControl owner) : base("") { NodeInfo = nodeInfo; Owner = owner; m_icon = nodeInfo.BigImage; m_iconItem = new NodeImageItem(m_icon, 48, 48, false, false); m_iconItem.Tag = 0; m_descItem = new NodeLabelItem(""); AddItem(m_iconItem); AddItem(m_descItem); }
protected MyNodeView(MyNodeConfig nodeConfig, GraphControl owner) : base("") { Owner = owner; Config = nodeConfig; m_icon = nodeConfig.BigImage; m_iconItem = new NodeImageItem(m_icon, 48, 48, false, false) { IsPassive = true, Tag = 0 }; m_descItem = new NodeLabelItem("") { IsPassive = true }; AddItem(m_iconItem); AddItem(m_descItem); }
public Node CreateNode() { Node addColorNode = new Node(GetNodeName()); addColorNode.Location = new Point(200, 50); var color = new NodeLabelItem("Color", true, false, new[] { typeof(ShaderTypes.float3), typeof(ShaderTypes.float4) }, null) { Tag = 1 }; var imageIn = new NodeLabelItem("Image", true, false, new[] { typeof(ShaderTypes.sampler2D) }, null) { Tag = 2 }; var imageOut = new NodeImageItem(Properties.Resources.DefaultImage, 64, 64, false, true, null, new[] { typeof(Image) }) { Tag = 3 }; addColorNode.AddItem(color); addColorNode.AddItem(imageIn); addColorNode.AddItem(imageOut); addColorNode.ParentModule = this; return(addColorNode); }
public void HandleConnectionAdded(NodeConnection connection, bool input) { NodeConnector connector; Node node; NodeItem colorFromItem = null; NodeImageItem imageFromItem = null; NodeImageItem imageOutputItem = null; if (input) { node = connection.To.Node; } else { node = connection.From.Node; } NodeItem colorToItem = (NodeItem)node.Items.FirstOrDefault(item => item.Tag.Equals(1)); NodeItem imageToItem = (NodeItem)node.Items.FirstOrDefault(item => item.Tag.Equals(2)); imageOutputItem = (NodeImageItem)node.Items.FirstOrDefault(item => item.Tag.Equals(3)); var outArgs = new NodeItemEventArgs(imageOutputItem); foreach (NodeConnection conn in node.Connections) { if (conn.To.Item == null) { continue; } if (conn.To.Item == imageToItem) { imageFromItem = conn.From.Item as NodeImageItem; } if (conn.To.Item == colorToItem) { colorFromItem = conn.From.Item; } } if (!colorHandlerDict.ContainsKey(node) && colorFromItem != null && imageFromItem != null) { colorHandlerDict[node] = (sender, args) => { if (imageFromItem != null && colorFromItem != null) { imageOutputItem.Image = AddColor(HelperMethods.ColorFromFloatStruct(colorFromItem.OutputData), imageFromItem.Image); node.UpdateOutput(outArgs); } }; colorFromItem.Node.OutputChanged += colorHandlerDict[node]; } if (!imageHandlerDict.ContainsKey(node) && imageFromItem != null && colorFromItem != null) { imageHandlerDict[node] = (sender, args) => { if (imageFromItem != null && colorFromItem != null) { imageOutputItem.Image = AddColor(HelperMethods.ColorFromFloatStruct(colorFromItem.OutputData), imageFromItem.Image); node.UpdateOutput(outArgs); } }; imageFromItem.Node.OutputChanged += imageHandlerDict[node]; } if (imageFromItem != null && colorFromItem != null) { imageOutputItem.Image = AddColor(HelperMethods.ColorFromFloatStruct(colorFromItem.OutputData), imageFromItem.Image); node.UpdateOutput(outArgs); } }