Difference between pinch, panning and rotate

Difference between pinch, panning and rotate

BY 14 Jan 2014 Native Application Development

Hello,

I’m working on an app with an integrated map. I tried to implement gesturelistener for pinch panning an rotate. 
So far they are working. But why do all three listener get triggerd if i start a gesture?

E.g. I have implemented the panningesture with 2 touchpoints and if I do a panning pinch and rotate also fired.

Do I have to do something special to diff between the gestures? 

 

My implementation looks like (just some snippets ;)):

 

 



void MapviewerForm::OnPinchGestureStarted(Tizen::Ui::TouchPinchGestureDetector& gestureDetector)
{
		AppLogDebug("Pinch started.");
		ConsumeInputEvent();
}

void MapviewerForm::OnPinchGestureChanged(Tizen::Ui::TouchPinchGestureDetector& gestureDetector)
{
		Pinch(gestureDetector.GetScale());
		ConsumeInputEvent();
}

void MapviewerForm::OnPanningGestureStarted(Tizen::Ui::TouchPanningGestureDetector& gestureDetector)
{
		Point point(0, 0);
		bool twoTouchPoints = false;
		Tizen::Base::Collection::IListT<TouchEventInfo*>* pList = Tizen::Ui::TouchEventManager::GetInstance()->GetTouchInfoListN();
		if (pList != null)
		{
			int fingerCount = 2;
			TouchEventInfo *pTouchInfo = null;

			if (pList->GetCount() == fingerCount)
			{
				/*
				 * Just tracking second finger y-value
				 */
				pList->GetAt(1, pTouchInfo);
				_panningStartDistance = pTouchInfo->GetCurrentPositionF().y;
				twoTouchPoints = true;
			}

			pList->RemoveAll();
			delete pList;
		}
		if (twoTouchPoints)
		{
			_panningActive = true;
		}
		AppLogDebug("Panning started");
		ConsumeInputEvent();
	}
}


void MapviewerForm::OnRotationGestureStarted(Tizen::Ui::TouchRotationGestureDetector& gestureDetector)
{
		AppLogDebug("Rotating started");
		_lastRotatingAngle = gestureDetector.GetAngle();
		_rotatingActive = true;
		ConsumeInputEvent();
	}
}
Written by