User:Monster Domosed/common.js: Difference between revisionsGive feedback
No edit summary |
No edit summary |
||
| Line 34: | Line 34: | ||
} | } | ||
function addQualityButton(container, viewer, lqUrl, hqUrl) { | |||
if (!hqUrl || lqUrl === hqUrl) { | if (!hqUrl || lqUrl === hqUrl) { | ||
return; | return; | ||
| Line 73: | Line 73: | ||
container.appendChild(button); | container.appendChild(button); | ||
} | } | ||
function loadModel(preview) { | |||
if (preview.dataset.loaded) { | |||
return; | |||
} | |||
preview.dataset.loaded = '1'; | |||
const fileName = preview.dataset.model; | |||
const size = getSize(preview); | |||
Promise.all([ | |||
getFileUrl(fileName + '-compressed.glb'), | |||
getFileUrl(fileName + '.glb') | |||
]) | |||
.then(function (urls) { | |||
const lqUrl = urls[0] || urls[1]; | |||
const hqUrl = urls[1]; | |||
if (!lqUrl) { | |||
return; | |||
} | |||
const container = document.createElement('div'); | |||
container.className = 'model-viewer-container'; | |||
container.style.width = size + 'px'; | |||
container.style.height = size + 'px'; | |||
const viewer = document.createElement('model-viewer'); | |||
viewer.src = lqUrl; | |||
viewer.setAttribute('camera-controls', ''); | |||
viewer.setAttribute('touch-action', 'pan-y'); | |||
container.appendChild(viewer); | |||
preview.replaceWith(container); | |||
addQualityButton( | |||
container, | |||
viewer, | |||
lqUrl, | |||
hqUrl | |||
); | |||
}); | |||
} | |||
function syncWrapperSize(viewer) { | function syncWrapperSize(viewer) { | ||