User:Monster Domosed/common.js: Difference between revisions

Jump to navigation Jump to search
No edit summary
Undo revision 104232 by Monster Domosed (talk)
Tag: Undo
Line 46: Line 46:




function switchQuality(viewer, icon, lqUrl, hqUrl) {
    function switchQuality(viewer, icon, lqUrl, hqUrl) {
    const isLQ = viewer.src === lqUrl;
        const isLQ = viewer.src === lqUrl;
 
    const cameraOrbit = viewer.getCameraOrbit();
        const oldTime = viewer.currentTime;
    const cameraTarget = viewer.getCameraTarget();
        const oldAnimation = viewer.animationName;
        const oldOrbit = viewer.getAttribute('camera-orbit');
    const fieldOfView = viewer.getFieldOfView();
        const oldTarget = viewer.getAttribute('camera-target');
 
    const animationName = viewer.animationName;
        viewer.addEventListener('load', function restore() {
    const currentTime = viewer.currentTime;
            viewer.removeEventListener('load', restore);
 
    viewer.addEventListener('load', function restore() {
            if (oldOrbit) {
        viewer.removeEventListener('load', restore);
                viewer.setAttribute('camera-orbit', oldOrbit);
            }
        requestAnimationFrame(function () {
 
            viewer.cameraOrbit = cameraOrbit;
            if (oldTarget) {
            viewer.cameraTarget = cameraTarget;
                viewer.setAttribute('camera-target', oldTarget);
            viewer.fieldOfView = fieldOfView;
            }
 
            if (animationName) {
            if (oldAnimation) {
                viewer.animationName = animationName;
                viewer.animationName = oldAnimation;
            }
            }
 
            if (typeof currentTime === 'number') {
            if (typeof oldTime === 'number') {
                viewer.currentTime = currentTime;
                viewer.currentTime = oldTime;
            }
            }
 
            if (viewer.hasAttribute('autoplay')) {
            if (viewer.hasAttribute('autoplay')) {
                viewer.play();
                viewer.play();
            }
            }
        });
        }, { once: true });
    }, { once: true });
 
        viewer.src = isLQ ? hqUrl : lqUrl;
 
    viewer.src = isLQ ? hqUrl : lqUrl;
        icon.src = isLQ ? HQ_ICON : LQ_ICON;
    }
    icon.src = isLQ ? HQ_ICON : LQ_ICON;
}