Esempio n. 1
0
 private void UpdateFingerDictionaries(bool isKeyDown, int id, Vector2 pos)
 {
     if (isKeyDown)
     {
         FingerIdToBeginPositions[id] = pos;
         FingerIdsToLastPos[id]       = pos;
     }
     else
     {
         FingerIdToBeginPositions.Remove(id);
         FingerIdsToLastPos.Remove(id);
     }
 }
Esempio n. 2
0
        private void EndCurrentTap()
        {
            // add the gesture to the tap event list if the number of tap requirement is fulfilled
            if (currentNumberOfTaps == ConfigTap.RequiredNumberOfTaps)
            {
                var tapMeanPosition = ComputeMeanPosition(FingerIdToBeginPositions.Values);
                CurrentGestureEvents.Add(new GestureEventTap(ElapsedSinceBeginning, ConfigTap.RequiredNumberOfFingers, currentNumberOfTaps, NormalizeVector(tapMeanPosition)));
            }

            currentNumberOfTaps = 0;

            HasGestureStarted = false;
            FingerIdToBeginPositions.Clear();
        }
Esempio n. 3
0
        protected override void ProcessDownEventPointer(int id, Vector2 pos)
        {
            if (!FingerIdToBeginPositions.ContainsKey(id))
            {
                FingerIdToBeginPositions[id] = pos;
            }

            FingerIdsToLastPos[id] = pos;

            maxNbOfFingerTouched = Math.Max(maxNbOfFingerTouched, NbOfFingerOnScreen);

            isTapDown = true;

            if (NbOfFingerOnScreen == 1)
            {
                elapsedSinceTakeOff = TimeSpan.Zero;
                elapsedSinceDown    = TimeSpan.Zero;
                HasGestureStarted   = true;
            }

            if (HasGestureStarted && maxNbOfFingerTouched > ConfigTap.RequiredNumberOfFingers)
            {
                EndCurrentTap();
            }

            if (HasGestureStarted && !HadFingerAtThatPosition(pos))
            {
                EndCurrentTap();

                maxNbOfFingerTouched = NbOfFingerOnScreen;
                elapsedSinceTakeOff  = TimeSpan.Zero;
                elapsedSinceDown     = TimeSpan.Zero;
                HasGestureStarted    = true;
                foreach (var key in FingerIdsToLastPos.Keys)
                {
                    FingerIdToBeginPositions[key] = FingerIdsToLastPos[key];
                }
            }
        }
Esempio n. 4
0
 protected override void ProcessUpEventPointer(int id, Vector2 pos)
 {
     FingerIdToBeginPositions.Remove(id);
     HasGestureStarted = (NbOfFingerOnScreen == ConfigLongPress.RequiredNumberOfFingers);
 }