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

Undo
Tag: Undo
No edit summary
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 oldTime = viewer.currentTime;
    const oldTime = viewer.currentTime;
        const oldAnimation = viewer.animationName;
    const oldAnimation = viewer.animationName;
        const oldOrbit = viewer.getAttribute('camera-orbit');
        const oldTarget = viewer.getAttribute('camera-target');


        viewer.addEventListener('load', function restore() {
    const oldOrbit = viewer.getAttribute('camera-orbit');
            viewer.removeEventListener('load', restore);
    const oldTarget = viewer.getAttribute('camera-target');
    const oldFov = viewer.getAttribute('field-of-view');


    viewer.addEventListener('load', function restore() {
        viewer.removeEventListener('load', restore);
        requestAnimationFrame(function () {
             if (oldOrbit) {
             if (oldOrbit) {
                 viewer.setAttribute('camera-orbit', oldOrbit);
                 viewer.setAttribute('camera-orbit', oldOrbit);
Line 63: Line 66:
             if (oldTarget) {
             if (oldTarget) {
                 viewer.setAttribute('camera-target', oldTarget);
                 viewer.setAttribute('camera-target', oldTarget);
            }
            if (oldFov) {
                viewer.setAttribute('field-of-view', oldFov);
             }
             }


Line 76: Line 83:
                 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;
    }
}