/// <summary>
        /// Constructs base drag state
        /// </summary>
        /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
        internal DragState(GestureHandler handler) : base(handler)
        {
            _drag = new Drag(Handler.FindOrigin(Handler.MainTouch), Handler.MainTouch.position);
            Handler.RegisterGesture(_drag);

            _stationaryTime = 0f;
        }
 /// <summary>
 /// Constructs base idle state
 /// </summary>
 /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
 internal IdleState(GestureHandler handler) : base(handler)
 {
     // intentionally left blank
 }
 /// <summary>
 /// Constructs base pinch state
 /// </summary>
 /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
 internal PinchState(GestureHandler handler) : base(handler)
 {
     _pinch = new Pinch(Handler.FindOrigin(Handler.MainTouch), Handler.FindOrigin(Handler.SecondaryTouch));
     Handler.RegisterGesture(_pinch);
 }
 /// <summary>
 /// Contructs base hold state
 /// </summary>
 /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
 internal HoldState(GestureHandler handler) : base(handler)
 {
     Handler.RegisterGesture(new Hold(Handler.FindOrigin(Handler.MainTouch)));
 }
 /// <summary>
 /// Constructs base input state
 /// </summary>
 /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
 protected InputState(GestureHandler handler)
 {
     Handler   = handler;
     StartTime = Time.time;
 }
 /// <summary>
 /// Constructs base tap state
 /// </summary>
 /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
 internal TapState(GestureHandler handler) : base(handler)
 {
     _tapCount = 0;
     _reactionTimeExtension = Handler.TapDifferenceTimeThreshold;
 }
 /// <summary>
 /// Constructs base gathering state
 /// </summary>
 /// <param name="handler">Reference to the <see cref="GestureHandler"/> owner object</param>
 internal GatheringState(GestureHandler handler) : base(handler)
 {
     // intentionally left blank
 }