src/js/pannellum.js
function onDocumentTouchStart(event) {
    // Only do something if the panorama is loaded
    if (!loaded || !config.draggable) {
        return;
    }

    // Turn off auto-rotation if enabled
    stopAnimation();

    stopOrientation();
    config.roll = 0;

    speed.hfov = 0;

    // Calculate touch position relative to top left of viewer container
    var pos0 = mousePosition(event.targetTouches[0]);

    onPointerDownPointerX = pos0.x;
    onPointerDownPointerY = pos0.y;
    
    if (event.targetTouches.length == 2) {
        // Down pointer is the center of the two fingers
        var pos1 = mousePosition(event.targetTouches[1]);
        onPointerDownPointerX += (pos1.x - pos0.x) * 0.5;
        onPointerDownPointerY += (pos1.y - pos0.y) * 0.5;
        onPointerDownPointerDist = Math.sqrt((pos0.x - pos1.x) * (pos0.x - pos1.x) +
                                             (pos0.y - pos1.y) * (pos0.y - pos1.y));
    }
    isUserInteracting = true;
    latestInteraction = Date.now();
    
    onPointerDownYaw = config.yaw;
    onPointerDownPitch = config.pitch;

    fireEvent('touchstart', event);
    animateInit();
}
function onDocumentTouchStart(event) {
    // Only do something if the panorama is loaded
    if (!loaded || !config.draggable) {
        return;
    }

    // Turn off auto-rotation if enabled
    stopAnimation();

    stopOrientation();
    config.roll = 0;

    speed.hfov = 0;

    // Calculate touch position relative to top left of viewer container
    var pos0 = mousePosition(event.targetTouches[0]);

    onPointerDownPointerX = pos0.x;
    onPointerDownPointerY = pos0.y;
    
    if (event.targetTouches.length == 2) {
        // Down pointer is the center of the two fingers
        var pos1 = mousePosition(event.targetTouches[1]);
        onPointerDownPointerX += (pos1.x - pos0.x) * 0.5;
        onPointerDownPointerY += (pos1.y - pos0.y) * 0.5;
        onPointerDownPointerDist = Math.sqrt((pos0.x - pos1.x) * (pos0.x - pos1.x) +
                                             (pos0.y - pos1.y) * (pos0.y - pos1.y));
    }
    isUserInteracting = true;
    latestInteraction = Date.now();
    
    onPointerDownYaw = config.yaw;
    onPointerDownPitch = config.pitch;

    fireEvent('touchstart', event);
    animateInit();
}
function onDocumentTouchStart ( event ) { // Only do something if the panorama is loaded if ( ! loaded || ! config . draggable ) { return ; } // Turn off auto-rotation if enabled stopAnimation ( ) ; stopOrientation ( ) ; config . roll = 0 ; speed . hfov = 0 ; // Calculate touch position relative to top left of viewer container var pos0 = mousePosition ( event . targetTouches [ 0 ] ) ; onPointerDownPointerX = pos0 . x ; onPointerDownPointerY = pos0 . y ; if ( event . targetTouches . length == 2 ) { // Down pointer is the center of the two fingers var pos1 = mousePosition ( event . targetTouches [ 1 ] ) ; onPointerDownPointerX += ( pos1 . x - pos0 . x ) * 0.5 ; onPointerDownPointerY += ( pos1 . y - pos0 . y ) * 0.5 ; onPointerDownPointerDist = Math . sqrt ( ( pos0 . x - pos1 . x ) * ( pos0 . x - pos1 . x ) + ( pos0 . y - pos1 . y ) * ( pos0 . y - pos1 . y ) ) ; } isUserInteracting = true ; latestInteraction = Date . now ( ) ; onPointerDownYaw = config . yaw ; onPointerDownPitch = config . pitch ; fireEvent ( 'touchstart' , event ) ; animateInit ( ) ; }
Event handler for touches. Initializes panning if one touch or zooming if
two touches.
@private
@param {TouchEvent} event - Document touch start event.
Event handler for touches . Initializes panning if one touch or zooming if two touches .