#pragma warning restore public void Evaluate(int SpreadMax) { if (!FAddNow[0] && !FEditNow[0] && !FDeleteNow[0] && !FClear[0]) { return; } if (FClear[0]) { Store.SliceCount = 0; } if (FEditNow[0]) { int count = Math.Max(FEditIndex.SliceCount, FEdit.SliceCount); for (int i = 0; i < count; i++) { Store[FEditIndex[i]] = FEdit[i]; } } if (FDeleteNow[0]) { var del = FDeleteIndex.ToList(); int size = Store.Count(); for (int i = 0; i < del.Count; i++) { del[i] = VMath.Zmod(del[i], size); } del.Sort(); for (int i = 0; i < del.Count; i++) { Store.RemoveAt(del[i] - i); } } if (FAddNow[0]) { Store.AddRange(FAdd); } FOutput.SliceCount = 0; FOutput.AssignFrom(Store); FOutput.Flush(); }
public void Evaluate(int SpreadMax) { if (!FInputs.IsChanged) { return; } FOutSelector.SliceCount = 0; for (int i = 0; i < FInputs.Count(); i++) { for (int j = 0; j < FInputs[i].IOObject.SliceCount; j++) { Selector selectorIn = FInputs[i].IOObject[j]; if (selectorIn != null) { FOutSelector.Add(selectorIn); } } } }
public void Evaluate(int SpreadMax) { if (!FInputs.IsChanged) { return; } FOutSelector.SliceCount = SpreadMax; for (int i = 0; i < SpreadMax; i++) { Selector selector = new Selector(); string functionCall = "("; for (int j = 0; j < FInputs.Count(); j++) { Selector selectorIn = FInputs[j].IOObject[i]; if (selectorIn != null) { if (j != 0) { functionCall += " || "; } functionCall += selectorIn.FunctionCall; selector.AddVariables(selectorIn.Variables); selector.AddFunction(selectorIn.Functions); selector.AddCustomSemanticEntries(selectorIn.CustomSemanticEntries); selector.AddCustomSemantics(selectorIn.GetCustomSemantics()); selector.AddResourceSemanticEntries(selectorIn.ResourceSemanticEntries); selector.AddResourceSemantics(selectorIn.GetResourceSemantics()); } } functionCall += " )"; List <string> functionCalls = new List <string>(); functionCalls.Add(functionCall); selector.SetFunctionCall(functionCall); FOutSelector[i] = selector; } }