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 };