/// <summary> /// [内部メソッド] /// 「スワイプ」イベントを実行する /// </summary> /// <param name="touchPoint">接触点</param> private void executeSwipeEvent(TouchPoint touchPoint) { // 基準点と接触点の距離を取得する int distance = touchPoint.GetDistanceFrom(this.baseTouchPoint); // 基準点と接触点の角度を計算する int angle = Calculator.CalculateAngle(this.baseTouchPoint.X, this.baseTouchPoint.Y, touchPoint.X, touchPoint.Y); // 角度からスワイプの方向を決定する SwipeDirection direction = Calculator.AngleToDirection(angle); // 「スワイプ」イベントハンドラを実行する var swipeData = new SwipeData(this.baseTouchPoint, touchPoint, angle, distance, direction); var seArgs = new SwipeEventArgs(swipeData, this.orbit); OnSwipe(touchPoint, seArgs); }
/// <summary> /// [内部メソッド] /// 「スワイプ」操作か /// </summary> /// <returns>「スワイプ」操作か</returns> private bool isSwipe(TouchPoint lastTouchPoint) { if (this.baseTouchPoint.X < 0 || this.baseTouchPoint.Y < 0) { return(false); } if (lastTouchPoint.X < 0 || lastTouchPoint.Y < 0) { return(false); } if (this.hasPinched) { return(false); } int distance = lastTouchPoint.GetDistanceFrom(this.baseTouchPoint); return(distance > swipeIntervalCentiPixel); }