Esempio n. 1
0
        public Node Create(Program parentProgram)
        {
            ActionNode node = new ActionNode()
                              .SetAction(Action)
                              .SetSource(Identifier, 0)
                              .SetPosition(new VectorPosition(0, 0))
                              .SetProgram(parentProgram) as ActionNode;

            this.CopyTo(node);

            InputHook[]  inputs  = new InputHook[Action.Inputs.Count];
            OutputHook[] outputs = new OutputHook[Action.Outputs.Count];

            for (int i = 0; i < Action.Inputs.Count; i++)
            {
                inputs[i] = new InputHook().SetType(Action.Inputs[i].Type).SetNode(node).SetName(Action.Inputs[i].Name).SetProgram(parentProgram) as InputHook;
            }

            for (int i = 0; i < Action.Outputs.Count; i++)
            {
                outputs[i] = new OutputHook().SetType(Action.Outputs[i].Type).SetNode(node).SetName(Action.Outputs[i].Name).SetProgram(parentProgram) as OutputHook;
            }

            node.SetInputs(inputs);
            node.SetOutputs(outputs);

            node.InitChildren();

            return(node);
        }