public LiteGraph.Node ConvertLogicalNodeToLitegraphNode(LogicalNode logicalNode)
        {
            LiteGraph.Node node = new LiteGraph.Node
            {
                title = logicalNode.Title,
                type = logicalNode.Type,
                id = logicalNode.Id
            };

            node.properties["objectType"] = logicalNode.GetType().ToString();

            if (logicalNode.Position != null)
                node.pos = new[] { logicalNode.Position.X, logicalNode.Position.Y };

            if (logicalNode.Size != null)
                node.size = new[] { logicalNode.Size.Width, logicalNode.Size.Height };

            node.inputs = new List<Input>();
            node.outputs = new List<Output>();

            if (logicalNode.Inputs != null)
                for (int j = 0; j < logicalNode.Inputs.Count; j++)
                {
                    node.inputs.Add(new Input
                    {
                        name = logicalNode.Inputs[j].Name,
                        type = "string"
                    });
                }

            if (logicalNode.Outputs != null)
                for (int j = 0; j < logicalNode.Outputs.Count; j++)
                {
                    node.outputs.Add(new Output
                    {
                        name = logicalNode.Outputs[j].Name,
                        type = "string"
                    });
                }

            return node;
        }
Пример #2
0
        public void UpdateNode(LogicalNode node)
        {
            DebugEngine($"Update node {node.GetType().Name}");

            LogicalNode oldNode = nodes.FirstOrDefault(x => x.Id == node.Id);

            oldNode.Inputs = node.Inputs;
            oldNode.Outputs = node.Outputs;
            oldNode.Position = node.Position;
            oldNode.Size = node.Size;
            oldNode.Title = node.Title;
            oldNode.Type = node.Type;

            if (db != null)
                db.UpdateNode(oldNode);

            OnNodeUpdatedEvent?.Invoke(node);
        }
Пример #3
0
        public void RemoveNode(LogicalNode node)
        {
            DebugEngine($"Remove node {node.GetType().Name}");
            OnNodeDeleteEvent?.Invoke(node);

            nodes.Remove(node);

            if (db != null)
                db.DeleteNode(node.Id);
        }
Пример #4
0
        public void AddNode(LogicalNode node)
        {
            nodes.Add(node);

            if (db != null)
                db.AddNode(node);

            DebugEngine($"New node {node.GetType().Name}");

            OnNewNodeEvent?.Invoke(node);
        }