Exemple #1
0
	// -----------------------
	/// Get multi-touch drag velocity vector.
	// ------------------------
	public Vector2 GetMultiDragVel(
		TouchCoordSys	cs 			/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system.	
		)
		{
		return TransformPos(this.multiDragVel, cs, true);
		}
Exemple #2
0
	// --------------------------
	/// Get touch start position
	// --------------------------- 
	public Vector2 GetStartPos(
		int 			fingerId, 							///< Finger ID (0 or 1)
		TouchCoordSys 	cs /* = TouchCoordSys.SCREEN_PX */	///< Coordinate system
		)
		{		
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA); 
		return this.TransformPos(finger.startPos, cs, false);
		}
Exemple #3
0
	/// \}

	

	// ---------------------------
	/// \name Touch Drag State 
	/// \{
	// ---------------------------


	// --------------------------
	/// Get touch total drag vector of specified finger.
	// --------------------------- 
	public Vector2 GetDragVec(
		int 			fingerId, 									///< Finger ID (0 or 1)
		TouchCoordSys 	cs 		/* = TouchCoordSys.SCREEN_PX */,	///< Coordinate system
		bool			raw 	/* = false */						///< When not in raw mode and drag didn't passed the threshold, zero vector will be returned. 
		)
		{		
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA);
		if (!raw && !finger.moved)
			return Vector2.zero;
 
		return this.TransformPos((finger.posCur - finger.startPos), cs, true);
		}
Exemple #4
0
	// ---------------
	private Vector2 TransformPos(
		Vector2 					screenPosPx, 
		TouchCoordSys 	posType,
		bool						deltaMode)
		{
		Vector2 v = screenPosPx;
		
		if (!deltaMode && (
			(posType == TouchCoordSys.LOCAL_CM) || 
			(posType == TouchCoordSys.LOCAL_INCH) || 
			(posType == TouchCoordSys.LOCAL_NORMALIZED) || 
			(posType == TouchCoordSys.LOCAL_PX)) )
			{
			v.x -= this.screenRectPx.xMin;
			v.y -= this.screenRectPx.yMin;
			} 
		

		switch (posType)
			{
			case TouchCoordSys.SCREEN_PX :
			case TouchCoordSys.LOCAL_PX :
				return v;


			case TouchCoordSys.LOCAL_CM :
			case TouchCoordSys.SCREEN_CM :
				return (v / this.joy.GetDPCM());

			case TouchCoordSys.LOCAL_INCH :
			case TouchCoordSys.SCREEN_INCH :
				return (v / this.joy.GetDPI());

			case TouchCoordSys.SCREEN_NORMALIZED :
				v.x /= this.joy.GetScreenWidth();
				v.y /= this.joy.GetScreenHeight();
				return v;

			case TouchCoordSys.LOCAL_NORMALIZED :
				v.x /= this.screenRectPx.width;
				v.y /= this.screenRectPx.height;
				return v;
			}

		return v;
		}
Exemple #5
0
		// ---------------
		public Vector2 GetTapPos(TouchCoordSys	cs)
			{
			//return TransformPos(this.lastTapPos, cs, false);
			return this.zone.TransformPos(this.lastTapPos, cs, false);
			}
Exemple #6
0
	// ---------------
	/// Get released multi-finger touch final finger distance.  
	// ---------------
	public float GetReleasedPinchEndDist(
		TouchCoordSys cs	/* = TouchCoordSys.SCREEN_PX */		///< Coordinate system.
		)
		{
		return (this.TransformPos(this.endedPinchDistEnd, cs));
		}
Exemple #7
0
	// ---------------
	/// Get released multi-finger pinch distance velocity.
	// ---------------
	public float GetReleasedPinchDistVel(
		TouchCoordSys 	cs 	/* = TouchCoordSys.SCREEN_PX */,	///< Coordinate system.
		bool			raw /* = false */						///< When not in raw mode, zero will be returned if released pinch didn't passed the threshold.
		)
		{
		if (!raw && !this.endedPinchMoved)
			return 0;

		return (this.TransformPos(this.endedPinchDistVel, cs));
		}
Exemple #8
0
	// ---------------
	/// Get last two-finger tap's position.
	// ------------------ 
	public Vector2 GetMultiTapPos(
		TouchCoordSys	cs	/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system
		)
		{
		return TransformPos(this.lastMultiTapPos, cs, false);
		}
Exemple #9
0
	// ---------------------
	/// Get released unified-touch start position.
	// ---------------------
	public Vector2 GetReleasedUniStartPos(	
		TouchCoordSys	cs 	/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system	
		)
		{
		return TransformPos(this.endedUniPosStart, cs, false);
		}
Exemple #10
0
	// --------------
	/// Shortcut for GetPinchDistDelta(cs, true)	
	// --------------
	public float GetPinchDistDeltaRaw(
		TouchCoordSys 	cs		///< Coordinate system. 	
		)
		{
		return this.GetPinchDistDelta(cs, true);
		}
Exemple #11
0
	// ---------------
	/// Get last single-finger tap's position.
	// ------------------ 
	public Vector2 GetTapPos(
		TouchCoordSys	cs /* = TouchCoordSys.SCREEN_PX */	///< Coordinate system
		)
		{
		return this.fingerA.GetTapPos(cs);
		}
Exemple #12
0
	// --------------
	/// Get finger distance delta relative to last update.	
	// --------------
	public float GetPinchDistDelta(
		TouchCoordSys 	cs	/* = TouchCoordSys.SCREEN_PX */,	///< Coordinate system. 	
		bool 			raw /* = false */						///< When not in raw mode, value of 0 will be returned until pinch moves.
		)
		{
		if (!this.multiCur || (!raw && !this.pinchMoved))
			return 0;
		
		return this.TransformPos(
			(this.pinchCurDist - (!raw && this.pinchJustMoved ? this.pinchDistStart : 
			this.pinchPrevDist)), cs);
		}
Exemple #13
0
	// --------------
	/// Shortcut for GetPinchDist(cs, false)	
	// --------------
	public float GetPinchDist(
		TouchCoordSys 	cs 			///< Coordinate system. 	
		)
		{
		return this.GetPinchDist(cs, false);
		}
Exemple #14
0
	// --------------
	/// Get finger distance.	
	// --------------
	public float GetPinchDist(
		TouchCoordSys 	cs 	/* = TouchCoordSys.SCREEN_PX */,	///< Coordinate system. 	
		bool 			raw /* = false */						///< When not in raw mode, value of 0 will be returned until pinch moves.
		)
		{
		if (!this.multiCur || (!raw && !this.pinchMoved))
			return 0;

		return TransformPos(this.pinchCurDist, cs);
		}
Exemple #15
0
	// -----------------------
	/// Get released multi-touch drag velocity vector.
	// ------------------------
	public Vector2 GetReleasedMultiDragVel(
		TouchCoordSys	cs 	/* = TouchCoordSys.SCREEN_PX */	,	///< Coordinate system	
		bool			raw	/* = false */						///< When not in raw mode, zero-vector will be returned if released drag didn't passed the threshold.

		)
		{
		if (!raw && !this.endedMultiMoved)
			return Vector2.zero;
 
		return TransformPos(this.endedMultiDragVel, cs, true);
		}
Exemple #16
0
	// ---------------------
	/// Get released touch end position.
	// ---------------------
	public Vector2 GetReleasedEndPos(	
		int				fingerId, 									///< Finger ID (0 or 1)
		TouchCoordSys	cs 			/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system	
		)
		{
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA); 
		return TransformPos(finger.endedPosEnd, cs, false);
		}
Exemple #17
0
	// -----------------------
	/// Shortcut for GetReleasedMultiDragVel(cs, true)
	// ------------------------
	public Vector2 GetReleasedMultiDragVelRaw(
		TouchCoordSys	cs			///< Coordinate system	
		)
		{
		return this.GetReleasedMultiDragVel(cs, true);
		}
Exemple #18
0
	// ---------------------
	/// Get released multi-touch end position.
	// ---------------------
	public Vector2 GetReleasedMultiEndPos(	
		TouchCoordSys	cs 	/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system	
		)
		{
		return TransformPos(this.endedMultiPosEnd, cs, false);
		}
Exemple #19
0
	// -------------
	/// Get most extreme finger distance difference since start.
	// -------------
	public float GetReleasedPinchExtremeDistDiff(
		TouchCoordSys cs = 
			TouchCoordSys.SCREEN_PX	///< Coordinate system.
		)
		{
		return (this.TransformPos(this.endedPinchExtremeDistDelta, cs));
		}
Exemple #20
0
	/// \endcond


#if CF_EXTREME_QUERY_FUNCTIONS

	// -----------------------
	/// Get the most extreme drag distance of last released touch.
	// ------------------------
	public float GetReleasedExtremeDist(
		int							fingerId, 		///< Finger ID (0 or 1)
		TouchCoordSys	cs = 
			TouchCoordSys.SCREEN_PX	///< Coordinate system	
		)
		{
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA); 
		return TransformPos(finger.endedExtremeDragDist, cs);
		}
Exemple #21
0
	// ---------------
	/// Shortcut for GetReleasedPinchDistVel(cs, true);
	// ---------------
	public float GetReleasedPinchDistVelRaw(
		TouchCoordSys 	cs		///< Coordinate system.
		)
		{
		return this.GetReleasedPinchDistVel(cs, true);
		}
Exemple #22
0
	// -----------------------
	/// Get the most extreme drag along each axis of last released touch.
	// ------------------------
	public Vector2 GetReleasedExtremeVec(
		int							fingerId, 		///< Finger ID (0 or 1)
		TouchCoordSys	cs = 
			TouchCoordSys.SCREEN_PX	///< Coordinate system	
		)
		{
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA); 
		return TransformPos(finger.endedExtremeDragVec, cs, true);
		}
Exemple #23
0
	// ---------------
	private float TransformPosY(
		float 						screenPosPx, 
		TouchCoordSys 	posType)
		{
		float v = screenPosPx;
			

		switch (posType)
			{
			case TouchCoordSys.SCREEN_PX :
			case TouchCoordSys.LOCAL_PX :
				return v;


			case TouchCoordSys.LOCAL_CM :
			case TouchCoordSys.SCREEN_CM :
				return (v / this.joy.GetDPCM());

			case TouchCoordSys.LOCAL_INCH :
			case TouchCoordSys.SCREEN_INCH :
				return (v / this.joy.GetDPI());

			case TouchCoordSys.SCREEN_NORMALIZED :
				v /= this.joy.GetScreenHeight();
				return v;

			case TouchCoordSys.LOCAL_NORMALIZED :
				v /= this.screenRectPx.height;
				return v;
			}

		return v;
		}
Exemple #24
0
	/// \}


	// ---------------------------
	/// \name Released Touch's Drag Velocity 
	/// \{
	// ---------------------------
	
	// -----------------------
	/// Get released touch drag velocity vector.
	// ------------------------
	public Vector2 GetReleasedDragVel(
		int				fingerId, 								///< Finger ID (0 or 1)
		TouchCoordSys	cs 		/* = TouchCoordSys.SCREEN_PX */,///< Coordinate system	
		bool			raw 	/* = false */					///< When not in raw mode, zero-vector will be returned if released drag didn't passed the threshold.
		)
		{
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA);

		if (!raw && !finger.endedMoved)
			return Vector2.zero;
 
		return TransformPos(finger.endedDragVel, cs, true);
		}
Exemple #25
0
	// --------------------------
	/// Get unified-touch current position
	// --------------------------- 
	public Vector2 GetUniPos(
		TouchCoordSys 	cs 	/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system
		)
		{		
		return this.TransformPos(this.uniPosCur, cs, false);
		}
Exemple #26
0
	// -----------------------
	/// Shortcut for GetReleasedDragVel(fingerId, cs, true)
	// ------------------------
	public Vector2 GetReleasedDragVelRaw(
		int				fingerId, 	///< Finger ID (0 or 1)
		TouchCoordSys	cs			///< Coordinate system	
		)
		{
		return this.GetReleasedDragVel(fingerId, cs, true);
		}
Exemple #27
0
	// --------------------------
	/// Get multi-touch start position
	// --------------------------- 
	public Vector2 GetMultiStartPos(
		TouchCoordSys 	cs /* = TouchCoordSys.SCREEN_PX */	///< Coordinate system
		)
		{		
		return this.TransformPos(this.multiPosStart, cs, false);
		}
Exemple #28
0
	// -----------------------
	/// Shortcut for GetReleasedUniDragVel(cs, false)
	// ------------------------
	public Vector2 GetReleasedUniDragVel(
		TouchCoordSys	cs			///< Coordinate system	
		)
		{
		return this.GetReleasedUniDragVel(cs, false);
		}
Exemple #29
0
	// --------------------------
	/// Shortcut for GetDragVec(fingerId, cs, false)
	// --------------------------- 
	public Vector2 GetDragVec(
		int 			fingerId,	///< Finger ID (0 or 1)
		TouchCoordSys 	cs			///< Coordinate system
		)
		{		
		return this.GetDragVec(fingerId, cs, false);
		}
Exemple #30
0
	/// \}


	// ---------------------------
	/// \name Touch Drag Velocity 
	/// \{
	// ---------------------------

	// -----------------------
	/// Get drag velocity vector of specified finger.
	// ------------------------
	public Vector2 GetDragVel(
		int				fingerId, 									///< Finger ID (0 or 1)
		TouchCoordSys	cs 			/* = TouchCoordSys.SCREEN_PX */	///< Coordinate system	
		)
		{
		Finger finger = ((fingerId == 1) ? this.fingerB : this.fingerA); 
		return TransformPos(finger.dragVel, cs, true);
		}