//called when data for any output pin is requested public void Evaluate(int SpreadMax) { if (FGrid.SliceCount >= 1 && FGrid[0] == null) FGrid[0] = new Grid(); SpreadMax = FIndex.SliceCount; // if (!FIndex.IsChanged) return; FOutput.SliceCount = 0; int count = -1; List<List<Grid>> list = new List<List<Grid>>(); foreach (Grid g in FGrid) { if (g.Order == 0) { count++; list.Add(new List<Grid>()); } list[count].Add(g); } for (int i=0;i<SpreadMax;i++) { FOutput.AddRange( list[VMath.Zmod(FIndex[i], count+1)] ); } //FLogger.Log(LogType.Debug, "hi tty!"); }
//called when data for any output pin is requested public void Evaluate(int SpreadMax) { if (FGrid.SliceCount >= 1 && FGrid[0] == null) FGrid[0] = new Grid(); SpreadMax = FInput.SliceCount; // if (!FInput.IsChanged) return; FIndex.SliceCount = SpreadMax; for (int i=0;i<SpreadMax;i++) { FIndex[i] = FGrid[i].GetIndex(FInput[i]); } //FLogger.Log(LogType.Debug, "hi tty!"); }