private void OnAddInput(object e) { CKlaxVariable newInput = new CKlaxVariable() { Name = "NewVariable", Type = typeof(int), Value = 0 }; AddInput(newInput, true); }
public CSetKlaxVariableNode(CKlaxVariable sourceVariable) { IsImplicit = true; SourceVariable = sourceVariable; CExecutionPin inPin = new CExecutionPin("In"); InExecutionPins.Add(inPin); CExecutionPin outPin = new CExecutionPin("Out"); OutExecutionPins.Add(outPin); }
private void OnAddInput(object e) { if (m_functionGraph == null) { return; } CKlaxVariable newInput = new CKlaxVariable() { Name = "NewVariable", Type = typeof(int), Value = 0 }; AddInput(newInput, true); }
private void AddInput(CKlaxVariable parameter, bool bIsNewParameter) { var newViewmodel = new CEntityVariableViewModel(parameter); var functionGraph = m_functionGraph; void Redo() { newViewmodel.PropertyChanged += OnParameterPropertyChanged; functionGraph.InputParameters.Add(parameter); InputParameters.Add(newViewmodel); functionGraph.RebuildFunctionNodes(); } void Undo() { newViewmodel.PropertyChanged -= OnParameterPropertyChanged; InputParameters.Remove(newViewmodel); functionGraph.InputParameters.Remove(parameter); functionGraph.RebuildFunctionNodes(); } newViewmodel.DeleteCommand = new CRelayCommand(arg => { Undo(); UndoRedoUtility.Record(new CRelayUndoItem(Redo, Undo)); }); if (bIsNewParameter) { Redo(); } else { newViewmodel.PropertyChanged += OnParameterPropertyChanged; InputParameters.Add(newViewmodel); } if (bIsNewParameter) { UndoRedoUtility.Record(new CRelayUndoItem(Undo, Redo)); } }
public void RebuildNode(List <CKlaxVariable> returnParameters) { // Adjust the nodes input pins to the new return parameters // Note the editor has to take care of adjusting pin connections if (returnParameters.Count >= InputPins.Count) { for (int i = 0; i < returnParameters.Count; i++) { CKlaxVariable returnParameter = returnParameters[i]; if (InputPins.Count > i) { CInputPin pin = InputPins[i]; pin.Name = returnParameter.Name; pin.Type = returnParameter.Type; } else { InputPins.Add(new CInputPin(returnParameter.Name, returnParameter.Type)); } } } else { for (int i = InputPins.Count - 1; i >= 0; i--) { if (returnParameters.Count > i) { CKlaxVariable returnParameter = returnParameters[i]; CInputPin pin = InputPins[i]; pin.Name = returnParameter.Name; pin.Type = returnParameter.Type; } else { InputPins.RemoveAt(i); } } } RaiseNodeRebuildEvent(); }
public void RebuildNode(List <CKlaxVariable> inputParameters) { // Adjust the nodes output pins to the new input parameters // Note the editor has to take care of adjusting pin connections if (inputParameters.Count >= OutputPins.Count) { for (int i = 0; i < inputParameters.Count; i++) { CKlaxVariable inputParameter = inputParameters[i]; if (OutputPins.Count > i) { COutputPin pin = OutputPins[i]; pin.Name = inputParameter.Name; pin.Type = inputParameter.Type; } else { OutputPins.Add(new COutputPin(inputParameter.Name, inputParameter.Type)); } } } else { for (int i = OutputPins.Count - 1; i >= 0; i--) { if (inputParameters.Count > i) { CKlaxVariable inputParameter = inputParameters[i]; COutputPin pin = OutputPins[i]; pin.Name = inputParameter.Name; pin.Type = inputParameter.Type; } else { OutputPins.RemoveAt(i); } } } RaiseNodeRebuildEvent(); }
private void AddInput(CKlaxVariable parameter, bool bIsNewParameter) { var newViewmodel = new CEntityVariableViewModel(parameter); void Redo() { m_interfaceFunction.InputParameters.Add(parameter); InputParameters.Add(newViewmodel); } void Undo() { InputParameters.Remove(newViewmodel); m_interfaceFunction.InputParameters.Remove(parameter); } newViewmodel.DeleteCommand = new CRelayCommand(arg => { Undo(); UndoRedoUtility.Record(new CRelayUndoItem(Redo, Undo)); }); if (bIsNewParameter) { Redo(); } else { InputParameters.Add(newViewmodel); } if (bIsNewParameter) { UndoRedoUtility.Record(new CRelayUndoItem(Undo, Redo)); } }
public CGetKlaxVariableNode(CKlaxVariable sourceVariable) { IsImplicit = true; SourceVariable = sourceVariable; }
private void OnFunctionRebuilt() { // Input parameter rebuild if (m_targetFunction.InputParameters.Count > InputPins.Count) { for (int i = 0; i < m_targetFunction.InputParameters.Count; i++) { CKlaxVariable inputParameter = m_targetFunction.InputParameters[i]; if (InputPins.Count > i) { InputPins[i].Type = inputParameter.Type; InputPins[i].Name = inputParameter.Name; } else { InputPins.Add(new CInputPin(inputParameter.Name, inputParameter.Type)); } } } else { for (int i = InputPins.Count - 1; i >= 0; i--) { if (m_targetFunction.InputParameters.Count > i) { CKlaxVariable inputParameter = m_targetFunction.InputParameters[i]; InputPins[i].Type = inputParameter.Type; InputPins[i].Name = inputParameter.Name; } else { InputPins.RemoveAt(i); } } } // Output parameter rebuild if (m_targetFunction.OutputParameters.Count > OutputPins.Count) { for (int i = 0; i < m_targetFunction.OutputParameters.Count; i++) { CKlaxVariable outputParameter = m_targetFunction.OutputParameters[i]; if (OutputPins.Count > i) { OutputPins[i].Type = outputParameter.Type; OutputPins[i].Name = outputParameter.Name; } else { OutputPins.Add(new COutputPin(outputParameter.Name, outputParameter.Type)); } } } else { for (int i = OutputPins.Count - 1; i >= 0; i--) { if (m_targetFunction.OutputParameters.Count > i) { CKlaxVariable outputParameter = m_targetFunction.OutputParameters[i]; OutputPins[i].Type = outputParameter.Type; OutputPins[i].Name = outputParameter.Name; } else { OutputPins.RemoveAt(i); } } } RaiseNodeRebuildEvent(); }