{"version":3,"sources":["globe.js"],"names":["container","camera","scene","renderer","group","geometry","globeTexture","pause","Math","log2","log","LOG2E","document","addEventListener","init","animate","forEach","querySelector","preventDefault","type","keyCode","innerText","window","announce","updateText","getElementById","THREE","PerspectiveCamera","offsetWidth","offsetHeight","position","z","Scene","Group","rotation","x","add","TextureLoader","load","SphereGeometry","MeshBasicMaterial","map","overdraw","Mesh","WebGLRenderer","alpha","setPixelRatio","devicePixelRatio","setSize","appendChild","domElement","requestAnimationFrame","render","clientWidth","clientHeight","aspect","updateProjectionMatrix","max","min","y","loadTexture","replace"],"mappings":"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","file":"globe.js","sourcesContent":["'use strict';\n\nvar container;\nvar camera, scene, renderer;\nvar group;\nvar geometry;\nvar globeTexture;\n\nvar pause = false;\n\n// Polyfill log 2 for IE11.\nMath.log2 = Math.log2 || function (x) {\n\treturn Math.log(x) * Math.LOG2E;\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\tinit();\n\tanimate();\n});\n\nfunction init() {\n\t['click', 'keypress'].forEach(function (event) {\n\t\tdocument.querySelector('#globePause').addEventListener(event, function (e) {\n\t\t\te.preventDefault();\n\t\t\tif (e.type === 'click' || e.keyCode === 0 || e.keyCode === 32 || e.keyCode === 13) {\n\t\t\t\tpause = !pause;\n\t\t\t}\n\t\t\tdocument.querySelector('#globePause').innerText = pause ? 'Unpause' : 'Pause';\n\t\t\tif (typeof window.announce !== 'undefined') {\n\t\t\t\tannounce.updateText(pause ? 'Rotation Paused ' : 'Rotation Un-Paused', 'polite');\n\t\t\t}\n\t\t});\n\t});\n\n\tcontainer = document.getElementById('container');\n\tcamera = new THREE.PerspectiveCamera(45, container.offsetWidth / container.offsetHeight, 1, 5000);\n\tcamera.position.z = 1000;\n\tscene = new THREE.Scene();\n\tgroup = new THREE.Group();\n\tscene.rotation.x = 0.2;\n\tscene.rotation.z = 0.3;\n\tscene.add(group);\n\n\tvar loader = new THREE.TextureLoader();\n\tloader.load(globeTexture, function (texture) {\n\t\tgeometry = new THREE.SphereGeometry(600, 30, 30);\n\t\tvar material = new THREE.MeshBasicMaterial({ map: texture, overdraw: 0.5 });\n\t\tvar globeMesh = new THREE.Mesh(geometry, material);\n\t\tgroup.add(globeMesh);\n\t});\n\n\trenderer = new THREE.WebGLRenderer({ alpha: true });\n\trenderer.setPixelRatio(window.devicePixelRatio);\n\trenderer.setSize(container.offsetWidth, container.offsetHeight);\n\tcontainer.appendChild(renderer.domElement);\n}\n\nfunction animate() {\n\trequestAnimationFrame(animate);\n\trender();\n}\n\nfunction render() {\n\tvar canvas = renderer.domElement;\n\tvar width = container.clientWidth;\n\tvar height = document.querySelector('.globeContent').clientHeight - 20;\n\n\tcamera.aspect = width / height;\n\tcamera.updateProjectionMatrix();\n\trenderer.setSize(width, height);\n\n\tcamera.position.z = Math.max(600 / Math.min(width, height) * 1800, 1800);\n\tif (!pause) {\n\t\tgroup.rotation.y -= 0.005;\n\t}\n\trenderer.render(scene, camera);\n}\n\nfunction loadTexture(t) {\n\tvar value = t.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '\"').replace(/'/g, '\\'');\n\n\tglobeTexture = value;\n}"]}