<!doctype html> <html lang="en-us"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style> body { margin:0px; padding: 0px; } .emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; } div.emscripten { text-align: center; } canvas.emscripten { border: 0px none; /* no border, otherwise mouse coords will be wrong */ padding: 0px; /* no padding, otherwise mouse coords will be wrong */ background-color: black; /* keep it black, otherwise rendering problems occur */ width: 100vw; /* be as wide as possible */ height: 100vh; /* be as tall as possible */ max-height: 100vh; /* don't grow more than screen height */ display: block; overflow: hidden; } </style> </head> <body> <div class="emscripten" id="status">Downloading...</div> <div class="emscripten"> <progress value="0" max="100" id="progress" hidden=1></progress> </div> <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas> <script type='text/javascript'> var statusElement = document.getElementById('status'); var progressElement = document.getElementById('progress'); function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } var Module = { preRun: [ function(){ var modelFileName = getUrlVars()["model"]; if ( modelFileName ) { var filename = modelFileName.split('/').pop(); console.log("reading " + modelFileName); Module.arguments = [filename]; FS.createPreloadedFile('./', filename, modelFileName, true, false); } }], postRun: [], print: function(text) { console.log(text); }, printErr: function(text) { console.error(text); }, canvas: (function() { var canvas = document.getElementById('canvas'); // As a default initial behavior, pop up an alert when webgl context is lost. To make your // application robust, you may want to override this behavior before shipping! // See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2 canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false); return canvas; })(), setStatus: function(text) { if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' }; if (text === Module.setStatus.text) return; var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/); var now = Date.now(); if (m && now - Date.now() < 30) return; // if this is a progress update, skip it if too soon if (m) { text = m[1]; progressElement.value = parseInt(m[2])*100; progressElement.max = parseInt(m[4])*100; progressElement.hidden = false; } else { progressElement.value = null; progressElement.max = null; progressElement.hidden = true; } statusElement.innerHTML = text; }, totalDependencies: 0, monitorRunDependencies: function(left) { this.totalDependencies = Math.max(this.totalDependencies, left); Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.'); } }; Module.setStatus('Downloading...'); window.onerror = function() { Module.setStatus('Exception thrown, see JavaScript console'); Module.setStatus = function(text) { if (text) Module.printErr('[post-exception status] ' + text); }; }; </script> {{{ SCRIPT }}} </body> </html>