RepeatNodeStart.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using PixiEditor.ChangeableDocument.Changeables.Graph.Context;
  2. using PixiEditor.ChangeableDocument.Rendering;
  3. namespace PixiEditor.ChangeableDocument.Changeables.Graph.Nodes.Utility;
  4. [NodeInfo("RepeatStart")]
  5. [PairNode(typeof(RepeatNodeEnd), "RepeatZone", true)]
  6. public class RepeatNodeStart : Node
  7. {
  8. public FuncInputProperty<int, RepeatFuncContext> Iterations { get; }
  9. public FuncInputProperty<object, RepeatFuncContext> Input { get; }
  10. public FuncOutputProperty<int, RepeatFuncContext> CurrentIteration { get; }
  11. public FuncOutputProperty<object, RepeatFuncContext> Output { get; }
  12. public RepeatNodeStart()
  13. {
  14. Iterations = CreateFuncInput<int, RepeatFuncContext>("Iterations", "ITERATIONS", 1);
  15. Input = CreateFuncInput<object, RepeatFuncContext>("Input", "INPUT", null);
  16. CurrentIteration = CreateFuncOutput<int, RepeatFuncContext>("CurrentIteration", "CURRENT_ITERATION", GetIteration);
  17. Output = CreateFuncOutput<object, RepeatFuncContext>("Output", "OUTPUT", GetOutput);
  18. }
  19. protected override void OnExecute(RenderContext context)
  20. {
  21. RepeatFuncContext funcContext = new RepeatFuncContext(1);
  22. }
  23. private int GetIteration(RepeatFuncContext context)
  24. {
  25. return context.CurrentIteration;
  26. }
  27. private object GetOutput(RepeatFuncContext context)
  28. {
  29. return null;
  30. }
  31. public override Node CreateCopy()
  32. {
  33. return new RepeatNodeStart();
  34. }
  35. }