Exemplo n.º 1
0
        public SubstanceNodeViewModel(Substance sub)
        {
            Substance = sub;

            Name = Substance.Name;

            switch (Substance)
            {
            case Substance <ObservableCollection <PrimitiveBinding <float> > > float_sub:
                ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <float> > > float_output = new ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <float> > >();
                float_output.Editor = new FloatValueEditorViewModel()
                {
                    Value = float_sub.Data
                };

                Outputs.Edit(x => x.Add(float_output));
                break;

            case Substance <ObservableCollection <PrimitiveBinding <int> > > int_sub:
                ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <int> > > int_output = new ValueNodeOutputViewModel <ObservableCollection <PrimitiveBinding <int> > >();
                int_output.Editor = new IntegerValueEditorViewModel()
                {
                    Value = int_sub.Data
                };

                Outputs.Edit(x => x.Add(int_output));
                break;

            case Substance <ObservableCollection <BindingVector3> > vec_sub:
                ValueNodeOutputViewModel <ObservableCollection <BindingVector3> > vec_output = new ValueNodeOutputViewModel <ObservableCollection <BindingVector3> >();
                vec_output.Editor = new VectorValueEditorViewModel()
                {
                    Value = vec_sub.Data
                };

                Outputs.Edit(x => x.Add(vec_output));
                break;

            case Substance <PrimitiveBinding <string> > string_sub:
                ValueNodeOutputViewModel <PrimitiveBinding <string> > string_output = new ValueNodeOutputViewModel <PrimitiveBinding <string> >();
                string_output.Editor = new StringValueEditorViewModel()
                {
                    Value = string_sub.Data
                };

                Outputs.Edit(x => x.Add(string_output));
                break;

            default:
                Outputs.Edit(x => x.Add(new NodeOutputViewModel()));
                break;
            }
        }
Exemplo n.º 2
0
        public BeginNodeViewModel(Staff actor)
        {
            Actor = actor;
            Name  = Actor.Name;

            // Create exec output node
            NodeOutputViewModel exec_output = new NodeOutputViewModel()
            {
                Name = "Begin", Port = new ExecPortViewModel()
                {
                    PortType = PortType.Execution
                }, MaxConnections = 1
            };

            Outputs.Edit(x => x.Add(exec_output));

            exec_output.Connections.Connect()
            .Subscribe(change => {
                OnExecOutputChanged(change);
            });
        }
Exemplo n.º 3
0
        public CutNodeViewModel(Cut cut)
        {
            Cut = cut;
            cut.NodeViewModel = this;

            // Create exec input node
            NodeInputViewModel exec_input = new NodeInputViewModel()
            {
                Port = new ExecPortViewModel()
                {
                    PortType = PortType.Execution
                }, MaxConnections = 1
            };

            Inputs.Edit(x => x.Add(exec_input));

            exec_input.Connections.Connect()
            .Subscribe(change => {
                OnExecInputChanged(change);
            });

            // Create exec output node
            NodeOutputViewModel exec_output = new NodeOutputViewModel()
            {
                Port = new ExecPortViewModel()
                {
                    PortType = PortType.Execution
                }, MaxConnections = 1
            };

            Outputs.Edit(x => x.Add(exec_output));

            exec_output.Connections.Connect()
            .Subscribe(change => {
                OnExecOutputChanged(change);
            });

            PropertyChanged += CutNodeViewModel_PropertyChanged;
        }
Exemplo n.º 4
0
        public BlockingCutNodeViewModel(Cut cut)
        {
            Cut  = cut;
            Name = "Blocking Actions";
            BlockingCutEditor = new BlockingCutEditorViewModel(cut);

            // Create exec input node
            NodeInputViewModel exec_input = new NodeInputViewModel()
            {
                Port = new ExecPortViewModel()
                {
                    PortType = PortType.Execution
                }, MaxConnections = 1
            };

            Inputs.Edit(x => x.Add(exec_input));

            exec_input.Connections.Connect()
            .Subscribe(change => {
                OnExecInputChanged(change);
            });

            // Create exec output node
            NodeOutputViewModel exec_output = new NodeOutputViewModel()
            {
                Port = new ExecPortViewModel()
                {
                    PortType = PortType.Execution
                }, MaxConnections = 1, Editor = BlockingCutEditor
            };

            Outputs.Edit(x => x.Add(exec_output));

            exec_output.Connections.Connect()
            .Subscribe(change => {
                OnExecOutputChanged(change);
            });
        }