#pragma warning restore #endregion fields & pins //called when data for any output pin is requested public void Evaluate(int SpreadMax) { FInput.Sync(); FBin.Sync(); if (FInput.IsChanged || FBin.IsChanged || FReverse.IsChanged) { VecBinSpread <T> spread = new VecBinSpread <T>(FInput, 1, FBin, FReverse.SliceCount); FOutput.Length = spread.ItemCount; using (var dataWriter = FOutput.GetWriter()) { for (int b = 0; b < spread.Count; b++) { T[] bin = spread[b]; if (FReverse[b]) { Array.Reverse(bin); } dataWriter.Write(bin, 0, bin.Length); } } } }