var ModelViewer = function($dom_element, model_url) { var $this = this; this.container = document.createElement('div'); this.container.setAttribute('class','model-view'); this.dom_element = $dom_element; $dom_element.append(this.container); this.camera = null; this.scene = null; this.renderer = null; this.controls = null; this.width = parseFloat($dom_element.width()); this.height = parseFloat($dom_element.height()); this.scale = 1; this.wireframe = false; this.rendering = false; this.container.style.display = "none"; this.toggleButton = null; this.background = 0xffffff; this.model_url = model_url; this.loaded = false; this.object = null; this.initHtml(); this.initScene(); // this.stats = new Stats(); // this.stats.dom.style.position = 'absolute'; // this.container.append(this.stats.dom); function renderLoop() { requestAnimationFrame(renderLoop); if($this.rendering) { if(!$this.loaded) { $this.loadStl($this.model_url); $this.loaded = true; } if($this.stats) { $this.stats.update(); } $this.render(); } $this.resize(parseInt($this.dom_element.width()), parseInt($this.dom_element.height())); } renderLoop(); }; ModelViewer.prototype.initHtml = function () { $this = this; var buttons = document.createElement("div"); buttons.setAttribute("class", "modelviewer-buttons"); this.wireframeButton = $('