X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fevents%2Fpan-gesture-processor.h;h=871e6b463efe1b159dddfde744752f6eea54ed54;hb=f631ce10f0d13580c4ec4520352d3002265ce214;hp=9cd2de043755df6264915b748b75ffa10a157dcd;hpb=3d0c2e31b88bb904358562fb2de7accbd2a2a244;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/events/pan-gesture-processor.h b/dali/internal/event/events/pan-gesture-processor.h index 9cd2de0..871e6b4 100644 --- a/dali/internal/event/events/pan-gesture-processor.h +++ b/dali/internal/event/events/pan-gesture-processor.h @@ -2,7 +2,7 @@ #define __DALI_INTERNAL_PAN_GESTURE_EVENT_PROCESSOR_H__ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,6 +41,7 @@ class Stage; namespace SceneGraph { class PanGesture; +class UpdateManager; } /** @@ -61,13 +62,14 @@ public: * Create a pan gesture processor. * @param[in] stage The stage. * @param[in] gestureManager The gesture manager + * @param[in] updateManager The Update Manager */ - PanGestureProcessor( Stage& stage, Integration::GestureManager& gestureManager ); + PanGestureProcessor( Stage& stage, Integration::GestureManager& gestureManager, SceneGraph::UpdateManager& updateManager ); /** - * Non-virtual destructor; PanGestureProcessor is not a base class + * Destructor */ - ~PanGestureProcessor(); + virtual ~PanGestureProcessor(); public: // To be called by GestureEventProcessor @@ -130,6 +132,27 @@ public: // To be called by GestureEventProcessor void SetPredictionAmount(unsigned int amount); /** + * @brief Sets the upper bound of the prediction amount for clamping + * + * @param[in] amount The prediction amount in milliseconds + */ + void SetMaximumPredictionAmount(unsigned int amount); + + /** + * @brief Sets the lower bound of the prediction amount for clamping + * + * @param[in] amount The prediction amount in milliseconds + */ + void SetMinimumPredictionAmount(unsigned int amount); + + /** + * @brief Sets the amount of prediction interpolation to adjust when the pan velocity is changed + * + * @param[in] amount The prediction amount in milliseconds + */ + void SetPredictionAmountAdjustment(unsigned int amount); + + /** * Called to set the prediction mode for pan gestures * * @param[in] mode The prediction mode @@ -147,6 +170,62 @@ public: // To be called by GestureEventProcessor */ void SetSmoothingAmount(float amount); + /* + * @brief Sets whether to use actual times of the real gesture and frames or not. + * + * @param[in] value True = use actual times, False = use perfect values + */ + void SetUseActualTimes( bool value ); + + /** + * @brief Sets the interpolation time range (ms) of past points to use (with weights) when interpolating. + * + * @param[in] value Time range in ms + */ + void SetInterpolationTimeRange( int value ); + + /** + * @brief Sets whether to use scalar only prediction, which when enabled, ignores acceleration. + * + * @param[in] value True = use scalar prediction only + */ + void SetScalarOnlyPredictionEnabled( bool value ); + + /** + * @brief Sets whether to use two point prediction. This combines two interpolated points to get more steady acceleration and velocity values. + * + * @param[in] value True = use two point prediction + */ + void SetTwoPointPredictionEnabled( bool value ); + + /** + * @brief Sets the time in the past to interpolate the second point when using two point interpolation. + * + * @param[in] value Time in past in ms + */ + void SetTwoPointInterpolatePastTime( int value ); + + /** + * @brief Sets the two point velocity bias. This is the ratio of first and second points to use for velocity. + * + * @param[in] value 0.0f = 100% first point. 1.0f = 100% of second point. + */ + void SetTwoPointVelocityBias( float value ); + + /** + * @brief Sets the two point acceleration bias. This is the ratio of first and second points to use for acceleration. + * + * @param[in] value 0.0f = 100% first point. 1.0f = 100% of second point. + */ + void SetTwoPointAccelerationBias( float value ); + + /** + * @brief Sets the range of time (ms) of points in the history to perform multitap smoothing with (if enabled). + * + * @param[in] value Time in past in ms + */ + void SetMultitapSmoothingRange( int value ); + private: // Undefined