var editor = new function (){ var base = this; var cube = null var cx, cy base.init = function(){ map.on("mousedown", base.mousedown) map.on("mousemove", base.mousemove) map.on("mousedrag", base.mousedrag) map.on("mouseup", base.mouseup) map.on("mousewheel", base.mousewheel) document.getElementById("export").addEventListener("keydown", base.stopPropagation) document.getElementById("export").addEventListener("mousedown", base.stopPropagation) document.getElementById("export").addEventListener("mousemove", base.stopPropagation) document.getElementById("export").addEventListener("mouseup", base.stopPropagation) window.addEventListener('keydown', base.keydown) } base.mousedown = function(e,x,y) { if (! e.shiftKey) return cx = x cy = y cube = new MX.BoxDimensions({ x: cx, y: -10, z: cy, width: 1, height: 1, depth: 1, borderWidth: 1, borderColor: "#000", color: "#fff" }) cube.persisted = false scene.add( cube ); } base.mousemove = function(e,x,y) { } base.mousedrag = function(e,dx,dy) { if (! cube) return cube.x = cx + dx/2 cube.z = cy + dy/2 cube.setWidth( abs(dx) ) cube.setDepth( abs(dy) ) cube.setHeight( max( cube.width, cube.depth ) ) cube.update() } base.mouseup = function(e){ cube = null } base.mousewheel = function(e,x,z,delta){ if (! e.shiftKey) return; scene.inner.children.some(function(s){ if (s.contains(-x, null, z)) { s.y += delta * 1000 s.persisted = false console.log(s.id) return true } return false }) } base.stopPropagation = function(e){ e.stopPropagation() } base.exportObjects = function(){ var s = scene.inner.children .filter(function(s){ return ! s.persisted }) .map(function(s){ return s.toString() }) .join("\n\n") document.getElementById("export").value = s } base.exportCamera = function(){ var s = scene.camera.toString() document.getElementById("export").value = s console.log(s) } base.keydown = function(e){ switch (e.keyCode) { case 67: // c base.exportCamera() break; case 86: // v base.exportObjects() break; } } }