示例#1
0
 public NodeVertex GetVertex(IGraphicsCompositorBlockViewModel block)
 {
     return(vertexMapping[block]);
     //NodeVertex vertex;
     //vertexMapping.TryGetValue(block, out vertex);
     //return vertex;
 }
示例#2
0
        public void RemoveVertex(IGraphicsCompositorBlockViewModel block)
        {
            var vertex = GetVertex(block);

            vertexMapping.Remove(block);
            blockMapping.Remove(vertex);
            vertices.Remove(vertex);
        }
示例#3
0
        public void CreateVertex(IGraphicsCompositorBlockViewModel block)
        {
            var vertex = new GraphicsCompositorNodeVertex(this, block)
            {
                ID = ++vertexId
            };

            vertices.Add(vertex);
            vertexMapping.Add(block, vertex);
            blockMapping.Add(vertex, block);
        }
        internal GraphicsCompositorNodeVertex([NotNull] GraphicsCompositorGraph graph, [NotNull] IGraphicsCompositorBlockViewModel block)
        {
            if (graph == null)
            {
                throw new ArgumentNullException(nameof(graph));
            }
            this.graph = graph;
            Block      = block;

            InputSlots  = new ObservableCollection <object>();
            OutputSlots = new ObservableCollection <object>();
            block.InputSlots.ForEach(AddInputSlot);
            block.OutputSlots.ForEach(AddOutputSlot);

            // Track slot changes
            block.InputSlots.CollectionChanged  += InputSlotsCollectionChanged;
            block.OutputSlots.CollectionChanged += OutputSlotsCollectionChanged;
        }