public void Evaluate(int spreadMax)
 {
     FOutput.SliceCount = spreadMax;
     for (int i = 0; i < spreadMax; i++)
     {
         FOutput[i] = MouseStateNodes.Join(
             FXIn[i],
             FYIn[i],
             FLeftButtonIn[i],
             FMiddleButtonIn[i],
             FRightButtonIn[i],
             FMouseWheelIn[i]
             );
     }
 }
        public void Evaluate(int spreadMax)
        {
            FXOut.SliceCount            = spreadMax;
            FYOut.SliceCount            = spreadMax;
            FLeftButtonOut.SliceCount   = spreadMax;
            FMiddleButtonOut.SliceCount = spreadMax;
            FRightButtonOut.SliceCount  = spreadMax;
            FMouseWheelOut.SliceCount   = spreadMax;

            for (int i = 0; i < spreadMax; i++)
            {
                var    mouseState = FInput[i];
                double x, y;
                bool   leftButton, middleButton, rightButton;
                int    mouseWheel;

                if (mouseState != null)
                {
                    MouseStateNodes.Split(mouseState, out x, out y, out leftButton, out middleButton, out rightButton, out mouseWheel);
                }
                else
                {
                    x            = 0;
                    y            = 0;
                    leftButton   = false;
                    middleButton = false;
                    rightButton  = false;
                    mouseWheel   = 0;
                }

                FXOut[i]            = x;
                FYOut[i]            = y;
                FLeftButtonOut[i]   = leftButton;
                FMiddleButtonOut[i] = middleButton;
                FRightButtonOut[i]  = rightButton;
                FMouseWheelOut[i]   = mouseWheel;
            }
        }