private static void UpdatePositions(DigitizerState obj)
 {
     if (InitialStates[obj.FingerIndex].X == ushort.MaxValue && InitialStates[obj.FingerIndex].Y == ushort.MaxValue)
     {
         InitialStates[obj.FingerIndex] = obj;
     }
     else
     {
         TempStates[obj.FingerIndex].Add(obj);
     }
 }
        static EasyGestureSystem()
        {
            Zones         = new List <GestureZone>();
            TempStates    = new List <DigitizerState> [10];
            InitialStates = new DigitizerState[10];

            for (int i = 0; i < TempStates.Length; i++)
            {
                TempStates[i]    = new List <DigitizerState>();
                InitialStates[i] = new DigitizerState
                {
                    X = ushort.MaxValue,
                    Y = ushort.MaxValue
                };
            }
            Digitizer.OnFingerAdded     += StartPeriod;
            Digitizer.OnFingerRemoved   += StopPeriod;
            Digitizer.OnPositionChanged += UpdatePositions;
        }
 private static void StartPeriod(int fingerId) => InitialStates[fingerId] = new DigitizerState
 {
     X = ushort.MaxValue, Y = ushort.MaxValue
 };