if ( !outsideTouchesRangeEmitters.empty() || !mCurrentPanEmitters.empty() )
{
- currentGesturedActor->ScreenToLocal( GetImplementation( mCurrentRenderTask ), actorCoords.x, actorCoords.y, panEvent.currentPosition.x, panEvent.currentPosition.y );
+ currentGesturedActor->ScreenToLocal( *mCurrentRenderTask.Get(), actorCoords.x, actorCoords.y, panEvent.currentPosition.x, panEvent.currentPosition.y );
// EmitPanSignal checks whether we have a valid actor and whether the container we are passing in has emitters before it emits the pan.
EmitPanSignal( currentGesturedActor, outsideTouchesRangeEmitters, panEvent, actorCoords, Gesture::Finished, mCurrentRenderTask);
mGestureDetectors.push_back(gestureDetector);
- // Set the pan scene object on the gesture detector
- gestureDetector->SetSceneObject( mSceneObject );
-
if (firstRegistration)
{
mMinTouchesRequired = gestureDetector->GetMinimumTouchesRequired();
mSceneObject->SetMultitapSmoothingRange( value );
}
+const SceneGraph::PanGesture& PanGestureProcessor::GetSceneObject() const
+{
+ return *mSceneObject;
+}
+
void PanGestureProcessor::UpdateDetection()
{
DALI_ASSERT_DEBUG(!mGestureDetectors.empty());
const Integration::PanGestureEvent& panEvent,
Vector2 localCurrent,
Gesture::State state,
- Dali::RenderTask renderTask )
+ RenderTaskPtr renderTask )
{
if ( actor && !gestureDetectors.empty() )
{
pan.screenPosition = panEvent.currentPosition;
pan.position = localCurrent;
- RenderTask& renderTaskImpl( GetImplementation( renderTask ) );
+ RenderTask& renderTaskImpl( *renderTask.Get() );
Vector2 localPrevious;
actor->ScreenToLocal( renderTaskImpl, localPrevious.x, localPrevious.y, panEvent.previousPosition.x, panEvent.previousPosition.y );
{
// It does, calculate the angle of the pan in local actor coordinates and ensures it fits
// the detector's criteria.
- RenderTask& renderTaskImpl( GetImplementation( mCurrentRenderTask ) );
+ RenderTask& renderTaskImpl = *mCurrentRenderTask.Get();
Vector2 startPosition, currentPosition;
actor->ScreenToLocal( renderTaskImpl, startPosition.x, startPosition.y, mPossiblePanPosition.x, mPossiblePanPosition.y );
mCurrentPanEmitters.clear();
ResetActor();
- actor->ScreenToLocal( GetImplementation(mCurrentRenderTask), actorCoordinates.x, actorCoordinates.y, mCurrentPanEvent->currentPosition.x, mCurrentPanEvent->currentPosition.y );
+ actor->ScreenToLocal( *mCurrentRenderTask.Get(), actorCoordinates.x, actorCoordinates.y, mCurrentPanEvent->currentPosition.x, mCurrentPanEvent->currentPosition.y );
EmitPanSignal( actor, gestureDetectors, *mCurrentPanEvent, actorCoordinates, mCurrentPanEvent->state, mCurrentRenderTask );