コード例 #1
0
        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
 private static void OnNewLogicalNodeEvent(LogicalNode node)
 {
     NodesEditorAPIController nodesEditorApi=new NodesEditorAPIController();
     LiteGraph.Node liteGraphNode = nodesEditorApi.ConvertLogicalNodeToLitegraphNode(node);
     hub.Clients.All.OnNewLogicalNodeEvent(liteGraphNode);
 }
コード例 #3
0
        private void UpdateNodes(object sender, ElapsedEventArgs e)
        {
            if (nodes == null)
                return;

            updateNodesTimer.Stop();

            try
            {
                //to prevent changing of collection while writing to db is not yet finished
                LogicalNode[] nodesTemp = new LogicalNode[nodes.Count];
                nodes.CopyTo(nodesTemp);

                foreach (var node in nodesTemp)
                {
                    node.Loop();
                }
            }
            catch { }

            updateNodesTimer.Start();
        }
コード例 #4
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);
        }
コード例 #5
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);
        }
コード例 #6
0
        public void AddNode(LogicalNode node)
        {
            nodes.Add(node);

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

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

            OnNewNodeEvent?.Invoke(node);
        }