nl_tokens: extend the data with some usable properties like scale rotate velocity etc
pl_tokens: function computeInputData ( manager , input ) { var session = manager . session ; var pointers = input . pointers ; var pointersLength = pointers . length ; // store the first input to calculate the distance and direction if ( ! session . firstInput ) { session . firstInput = simpleCloneInputData ( input ) ; } // to compute scale and rotation we need to store the multiple touches if ( pointersLength > 1 && ! session . firstMultiple ) { session . firstMultiple = simpleCloneInputData ( input ) ; } else if ( pointersLength === 1 ) { session . firstMultiple = false ; } var firstInput = session . firstInput ; var firstMultiple = session . firstMultiple ; var offsetCenter = firstMultiple ? firstMultiple . center : firstInput . center ; var center = input . center = getCenter ( pointers ) ; input . timeStamp = now ( ) ; input . deltaTime = input . timeStamp - firstInput . timeStamp ; input . angle = getAngle ( offsetCenter , center ) ; input . distance = getDistance ( offsetCenter , center ) ; computeDeltaXY ( session , input ) ; input . offsetDirection = getDirection ( input . deltaX , input . deltaY ) ; var overallVelocity = getVelocity ( input . deltaTime , input . deltaX , input . deltaY ) ; input . overallVelocityX = overallVelocity . x ; input . overallVelocityY = overallVelocity . y ; input . overallVelocity = abs ( overallVelocity . x ) > abs ( overallVelocity . y ) ? overallVelocity . x : overallVelocity . y ; input . scale = firstMultiple ? getScale ( firstMultiple . pointers , pointers ) : 1 ; input . rotation = firstMultiple ? getRotation ( firstMultiple . pointers , pointers ) : 0 ; input . maxPointers = ! session . prevInput ? input . pointers . length : input . pointers . length > session . prevInput . maxPointers ? input . pointers . length : session . prevInput . maxPointers ; computeIntervalInputData ( session , input ) ; // find the correct target var target = manager . element ; if ( hasParent ( <mask> . srcEvent . target , target ) ) { target = input . srcEvent . target ; } input . target = target ; }