示例#1
0
        #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();
        }
示例#2
0
 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);
             }
         }
     }
 }
示例#3
0
        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;
            }
        }