{"version":3,"file":"aframe.min.js","mappings":"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","sources":["webpack://AFRAME/webpack/universalModuleDefinition","webpack://AFRAME/./node_modules/@ungap/custom-elements/index.js","webpack://AFRAME/./node_modules/an-array/index.js","webpack://AFRAME/./node_modules/as-number/index.js","webpack://AFRAME/./node_modules/base64-js/index.js","webpack://AFRAME/./node_modules/buffer-equal/index.js","webpack://AFRAME/./node_modules/buffer/index.js","webpack://AFRAME/./node_modules/css-loader/dist/runtime/api.js","webpack://AFRAME/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://AFRAME/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://AFRAME/./node_modules/custom-event-polyfill/polyfill.js","webpack://AFRAME/./node_modules/debug/browser.js","webpack://AFRAME/./node_modules/debug/debug.js","webpack://AFRAME/./node_modules/deep-assign/index.js","webpack://AFRAME/./node_modules/dtype/index.js","webpack://AFRAME/./node_modules/flatten-vertex-data/index.js","webpack://AFRAME/./node_modules/global/window.js","webpack://AFRAME/./node_modules/ieee754/index.js","webpack://AFRAME/./node_modules/inherits/inherits_browser.js","webpack://AFRAME/./node_modules/is-buffer/index.js","webpack://AFRAME/./node_modules/is-function/index.js","webpack://AFRAME/./node_modules/is-obj/index.js","webpack://AFRAME/./node_modules/layout-bmfont-text/index.js","webpack://AFRAME/./node_modules/load-bmfont/browser.js","webpack://AFRAME/./node_modules/load-bmfont/lib/is-binary.js","webpack://AFRAME/./node_modules/object-assign/index.js","webpack://AFRAME/./node_modules/parse-bmfont-ascii/index.js","webpack://AFRAME/./node_modules/parse-bmfont-binary/index.js","webpack://AFRAME/./node_modules/parse-bmfont-xml/lib/browser.js","webpack://AFRAME/./node_modules/parse-bmfont-xml/lib/parse-attribs.js","webpack://AFRAME/./node_modules/parse-headers/parse-headers.js","webpack://AFRAME/./node_modules/present/lib/present-browser.js","webpack://AFRAME/./node_modules/process/browser.js","webpack://AFRAME/./node_modules/promise-polyfill/Promise.js","webpack://AFRAME/./node_modules/quad-indices/index.js","webpack://AFRAME/./node_modules/super-animejs/lib/anime.es.js","webpack://AFRAME/./node_modules/three-bmfont-text/index.js","webpack://AFRAME/./node_modules/three-bmfont-text/lib/utils.js","webpack://AFRAME/./node_modules/three-bmfont-text/lib/vertices.js","webpack://AFRAME/./node_modules/three-buffer-vertex-data/index.js","webpack://AFRAME/./node_modules/webvr-polyfill/build/webvr-polyfill.js","webpack://AFRAME/./node_modules/word-wrapper/index.js","webpack://AFRAME/./node_modules/xhr/index.js","webpack://AFRAME/./node_modules/xml-parse-from-string/index.js","webpack://AFRAME/./node_modules/xtend/immutable.js","webpack://AFRAME/./src/components/animation.js","webpack://AFRAME/./src/components/camera.js","webpack://AFRAME/./src/components/cursor.js","webpack://AFRAME/./src/components/daydream-controls.js","webpack://AFRAME/./src/components/gearvr-controls.js","webpack://AFRAME/./src/components/generic-tracked-controller-controls.js","webpack://AFRAME/./src/components/geometry.js","webpack://AFRAME/./src/components/gltf-model.js","webpack://AFRAME/./src/components/hand-controls.js","webpack://AFRAME/./src/components/hand-tracking-controls.js","webpack://AFRAME/./src/components/hide-on-enter-ar.js","webpack://AFRAME/./src/components/hp-mixed-reality-controls.js","webpack://AFRAME/./src/components/index.js","webpack://AFRAME/./src/components/laser-controls.js","webpack://AFRAME/./src/components/layer.js","webpack://AFRAME/./src/components/light.js","webpack://AFRAME/./src/components/line.js","webpack://AFRAME/./src/components/link.js","webpack://AFRAME/./src/components/look-controls.js","webpack://AFRAME/./src/components/magicleap-controls.js","webpack://AFRAME/./src/components/material.js","webpack://AFRAME/./src/components/obj-model.js","webpack://AFRAME/./src/components/oculus-go-controls.js","webpack://AFRAME/./src/components/oculus-touch-controls.js","webpack://AFRAME/./src/components/position.js","webpack://AFRAME/./src/components/raycaster.js","webpack://AFRAME/./src/components/rotation.js","webpack://AFRAME/./src/components/scale.js","webpack://AFRAME/./src/components/scene/ar-hit-test.js","webpack://AFRAME/./src/components/scene/background.js","webpack://AFRAME/./src/components/scene/debug.js","webpack://AFRAME/./src/components/scene/device-orientation-permission-ui.js","webpack://AFRAME/./src/components/scene/embedded.js","webpack://AFRAME/./src/components/scene/fog.js","webpack://AFRAME/./src/components/scene/inspector.js","webpack://AFRAME/./src/components/scene/keyboard-shortcuts.js","webpack://AFRAME/./src/components/scene/pool.js","webpack://AFRAME/./src/components/scene/reflection.js","webpack://AFRAME/./src/components/scene/screenshot.js","webpack://AFRAME/./src/components/scene/stats.js","webpack://AFRAME/./src/components/scene/vr-mode-ui.js","webpack://AFRAME/./src/components/shadow.js","webpack://AFRAME/./src/components/sound.js","webpack://AFRAME/./src/components/text.js","webpack://AFRAME/./src/components/tracked-controls-webvr.js","webpack://AFRAME/./src/components/tracked-controls-webxr.js","webpack://AFRAME/./src/components/tracked-controls.js","webpack://AFRAME/./src/components/valve-index-controls.js","webpack://AFRAME/./src/components/visible.js","webpack://AFRAME/./src/components/vive-controls.js","webpack://AFRAME/./src/components/vive-focus-controls.js","webpack://AFRAME/./src/components/wasd-controls.js","webpack://AFRAME/./src/components/windows-motion-controls.js","webpack://AFRAME/./src/constants/index.js","webpack://AFRAME/./src/constants/keyboardevent.js","webpack://AFRAME/./src/core/a-assets.js","webpack://AFRAME/./src/core/a-cubemap.js","webpack://AFRAME/./src/core/a-entity.js","webpack://AFRAME/./src/core/a-mixin.js","webpack://AFRAME/./src/core/a-node.js","webpack://AFRAME/./src/core/component.js","webpack://AFRAME/./src/core/geometry.js","webpack://AFRAME/./src/core/propertyTypes.js","webpack://AFRAME/./src/core/scene/a-scene.js","webpack://AFRAME/./src/core/scene/loadingScreen.js","webpack://AFRAME/./src/core/scene/metaTags.js","webpack://AFRAME/./src/core/scene/postMessage.js","webpack://AFRAME/./src/core/scene/scenes.js","webpack://AFRAME/./src/core/scene/wakelock.js","webpack://AFRAME/./src/core/schema.js","webpack://AFRAME/./src/core/shader.js","webpack://AFRAME/./src/core/system.js","webpack://AFRAME/./src/extras/components/index.js","webpack://AFRAME/./src/extras/components/pivot.js","webpack://AFRAME/./src/extras/primitives/getMeshMixin.js","webpack://AFRAME/./src/extras/primitives/index.js","webpack://AFRAME/./src/extras/primitives/primitives.js","webpack://AFRAME/./src/extras/primitives/primitives/a-camera.js","webpack://AFRAME/./src/extras/primitives/primitives/a-cursor.js","webpack://AFRAME/./src/extras/primitives/primitives/a-curvedimage.js","webpack://AFRAME/./src/extras/primitives/primitives/a-gltf-model.js","webpack://AFRAME/./src/extras/primitives/primitives/a-image.js","webpack://AFRAME/./src/extras/primitives/primitives/a-light.js","webpack://AFRAME/./src/extras/primitives/primitives/a-link.js","webpack://AFRAME/./src/extras/primitives/primitives/a-obj-model.js","webpack://AFRAME/./src/extras/primitives/primitives/a-sky.js","webpack://AFRAME/./src/extras/primitives/primitives/a-sound.js","webpack://AFRAME/./src/extras/primitives/primitives/a-text.js","webpack://AFRAME/./src/extras/primitives/primitives/a-video.js","webpack://AFRAME/./src/extras/primitives/primitives/a-videosphere.js","webpack://AFRAME/./src/extras/primitives/primitives/meshPrimitives.js","webpack://AFRAME/./src/geometries/box.js","webpack://AFRAME/./src/geometries/circle.js","webpack://AFRAME/./src/geometries/cone.js","webpack://AFRAME/./src/geometries/cylinder.js","webpack://AFRAME/./src/geometries/dodecahedron.js","webpack://AFRAME/./src/geometries/icosahedron.js","webpack://AFRAME/./src/geometries/index.js","webpack://AFRAME/./src/geometries/octahedron.js","webpack://AFRAME/./src/geometries/plane.js","webpack://AFRAME/./src/geometries/ring.js","webpack://AFRAME/./src/geometries/sphere.js","webpack://AFRAME/./src/geometries/tetrahedron.js","webpack://AFRAME/./src/geometries/torus.js","webpack://AFRAME/./src/geometries/torusKnot.js","webpack://AFRAME/./src/geometries/triangle.js","webpack://AFRAME/./src/index.js","webpack://AFRAME/./src/lib/rStatsAframe.js","webpack://AFRAME/./src/lib/three.js","webpack://AFRAME/./node_modules/super-three/build/three.module.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/loaders/DRACOLoader.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/loaders/GLTFLoader.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/utils/WorkerPool.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/libs/ktx-parse.module.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/libs/zstddec.module.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/loaders/KTX2Loader.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/loaders/OBJLoader.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/loaders/MTLLoader.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/utils/BufferGeometryUtils.js","webpack://AFRAME/./node_modules/super-three/examples/jsm/lights/LightProbeGenerator.js","webpack://AFRAME/./src/lib/three.module.js","webpack://AFRAME/./src/shaders/flat.js","webpack://AFRAME/./src/shaders/index.js","webpack://AFRAME/./src/shaders/ios10hls.js","webpack://AFRAME/./src/shaders/msdf.js","webpack://AFRAME/./src/shaders/phong.js","webpack://AFRAME/./src/shaders/sdf.js","webpack://AFRAME/./src/shaders/shadow.js","webpack://AFRAME/./src/shaders/standard.js","webpack://AFRAME/./src/systems/camera.js","webpack://AFRAME/./src/systems/geometry.js","webpack://AFRAME/./src/systems/gltf-model.js","webpack://AFRAME/./src/systems/index.js","webpack://AFRAME/./src/systems/light.js","webpack://AFRAME/./src/systems/material.js","webpack://AFRAME/./src/systems/renderer.js","webpack://AFRAME/./src/systems/shadow.js","webpack://AFRAME/./src/systems/tracked-controls-webvr.js","webpack://AFRAME/./src/systems/tracked-controls-webxr.js","webpack://AFRAME/./src/systems/webxr.js","webpack://AFRAME/./src/utils/bind.js","webpack://AFRAME/./src/utils/coordinates.js","webpack://AFRAME/./src/utils/debug.js","webpack://AFRAME/./src/utils/device.js","webpack://AFRAME/./src/utils/entity.js","webpack://AFRAME/./src/utils/forceCanvasResizeSafariMobile.js","webpack://AFRAME/./src/utils/index.js","webpack://AFRAME/./src/utils/ios-orientationchange-blank-bug.js","webpack://AFRAME/./src/utils/is-ie11.js","webpack://AFRAME/./src/utils/isIOSOlderThan10.js","webpack://AFRAME/./src/utils/material.js","webpack://AFRAME/./src/utils/math.js","webpack://AFRAME/./src/utils/object-pool.js","webpack://AFRAME/./src/utils/split.js","webpack://AFRAME/./src/utils/src-loader.js","webpack://AFRAME/./src/utils/styleParser.js","webpack://AFRAME/./src/utils/tracked-controls.js","webpack://AFRAME/./vendor/DeviceOrientationControls.js","webpack://AFRAME/./vendor/rStats.extras.js","webpack://AFRAME/./vendor/rStats.js","webpack://AFRAME/./vendor/starts-with-polyfill.js","webpack://AFRAME/./vendor/wakelock/util.js","webpack://AFRAME/./vendor/wakelock/wakelock.js","webpack://AFRAME/./src/style/aframe.css","webpack://AFRAME/./src/style/rStats.css","webpack://AFRAME/./src/style/aframe.css?ccfc","webpack://AFRAME/./src/style/rStats.css?d035","webpack://AFRAME/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://AFRAME/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://AFRAME/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://AFRAME/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://AFRAME/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://AFRAME/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://AFRAME/webpack/bootstrap","webpack://AFRAME/webpack/runtime/compat get default export","webpack://AFRAME/webpack/runtime/define property getters","webpack://AFRAME/webpack/runtime/global","webpack://AFRAME/webpack/runtime/hasOwnProperty shorthand","webpack://AFRAME/webpack/runtime/make namespace object","webpack://AFRAME/webpack/runtime/jsonp chunk loading","webpack://AFRAME/webpack/runtime/nonce","webpack://AFRAME/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AFRAME\"] = factory();\n\telse\n\t\troot[\"AFRAME\"] = factory();\n})(self, () => {\nreturn ","/*! (c) Andrea Giammarchi @webreflection ISC */\n(function () {\n 'use strict';\n\n var attributesObserver = (function (whenDefined, MutationObserver) {\n var attributeChanged = function attributeChanged(records) {\n for (var i = 0, length = records.length; i < length; i++) {\n dispatch(records[i]);\n }\n };\n var dispatch = function dispatch(_ref) {\n var target = _ref.target,\n attributeName = _ref.attributeName,\n oldValue = _ref.oldValue;\n target.attributeChangedCallback(attributeName, oldValue, target.getAttribute(attributeName));\n };\n return function (target, is) {\n var attributeFilter = target.constructor.observedAttributes;\n if (attributeFilter) {\n whenDefined(is).then(function () {\n new MutationObserver(attributeChanged).observe(target, {\n attributes: true,\n attributeOldValue: true,\n attributeFilter: attributeFilter\n });\n for (var i = 0, length = attributeFilter.length; i < length; i++) {\n if (target.hasAttribute(attributeFilter[i])) dispatch({\n target: target,\n attributeName: attributeFilter[i],\n oldValue: null\n });\n }\n });\n }\n return target;\n };\n });\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function () {};\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n }\n\n /*! (c) Andrea Giammarchi - ISC */\n var TRUE = true,\n FALSE = false,\n QSA$1 = 'querySelectorAll';\n\n /**\n * Start observing a generic document or root element.\n * @param {(node:Element, connected:boolean) => void} callback triggered per each dis/connected element\n * @param {Document|Element} [root=document] by default, the global document to observe\n * @param {Function} [MO=MutationObserver] by default, the global MutationObserver\n * @param {string[]} [query=['*']] the selectors to use within nodes\n * @returns {MutationObserver}\n */\n var notify = function notify(callback) {\n var root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n var MO = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : MutationObserver;\n var query = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : ['*'];\n var loop = function loop(nodes, selectors, added, removed, connected, pass) {\n var _iterator = _createForOfIteratorHelper(nodes),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var node = _step.value;\n if (pass || QSA$1 in node) {\n if (connected) {\n if (!added.has(node)) {\n added.add(node);\n removed[\"delete\"](node);\n callback(node, connected);\n }\n } else if (!removed.has(node)) {\n removed.add(node);\n added[\"delete\"](node);\n callback(node, connected);\n }\n if (!pass) loop(node[QSA$1](selectors), selectors, added, removed, connected, TRUE);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n };\n var mo = new MO(function (records) {\n if (query.length) {\n var selectors = query.join(',');\n var added = new Set(),\n removed = new Set();\n var _iterator2 = _createForOfIteratorHelper(records),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _step2.value,\n addedNodes = _step2$value.addedNodes,\n removedNodes = _step2$value.removedNodes;\n loop(removedNodes, selectors, added, removed, FALSE, FALSE);\n loop(addedNodes, selectors, added, removed, TRUE, FALSE);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n });\n var observe = mo.observe;\n (mo.observe = function (node) {\n return observe.call(mo, node, {\n subtree: TRUE,\n childList: TRUE\n });\n })(root);\n return mo;\n };\n\n var QSA = 'querySelectorAll';\n var _self$1 = self,\n document$2 = _self$1.document,\n Element$1 = _self$1.Element,\n MutationObserver$2 = _self$1.MutationObserver,\n Set$2 = _self$1.Set,\n WeakMap$1 = _self$1.WeakMap;\n var elements = function elements(element) {\n return QSA in element;\n };\n var filter = [].filter;\n var qsaObserver = (function (options) {\n var live = new WeakMap$1();\n var drop = function drop(elements) {\n for (var i = 0, length = elements.length; i < length; i++) {\n live[\"delete\"](elements[i]);\n }\n };\n var flush = function flush() {\n var records = observer.takeRecords();\n for (var i = 0, length = records.length; i < length; i++) {\n parse(filter.call(records[i].removedNodes, elements), false);\n parse(filter.call(records[i].addedNodes, elements), true);\n }\n };\n var matches = function matches(element) {\n return element.matches || element.webkitMatchesSelector || element.msMatchesSelector;\n };\n var notifier = function notifier(element, connected) {\n var selectors;\n if (connected) {\n for (var q, m = matches(element), i = 0, length = query.length; i < length; i++) {\n if (m.call(element, q = query[i])) {\n if (!live.has(element)) live.set(element, new Set$2());\n selectors = live.get(element);\n if (!selectors.has(q)) {\n selectors.add(q);\n options.handle(element, connected, q);\n }\n }\n }\n } else if (live.has(element)) {\n selectors = live.get(element);\n live[\"delete\"](element);\n selectors.forEach(function (q) {\n options.handle(element, connected, q);\n });\n }\n };\n var parse = function parse(elements) {\n var connected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n for (var i = 0, length = elements.length; i < length; i++) {\n notifier(elements[i], connected);\n }\n };\n var query = options.query;\n var root = options.root || document$2;\n var observer = notify(notifier, root, MutationObserver$2, query);\n var attachShadow = Element$1.prototype.attachShadow;\n if (attachShadow) Element$1.prototype.attachShadow = function (init) {\n var shadowRoot = attachShadow.call(this, init);\n observer.observe(shadowRoot);\n return shadowRoot;\n };\n if (query.length) parse(root[QSA](query));\n return {\n drop: drop,\n flush: flush,\n observer: observer,\n parse: parse\n };\n });\n\n var _self = self,\n document$1 = _self.document,\n Map = _self.Map,\n MutationObserver$1 = _self.MutationObserver,\n Object$1 = _self.Object,\n Set$1 = _self.Set,\n WeakMap = _self.WeakMap,\n Element = _self.Element,\n HTMLElement = _self.HTMLElement,\n Node = _self.Node,\n Error = _self.Error,\n TypeError$1 = _self.TypeError,\n Reflect = _self.Reflect;\n var defineProperty = Object$1.defineProperty,\n keys = Object$1.keys,\n getOwnPropertyNames = Object$1.getOwnPropertyNames,\n setPrototypeOf = Object$1.setPrototypeOf;\n var legacy = !self.customElements;\n var expando = function expando(element) {\n var key = keys(element);\n var value = [];\n var length = key.length;\n for (var i = 0; i < length; i++) {\n value[i] = element[key[i]];\n delete element[key[i]];\n }\n return function () {\n for (var _i = 0; _i < length; _i++) {\n element[key[_i]] = value[_i];\n }\n };\n };\n if (legacy) {\n var HTMLBuiltIn = function HTMLBuiltIn() {\n var constructor = this.constructor;\n if (!classes.has(constructor)) throw new TypeError$1('Illegal constructor');\n var is = classes.get(constructor);\n if (override) return augment(override, is);\n var element = createElement.call(document$1, is);\n return augment(setPrototypeOf(element, constructor.prototype), is);\n };\n var createElement = document$1.createElement;\n var classes = new Map();\n var defined = new Map();\n var prototypes = new Map();\n var registry = new Map();\n var query = [];\n var handle = function handle(element, connected, selector) {\n var proto = prototypes.get(selector);\n if (connected && !proto.isPrototypeOf(element)) {\n var redefine = expando(element);\n override = setPrototypeOf(element, proto);\n try {\n new proto.constructor();\n } finally {\n override = null;\n redefine();\n }\n }\n var method = \"\".concat(connected ? '' : 'dis', \"connectedCallback\");\n if (method in proto) element[method]();\n };\n var _qsaObserver = qsaObserver({\n query: query,\n handle: handle\n }),\n parse = _qsaObserver.parse;\n var override = null;\n var whenDefined = function whenDefined(name) {\n if (!defined.has(name)) {\n var _,\n $ = new Promise(function ($) {\n _ = $;\n });\n defined.set(name, {\n $: $,\n _: _\n });\n }\n return defined.get(name).$;\n };\n var augment = attributesObserver(whenDefined, MutationObserver$1);\n defineProperty(self, 'customElements', {\n configurable: true,\n value: {\n define: function define(is, Class) {\n if (registry.has(is)) throw new Error(\"the name \\\"\".concat(is, \"\\\" has already been used with this registry\"));\n classes.set(Class, is);\n prototypes.set(is, Class.prototype);\n registry.set(is, Class);\n query.push(is);\n whenDefined(is).then(function () {\n parse(document$1.querySelectorAll(is));\n });\n defined.get(is)._(Class);\n },\n get: function get(is) {\n return registry.get(is);\n },\n whenDefined: whenDefined\n }\n });\n defineProperty(HTMLBuiltIn.prototype = HTMLElement.prototype, 'constructor', {\n value: HTMLBuiltIn\n });\n defineProperty(self, 'HTMLElement', {\n configurable: true,\n value: HTMLBuiltIn\n });\n defineProperty(document$1, 'createElement', {\n configurable: true,\n value: function value(name, options) {\n var is = options && options.is;\n var Class = is ? registry.get(is) : registry.get(name);\n return Class ? new Class() : createElement.call(document$1, name);\n }\n });\n // in case ShadowDOM is used through a polyfill, to avoid issues\n // with builtin extends within shadow roots\n if (!('isConnected' in Node.prototype)) defineProperty(Node.prototype, 'isConnected', {\n configurable: true,\n get: function get() {\n return !(this.ownerDocument.compareDocumentPosition(this) & this.DOCUMENT_POSITION_DISCONNECTED);\n }\n });\n } else {\n legacy = !self.customElements.get('extends-li');\n if (legacy) {\n try {\n var LI = function LI() {\n return self.Reflect.construct(HTMLLIElement, [], LI);\n };\n LI.prototype = HTMLLIElement.prototype;\n var is = 'extends-li';\n self.customElements.define('extends-li', LI, {\n 'extends': 'li'\n });\n legacy = document$1.createElement('li', {\n is: is\n }).outerHTML.indexOf(is) < 0;\n var _self$customElements = self.customElements,\n get = _self$customElements.get,\n _whenDefined = _self$customElements.whenDefined;\n defineProperty(self.customElements, 'whenDefined', {\n configurable: true,\n value: function value(is) {\n var _this = this;\n return _whenDefined.call(this, is).then(function (Class) {\n return Class || get.call(_this, is);\n });\n }\n });\n } catch (o_O) {}\n }\n }\n if (legacy) {\n var parseShadow = function parseShadow(element) {\n var root = shadowRoots.get(element);\n _parse(root.querySelectorAll(this), element.isConnected);\n };\n var customElements = self.customElements;\n var _createElement = document$1.createElement;\n var define = customElements.define,\n _get = customElements.get,\n upgrade = customElements.upgrade;\n var _ref = Reflect || {\n construct: function construct(HTMLElement) {\n return HTMLElement.call(this);\n }\n },\n construct = _ref.construct;\n var shadowRoots = new WeakMap();\n var shadows = new Set$1();\n var _classes = new Map();\n var _defined = new Map();\n var _prototypes = new Map();\n var _registry = new Map();\n var shadowed = [];\n var _query = [];\n var getCE = function getCE(is) {\n return _registry.get(is) || _get.call(customElements, is);\n };\n var _handle = function _handle(element, connected, selector) {\n var proto = _prototypes.get(selector);\n if (connected && !proto.isPrototypeOf(element)) {\n var redefine = expando(element);\n _override = setPrototypeOf(element, proto);\n try {\n new proto.constructor();\n } finally {\n _override = null;\n redefine();\n }\n }\n var method = \"\".concat(connected ? '' : 'dis', \"connectedCallback\");\n if (method in proto) element[method]();\n };\n var _qsaObserver2 = qsaObserver({\n query: _query,\n handle: _handle\n }),\n _parse = _qsaObserver2.parse;\n var _qsaObserver3 = qsaObserver({\n query: shadowed,\n handle: function handle(element, connected) {\n if (shadowRoots.has(element)) {\n if (connected) shadows.add(element);else shadows[\"delete\"](element);\n if (_query.length) parseShadow.call(_query, element);\n }\n }\n }),\n parseShadowed = _qsaObserver3.parse;\n // qsaObserver also patches attachShadow\n // be sure this runs *after* that\n var attachShadow = Element.prototype.attachShadow;\n if (attachShadow) Element.prototype.attachShadow = function (init) {\n var root = attachShadow.call(this, init);\n shadowRoots.set(this, root);\n return root;\n };\n var _whenDefined2 = function _whenDefined2(name) {\n if (!_defined.has(name)) {\n var _,\n $ = new Promise(function ($) {\n _ = $;\n });\n _defined.set(name, {\n $: $,\n _: _\n });\n }\n return _defined.get(name).$;\n };\n var _augment = attributesObserver(_whenDefined2, MutationObserver$1);\n var _override = null;\n getOwnPropertyNames(self).filter(function (k) {\n return /^HTML.*Element$/.test(k);\n }).forEach(function (k) {\n var HTMLElement = self[k];\n function HTMLBuiltIn() {\n var constructor = this.constructor;\n if (!_classes.has(constructor)) throw new TypeError$1('Illegal constructor');\n var _classes$get = _classes.get(constructor),\n is = _classes$get.is,\n tag = _classes$get.tag;\n if (is) {\n if (_override) return _augment(_override, is);\n var element = _createElement.call(document$1, tag);\n element.setAttribute('is', is);\n return _augment(setPrototypeOf(element, constructor.prototype), is);\n } else return construct.call(this, HTMLElement, [], constructor);\n }\n\n defineProperty(HTMLBuiltIn.prototype = HTMLElement.prototype, 'constructor', {\n value: HTMLBuiltIn\n });\n defineProperty(self, k, {\n value: HTMLBuiltIn\n });\n });\n defineProperty(document$1, 'createElement', {\n configurable: true,\n value: function value(name, options) {\n var is = options && options.is;\n if (is) {\n var Class = _registry.get(is);\n if (Class && _classes.get(Class).tag === name) return new Class();\n }\n var element = _createElement.call(document$1, name);\n if (is) element.setAttribute('is', is);\n return element;\n }\n });\n defineProperty(customElements, 'get', {\n configurable: true,\n value: getCE\n });\n defineProperty(customElements, 'whenDefined', {\n configurable: true,\n value: _whenDefined2\n });\n defineProperty(customElements, 'upgrade', {\n configurable: true,\n value: function value(element) {\n var is = element.getAttribute('is');\n if (is) {\n var _constructor = _registry.get(is);\n if (_constructor) {\n _augment(setPrototypeOf(element, _constructor.prototype), is);\n // apparently unnecessary because this is handled by qsa observer\n // if (element.isConnected && element.connectedCallback)\n // element.connectedCallback();\n return;\n }\n }\n upgrade.call(customElements, element);\n }\n });\n defineProperty(customElements, 'define', {\n configurable: true,\n value: function value(is, Class, options) {\n if (getCE(is)) throw new Error(\"'\".concat(is, \"' has already been defined as a custom element\"));\n var selector;\n var tag = options && options[\"extends\"];\n _classes.set(Class, tag ? {\n is: is,\n tag: tag\n } : {\n is: '',\n tag: is\n });\n if (tag) {\n selector = \"\".concat(tag, \"[is=\\\"\").concat(is, \"\\\"]\");\n _prototypes.set(selector, Class.prototype);\n _registry.set(is, Class);\n _query.push(selector);\n } else {\n define.apply(customElements, arguments);\n shadowed.push(selector = is);\n }\n _whenDefined2(is).then(function () {\n if (tag) {\n _parse(document$1.querySelectorAll(selector));\n shadows.forEach(parseShadow, [selector]);\n } else parseShadowed(document$1.querySelectorAll(selector));\n });\n _defined.get(is)._(Class);\n }\n });\n }\n\n})();\n","var str = Object.prototype.toString\n\nmodule.exports = anArray\n\nfunction anArray(arr) {\n return (\n arr.BYTES_PER_ELEMENT\n && str.call(arr.buffer) === '[object ArrayBuffer]'\n || Array.isArray(arr)\n )\n}\n","module.exports = function numtype(num, def) {\n\treturn typeof num === 'number'\n\t\t? num \n\t\t: (typeof def === 'number' ? def : 0)\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var Buffer = require('buffer').Buffer; // for use with browserify\n\nmodule.exports = function (a, b) {\n if (!Buffer.isBuffer(a)) return undefined;\n if (!Buffer.isBuffer(b)) return undefined;\n if (typeof a.equals === 'function') return a.equals(b);\n if (a.length !== b.length) return false;\n \n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n \n return true;\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\n(function() {\n if (typeof window === 'undefined') {\n return;\n }\n\n try {\n var ce = new window.CustomEvent('test', { cancelable: true });\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n } catch (e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {};\n params.bubbles = !!params.bubbles;\n params.cancelable = !!params.cancelable;\n\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(\n event,\n params.bubbles,\n params.cancelable,\n params.detail\n );\n origPrevent = evt.preventDefault;\n evt.preventDefault = function() {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n }\n });\n } catch (e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n }\n})();\n","\n/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // is webkit? http://stackoverflow.com/a/16459606/376773\n return ('WebkitAppearance' in document.documentElement.style) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (window.console && (console.firebug || (console.exception && console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31);\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n return JSON.stringify(v);\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs() {\n var args = arguments;\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ');\n\n if (!useColors) return args;\n\n var c = 'color: ' + this.color;\n args = [args[0], c, 'color: inherit'].concat(Array.prototype.slice.call(args, 1));\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n return args;\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage(){\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = debug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lowercased letter, i.e. \"n\".\n */\n\nexports.formatters = {};\n\n/**\n * Previously assigned color.\n */\n\nvar prevColor = 0;\n\n/**\n * Select a color.\n *\n * @return {Number}\n * @api private\n */\n\nfunction selectColor() {\n return exports.colors[prevColor++ % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction debug(namespace) {\n\n // define the `disabled` version\n function disabled() {\n }\n disabled.enabled = false;\n\n // define the `enabled` version\n function enabled() {\n\n var self = enabled;\n\n // add the `color` if not set\n if (null == self.useColors) self.useColors = exports.useColors();\n if (null == self.color && self.useColors) self.color = selectColor();\n\n var args = Array.prototype.slice.call(arguments);\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %o\n args = ['%o'].concat(args);\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n if ('function' === typeof exports.formatArgs) {\n args = exports.formatArgs.apply(self, args);\n }\n var logFn = enabled.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n enabled.enabled = true;\n\n var fn = exports.enabled(namespace) ? enabled : disabled;\n\n fn.namespace = namespace;\n\n return fn;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n var split = (namespaces || '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","'use strict';\nvar isObj = require('is-obj');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Sources cannot be null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction assignKey(to, from, key) {\n\tvar val = from[key];\n\n\tif (val === undefined || val === null) {\n\t\treturn;\n\t}\n\n\tif (hasOwnProperty.call(to, key)) {\n\t\tif (to[key] === undefined || to[key] === null) {\n\t\t\tthrow new TypeError('Cannot convert undefined or null to object (' + key + ')');\n\t\t}\n\t}\n\n\tif (!hasOwnProperty.call(to, key) || !isObj(val)) {\n\t\tto[key] = val;\n\t} else {\n\t\tto[key] = assign(Object(to[key]), from[key]);\n\t}\n}\n\nfunction assign(to, from) {\n\tif (to === from) {\n\t\treturn to;\n\t}\n\n\tfrom = Object(from);\n\n\tfor (var key in from) {\n\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\tassignKey(to, from, key);\n\t\t}\n\t}\n\n\tif (Object.getOwnPropertySymbols) {\n\t\tvar symbols = Object.getOwnPropertySymbols(from);\n\n\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\tassignKey(to, from, symbols[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n}\n\nmodule.exports = function deepAssign(target) {\n\ttarget = toObject(target);\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tassign(target, arguments[s]);\n\t}\n\n\treturn target;\n};\n","module.exports = function(dtype) {\n switch (dtype) {\n case 'int8':\n return Int8Array\n case 'int16':\n return Int16Array\n case 'int32':\n return Int32Array\n case 'uint8':\n return Uint8Array\n case 'uint16':\n return Uint16Array\n case 'uint32':\n return Uint32Array\n case 'float32':\n return Float32Array\n case 'float64':\n return Float64Array\n case 'array':\n return Array\n case 'uint8_clamped':\n return Uint8ClampedArray\n }\n}\n","/*eslint new-cap:0*/\nvar dtype = require('dtype')\n\nmodule.exports = flattenVertexData\n\nfunction flattenVertexData (data, output, offset) {\n if (!data) throw new TypeError('must specify data as first parameter')\n offset = +(offset || 0) | 0\n\n if (Array.isArray(data) && (data[0] && typeof data[0][0] === 'number')) {\n var dim = data[0].length\n var length = data.length * dim\n var i, j, k, l\n\n // no output specified, create a new typed array\n if (!output || typeof output === 'string') {\n output = new (dtype(output || 'float32'))(length + offset)\n }\n\n var dstLength = output.length - offset\n if (length !== dstLength) {\n throw new Error('source length ' + length + ' (' + dim + 'x' + data.length + ')' +\n ' does not match destination length ' + dstLength)\n }\n\n for (i = 0, k = offset; i < data.length; i++) {\n for (j = 0; j < dim; j++) {\n output[k++] = data[i][j] === null ? NaN : data[i][j]\n }\n }\n } else {\n if (!output || typeof output === 'string') {\n // no output, create a new one\n var Ctor = dtype(output || 'float32')\n\n // handle arrays separately due to possible nulls\n if (Array.isArray(data) || output === 'array') {\n output = new Ctor(data.length + offset)\n for (i = 0, k = offset, l = output.length; k < l; k++, i++) {\n output[k] = data[i] === null ? NaN : data[i]\n }\n } else {\n if (offset === 0) {\n output = new Ctor(data)\n } else {\n output = new Ctor(data.length + offset)\n\n output.set(data, offset)\n }\n }\n } else {\n // store output in existing array\n output.set(data, offset)\n }\n }\n\n return output\n}\n","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n if (!fn) {\n return false\n }\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","'use strict';\nmodule.exports = function (x) {\n\tvar type = typeof x;\n\treturn x !== null && (type === 'object' || type === 'function');\n};\n","var wordWrap = require('word-wrapper')\nvar xtend = require('xtend')\nvar number = require('as-number')\n\nvar X_HEIGHTS = ['x', 'e', 'a', 'o', 'n', 's', 'r', 'c', 'u', 'm', 'v', 'w', 'z']\nvar M_WIDTHS = ['m', 'w']\nvar CAP_HEIGHTS = ['H', 'I', 'N', 'E', 'F', 'K', 'L', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']\n\n\nvar TAB_ID = '\\t'.charCodeAt(0)\nvar SPACE_ID = ' '.charCodeAt(0)\nvar ALIGN_LEFT = 0, \n ALIGN_CENTER = 1, \n ALIGN_RIGHT = 2\n\nmodule.exports = function createLayout(opt) {\n return new TextLayout(opt)\n}\n\nfunction TextLayout(opt) {\n this.glyphs = []\n this._measure = this.computeMetrics.bind(this)\n this.update(opt)\n}\n\nTextLayout.prototype.update = function(opt) {\n opt = xtend({\n measure: this._measure\n }, opt)\n this._opt = opt\n this._opt.tabSize = number(this._opt.tabSize, 4)\n\n if (!opt.font)\n throw new Error('must provide a valid bitmap font')\n\n var glyphs = this.glyphs\n var text = opt.text||'' \n var font = opt.font\n this._setupSpaceGlyphs(font)\n \n var lines = wordWrap.lines(text, opt)\n var minWidth = opt.width || 0\n\n //clear glyphs\n glyphs.length = 0\n\n //get max line width\n var maxLineWidth = lines.reduce(function(prev, line) {\n return Math.max(prev, line.width, minWidth)\n }, 0)\n\n //the pen position\n var x = 0\n var y = 0\n var lineHeight = number(opt.lineHeight, font.common.lineHeight)\n var baseline = font.common.base\n var descender = lineHeight-baseline\n var letterSpacing = opt.letterSpacing || 0\n var height = lineHeight * lines.length - descender\n var align = getAlignType(this._opt.align)\n\n //draw text along baseline\n y -= height\n \n //the metrics for this text layout\n this._width = maxLineWidth\n this._height = height\n this._descender = lineHeight - baseline\n this._baseline = baseline\n this._xHeight = getXHeight(font)\n this._capHeight = getCapHeight(font)\n this._lineHeight = lineHeight\n this._ascender = lineHeight - descender - this._xHeight\n \n //layout each glyph\n var self = this\n lines.forEach(function(line, lineIndex) {\n var start = line.start\n var end = line.end\n var lineWidth = line.width\n var lastGlyph\n \n //for each glyph in that line...\n for (var i=start; i= width || nextPen >= width)\n break\n\n //otherwise continue along our line\n curPen = nextPen\n curWidth = nextWidth\n lastGlyph = glyph\n }\n count++\n }\n \n //make sure rightmost edge lines up with rendered glyphs\n if (lastGlyph)\n curWidth += lastGlyph.xoffset\n\n return {\n start: start,\n end: start + count,\n width: curWidth\n }\n}\n\n//getters for the private vars\n;['width', 'height', \n 'descender', 'ascender',\n 'xHeight', 'baseline',\n 'capHeight',\n 'lineHeight' ].forEach(addGetter)\n\nfunction addGetter(name) {\n Object.defineProperty(TextLayout.prototype, name, {\n get: wrapper(name),\n configurable: true\n })\n}\n\n//create lookups for private vars\nfunction wrapper(name) {\n return (new Function([\n 'return function '+name+'() {',\n ' return this._'+name,\n '}'\n ].join('\\n')))()\n}\n\nfunction getGlyphById(font, id) {\n if (!font.chars || font.chars.length === 0)\n return null\n\n var glyphIdx = findChar(font.chars, id)\n if (glyphIdx >= 0)\n return font.chars[glyphIdx]\n return null\n}\n\nfunction getXHeight(font) {\n for (var i=0; i= 0) \n return font.chars[idx].height\n }\n return 0\n}\n\nfunction getMGlyph(font) {\n for (var i=0; i= 0) \n return font.chars[idx]\n }\n return 0\n}\n\nfunction getCapHeight(font) {\n for (var i=0; i= 0) \n return font.chars[idx].height\n }\n return 0\n}\n\nfunction getKerning(font, left, right) {\n if (!font.kernings || font.kernings.length === 0)\n return 0\n\n var table = font.kernings\n for (var i=0; i 4 && equal(buf.slice(0, 4), HEADER)\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","module.exports = function parseBMFontAscii(data) {\n if (!data)\n throw new Error('no data provided')\n data = data.toString().trim()\n\n var output = {\n pages: [],\n chars: [],\n kernings: []\n }\n\n var lines = data.split(/\\r\\n?|\\n/g)\n\n if (lines.length === 0)\n throw new Error('no data in BMFont file')\n\n for (var i = 0; i < lines.length; i++) {\n var lineData = splitLine(lines[i], i)\n if (!lineData) //skip empty lines\n continue\n\n if (lineData.key === 'page') {\n if (typeof lineData.data.id !== 'number')\n throw new Error('malformed file at line ' + i + ' -- needs page id=N')\n if (typeof lineData.data.file !== 'string')\n throw new Error('malformed file at line ' + i + ' -- needs page file=\"path\"')\n output.pages[lineData.data.id] = lineData.data.file\n } else if (lineData.key === 'chars' || lineData.key === 'kernings') {\n //... do nothing for these two ...\n } else if (lineData.key === 'char') {\n output.chars.push(lineData.data)\n } else if (lineData.key === 'kerning') {\n output.kernings.push(lineData.data)\n } else {\n output[lineData.key] = lineData.data\n }\n }\n\n return output\n}\n\nfunction splitLine(line, idx) {\n line = line.replace(/\\t+/g, ' ').trim()\n if (!line)\n return null\n\n var space = line.indexOf(' ')\n if (space === -1) \n throw new Error(\"no named row at line \" + idx)\n\n var key = line.substring(0, space)\n\n line = line.substring(space + 1)\n //clear \"letter\" field as it is non-standard and\n //requires additional complexity to parse \" / = symbols\n line = line.replace(/letter=[\\'\\\"]\\S+[\\'\\\"]/gi, '') \n line = line.split(\"=\")\n line = line.map(function(str) {\n return str.trim().match((/(\".*?\"|[^\"\\s]+)+(?=\\s*|\\s*$)/g))\n })\n\n var data = []\n for (var i = 0; i < line.length; i++) {\n var dt = line[i]\n if (i === 0) {\n data.push({\n key: dt[0],\n data: \"\"\n })\n } else if (i === line.length - 1) {\n data[data.length - 1].data = parseData(dt[0])\n } else {\n data[data.length - 1].data = parseData(dt[0])\n data.push({\n key: dt[1],\n data: \"\"\n })\n }\n }\n\n var out = {\n key: key,\n data: {}\n }\n\n data.forEach(function(v) {\n out.data[v.key] = v.data;\n })\n\n return out\n}\n\nfunction parseData(data) {\n if (!data || data.length === 0)\n return \"\"\n\n if (data.indexOf('\"') === 0 || data.indexOf(\"'\") === 0)\n return data.substring(1, data.length - 1)\n if (data.indexOf(',') !== -1)\n return parseIntList(data)\n return parseInt(data, 10)\n}\n\nfunction parseIntList(data) {\n return data.split(',').map(function(val) {\n return parseInt(val, 10)\n })\n}","var HEADER = [66, 77, 70]\n\nmodule.exports = function readBMFontBinary(buf) {\n if (buf.length < 6)\n throw new Error('invalid buffer length for BMFont')\n\n var header = HEADER.every(function(byte, i) {\n return buf.readUInt8(i) === byte\n })\n\n if (!header)\n throw new Error('BMFont missing BMF byte header')\n\n var i = 3\n var vers = buf.readUInt8(i++)\n if (vers > 3)\n throw new Error('Only supports BMFont Binary v3 (BMFont App v1.10)')\n \n var target = { kernings: [], chars: [] }\n for (var b=0; b<5; b++)\n i += readBlock(target, buf, i)\n return target\n}\n\nfunction readBlock(target, buf, i) {\n if (i > buf.length-1)\n return 0\n\n var blockID = buf.readUInt8(i++)\n var blockSize = buf.readInt32LE(i)\n i += 4\n\n switch(blockID) {\n case 1: \n target.info = readInfo(buf, i)\n break\n case 2:\n target.common = readCommon(buf, i)\n break\n case 3:\n target.pages = readPages(buf, i, blockSize)\n break\n case 4:\n target.chars = readChars(buf, i, blockSize)\n break\n case 5:\n target.kernings = readKernings(buf, i, blockSize)\n break\n }\n return 5 + blockSize\n}\n\nfunction readInfo(buf, i) {\n var info = {}\n info.size = buf.readInt16LE(i)\n\n var bitField = buf.readUInt8(i+2)\n info.smooth = (bitField >> 7) & 1\n info.unicode = (bitField >> 6) & 1\n info.italic = (bitField >> 5) & 1\n info.bold = (bitField >> 4) & 1\n \n //fixedHeight is only mentioned in binary spec \n if ((bitField >> 3) & 1)\n info.fixedHeight = 1\n \n info.charset = buf.readUInt8(i+3) || ''\n info.stretchH = buf.readUInt16LE(i+4)\n info.aa = buf.readUInt8(i+6)\n info.padding = [\n buf.readInt8(i+7),\n buf.readInt8(i+8),\n buf.readInt8(i+9),\n buf.readInt8(i+10)\n ]\n info.spacing = [\n buf.readInt8(i+11),\n buf.readInt8(i+12)\n ]\n info.outline = buf.readUInt8(i+13)\n info.face = readStringNT(buf, i+14)\n return info\n}\n\nfunction readCommon(buf, i) {\n var common = {}\n common.lineHeight = buf.readUInt16LE(i)\n common.base = buf.readUInt16LE(i+2)\n common.scaleW = buf.readUInt16LE(i+4)\n common.scaleH = buf.readUInt16LE(i+6)\n common.pages = buf.readUInt16LE(i+8)\n var bitField = buf.readUInt8(i+10)\n common.packed = 0\n common.alphaChnl = buf.readUInt8(i+11)\n common.redChnl = buf.readUInt8(i+12)\n common.greenChnl = buf.readUInt8(i+13)\n common.blueChnl = buf.readUInt8(i+14)\n return common\n}\n\nfunction readPages(buf, i, size) {\n var pages = []\n var text = readNameNT(buf, i)\n var len = text.length+1\n var count = size / len\n for (var c=0; c element')\n var pages = pageRoot.getElementsByTagName('page')\n for (var i=0; i 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","(function(root) {\n\n\t// Store setTimeout reference so promise-polyfill will be unaffected by\n\t// other code modifying setTimeout (like sinon.useFakeTimers())\n\tvar setTimeoutFunc = setTimeout;\n\n\t// Use polyfill for setImmediate for performance gains\n\tvar asap = (typeof setImmediate === 'function' && setImmediate) ||\n\t\tfunction(fn) { setTimeoutFunc(fn, 1); };\n\n\t// Polyfill for Function.prototype.bind\n\tfunction bind(fn, thisArg) {\n\t\treturn function() {\n\t\t\tfn.apply(thisArg, arguments);\n\t\t}\n\t}\n\n\tvar isArray = Array.isArray || function(value) { return Object.prototype.toString.call(value) === \"[object Array]\" };\n\n\tfunction Promise(fn) {\n\t\tif (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');\n\t\tif (typeof fn !== 'function') throw new TypeError('not a function');\n\t\tthis._state = null;\n\t\tthis._value = null;\n\t\tthis._deferreds = []\n\n\t\tdoResolve(fn, bind(resolve, this), bind(reject, this))\n\t}\n\n\tfunction handle(deferred) {\n\t\tvar me = this;\n\t\tif (this._state === null) {\n\t\t\tthis._deferreds.push(deferred);\n\t\t\treturn\n\t\t}\n\t\tasap(function() {\n\t\t\tvar cb = me._state ? deferred.onFulfilled : deferred.onRejected\n\t\t\tif (cb === null) {\n\t\t\t\t(me._state ? deferred.resolve : deferred.reject)(me._value);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar ret;\n\t\t\ttry {\n\t\t\t\tret = cb(me._value);\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\tdeferred.reject(e);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdeferred.resolve(ret);\n\t\t})\n\t}\n\n\tfunction resolve(newValue) {\n\t\ttry { //Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n\t\t\tif (newValue === this) throw new TypeError('A promise cannot be resolved with itself.');\n\t\t\tif (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {\n\t\t\t\tvar then = newValue.then;\n\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\tdoResolve(bind(then, newValue), bind(resolve, this), bind(reject, this));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._state = true;\n\t\t\tthis._value = newValue;\n\t\t\tfinale.call(this);\n\t\t} catch (e) { reject.call(this, e); }\n\t}\n\n\tfunction reject(newValue) {\n\t\tthis._state = false;\n\t\tthis._value = newValue;\n\t\tfinale.call(this);\n\t}\n\n\tfunction finale() {\n\t\tfor (var i = 0, len = this._deferreds.length; i < len; i++) {\n\t\t\thandle.call(this, this._deferreds[i]);\n\t\t}\n\t\tthis._deferreds = null;\n\t}\n\n\tfunction Handler(onFulfilled, onRejected, resolve, reject){\n\t\tthis.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n\t\tthis.onRejected = typeof onRejected === 'function' ? onRejected : null;\n\t\tthis.resolve = resolve;\n\t\tthis.reject = reject;\n\t}\n\n\t/**\n\t * Take a potentially misbehaving resolver function and make sure\n\t * onFulfilled and onRejected are only called once.\n\t *\n\t * Makes no guarantees about asynchrony.\n\t */\n\tfunction doResolve(fn, onFulfilled, onRejected) {\n\t\tvar done = false;\n\t\ttry {\n\t\t\tfn(function (value) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonFulfilled(value);\n\t\t\t}, function (reason) {\n\t\t\t\tif (done) return;\n\t\t\t\tdone = true;\n\t\t\t\tonRejected(reason);\n\t\t\t})\n\t\t} catch (ex) {\n\t\t\tif (done) return;\n\t\t\tdone = true;\n\t\t\tonRejected(ex);\n\t\t}\n\t}\n\n\tPromise.prototype['catch'] = function (onRejected) {\n\t\treturn this.then(null, onRejected);\n\t};\n\n\tPromise.prototype.then = function(onFulfilled, onRejected) {\n\t\tvar me = this;\n\t\treturn new Promise(function(resolve, reject) {\n\t\t\thandle.call(me, new Handler(onFulfilled, onRejected, resolve, reject));\n\t\t})\n\t};\n\n\tPromise.all = function () {\n\t\tvar args = Array.prototype.slice.call(arguments.length === 1 && isArray(arguments[0]) ? arguments[0] : arguments);\n\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tif (args.length === 0) return resolve([]);\n\t\t\tvar remaining = args.length;\n\t\t\tfunction res(i, val) {\n\t\t\t\ttry {\n\t\t\t\t\tif (val && (typeof val === 'object' || typeof val === 'function')) {\n\t\t\t\t\t\tvar then = val.then;\n\t\t\t\t\t\tif (typeof then === 'function') {\n\t\t\t\t\t\t\tthen.call(val, function (val) { res(i, val) }, reject);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\targs[i] = val;\n\t\t\t\t\tif (--remaining === 0) {\n\t\t\t\t\t\tresolve(args);\n\t\t\t\t\t}\n\t\t\t\t} catch (ex) {\n\t\t\t\t\treject(ex);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i = 0; i < args.length; i++) {\n\t\t\t\tres(i, args[i]);\n\t\t\t}\n\t\t});\n\t};\n\n\tPromise.resolve = function (value) {\n\t\tif (value && typeof value === 'object' && value.constructor === Promise) {\n\t\t\treturn value;\n\t\t}\n\n\t\treturn new Promise(function (resolve) {\n\t\t\tresolve(value);\n\t\t});\n\t};\n\n\tPromise.reject = function (value) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\treject(value);\n\t\t});\n\t};\n\n\tPromise.race = function (values) {\n\t\treturn new Promise(function (resolve, reject) {\n\t\t\tfor(var i = 0, len = values.length; i < len; i++) {\n\t\t\t\tvalues[i].then(resolve, reject);\n\t\t\t}\n\t\t});\n\t};\n\n\t/**\n\t * Set the immediate function to execute callbacks\n\t * @param fn {function} Function to execute\n\t * @private\n\t */\n\tPromise._setImmediateFn = function _setImmediateFn(fn) {\n\t\tasap = fn;\n\t};\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = Promise;\n\t} else if (!root.Promise) {\n\t\troot.Promise = Promise;\n\t}\n\n})(this);\n","var dtype = require('dtype')\nvar anArray = require('an-array')\nvar isBuffer = require('is-buffer')\n\nvar CW = [0, 2, 3]\nvar CCW = [2, 1, 3]\n\nmodule.exports = function createQuadElements(array, opt) {\n //if user didn't specify an output array\n if (!array || !(anArray(array) || isBuffer(array))) {\n opt = array || {}\n array = null\n }\n\n if (typeof opt === 'number') //backwards-compatible\n opt = { count: opt }\n else\n opt = opt || {}\n\n var type = typeof opt.type === 'string' ? opt.type : 'uint16'\n var count = typeof opt.count === 'number' ? opt.count : 1\n var start = (opt.start || 0) \n\n var dir = opt.clockwise !== false ? CW : CCW,\n a = dir[0], \n b = dir[1],\n c = dir[2]\n\n var numIndices = count * 6\n\n var indices = array || new (dtype(type))(numIndices)\n for (var i = 0, j = 0; i < numIndices; i += 6, j += 4) {\n var x = i + start\n indices[x + 0] = j + 0\n indices[x + 1] = j + 1\n indices[x + 2] = j + 2\n indices[x + 3] = j + a\n indices[x + 4] = j + b\n indices[x + 5] = j + c\n }\n return indices\n}","/*\n * anime.js v3.0.0\n * (c) 2019 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar hexRegex = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i;\nvar rgbPrefixRegex = /^rgb/;\nvar hslRegex = /^hsl/;\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n hex: function (a) { return hexRegex.test(a); },\n rgb: function (a) { return rgbPrefixRegex.test(a); },\n hsl: function (a) { return hslRegex.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; }\n};\n\n// Easings\n\nvar easingFunctionRegex = /\\(([^)]+)\\)/;\n\nfunction parseEasingParameters(string) {\n var match = easingFunctionRegex.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Elastic easing adapted from jQueryUI http://api.jqueryui.com/easings/\n\nfunction elastic(amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t :\n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.round(t * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n var names = ['Quad', 'Cubic', 'Quart', 'Quint', 'Sine', 'Expo', 'Circ', 'Back', 'Elastic'];\n\n // Approximated Penner equations http://matthewlein.com/ceaser/\n\n var curves = {\n In: [\n [0.550, 0.085, 0.680, 0.530], /* inQuad */\n [0.550, 0.055, 0.675, 0.190], /* inCubic */\n [0.895, 0.030, 0.685, 0.220], /* inQuart */\n [0.755, 0.050, 0.855, 0.060], /* inQuint */\n [0.470, 0.000, 0.745, 0.715], /* inSine */\n [0.950, 0.050, 0.795, 0.035], /* inExpo */\n [0.600, 0.040, 0.980, 0.335], /* inCirc */\n [0.600,-0.280, 0.735, 0.045], /* inBack */\n elastic /* inElastic */\n ],\n Out: [\n [0.250, 0.460, 0.450, 0.940], /* outQuad */\n [0.215, 0.610, 0.355, 1.000], /* outCubic */\n [0.165, 0.840, 0.440, 1.000], /* outQuart */\n [0.230, 1.000, 0.320, 1.000], /* outQuint */\n [0.390, 0.575, 0.565, 1.000], /* outSine */\n [0.190, 1.000, 0.220, 1.000], /* outExpo */\n [0.075, 0.820, 0.165, 1.000], /* outCirc */\n [0.175, 0.885, 0.320, 1.275], /* outBack */\n function (a, p) { return function (t) { return 1 - elastic(a, p)(1 - t); }; } /* outElastic */\n ],\n InOut: [\n [0.455, 0.030, 0.515, 0.955], /* inOutQuad */\n [0.645, 0.045, 0.355, 1.000], /* inOutCubic */\n [0.770, 0.000, 0.175, 1.000], /* inOutQuart */\n [0.860, 0.000, 0.070, 1.000], /* inOutQuint */\n [0.445, 0.050, 0.550, 0.950], /* inOutSine */\n [1.000, 0.000, 0.000, 1.000], /* inOutExpo */\n [0.785, 0.135, 0.150, 0.860], /* inOutCirc */\n [0.680,-0.550, 0.265, 1.550], /* inOutBack */\n function (a, p) { return function (t) { return t < .5 ? elastic(a, p)(t * 2) / 2 : 1 - elastic(a, p)(t * -2 + 2) / 2; }; } /* inOutElastic */\n ]\n };\n\n var eases = {\n linear: [0.250, 0.250, 0.750, 0.750]\n };\n\n for (var coords in curves) {\n for (var i = 0, len = curves[coords].length; i < len; i++) {\n eases['ease'+coords+names[i]] = curves[coords][i];\n }\n }\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return is.fnc(ease) ? applyArguments(ease, args) : applyArguments(bezier, ease);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nvar auxArrayFilter = [];\n\nfunction filterArray(arr, callback) {\n var result = auxArrayFilter;\n\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n\n // arr turns into the auxArray and we return the previously aux array.\n auxArrayFilter = arr;\n auxArrayFilter.length = 0;\n return result;\n}\n\nfunction flattenArray (arr, result) {\n if (!result) { result = []; }\n for (var i = 0, length = arr.length; i < length; i++) {\n var value = arr[i];\n if (Array.isArray(value)) {\n flattenArray(value, result);\n } else {\n result.push(value);\n }\n }\n return result;\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nvar rgbRegex = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g;\n\nfunction rgbToRgba(rgbValue) {\n var rgb = rgbRegex.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nvar hexToRgbaHexRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\nvar hexToRgbaRgbRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n\nfunction hexToRgba(hexValue) {\n var hex = hexValue.replace(hexToRgbaHexRegex, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = hexToRgbaRgbRegex.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nvar hslToRgbaHsl1Regex = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g;\nvar hslToRgbaHsl2Regex = /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g;\n\nfunction hslToRgba(hslValue) {\n var hsl = hslToRgbaHsl1Regex.exec(hslValue) || hslToRgbaHsl2Regex.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nvar unitRegex = /([\\+\\-]?[0-9#\\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/;\n\nfunction getUnit(val) {\n var split = unitRegex.exec(val);\n if (split) { return split[2]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nvar transformRegex = /(\\w+)\\(([^)]*)\\)/g;\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var transforms = new Map();\n var m; while (m = transformRegex.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nvar operatorRegex = /^(\\*=|\\+=|-=)/;\n\nfunction getRelativeValue(to, from) {\n var operator = operatorRegex.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nvar whitespaceRegex = /\\s/g;\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n return unit && !whitespaceRegex.test(val) ? unitLess + unit : unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')},\n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n parentEl = parentEl.parentNode;\n if (!is.svg(parentEl.parentNode)) { break; }\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width / viewBox[2],\n h: height / viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n switch (path.property) {\n case 'x': return (p.x - svg.x) * svg.w;\n case 'y': return (p.y - svg.y) * svg.h;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nvar valueRegex = /-?\\d*\\.?\\d+/g;\n\nfunction decomposeValue(val, unit) {\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(valueRegex) ? value.match(valueRegex).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(valueRegex) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nvar springRegex = /^spring/;\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (springRegex.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n\n for (var i = 0, len = animatables.length; i < len; i++) {\n var animatable = animatables[i];\n\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n }\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\nvar pausedInstances = [];\nvar raf;\n\nvar engine = (function () {\n function play() {\n raf = requestAnimationFrame(step);\n }\n function step(t) {\n var activeInstancesLength = activeInstances.length;\n if (activeInstancesLength) {\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n } else {\n var instanceIndex = activeInstances.indexOf(activeInstance);\n if (instanceIndex > -1) {\n activeInstances.splice(instanceIndex, 1);\n activeInstancesLength = activeInstances.length;\n }\n }\n i++;\n }\n play();\n } else {\n raf = cancelAnimationFrame(raf);\n }\n }\n return play;\n})();\n\nfunction handleVisibilityChange() {\n if (document.hidden) {\n for (var i = 0, len = activeInstances.length; i < len; i++) {\n activeInstance[i].pause();\n }\n pausedInstances = activeInstances.slice(0);\n activeInstances = [];\n } else {\n for (var i$1 = 0, len$1 = pausedInstances.length; i$1 < len$1; i$1++) {\n pausedInstances[i$1].play();\n }\n }\n}\n\ndocument.addEventListener('visibilitychange', handleVisibilityChange);\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise() {\n return window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n }\n\n var promise = makePromise();\n\n var instance = createNewInstance(params);\n\n function toggleInstanceDirection() {\n instance.reversed = !instance.reversed;\n for (var i = 0, len = children.length; i < len; i++) {\n children[i].reversed = instance.reversed;\n }\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekCild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekCild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekCild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (instance.remaining) {\n startTime = now;\n setCallback('loopComplete');\n setCallback('loopBegin');\n if (instance.direction === 'alternate') { toggleInstanceDirection(); }\n } else {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if ('Promise' in window) {\n resolve();\n promise = makePromise();\n }\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(0);\n };\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n if (!raf) { engine(); }\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.finished = promise;\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargets(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.0.0';\nanime.speed = 1;\nanime.running = activeInstances;\nanime.remove = removeTargets;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nexport default anime;\n","var createLayout = require('layout-bmfont-text')\nvar inherits = require('inherits')\nvar createIndices = require('quad-indices')\nvar buffer = require('three-buffer-vertex-data')\nvar assign = require('object-assign')\n\nvar vertices = require('./lib/vertices')\nvar utils = require('./lib/utils')\n\n\nmodule.exports = function createTextGeometry (opt) {\n return new TextGeometry(opt)\n}\n\nclass TextGeometry extends THREE.BufferGeometry {\n constructor (opt) {\n super()\n \n if (typeof opt === 'string') {\n opt = { text: opt }\n }\n\n // use these as default values for any subsequent\n // calls to update()\n this._opt = assign({}, opt)\n\n // also do an initial setup...\n if (opt) this.update(opt)\n }\n\n update(opt) {\n if (typeof opt === 'string') {\n opt = { text: opt }\n }\n\n // use constructor defaults\n opt = assign({}, this._opt, opt)\n\n if (!opt.font) {\n throw new TypeError('must specify a { font } in options')\n }\n\n this.layout = createLayout(opt)\n\n // get vec2 texcoords\n var flipY = opt.flipY !== false\n\n // the desired BMFont data\n var font = opt.font\n\n // determine texture size from font file\n var texWidth = font.common.scaleW\n var texHeight = font.common.scaleH\n\n // get visible glyphs\n var glyphs = this.layout.glyphs.filter(function (glyph) {\n var bitmap = glyph.data\n return bitmap.width * bitmap.height > 0\n })\n\n // provide visible glyphs for convenience\n this.visibleGlyphs = glyphs\n\n // get common vertex data\n var positions = vertices.positions(glyphs)\n var uvs = vertices.uvs(glyphs, texWidth, texHeight, flipY)\n var indices = createIndices({\n clockwise: true,\n type: 'uint16',\n count: glyphs.length\n })\n\n // update vertex data\n buffer.index(this, indices, 1, 'uint16')\n buffer.attr(this, 'position', positions, 2)\n buffer.attr(this, 'uv', uvs, 2)\n\n // update multipage data\n if (!opt.multipage && 'page' in this.attributes) {\n // disable multipage rendering\n this.removeAttribute('page')\n } else if (opt.multipage) {\n var pages = vertices.pages(glyphs)\n // enable multipage rendering\n buffer.attr(this, 'page', pages, 1)\n }\n }\n\n computeBoundingSphere() {\n if (this.boundingSphere === null) {\n this.boundingSphere = new THREE.Sphere()\n }\n\n var positions = this.attributes.position.array\n var itemSize = this.attributes.position.itemSize\n if (!positions || !itemSize || positions.length < 2) {\n this.boundingSphere.radius = 0\n this.boundingSphere.center.set(0, 0, 0)\n return\n }\n utils.computeSphere(positions, this.boundingSphere)\n if (isNaN(this.boundingSphere.radius)) {\n console.error('THREE.BufferGeometry.computeBoundingSphere(): ' +\n 'Computed radius is NaN. The ' +\n '\"position\" attribute is likely to have NaN values.')\n }\n }\n\n computeBoundingBox() {\n if (this.boundingBox === null) {\n this.boundingBox = new THREE.Box3()\n }\n\n var bbox = this.boundingBox\n var positions = this.attributes.position.array\n var itemSize = this.attributes.position.itemSize\n if (!positions || !itemSize || positions.length < 2) {\n bbox.makeEmpty()\n return\n }\n utils.computeBox(positions, bbox)\n }\n\n}\n","var itemSize = 2\nvar box = { min: [0, 0], max: [0, 0] }\n\nfunction bounds (positions) {\n var count = positions.length / itemSize\n box.min[0] = positions[0]\n box.min[1] = positions[1]\n box.max[0] = positions[0]\n box.max[1] = positions[1]\n\n for (var i = 0; i < count; i++) {\n var x = positions[i * itemSize + 0]\n var y = positions[i * itemSize + 1]\n box.min[0] = Math.min(x, box.min[0])\n box.min[1] = Math.min(y, box.min[1])\n box.max[0] = Math.max(x, box.max[0])\n box.max[1] = Math.max(y, box.max[1])\n }\n}\n\nmodule.exports.computeBox = function (positions, output) {\n bounds(positions)\n output.min.set(box.min[0], box.min[1], 0)\n output.max.set(box.max[0], box.max[1], 0)\n}\n\nmodule.exports.computeSphere = function (positions, output) {\n bounds(positions)\n var minX = box.min[0]\n var minY = box.min[1]\n var maxX = box.max[0]\n var maxY = box.max[1]\n var width = maxX - minX\n var height = maxY - minY\n var length = Math.sqrt(width * width + height * height)\n output.center.set(minX + width / 2, minY + height / 2, 0)\n output.radius = length / 2\n}\n","module.exports.pages = function pages (glyphs) {\n var pages = new Float32Array(glyphs.length * 4 * 1)\n var i = 0\n glyphs.forEach(function (glyph) {\n var id = glyph.data.page || 0\n pages[i++] = id\n pages[i++] = id\n pages[i++] = id\n pages[i++] = id\n })\n return pages\n}\n\nmodule.exports.uvs = function uvs (glyphs, texWidth, texHeight, flipY) {\n var uvs = new Float32Array(glyphs.length * 4 * 2)\n var i = 0\n glyphs.forEach(function (glyph) {\n var bitmap = glyph.data\n var bw = (bitmap.x + bitmap.width)\n var bh = (bitmap.y + bitmap.height)\n\n // top left position\n var u0 = bitmap.x / texWidth\n var v1 = bitmap.y / texHeight\n var u1 = bw / texWidth\n var v0 = bh / texHeight\n\n if (flipY) {\n v1 = (texHeight - bitmap.y) / texHeight\n v0 = (texHeight - bh) / texHeight\n }\n\n // BL\n uvs[i++] = u0\n uvs[i++] = v1\n // TL\n uvs[i++] = u0\n uvs[i++] = v0\n // TR\n uvs[i++] = u1\n uvs[i++] = v0\n // BR\n uvs[i++] = u1\n uvs[i++] = v1\n })\n return uvs\n}\n\nmodule.exports.positions = function positions (glyphs) {\n var positions = new Float32Array(glyphs.length * 4 * 2)\n var i = 0\n glyphs.forEach(function (glyph) {\n var bitmap = glyph.data\n\n // bottom left position\n var x = glyph.position[0] + bitmap.xoffset\n var y = glyph.position[1] + bitmap.yoffset\n\n // quad size\n var w = bitmap.width\n var h = bitmap.height\n\n // BL\n positions[i++] = x\n positions[i++] = y\n // TL\n positions[i++] = x\n positions[i++] = y + h\n // TR\n positions[i++] = x + w\n positions[i++] = y + h\n // BR\n positions[i++] = x + w\n positions[i++] = y\n })\n return positions\n}\n","var flatten = require('flatten-vertex-data')\nvar warned = false;\n\nmodule.exports.attr = setAttribute\nmodule.exports.index = setIndex\n\nfunction setIndex (geometry, data, itemSize, dtype) {\n if (typeof itemSize !== 'number') itemSize = 1\n if (typeof dtype !== 'string') dtype = 'uint16'\n\n var isR69 = !geometry.index && typeof geometry.setIndex !== 'function'\n var attrib = isR69 ? geometry.getAttribute('index') : geometry.index\n var newAttrib = updateAttribute(attrib, data, itemSize, dtype)\n if (newAttrib) {\n if (isR69) geometry.addAttribute('index', newAttrib)\n else geometry.index = newAttrib\n }\n}\n\nfunction setAttribute (geometry, key, data, itemSize, dtype) {\n if (typeof itemSize !== 'number') itemSize = 3\n if (typeof dtype !== 'string') dtype = 'float32'\n if (Array.isArray(data) &&\n Array.isArray(data[0]) &&\n data[0].length !== itemSize) {\n throw new Error('Nested vertex array has unexpected size; expected ' +\n itemSize + ' but found ' + data[0].length)\n }\n\n var attrib = geometry.getAttribute(key)\n var newAttrib = updateAttribute(attrib, data, itemSize, dtype)\n geometry.setAttribute(key, newAttrib)\n}\n\nfunction updateAttribute (attrib, data, itemSize, dtype) {\n data = data || []\n\n // create a new array with desired type\n data = flatten(data, dtype)\n\n attrib = new THREE.BufferAttribute(data, itemSize);\n attrib.itemSize = itemSize;\n attrib.needsUpdate = true;\n\n return attrib\n}\n\n// Test whether the attribute needs to be re-created,\n// returns false if we can re-use it as-is.\nfunction rebuildAttribute (attrib, data, itemSize) {\n if (attrib.itemSize !== itemSize) return true\n if (!attrib.array) return true\n var attribLength = attrib.array.length\n if (Array.isArray(data) && Array.isArray(data[0])) {\n // [ [ x, y, z ] ]\n return attribLength !== data.length * itemSize\n } else {\n // [ x, y, z ]\n return attribLength !== data.length\n }\n return false\n}\n","/**\n * @license\n * webvr-polyfill\n * Copyright (c) 2015-2017 Google\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * cardboard-vr-display\n * Copyright (c) 2015-2017 Google\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * webvr-polyfill-dpdb \n * Copyright (c) 2017 Google\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @license\n * wglu-preserve-state\n * Copyright (c) 2016, Brandon Jones.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * @license\n * nosleep.js\n * Copyright (c) 2017, Rich Tibbett\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.WebVRPolyfill = factory());\n}(this, (function () { 'use strict';\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar isMobile = function isMobile() {\n return (/Android/i.test(navigator.userAgent) || /iPhone|iPad|iPod/i.test(navigator.userAgent)\n );\n};\nvar copyArray = function copyArray(source, dest) {\n for (var i = 0, n = source.length; i < n; i++) {\n dest[i] = source[i];\n }\n};\nvar extend = function extend(dest, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dest[key] = src[key];\n }\n }\n return dest;\n};\n\nvar cardboardVrDisplay = createCommonjsModule(function (module, exports) {\n/**\n * @license\n * cardboard-vr-display\n * Copyright (c) 2015-2017 Google\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @license\n * gl-preserve-state\n * Copyright (c) 2016, Brandon Jones.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n/**\n * @license\n * webvr-polyfill-dpdb\n * Copyright (c) 2015-2017 Google\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @license\n * nosleep.js\n * Copyright (c) 2017, Rich Tibbett\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n(function (global, factory) {\n\tmodule.exports = factory();\n}(commonjsGlobal, (function () { var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\nvar MIN_TIMESTEP = 0.001;\nvar MAX_TIMESTEP = 1;\nvar dataUri = function dataUri(mimeType, svg) {\n return 'data:' + mimeType + ',' + encodeURIComponent(svg);\n};\nvar lerp = function lerp(a, b, t) {\n return a + (b - a) * t;\n};\nvar isIOS = function () {\n var isIOS = /iPad|iPhone|iPod/.test(navigator.platform);\n return function () {\n return isIOS;\n };\n}();\nvar isWebViewAndroid = function () {\n var isWebViewAndroid = navigator.userAgent.indexOf('Version') !== -1 && navigator.userAgent.indexOf('Android') !== -1 && navigator.userAgent.indexOf('Chrome') !== -1;\n return function () {\n return isWebViewAndroid;\n };\n}();\nvar isSafari = function () {\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n return function () {\n return isSafari;\n };\n}();\nvar isFirefoxAndroid = function () {\n var isFirefoxAndroid = navigator.userAgent.indexOf('Firefox') !== -1 && navigator.userAgent.indexOf('Android') !== -1;\n return function () {\n return isFirefoxAndroid;\n };\n}();\nvar getChromeVersion = function () {\n var match = navigator.userAgent.match(/.*Chrome\\/([0-9]+)/);\n var value = match ? parseInt(match[1], 10) : null;\n return function () {\n return value;\n };\n}();\nvar isSafariWithoutDeviceMotion = function () {\n var value = false;\n value = isIOS() && isSafari() && navigator.userAgent.indexOf('13_4') !== -1;\n return function () {\n return value;\n };\n}();\nvar isChromeWithoutDeviceMotion = function () {\n var value = false;\n if (getChromeVersion() === 65) {\n var match = navigator.userAgent.match(/.*Chrome\\/([0-9\\.]*)/);\n if (match) {\n var _match$1$split = match[1].split('.'),\n _match$1$split2 = slicedToArray(_match$1$split, 4),\n major = _match$1$split2[0],\n minor = _match$1$split2[1],\n branch = _match$1$split2[2],\n build = _match$1$split2[3];\n value = parseInt(branch, 10) === 3325 && parseInt(build, 10) < 148;\n }\n }\n return function () {\n return value;\n };\n}();\nvar isR7 = function () {\n var isR7 = navigator.userAgent.indexOf('R7 Build') !== -1;\n return function () {\n return isR7;\n };\n}();\nvar isLandscapeMode = function isLandscapeMode() {\n var rtn = window.orientation == 90 || window.orientation == -90;\n return isR7() ? !rtn : rtn;\n};\nvar isTimestampDeltaValid = function isTimestampDeltaValid(timestampDeltaS) {\n if (isNaN(timestampDeltaS)) {\n return false;\n }\n if (timestampDeltaS <= MIN_TIMESTEP) {\n return false;\n }\n if (timestampDeltaS > MAX_TIMESTEP) {\n return false;\n }\n return true;\n};\nvar getScreenWidth = function getScreenWidth() {\n return Math.max(window.screen.width, window.screen.height) * window.devicePixelRatio;\n};\nvar getScreenHeight = function getScreenHeight() {\n return Math.min(window.screen.width, window.screen.height) * window.devicePixelRatio;\n};\nvar requestFullscreen = function requestFullscreen(element) {\n if (isWebViewAndroid()) {\n return false;\n }\n if (element.requestFullscreen) {\n element.requestFullscreen();\n } else if (element.webkitRequestFullscreen) {\n element.webkitRequestFullscreen();\n } else if (element.mozRequestFullScreen) {\n element.mozRequestFullScreen();\n } else if (element.msRequestFullscreen) {\n element.msRequestFullscreen();\n } else {\n return false;\n }\n return true;\n};\nvar exitFullscreen = function exitFullscreen() {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n } else {\n return false;\n }\n return true;\n};\nvar getFullscreenElement = function getFullscreenElement() {\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n};\nvar linkProgram = function linkProgram(gl, vertexSource, fragmentSource, attribLocationMap) {\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexSource);\n gl.compileShader(vertexShader);\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n for (var attribName in attribLocationMap) {\n gl.bindAttribLocation(program, attribLocationMap[attribName], attribName);\n }gl.linkProgram(program);\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n return program;\n};\nvar getProgramUniforms = function getProgramUniforms(gl, program) {\n var uniforms = {};\n var uniformCount = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n var uniformName = '';\n for (var i = 0; i < uniformCount; i++) {\n var uniformInfo = gl.getActiveUniform(program, i);\n uniformName = uniformInfo.name.replace('[0]', '');\n uniforms[uniformName] = gl.getUniformLocation(program, uniformName);\n }\n return uniforms;\n};\nvar orthoMatrix = function orthoMatrix(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right),\n bt = 1 / (bottom - top),\n nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n};\nvar isMobile = function isMobile() {\n var check = false;\n (function (a) {\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4))) check = true;\n })(navigator.userAgent || navigator.vendor || window.opera);\n return check;\n};\nvar extend = function extend(dest, src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dest[key] = src[key];\n }\n }\n return dest;\n};\nvar safariCssSizeWorkaround = function safariCssSizeWorkaround(canvas) {\n if (isIOS()) {\n var width = canvas.style.width;\n var height = canvas.style.height;\n canvas.style.width = parseInt(width) + 1 + 'px';\n canvas.style.height = parseInt(height) + 'px';\n setTimeout(function () {\n canvas.style.width = width;\n canvas.style.height = height;\n }, 100);\n }\n window.canvas = canvas;\n};\nvar frameDataFromPose = function () {\n var piOver180 = Math.PI / 180.0;\n var rad45 = Math.PI * 0.25;\n function mat4_perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov ? fov.upDegrees * piOver180 : rad45),\n downTan = Math.tan(fov ? fov.downDegrees * piOver180 : rad45),\n leftTan = Math.tan(fov ? fov.leftDegrees * piOver180 : rad45),\n rightTan = Math.tan(fov ? fov.rightDegrees * piOver180 : rad45),\n xScale = 2.0 / (leftTan + rightTan),\n yScale = 2.0 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0.0;\n out[2] = 0.0;\n out[3] = 0.0;\n out[4] = 0.0;\n out[5] = yScale;\n out[6] = 0.0;\n out[7] = 0.0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1.0;\n out[12] = 0.0;\n out[13] = 0.0;\n out[14] = far * near / (near - far);\n out[15] = 0.0;\n return out;\n }\n function mat4_fromRotationTranslation(out, q, v) {\n var x = q[0],\n y = q[1],\n z = q[2],\n w = q[3],\n x2 = x + x,\n y2 = y + y,\n z2 = z + z,\n xx = x * x2,\n xy = x * y2,\n xz = x * z2,\n yy = y * y2,\n yz = y * z2,\n zz = z * z2,\n wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n function mat4_translate(out, a, v) {\n var x = v[0],\n y = v[1],\n z = v[2],\n a00,\n a01,\n a02,\n a03,\n a10,\n a11,\n a12,\n a13,\n a20,\n a21,\n a22,\n a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];a01 = a[1];a02 = a[2];a03 = a[3];\n a10 = a[4];a11 = a[5];a12 = a[6];a13 = a[7];\n a20 = a[8];a21 = a[9];a22 = a[10];a23 = a[11];\n out[0] = a00;out[1] = a01;out[2] = a02;out[3] = a03;\n out[4] = a10;out[5] = a11;out[6] = a12;out[7] = a13;\n out[8] = a20;out[9] = a21;out[10] = a22;out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n function mat4_invert(out, a) {\n var a00 = a[0],\n a01 = a[1],\n a02 = a[2],\n a03 = a[3],\n a10 = a[4],\n a11 = a[5],\n a12 = a[6],\n a13 = a[7],\n a20 = a[8],\n a21 = a[9],\n a22 = a[10],\n a23 = a[11],\n a30 = a[12],\n a31 = a[13],\n a32 = a[14],\n a33 = a[15],\n b00 = a00 * a11 - a01 * a10,\n b01 = a00 * a12 - a02 * a10,\n b02 = a00 * a13 - a03 * a10,\n b03 = a01 * a12 - a02 * a11,\n b04 = a01 * a13 - a03 * a11,\n b05 = a02 * a13 - a03 * a12,\n b06 = a20 * a31 - a21 * a30,\n b07 = a20 * a32 - a22 * a30,\n b08 = a20 * a33 - a23 * a30,\n b09 = a21 * a32 - a22 * a31,\n b10 = a21 * a33 - a23 * a31,\n b11 = a22 * a33 - a23 * a32,\n det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n var defaultOrientation = new Float32Array([0, 0, 0, 1]);\n var defaultPosition = new Float32Array([0, 0, 0]);\n function updateEyeMatrices(projection, view, pose, fov, offset, vrDisplay) {\n mat4_perspectiveFromFieldOfView(projection, fov || null, vrDisplay.depthNear, vrDisplay.depthFar);\n var orientation = pose.orientation || defaultOrientation;\n var position = pose.position || defaultPosition;\n mat4_fromRotationTranslation(view, orientation, position);\n if (offset) mat4_translate(view, view, offset);\n mat4_invert(view, view);\n }\n return function (frameData, pose, vrDisplay) {\n if (!frameData || !pose) return false;\n frameData.pose = pose;\n frameData.timestamp = pose.timestamp;\n updateEyeMatrices(frameData.leftProjectionMatrix, frameData.leftViewMatrix, pose, vrDisplay._getFieldOfView(\"left\"), vrDisplay._getEyeOffset(\"left\"), vrDisplay);\n updateEyeMatrices(frameData.rightProjectionMatrix, frameData.rightViewMatrix, pose, vrDisplay._getFieldOfView(\"right\"), vrDisplay._getEyeOffset(\"right\"), vrDisplay);\n return true;\n };\n}();\nvar isInsideCrossOriginIFrame = function isInsideCrossOriginIFrame() {\n var isFramed = window.self !== window.top;\n var refOrigin = getOriginFromUrl(document.referrer);\n var thisOrigin = getOriginFromUrl(window.location.href);\n return isFramed && refOrigin !== thisOrigin;\n};\nvar getOriginFromUrl = function getOriginFromUrl(url) {\n var domainIdx;\n var protoSepIdx = url.indexOf(\"://\");\n if (protoSepIdx !== -1) {\n domainIdx = protoSepIdx + 3;\n } else {\n domainIdx = 0;\n }\n var domainEndIdx = url.indexOf('/', domainIdx);\n if (domainEndIdx === -1) {\n domainEndIdx = url.length;\n }\n return url.substring(0, domainEndIdx);\n};\nvar getQuaternionAngle = function getQuaternionAngle(quat) {\n if (quat.w > 1) {\n console.warn('getQuaternionAngle: w > 1');\n return 0;\n }\n var angle = 2 * Math.acos(quat.w);\n return angle;\n};\nvar warnOnce = function () {\n var observedWarnings = {};\n return function (key, message) {\n if (observedWarnings[key] === undefined) {\n console.warn('webvr-polyfill: ' + message);\n observedWarnings[key] = true;\n }\n };\n}();\nvar deprecateWarning = function deprecateWarning(deprecated, suggested) {\n var alternative = suggested ? 'Please use ' + suggested + ' instead.' : '';\n warnOnce(deprecated, deprecated + ' has been deprecated. ' + 'This may not work on native WebVR displays. ' + alternative);\n};\nfunction WGLUPreserveGLState(gl, bindings, callback) {\n if (!bindings) {\n callback(gl);\n return;\n }\n var boundValues = [];\n var activeTexture = null;\n for (var i = 0; i < bindings.length; ++i) {\n var binding = bindings[i];\n switch (binding) {\n case gl.TEXTURE_BINDING_2D:\n case gl.TEXTURE_BINDING_CUBE_MAP:\n var textureUnit = bindings[++i];\n if (textureUnit < gl.TEXTURE0 || textureUnit > gl.TEXTURE31) {\n console.error(\"TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit\");\n boundValues.push(null, null);\n break;\n }\n if (!activeTexture) {\n activeTexture = gl.getParameter(gl.ACTIVE_TEXTURE);\n }\n gl.activeTexture(textureUnit);\n boundValues.push(gl.getParameter(binding), null);\n break;\n case gl.ACTIVE_TEXTURE:\n activeTexture = gl.getParameter(gl.ACTIVE_TEXTURE);\n boundValues.push(null);\n break;\n default:\n boundValues.push(gl.getParameter(binding));\n break;\n }\n }\n callback(gl);\n for (var i = 0; i < bindings.length; ++i) {\n var binding = bindings[i];\n var boundValue = boundValues[i];\n switch (binding) {\n case gl.ACTIVE_TEXTURE:\n break;\n case gl.ARRAY_BUFFER_BINDING:\n gl.bindBuffer(gl.ARRAY_BUFFER, boundValue);\n break;\n case gl.COLOR_CLEAR_VALUE:\n gl.clearColor(boundValue[0], boundValue[1], boundValue[2], boundValue[3]);\n break;\n case gl.COLOR_WRITEMASK:\n gl.colorMask(boundValue[0], boundValue[1], boundValue[2], boundValue[3]);\n break;\n case gl.CURRENT_PROGRAM:\n gl.useProgram(boundValue);\n break;\n case gl.ELEMENT_ARRAY_BUFFER_BINDING:\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, boundValue);\n break;\n case gl.FRAMEBUFFER_BINDING:\n gl.bindFramebuffer(gl.FRAMEBUFFER, boundValue);\n break;\n case gl.RENDERBUFFER_BINDING:\n gl.bindRenderbuffer(gl.RENDERBUFFER, boundValue);\n break;\n case gl.TEXTURE_BINDING_2D:\n var textureUnit = bindings[++i];\n if (textureUnit < gl.TEXTURE0 || textureUnit > gl.TEXTURE31)\n break;\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, boundValue);\n break;\n case gl.TEXTURE_BINDING_CUBE_MAP:\n var textureUnit = bindings[++i];\n if (textureUnit < gl.TEXTURE0 || textureUnit > gl.TEXTURE31)\n break;\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_CUBE_MAP, boundValue);\n break;\n case gl.VIEWPORT:\n gl.viewport(boundValue[0], boundValue[1], boundValue[2], boundValue[3]);\n break;\n case gl.BLEND:\n case gl.CULL_FACE:\n case gl.DEPTH_TEST:\n case gl.SCISSOR_TEST:\n case gl.STENCIL_TEST:\n if (boundValue) {\n gl.enable(binding);\n } else {\n gl.disable(binding);\n }\n break;\n default:\n console.log(\"No GL restore behavior for 0x\" + binding.toString(16));\n break;\n }\n if (activeTexture) {\n gl.activeTexture(activeTexture);\n }\n }\n}\nvar glPreserveState = WGLUPreserveGLState;\nvar distortionVS = ['attribute vec2 position;', 'attribute vec3 texCoord;', 'varying vec2 vTexCoord;', 'uniform vec4 viewportOffsetScale[2];', 'void main() {', ' vec4 viewport = viewportOffsetScale[int(texCoord.z)];', ' vTexCoord = (texCoord.xy * viewport.zw) + viewport.xy;', ' gl_Position = vec4( position, 1.0, 1.0 );', '}'].join('\\n');\nvar distortionFS = ['precision mediump float;', 'uniform sampler2D diffuse;', 'varying vec2 vTexCoord;', 'void main() {', ' gl_FragColor = texture2D(diffuse, vTexCoord);', '}'].join('\\n');\nfunction CardboardDistorter(gl, cardboardUI, bufferScale, dirtySubmitFrameBindings) {\n this.gl = gl;\n this.cardboardUI = cardboardUI;\n this.bufferScale = bufferScale;\n this.dirtySubmitFrameBindings = dirtySubmitFrameBindings;\n this.ctxAttribs = gl.getContextAttributes();\n this.instanceExt = gl.getExtension('ANGLE_instanced_arrays');\n this.meshWidth = 20;\n this.meshHeight = 20;\n this.bufferWidth = gl.drawingBufferWidth;\n this.bufferHeight = gl.drawingBufferHeight;\n this.realBindFramebuffer = gl.bindFramebuffer;\n this.realEnable = gl.enable;\n this.realDisable = gl.disable;\n this.realColorMask = gl.colorMask;\n this.realClearColor = gl.clearColor;\n this.realViewport = gl.viewport;\n if (!isIOS()) {\n this.realCanvasWidth = Object.getOwnPropertyDescriptor(gl.canvas.__proto__, 'width');\n this.realCanvasHeight = Object.getOwnPropertyDescriptor(gl.canvas.__proto__, 'height');\n }\n this.isPatched = false;\n this.lastBoundFramebuffer = null;\n this.cullFace = false;\n this.depthTest = false;\n this.blend = false;\n this.scissorTest = false;\n this.stencilTest = false;\n this.viewport = [0, 0, 0, 0];\n this.colorMask = [true, true, true, true];\n this.clearColor = [0, 0, 0, 0];\n this.attribs = {\n position: 0,\n texCoord: 1\n };\n this.program = linkProgram(gl, distortionVS, distortionFS, this.attribs);\n this.uniforms = getProgramUniforms(gl, this.program);\n this.viewportOffsetScale = new Float32Array(8);\n this.setTextureBounds();\n this.vertexBuffer = gl.createBuffer();\n this.indexBuffer = gl.createBuffer();\n this.indexCount = 0;\n this.renderTarget = gl.createTexture();\n this.framebuffer = gl.createFramebuffer();\n this.depthStencilBuffer = null;\n this.depthBuffer = null;\n this.stencilBuffer = null;\n if (this.ctxAttribs.depth && this.ctxAttribs.stencil) {\n this.depthStencilBuffer = gl.createRenderbuffer();\n } else if (this.ctxAttribs.depth) {\n this.depthBuffer = gl.createRenderbuffer();\n } else if (this.ctxAttribs.stencil) {\n this.stencilBuffer = gl.createRenderbuffer();\n }\n this.patch();\n this.onResize();\n}\nCardboardDistorter.prototype.destroy = function () {\n var gl = this.gl;\n this.unpatch();\n gl.deleteProgram(this.program);\n gl.deleteBuffer(this.vertexBuffer);\n gl.deleteBuffer(this.indexBuffer);\n gl.deleteTexture(this.renderTarget);\n gl.deleteFramebuffer(this.framebuffer);\n if (this.depthStencilBuffer) {\n gl.deleteRenderbuffer(this.depthStencilBuffer);\n }\n if (this.depthBuffer) {\n gl.deleteRenderbuffer(this.depthBuffer);\n }\n if (this.stencilBuffer) {\n gl.deleteRenderbuffer(this.stencilBuffer);\n }\n if (this.cardboardUI) {\n this.cardboardUI.destroy();\n }\n};\nCardboardDistorter.prototype.onResize = function () {\n var gl = this.gl;\n var self = this;\n var glState = [gl.RENDERBUFFER_BINDING, gl.TEXTURE_BINDING_2D, gl.TEXTURE0];\n glPreserveState(gl, glState, function (gl) {\n self.realBindFramebuffer.call(gl, gl.FRAMEBUFFER, null);\n if (self.scissorTest) {\n self.realDisable.call(gl, gl.SCISSOR_TEST);\n }\n self.realColorMask.call(gl, true, true, true, true);\n self.realViewport.call(gl, 0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n self.realClearColor.call(gl, 0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT);\n self.realBindFramebuffer.call(gl, gl.FRAMEBUFFER, self.framebuffer);\n gl.bindTexture(gl.TEXTURE_2D, self.renderTarget);\n gl.texImage2D(gl.TEXTURE_2D, 0, self.ctxAttribs.alpha ? gl.RGBA : gl.RGB, self.bufferWidth, self.bufferHeight, 0, self.ctxAttribs.alpha ? gl.RGBA : gl.RGB, gl.UNSIGNED_BYTE, null);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, self.renderTarget, 0);\n if (self.ctxAttribs.depth && self.ctxAttribs.stencil) {\n gl.bindRenderbuffer(gl.RENDERBUFFER, self.depthStencilBuffer);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_STENCIL, self.bufferWidth, self.bufferHeight);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_STENCIL_ATTACHMENT, gl.RENDERBUFFER, self.depthStencilBuffer);\n } else if (self.ctxAttribs.depth) {\n gl.bindRenderbuffer(gl.RENDERBUFFER, self.depthBuffer);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, self.bufferWidth, self.bufferHeight);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, self.depthBuffer);\n } else if (self.ctxAttribs.stencil) {\n gl.bindRenderbuffer(gl.RENDERBUFFER, self.stencilBuffer);\n gl.renderbufferStorage(gl.RENDERBUFFER, gl.STENCIL_INDEX8, self.bufferWidth, self.bufferHeight);\n gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.STENCIL_ATTACHMENT, gl.RENDERBUFFER, self.stencilBuffer);\n }\n if (!gl.checkFramebufferStatus(gl.FRAMEBUFFER) === gl.FRAMEBUFFER_COMPLETE) {\n console.error('Framebuffer incomplete!');\n }\n self.realBindFramebuffer.call(gl, gl.FRAMEBUFFER, self.lastBoundFramebuffer);\n if (self.scissorTest) {\n self.realEnable.call(gl, gl.SCISSOR_TEST);\n }\n self.realColorMask.apply(gl, self.colorMask);\n self.realViewport.apply(gl, self.viewport);\n self.realClearColor.apply(gl, self.clearColor);\n });\n if (this.cardboardUI) {\n this.cardboardUI.onResize();\n }\n};\nCardboardDistorter.prototype.patch = function () {\n if (this.isPatched) {\n return;\n }\n var self = this;\n var canvas = this.gl.canvas;\n var gl = this.gl;\n if (!isIOS()) {\n canvas.width = getScreenWidth() * this.bufferScale;\n canvas.height = getScreenHeight() * this.bufferScale;\n Object.defineProperty(canvas, 'width', {\n configurable: true,\n enumerable: true,\n get: function get() {\n return self.bufferWidth;\n },\n set: function set(value) {\n self.bufferWidth = value;\n self.realCanvasWidth.set.call(canvas, value);\n self.onResize();\n }\n });\n Object.defineProperty(canvas, 'height', {\n configurable: true,\n enumerable: true,\n get: function get() {\n return self.bufferHeight;\n },\n set: function set(value) {\n self.bufferHeight = value;\n self.realCanvasHeight.set.call(canvas, value);\n self.onResize();\n }\n });\n }\n this.lastBoundFramebuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);\n if (this.lastBoundFramebuffer == null) {\n this.lastBoundFramebuffer = this.framebuffer;\n this.gl.bindFramebuffer(gl.FRAMEBUFFER, this.framebuffer);\n }\n this.gl.bindFramebuffer = function (target, framebuffer) {\n self.lastBoundFramebuffer = framebuffer ? framebuffer : self.framebuffer;\n self.realBindFramebuffer.call(gl, target, self.lastBoundFramebuffer);\n };\n this.cullFace = gl.getParameter(gl.CULL_FACE);\n this.depthTest = gl.getParameter(gl.DEPTH_TEST);\n this.blend = gl.getParameter(gl.BLEND);\n this.scissorTest = gl.getParameter(gl.SCISSOR_TEST);\n this.stencilTest = gl.getParameter(gl.STENCIL_TEST);\n gl.enable = function (pname) {\n switch (pname) {\n case gl.CULL_FACE:\n self.cullFace = true;break;\n case gl.DEPTH_TEST:\n self.depthTest = true;break;\n case gl.BLEND:\n self.blend = true;break;\n case gl.SCISSOR_TEST:\n self.scissorTest = true;break;\n case gl.STENCIL_TEST:\n self.stencilTest = true;break;\n }\n self.realEnable.call(gl, pname);\n };\n gl.disable = function (pname) {\n switch (pname) {\n case gl.CULL_FACE:\n self.cullFace = false;break;\n case gl.DEPTH_TEST:\n self.depthTest = false;break;\n case gl.BLEND:\n self.blend = false;break;\n case gl.SCISSOR_TEST:\n self.scissorTest = false;break;\n case gl.STENCIL_TEST:\n self.stencilTest = false;break;\n }\n self.realDisable.call(gl, pname);\n };\n this.colorMask = gl.getParameter(gl.COLOR_WRITEMASK);\n gl.colorMask = function (r, g, b, a) {\n self.colorMask[0] = r;\n self.colorMask[1] = g;\n self.colorMask[2] = b;\n self.colorMask[3] = a;\n self.realColorMask.call(gl, r, g, b, a);\n };\n this.clearColor = gl.getParameter(gl.COLOR_CLEAR_VALUE);\n gl.clearColor = function (r, g, b, a) {\n self.clearColor[0] = r;\n self.clearColor[1] = g;\n self.clearColor[2] = b;\n self.clearColor[3] = a;\n self.realClearColor.call(gl, r, g, b, a);\n };\n this.viewport = gl.getParameter(gl.VIEWPORT);\n gl.viewport = function (x, y, w, h) {\n self.viewport[0] = x;\n self.viewport[1] = y;\n self.viewport[2] = w;\n self.viewport[3] = h;\n self.realViewport.call(gl, x, y, w, h);\n };\n this.isPatched = true;\n safariCssSizeWorkaround(canvas);\n};\nCardboardDistorter.prototype.unpatch = function () {\n if (!this.isPatched) {\n return;\n }\n var gl = this.gl;\n var canvas = this.gl.canvas;\n if (!isIOS()) {\n Object.defineProperty(canvas, 'width', this.realCanvasWidth);\n Object.defineProperty(canvas, 'height', this.realCanvasHeight);\n }\n canvas.width = this.bufferWidth;\n canvas.height = this.bufferHeight;\n gl.bindFramebuffer = this.realBindFramebuffer;\n gl.enable = this.realEnable;\n gl.disable = this.realDisable;\n gl.colorMask = this.realColorMask;\n gl.clearColor = this.realClearColor;\n gl.viewport = this.realViewport;\n if (this.lastBoundFramebuffer == this.framebuffer) {\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n }\n this.isPatched = false;\n setTimeout(function () {\n safariCssSizeWorkaround(canvas);\n }, 1);\n};\nCardboardDistorter.prototype.setTextureBounds = function (leftBounds, rightBounds) {\n if (!leftBounds) {\n leftBounds = [0, 0, 0.5, 1];\n }\n if (!rightBounds) {\n rightBounds = [0.5, 0, 0.5, 1];\n }\n this.viewportOffsetScale[0] = leftBounds[0];\n this.viewportOffsetScale[1] = leftBounds[1];\n this.viewportOffsetScale[2] = leftBounds[2];\n this.viewportOffsetScale[3] = leftBounds[3];\n this.viewportOffsetScale[4] = rightBounds[0];\n this.viewportOffsetScale[5] = rightBounds[1];\n this.viewportOffsetScale[6] = rightBounds[2];\n this.viewportOffsetScale[7] = rightBounds[3];\n};\nCardboardDistorter.prototype.submitFrame = function () {\n var gl = this.gl;\n var self = this;\n var glState = [];\n if (!this.dirtySubmitFrameBindings) {\n glState.push(gl.CURRENT_PROGRAM, gl.ARRAY_BUFFER_BINDING, gl.ELEMENT_ARRAY_BUFFER_BINDING, gl.TEXTURE_BINDING_2D, gl.TEXTURE0);\n }\n glPreserveState(gl, glState, function (gl) {\n self.realBindFramebuffer.call(gl, gl.FRAMEBUFFER, null);\n var positionDivisor = 0;\n var texCoordDivisor = 0;\n if (self.instanceExt) {\n positionDivisor = gl.getVertexAttrib(self.attribs.position, self.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE);\n texCoordDivisor = gl.getVertexAttrib(self.attribs.texCoord, self.instanceExt.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE);\n }\n if (self.cullFace) {\n self.realDisable.call(gl, gl.CULL_FACE);\n }\n if (self.depthTest) {\n self.realDisable.call(gl, gl.DEPTH_TEST);\n }\n if (self.blend) {\n self.realDisable.call(gl, gl.BLEND);\n }\n if (self.scissorTest) {\n self.realDisable.call(gl, gl.SCISSOR_TEST);\n }\n if (self.stencilTest) {\n self.realDisable.call(gl, gl.STENCIL_TEST);\n }\n self.realColorMask.call(gl, true, true, true, true);\n self.realViewport.call(gl, 0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n if (self.ctxAttribs.alpha || isIOS()) {\n self.realClearColor.call(gl, 0, 0, 0, 1);\n gl.clear(gl.COLOR_BUFFER_BIT);\n }\n gl.useProgram(self.program);\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, self.indexBuffer);\n gl.bindBuffer(gl.ARRAY_BUFFER, self.vertexBuffer);\n gl.enableVertexAttribArray(self.attribs.position);\n gl.enableVertexAttribArray(self.attribs.texCoord);\n gl.vertexAttribPointer(self.attribs.position, 2, gl.FLOAT, false, 20, 0);\n gl.vertexAttribPointer(self.attribs.texCoord, 3, gl.FLOAT, false, 20, 8);\n if (self.instanceExt) {\n if (positionDivisor != 0) {\n self.instanceExt.vertexAttribDivisorANGLE(self.attribs.position, 0);\n }\n if (texCoordDivisor != 0) {\n self.instanceExt.vertexAttribDivisorANGLE(self.attribs.texCoord, 0);\n }\n }\n gl.activeTexture(gl.TEXTURE0);\n gl.uniform1i(self.uniforms.diffuse, 0);\n gl.bindTexture(gl.TEXTURE_2D, self.renderTarget);\n gl.uniform4fv(self.uniforms.viewportOffsetScale, self.viewportOffsetScale);\n gl.drawElements(gl.TRIANGLES, self.indexCount, gl.UNSIGNED_SHORT, 0);\n if (self.cardboardUI) {\n self.cardboardUI.renderNoState();\n }\n self.realBindFramebuffer.call(self.gl, gl.FRAMEBUFFER, self.framebuffer);\n if (!self.ctxAttribs.preserveDrawingBuffer) {\n self.realClearColor.call(gl, 0, 0, 0, 0);\n gl.clear(gl.COLOR_BUFFER_BIT);\n }\n if (!self.dirtySubmitFrameBindings) {\n self.realBindFramebuffer.call(gl, gl.FRAMEBUFFER, self.lastBoundFramebuffer);\n }\n if (self.cullFace) {\n self.realEnable.call(gl, gl.CULL_FACE);\n }\n if (self.depthTest) {\n self.realEnable.call(gl, gl.DEPTH_TEST);\n }\n if (self.blend) {\n self.realEnable.call(gl, gl.BLEND);\n }\n if (self.scissorTest) {\n self.realEnable.call(gl, gl.SCISSOR_TEST);\n }\n if (self.stencilTest) {\n self.realEnable.call(gl, gl.STENCIL_TEST);\n }\n self.realColorMask.apply(gl, self.colorMask);\n self.realViewport.apply(gl, self.viewport);\n if (self.ctxAttribs.alpha || !self.ctxAttribs.preserveDrawingBuffer) {\n self.realClearColor.apply(gl, self.clearColor);\n }\n if (self.instanceExt) {\n if (positionDivisor != 0) {\n self.instanceExt.vertexAttribDivisorANGLE(self.attribs.position, positionDivisor);\n }\n if (texCoordDivisor != 0) {\n self.instanceExt.vertexAttribDivisorANGLE(self.attribs.texCoord, texCoordDivisor);\n }\n }\n });\n if (isIOS()) {\n var canvas = gl.canvas;\n if (canvas.width != self.bufferWidth || canvas.height != self.bufferHeight) {\n self.bufferWidth = canvas.width;\n self.bufferHeight = canvas.height;\n self.onResize();\n }\n }\n};\nCardboardDistorter.prototype.updateDeviceInfo = function (deviceInfo) {\n var gl = this.gl;\n var self = this;\n var glState = [gl.ARRAY_BUFFER_BINDING, gl.ELEMENT_ARRAY_BUFFER_BINDING];\n glPreserveState(gl, glState, function (gl) {\n var vertices = self.computeMeshVertices_(self.meshWidth, self.meshHeight, deviceInfo);\n gl.bindBuffer(gl.ARRAY_BUFFER, self.vertexBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n if (!self.indexCount) {\n var indices = self.computeMeshIndices_(self.meshWidth, self.meshHeight);\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, self.indexBuffer);\n gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);\n self.indexCount = indices.length;\n }\n });\n};\nCardboardDistorter.prototype.computeMeshVertices_ = function (width, height, deviceInfo) {\n var vertices = new Float32Array(2 * width * height * 5);\n var lensFrustum = deviceInfo.getLeftEyeVisibleTanAngles();\n var noLensFrustum = deviceInfo.getLeftEyeNoLensTanAngles();\n var viewport = deviceInfo.getLeftEyeVisibleScreenRect(noLensFrustum);\n var vidx = 0;\n for (var e = 0; e < 2; e++) {\n for (var j = 0; j < height; j++) {\n for (var i = 0; i < width; i++, vidx++) {\n var u = i / (width - 1);\n var v = j / (height - 1);\n var s = u;\n var t = v;\n var x = lerp(lensFrustum[0], lensFrustum[2], u);\n var y = lerp(lensFrustum[3], lensFrustum[1], v);\n var d = Math.sqrt(x * x + y * y);\n var r = deviceInfo.distortion.distortInverse(d);\n var p = x * r / d;\n var q = y * r / d;\n u = (p - noLensFrustum[0]) / (noLensFrustum[2] - noLensFrustum[0]);\n v = (q - noLensFrustum[3]) / (noLensFrustum[1] - noLensFrustum[3]);\n u = (viewport.x + u * viewport.width - 0.5) * 2.0;\n v = (viewport.y + v * viewport.height - 0.5) * 2.0;\n vertices[vidx * 5 + 0] = u;\n vertices[vidx * 5 + 1] = v;\n vertices[vidx * 5 + 2] = s;\n vertices[vidx * 5 + 3] = t;\n vertices[vidx * 5 + 4] = e;\n }\n }\n var w = lensFrustum[2] - lensFrustum[0];\n lensFrustum[0] = -(w + lensFrustum[0]);\n lensFrustum[2] = w - lensFrustum[2];\n w = noLensFrustum[2] - noLensFrustum[0];\n noLensFrustum[0] = -(w + noLensFrustum[0]);\n noLensFrustum[2] = w - noLensFrustum[2];\n viewport.x = 1 - (viewport.x + viewport.width);\n }\n return vertices;\n};\nCardboardDistorter.prototype.computeMeshIndices_ = function (width, height) {\n var indices = new Uint16Array(2 * (width - 1) * (height - 1) * 6);\n var halfwidth = width / 2;\n var halfheight = height / 2;\n var vidx = 0;\n var iidx = 0;\n for (var e = 0; e < 2; e++) {\n for (var j = 0; j < height; j++) {\n for (var i = 0; i < width; i++, vidx++) {\n if (i == 0 || j == 0) continue;\n if (i <= halfwidth == j <= halfheight) {\n indices[iidx++] = vidx;\n indices[iidx++] = vidx - width - 1;\n indices[iidx++] = vidx - width;\n indices[iidx++] = vidx - width - 1;\n indices[iidx++] = vidx;\n indices[iidx++] = vidx - 1;\n } else {\n indices[iidx++] = vidx - 1;\n indices[iidx++] = vidx - width;\n indices[iidx++] = vidx;\n indices[iidx++] = vidx - width;\n indices[iidx++] = vidx - 1;\n indices[iidx++] = vidx - width - 1;\n }\n }\n }\n }\n return indices;\n};\nCardboardDistorter.prototype.getOwnPropertyDescriptor_ = function (proto, attrName) {\n var descriptor = Object.getOwnPropertyDescriptor(proto, attrName);\n if (descriptor.get === undefined || descriptor.set === undefined) {\n descriptor.configurable = true;\n descriptor.enumerable = true;\n descriptor.get = function () {\n return this.getAttribute(attrName);\n };\n descriptor.set = function (val) {\n this.setAttribute(attrName, val);\n };\n }\n return descriptor;\n};\nvar uiVS = ['attribute vec2 position;', 'uniform mat4 projectionMat;', 'void main() {', ' gl_Position = projectionMat * vec4( position, -1.0, 1.0 );', '}'].join('\\n');\nvar uiFS = ['precision mediump float;', 'uniform vec4 color;', 'void main() {', ' gl_FragColor = color;', '}'].join('\\n');\nvar DEG2RAD = Math.PI / 180.0;\nvar kAnglePerGearSection = 60;\nvar kOuterRimEndAngle = 12;\nvar kInnerRimBeginAngle = 20;\nvar kOuterRadius = 1;\nvar kMiddleRadius = 0.75;\nvar kInnerRadius = 0.3125;\nvar kCenterLineThicknessDp = 4;\nvar kButtonWidthDp = 28;\nvar kTouchSlopFactor = 1.5;\nfunction CardboardUI(gl) {\n this.gl = gl;\n this.attribs = {\n position: 0\n };\n this.program = linkProgram(gl, uiVS, uiFS, this.attribs);\n this.uniforms = getProgramUniforms(gl, this.program);\n this.vertexBuffer = gl.createBuffer();\n this.gearOffset = 0;\n this.gearVertexCount = 0;\n this.arrowOffset = 0;\n this.arrowVertexCount = 0;\n this.projMat = new Float32Array(16);\n this.listener = null;\n this.onResize();\n}\nCardboardUI.prototype.destroy = function () {\n var gl = this.gl;\n if (this.listener) {\n gl.canvas.removeEventListener('click', this.listener, false);\n }\n gl.deleteProgram(this.program);\n gl.deleteBuffer(this.vertexBuffer);\n};\nCardboardUI.prototype.listen = function (optionsCallback, backCallback) {\n var canvas = this.gl.canvas;\n this.listener = function (event) {\n var midline = canvas.clientWidth / 2;\n var buttonSize = kButtonWidthDp * kTouchSlopFactor;\n if (event.clientX > midline - buttonSize && event.clientX < midline + buttonSize && event.clientY > canvas.clientHeight - buttonSize) {\n optionsCallback(event);\n }\n else if (event.clientX < buttonSize && event.clientY < buttonSize) {\n backCallback(event);\n }\n };\n canvas.addEventListener('click', this.listener, false);\n};\nCardboardUI.prototype.onResize = function () {\n var gl = this.gl;\n var self = this;\n var glState = [gl.ARRAY_BUFFER_BINDING];\n glPreserveState(gl, glState, function (gl) {\n var vertices = [];\n var midline = gl.drawingBufferWidth / 2;\n var physicalPixels = Math.max(screen.width, screen.height) * window.devicePixelRatio;\n var scalingRatio = gl.drawingBufferWidth / physicalPixels;\n var dps = scalingRatio * window.devicePixelRatio;\n var lineWidth = kCenterLineThicknessDp * dps / 2;\n var buttonSize = kButtonWidthDp * kTouchSlopFactor * dps;\n var buttonScale = kButtonWidthDp * dps / 2;\n var buttonBorder = (kButtonWidthDp * kTouchSlopFactor - kButtonWidthDp) * dps;\n vertices.push(midline - lineWidth, buttonSize);\n vertices.push(midline - lineWidth, gl.drawingBufferHeight);\n vertices.push(midline + lineWidth, buttonSize);\n vertices.push(midline + lineWidth, gl.drawingBufferHeight);\n self.gearOffset = vertices.length / 2;\n function addGearSegment(theta, r) {\n var angle = (90 - theta) * DEG2RAD;\n var x = Math.cos(angle);\n var y = Math.sin(angle);\n vertices.push(kInnerRadius * x * buttonScale + midline, kInnerRadius * y * buttonScale + buttonScale);\n vertices.push(r * x * buttonScale + midline, r * y * buttonScale + buttonScale);\n }\n for (var i = 0; i <= 6; i++) {\n var segmentTheta = i * kAnglePerGearSection;\n addGearSegment(segmentTheta, kOuterRadius);\n addGearSegment(segmentTheta + kOuterRimEndAngle, kOuterRadius);\n addGearSegment(segmentTheta + kInnerRimBeginAngle, kMiddleRadius);\n addGearSegment(segmentTheta + (kAnglePerGearSection - kInnerRimBeginAngle), kMiddleRadius);\n addGearSegment(segmentTheta + (kAnglePerGearSection - kOuterRimEndAngle), kOuterRadius);\n }\n self.gearVertexCount = vertices.length / 2 - self.gearOffset;\n self.arrowOffset = vertices.length / 2;\n function addArrowVertex(x, y) {\n vertices.push(buttonBorder + x, gl.drawingBufferHeight - buttonBorder - y);\n }\n var angledLineWidth = lineWidth / Math.sin(45 * DEG2RAD);\n addArrowVertex(0, buttonScale);\n addArrowVertex(buttonScale, 0);\n addArrowVertex(buttonScale + angledLineWidth, angledLineWidth);\n addArrowVertex(angledLineWidth, buttonScale + angledLineWidth);\n addArrowVertex(angledLineWidth, buttonScale - angledLineWidth);\n addArrowVertex(0, buttonScale);\n addArrowVertex(buttonScale, buttonScale * 2);\n addArrowVertex(buttonScale + angledLineWidth, buttonScale * 2 - angledLineWidth);\n addArrowVertex(angledLineWidth, buttonScale - angledLineWidth);\n addArrowVertex(0, buttonScale);\n addArrowVertex(angledLineWidth, buttonScale - lineWidth);\n addArrowVertex(kButtonWidthDp * dps, buttonScale - lineWidth);\n addArrowVertex(angledLineWidth, buttonScale + lineWidth);\n addArrowVertex(kButtonWidthDp * dps, buttonScale + lineWidth);\n self.arrowVertexCount = vertices.length / 2 - self.arrowOffset;\n gl.bindBuffer(gl.ARRAY_BUFFER, self.vertexBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertices), gl.STATIC_DRAW);\n });\n};\nCardboardUI.prototype.render = function () {\n var gl = this.gl;\n var self = this;\n var glState = [gl.CULL_FACE, gl.DEPTH_TEST, gl.BLEND, gl.SCISSOR_TEST, gl.STENCIL_TEST, gl.COLOR_WRITEMASK, gl.VIEWPORT, gl.CURRENT_PROGRAM, gl.ARRAY_BUFFER_BINDING];\n glPreserveState(gl, glState, function (gl) {\n gl.disable(gl.CULL_FACE);\n gl.disable(gl.DEPTH_TEST);\n gl.disable(gl.BLEND);\n gl.disable(gl.SCISSOR_TEST);\n gl.disable(gl.STENCIL_TEST);\n gl.colorMask(true, true, true, true);\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n self.renderNoState();\n });\n};\nCardboardUI.prototype.renderNoState = function () {\n var gl = this.gl;\n gl.useProgram(this.program);\n gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);\n gl.enableVertexAttribArray(this.attribs.position);\n gl.vertexAttribPointer(this.attribs.position, 2, gl.FLOAT, false, 8, 0);\n gl.uniform4f(this.uniforms.color, 1.0, 1.0, 1.0, 1.0);\n orthoMatrix(this.projMat, 0, gl.drawingBufferWidth, 0, gl.drawingBufferHeight, 0.1, 1024.0);\n gl.uniformMatrix4fv(this.uniforms.projectionMat, false, this.projMat);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n gl.drawArrays(gl.TRIANGLE_STRIP, this.gearOffset, this.gearVertexCount);\n gl.drawArrays(gl.TRIANGLE_STRIP, this.arrowOffset, this.arrowVertexCount);\n};\nfunction Distortion(coefficients) {\n this.coefficients = coefficients;\n}\nDistortion.prototype.distortInverse = function (radius) {\n var r0 = 0;\n var r1 = 1;\n var dr0 = radius - this.distort(r0);\n while (Math.abs(r1 - r0) > 0.0001 ) {\n var dr1 = radius - this.distort(r1);\n var r2 = r1 - dr1 * ((r1 - r0) / (dr1 - dr0));\n r0 = r1;\n r1 = r2;\n dr0 = dr1;\n }\n return r1;\n};\nDistortion.prototype.distort = function (radius) {\n var r2 = radius * radius;\n var ret = 0;\n for (var i = 0; i < this.coefficients.length; i++) {\n ret = r2 * (ret + this.coefficients[i]);\n }\n return (ret + 1) * radius;\n};\nvar degToRad = Math.PI / 180;\nvar radToDeg = 180 / Math.PI;\nvar Vector3 = function Vector3(x, y, z) {\n this.x = x || 0;\n this.y = y || 0;\n this.z = z || 0;\n};\nVector3.prototype = {\n constructor: Vector3,\n set: function set(x, y, z) {\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n },\n copy: function copy(v) {\n this.x = v.x;\n this.y = v.y;\n this.z = v.z;\n return this;\n },\n length: function length() {\n return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);\n },\n normalize: function normalize() {\n var scalar = this.length();\n if (scalar !== 0) {\n var invScalar = 1 / scalar;\n this.multiplyScalar(invScalar);\n } else {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n }\n return this;\n },\n multiplyScalar: function multiplyScalar(scalar) {\n this.x *= scalar;\n this.y *= scalar;\n this.z *= scalar;\n },\n applyQuaternion: function applyQuaternion(q) {\n var x = this.x;\n var y = this.y;\n var z = this.z;\n var qx = q.x;\n var qy = q.y;\n var qz = q.z;\n var qw = q.w;\n var ix = qw * x + qy * z - qz * y;\n var iy = qw * y + qz * x - qx * z;\n var iz = qw * z + qx * y - qy * x;\n var iw = -qx * x - qy * y - qz * z;\n this.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n this.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n this.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return this;\n },\n dot: function dot(v) {\n return this.x * v.x + this.y * v.y + this.z * v.z;\n },\n crossVectors: function crossVectors(a, b) {\n var ax = a.x,\n ay = a.y,\n az = a.z;\n var bx = b.x,\n by = b.y,\n bz = b.z;\n this.x = ay * bz - az * by;\n this.y = az * bx - ax * bz;\n this.z = ax * by - ay * bx;\n return this;\n }\n};\nvar Quaternion = function Quaternion(x, y, z, w) {\n this.x = x || 0;\n this.y = y || 0;\n this.z = z || 0;\n this.w = w !== undefined ? w : 1;\n};\nQuaternion.prototype = {\n constructor: Quaternion,\n set: function set(x, y, z, w) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.w = w;\n return this;\n },\n copy: function copy(quaternion) {\n this.x = quaternion.x;\n this.y = quaternion.y;\n this.z = quaternion.z;\n this.w = quaternion.w;\n return this;\n },\n setFromEulerXYZ: function setFromEulerXYZ(x, y, z) {\n var c1 = Math.cos(x / 2);\n var c2 = Math.cos(y / 2);\n var c3 = Math.cos(z / 2);\n var s1 = Math.sin(x / 2);\n var s2 = Math.sin(y / 2);\n var s3 = Math.sin(z / 2);\n this.x = s1 * c2 * c3 + c1 * s2 * s3;\n this.y = c1 * s2 * c3 - s1 * c2 * s3;\n this.z = c1 * c2 * s3 + s1 * s2 * c3;\n this.w = c1 * c2 * c3 - s1 * s2 * s3;\n return this;\n },\n setFromEulerYXZ: function setFromEulerYXZ(x, y, z) {\n var c1 = Math.cos(x / 2);\n var c2 = Math.cos(y / 2);\n var c3 = Math.cos(z / 2);\n var s1 = Math.sin(x / 2);\n var s2 = Math.sin(y / 2);\n var s3 = Math.sin(z / 2);\n this.x = s1 * c2 * c3 + c1 * s2 * s3;\n this.y = c1 * s2 * c3 - s1 * c2 * s3;\n this.z = c1 * c2 * s3 - s1 * s2 * c3;\n this.w = c1 * c2 * c3 + s1 * s2 * s3;\n return this;\n },\n setFromAxisAngle: function setFromAxisAngle(axis, angle) {\n var halfAngle = angle / 2,\n s = Math.sin(halfAngle);\n this.x = axis.x * s;\n this.y = axis.y * s;\n this.z = axis.z * s;\n this.w = Math.cos(halfAngle);\n return this;\n },\n multiply: function multiply(q) {\n return this.multiplyQuaternions(this, q);\n },\n multiplyQuaternions: function multiplyQuaternions(a, b) {\n var qax = a.x,\n qay = a.y,\n qaz = a.z,\n qaw = a.w;\n var qbx = b.x,\n qby = b.y,\n qbz = b.z,\n qbw = b.w;\n this.x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n this.y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n this.z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n this.w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n return this;\n },\n inverse: function inverse() {\n this.x *= -1;\n this.y *= -1;\n this.z *= -1;\n this.normalize();\n return this;\n },\n normalize: function normalize() {\n var l = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);\n if (l === 0) {\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 1;\n } else {\n l = 1 / l;\n this.x = this.x * l;\n this.y = this.y * l;\n this.z = this.z * l;\n this.w = this.w * l;\n }\n return this;\n },\n slerp: function slerp(qb, t) {\n if (t === 0) return this;\n if (t === 1) return this.copy(qb);\n var x = this.x,\n y = this.y,\n z = this.z,\n w = this.w;\n var cosHalfTheta = w * qb.w + x * qb.x + y * qb.y + z * qb.z;\n if (cosHalfTheta < 0) {\n this.w = -qb.w;\n this.x = -qb.x;\n this.y = -qb.y;\n this.z = -qb.z;\n cosHalfTheta = -cosHalfTheta;\n } else {\n this.copy(qb);\n }\n if (cosHalfTheta >= 1.0) {\n this.w = w;\n this.x = x;\n this.y = y;\n this.z = z;\n return this;\n }\n var halfTheta = Math.acos(cosHalfTheta);\n var sinHalfTheta = Math.sqrt(1.0 - cosHalfTheta * cosHalfTheta);\n if (Math.abs(sinHalfTheta) < 0.001) {\n this.w = 0.5 * (w + this.w);\n this.x = 0.5 * (x + this.x);\n this.y = 0.5 * (y + this.y);\n this.z = 0.5 * (z + this.z);\n return this;\n }\n var ratioA = Math.sin((1 - t) * halfTheta) / sinHalfTheta,\n ratioB = Math.sin(t * halfTheta) / sinHalfTheta;\n this.w = w * ratioA + this.w * ratioB;\n this.x = x * ratioA + this.x * ratioB;\n this.y = y * ratioA + this.y * ratioB;\n this.z = z * ratioA + this.z * ratioB;\n return this;\n },\n setFromUnitVectors: function () {\n var v1, r;\n var EPS = 0.000001;\n return function (vFrom, vTo) {\n if (v1 === undefined) v1 = new Vector3();\n r = vFrom.dot(vTo) + 1;\n if (r < EPS) {\n r = 0;\n if (Math.abs(vFrom.x) > Math.abs(vFrom.z)) {\n v1.set(-vFrom.y, vFrom.x, 0);\n } else {\n v1.set(0, -vFrom.z, vFrom.y);\n }\n } else {\n v1.crossVectors(vFrom, vTo);\n }\n this.x = v1.x;\n this.y = v1.y;\n this.z = v1.z;\n this.w = r;\n this.normalize();\n return this;\n };\n }()\n};\nfunction Device(params) {\n this.width = params.width || getScreenWidth();\n this.height = params.height || getScreenHeight();\n this.widthMeters = params.widthMeters;\n this.heightMeters = params.heightMeters;\n this.bevelMeters = params.bevelMeters;\n}\nvar DEFAULT_ANDROID = new Device({\n widthMeters: 0.110,\n heightMeters: 0.062,\n bevelMeters: 0.004\n});\nvar DEFAULT_IOS = new Device({\n widthMeters: 0.1038,\n heightMeters: 0.0584,\n bevelMeters: 0.004\n});\nvar Viewers = {\n CardboardV1: new CardboardViewer({\n id: 'CardboardV1',\n label: 'Cardboard I/O 2014',\n fov: 40,\n interLensDistance: 0.060,\n baselineLensDistance: 0.035,\n screenLensDistance: 0.042,\n distortionCoefficients: [0.441, 0.156],\n inverseCoefficients: [-0.4410035, 0.42756155, -0.4804439, 0.5460139, -0.58821183, 0.5733938, -0.48303202, 0.33299083, -0.17573841, 0.0651772, -0.01488963, 0.001559834]\n }),\n CardboardV2: new CardboardViewer({\n id: 'CardboardV2',\n label: 'Cardboard I/O 2015',\n fov: 60,\n interLensDistance: 0.064,\n baselineLensDistance: 0.035,\n screenLensDistance: 0.039,\n distortionCoefficients: [0.34, 0.55],\n inverseCoefficients: [-0.33836704, -0.18162185, 0.862655, -1.2462051, 1.0560602, -0.58208317, 0.21609078, -0.05444823, 0.009177956, -9.904169E-4, 6.183535E-5, -1.6981803E-6]\n })\n};\nfunction DeviceInfo(deviceParams, additionalViewers) {\n this.viewer = Viewers.CardboardV2;\n this.updateDeviceParams(deviceParams);\n this.distortion = new Distortion(this.viewer.distortionCoefficients);\n for (var i = 0; i < additionalViewers.length; i++) {\n var viewer = additionalViewers[i];\n Viewers[viewer.id] = new CardboardViewer(viewer);\n }\n}\nDeviceInfo.prototype.updateDeviceParams = function (deviceParams) {\n this.device = this.determineDevice_(deviceParams) || this.device;\n};\nDeviceInfo.prototype.getDevice = function () {\n return this.device;\n};\nDeviceInfo.prototype.setViewer = function (viewer) {\n this.viewer = viewer;\n this.distortion = new Distortion(this.viewer.distortionCoefficients);\n};\nDeviceInfo.prototype.determineDevice_ = function (deviceParams) {\n if (!deviceParams) {\n if (isIOS()) {\n console.warn('Using fallback iOS device measurements.');\n return DEFAULT_IOS;\n } else {\n console.warn('Using fallback Android device measurements.');\n return DEFAULT_ANDROID;\n }\n }\n var METERS_PER_INCH = 0.0254;\n var metersPerPixelX = METERS_PER_INCH / deviceParams.xdpi;\n var metersPerPixelY = METERS_PER_INCH / deviceParams.ydpi;\n var width = getScreenWidth();\n var height = getScreenHeight();\n return new Device({\n widthMeters: metersPerPixelX * width,\n heightMeters: metersPerPixelY * height,\n bevelMeters: deviceParams.bevelMm * 0.001\n });\n};\nDeviceInfo.prototype.getDistortedFieldOfViewLeftEye = function () {\n var viewer = this.viewer;\n var device = this.device;\n var distortion = this.distortion;\n var eyeToScreenDistance = viewer.screenLensDistance;\n var outerDist = (device.widthMeters - viewer.interLensDistance) / 2;\n var innerDist = viewer.interLensDistance / 2;\n var bottomDist = viewer.baselineLensDistance - device.bevelMeters;\n var topDist = device.heightMeters - bottomDist;\n var outerAngle = radToDeg * Math.atan(distortion.distort(outerDist / eyeToScreenDistance));\n var innerAngle = radToDeg * Math.atan(distortion.distort(innerDist / eyeToScreenDistance));\n var bottomAngle = radToDeg * Math.atan(distortion.distort(bottomDist / eyeToScreenDistance));\n var topAngle = radToDeg * Math.atan(distortion.distort(topDist / eyeToScreenDistance));\n return {\n leftDegrees: Math.min(outerAngle, viewer.fov),\n rightDegrees: Math.min(innerAngle, viewer.fov),\n downDegrees: Math.min(bottomAngle, viewer.fov),\n upDegrees: Math.min(topAngle, viewer.fov)\n };\n};\nDeviceInfo.prototype.getLeftEyeVisibleTanAngles = function () {\n var viewer = this.viewer;\n var device = this.device;\n var distortion = this.distortion;\n var fovLeft = Math.tan(-degToRad * viewer.fov);\n var fovTop = Math.tan(degToRad * viewer.fov);\n var fovRight = Math.tan(degToRad * viewer.fov);\n var fovBottom = Math.tan(-degToRad * viewer.fov);\n var halfWidth = device.widthMeters / 4;\n var halfHeight = device.heightMeters / 2;\n var verticalLensOffset = viewer.baselineLensDistance - device.bevelMeters - halfHeight;\n var centerX = viewer.interLensDistance / 2 - halfWidth;\n var centerY = -verticalLensOffset;\n var centerZ = viewer.screenLensDistance;\n var screenLeft = distortion.distort((centerX - halfWidth) / centerZ);\n var screenTop = distortion.distort((centerY + halfHeight) / centerZ);\n var screenRight = distortion.distort((centerX + halfWidth) / centerZ);\n var screenBottom = distortion.distort((centerY - halfHeight) / centerZ);\n var result = new Float32Array(4);\n result[0] = Math.max(fovLeft, screenLeft);\n result[1] = Math.min(fovTop, screenTop);\n result[2] = Math.min(fovRight, screenRight);\n result[3] = Math.max(fovBottom, screenBottom);\n return result;\n};\nDeviceInfo.prototype.getLeftEyeNoLensTanAngles = function () {\n var viewer = this.viewer;\n var device = this.device;\n var distortion = this.distortion;\n var result = new Float32Array(4);\n var fovLeft = distortion.distortInverse(Math.tan(-degToRad * viewer.fov));\n var fovTop = distortion.distortInverse(Math.tan(degToRad * viewer.fov));\n var fovRight = distortion.distortInverse(Math.tan(degToRad * viewer.fov));\n var fovBottom = distortion.distortInverse(Math.tan(-degToRad * viewer.fov));\n var halfWidth = device.widthMeters / 4;\n var halfHeight = device.heightMeters / 2;\n var verticalLensOffset = viewer.baselineLensDistance - device.bevelMeters - halfHeight;\n var centerX = viewer.interLensDistance / 2 - halfWidth;\n var centerY = -verticalLensOffset;\n var centerZ = viewer.screenLensDistance;\n var screenLeft = (centerX - halfWidth) / centerZ;\n var screenTop = (centerY + halfHeight) / centerZ;\n var screenRight = (centerX + halfWidth) / centerZ;\n var screenBottom = (centerY - halfHeight) / centerZ;\n result[0] = Math.max(fovLeft, screenLeft);\n result[1] = Math.min(fovTop, screenTop);\n result[2] = Math.min(fovRight, screenRight);\n result[3] = Math.max(fovBottom, screenBottom);\n return result;\n};\nDeviceInfo.prototype.getLeftEyeVisibleScreenRect = function (undistortedFrustum) {\n var viewer = this.viewer;\n var device = this.device;\n var dist = viewer.screenLensDistance;\n var eyeX = (device.widthMeters - viewer.interLensDistance) / 2;\n var eyeY = viewer.baselineLensDistance - device.bevelMeters;\n var left = (undistortedFrustum[0] * dist + eyeX) / device.widthMeters;\n var top = (undistortedFrustum[1] * dist + eyeY) / device.heightMeters;\n var right = (undistortedFrustum[2] * dist + eyeX) / device.widthMeters;\n var bottom = (undistortedFrustum[3] * dist + eyeY) / device.heightMeters;\n return {\n x: left,\n y: bottom,\n width: right - left,\n height: top - bottom\n };\n};\nDeviceInfo.prototype.getFieldOfViewLeftEye = function (opt_isUndistorted) {\n return opt_isUndistorted ? this.getUndistortedFieldOfViewLeftEye() : this.getDistortedFieldOfViewLeftEye();\n};\nDeviceInfo.prototype.getFieldOfViewRightEye = function (opt_isUndistorted) {\n var fov = this.getFieldOfViewLeftEye(opt_isUndistorted);\n return {\n leftDegrees: fov.rightDegrees,\n rightDegrees: fov.leftDegrees,\n upDegrees: fov.upDegrees,\n downDegrees: fov.downDegrees\n };\n};\nDeviceInfo.prototype.getUndistortedFieldOfViewLeftEye = function () {\n var p = this.getUndistortedParams_();\n return {\n leftDegrees: radToDeg * Math.atan(p.outerDist),\n rightDegrees: radToDeg * Math.atan(p.innerDist),\n downDegrees: radToDeg * Math.atan(p.bottomDist),\n upDegrees: radToDeg * Math.atan(p.topDist)\n };\n};\nDeviceInfo.prototype.getUndistortedViewportLeftEye = function () {\n var p = this.getUndistortedParams_();\n var viewer = this.viewer;\n var device = this.device;\n var eyeToScreenDistance = viewer.screenLensDistance;\n var screenWidth = device.widthMeters / eyeToScreenDistance;\n var screenHeight = device.heightMeters / eyeToScreenDistance;\n var xPxPerTanAngle = device.width / screenWidth;\n var yPxPerTanAngle = device.height / screenHeight;\n var x = Math.round((p.eyePosX - p.outerDist) * xPxPerTanAngle);\n var y = Math.round((p.eyePosY - p.bottomDist) * yPxPerTanAngle);\n return {\n x: x,\n y: y,\n width: Math.round((p.eyePosX + p.innerDist) * xPxPerTanAngle) - x,\n height: Math.round((p.eyePosY + p.topDist) * yPxPerTanAngle) - y\n };\n};\nDeviceInfo.prototype.getUndistortedParams_ = function () {\n var viewer = this.viewer;\n var device = this.device;\n var distortion = this.distortion;\n var eyeToScreenDistance = viewer.screenLensDistance;\n var halfLensDistance = viewer.interLensDistance / 2 / eyeToScreenDistance;\n var screenWidth = device.widthMeters / eyeToScreenDistance;\n var screenHeight = device.heightMeters / eyeToScreenDistance;\n var eyePosX = screenWidth / 2 - halfLensDistance;\n var eyePosY = (viewer.baselineLensDistance - device.bevelMeters) / eyeToScreenDistance;\n var maxFov = viewer.fov;\n var viewerMax = distortion.distortInverse(Math.tan(degToRad * maxFov));\n var outerDist = Math.min(eyePosX, viewerMax);\n var innerDist = Math.min(halfLensDistance, viewerMax);\n var bottomDist = Math.min(eyePosY, viewerMax);\n var topDist = Math.min(screenHeight - eyePosY, viewerMax);\n return {\n outerDist: outerDist,\n innerDist: innerDist,\n topDist: topDist,\n bottomDist: bottomDist,\n eyePosX: eyePosX,\n eyePosY: eyePosY\n };\n};\nfunction CardboardViewer(params) {\n this.id = params.id;\n this.label = params.label;\n this.fov = params.fov;\n this.interLensDistance = params.interLensDistance;\n this.baselineLensDistance = params.baselineLensDistance;\n this.screenLensDistance = params.screenLensDistance;\n this.distortionCoefficients = params.distortionCoefficients;\n this.inverseCoefficients = params.inverseCoefficients;\n}\nDeviceInfo.Viewers = Viewers;\nvar format = 1;\nvar last_updated = \"2019-11-09T17:36:14Z\";\nvar devices = [{\"type\":\"android\",\"rules\":[{\"mdmh\":\"asus/*/Nexus 7/*\"},{\"ua\":\"Nexus 7\"}],\"dpi\":[320.8,323],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"asus/*/ASUS_X00PD/*\"},{\"ua\":\"ASUS_X00PD\"}],\"dpi\":245,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"asus/*/ASUS_X008D/*\"},{\"ua\":\"ASUS_X008D\"}],\"dpi\":282,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"asus/*/ASUS_Z00AD/*\"},{\"ua\":\"ASUS_Z00AD\"}],\"dpi\":[403,404.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel 2 XL/*\"},{\"ua\":\"Pixel 2 XL\"}],\"dpi\":537.9,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel 3 XL/*\"},{\"ua\":\"Pixel 3 XL\"}],\"dpi\":[558.5,553.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel XL/*\"},{\"ua\":\"Pixel XL\"}],\"dpi\":[537.9,533],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel 3/*\"},{\"ua\":\"Pixel 3\"}],\"dpi\":442.4,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel 2/*\"},{\"ua\":\"Pixel 2\"}],\"dpi\":441,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Google/*/Pixel/*\"},{\"ua\":\"Pixel\"}],\"dpi\":[432.6,436.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC6435LVW/*\"},{\"ua\":\"HTC6435LVW\"}],\"dpi\":[449.7,443.3],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One XL/*\"},{\"ua\":\"HTC One XL\"}],\"dpi\":[315.3,314.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"htc/*/Nexus 9/*\"},{\"ua\":\"Nexus 9\"}],\"dpi\":289,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One M9/*\"},{\"ua\":\"HTC One M9\"}],\"dpi\":[442.5,443.3],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One_M8/*\"},{\"ua\":\"HTC One_M8\"}],\"dpi\":[449.7,447.4],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"HTC/*/HTC One/*\"},{\"ua\":\"HTC One\"}],\"dpi\":472.8,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Huawei/*/Nexus 6P/*\"},{\"ua\":\"Nexus 6P\"}],\"dpi\":[515.1,518],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Huawei/*/BLN-L24/*\"},{\"ua\":\"HONORBLN-L24\"}],\"dpi\":480,\"bw\":4,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Huawei/*/BKL-L09/*\"},{\"ua\":\"BKL-L09\"}],\"dpi\":403,\"bw\":3.47,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LENOVO/*/Lenovo PB2-690Y/*\"},{\"ua\":\"Lenovo PB2-690Y\"}],\"dpi\":[457.2,454.713],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/Nexus 5X/*\"},{\"ua\":\"Nexus 5X\"}],\"dpi\":[422,419.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LGMS345/*\"},{\"ua\":\"LGMS345\"}],\"dpi\":[221.7,219.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LG-D800/*\"},{\"ua\":\"LG-D800\"}],\"dpi\":[422,424.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LG-D850/*\"},{\"ua\":\"LG-D850\"}],\"dpi\":[537.9,541.9],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/VS985 4G/*\"},{\"ua\":\"VS985 4G\"}],\"dpi\":[537.9,535.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/Nexus 5/*\"},{\"ua\":\"Nexus 5 B\"}],\"dpi\":[442.4,444.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/Nexus 4/*\"},{\"ua\":\"Nexus 4\"}],\"dpi\":[319.8,318.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LG-P769/*\"},{\"ua\":\"LG-P769\"}],\"dpi\":[240.6,247.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LGMS323/*\"},{\"ua\":\"LGMS323\"}],\"dpi\":[206.6,204.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"LGE/*/LGLS996/*\"},{\"ua\":\"LGLS996\"}],\"dpi\":[403.4,401.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Micromax/*/4560MMX/*\"},{\"ua\":\"4560MMX\"}],\"dpi\":[240,219.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Micromax/*/A250/*\"},{\"ua\":\"Micromax A250\"}],\"dpi\":[480,446.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Micromax/*/Micromax AQ4501/*\"},{\"ua\":\"Micromax AQ4501\"}],\"dpi\":240,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/G5/*\"},{\"ua\":\"Moto G (5) Plus\"}],\"dpi\":[403.4,403],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/DROID RAZR/*\"},{\"ua\":\"DROID RAZR\"}],\"dpi\":[368.1,256.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT830C/*\"},{\"ua\":\"XT830C\"}],\"dpi\":[254,255.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1021/*\"},{\"ua\":\"XT1021\"}],\"dpi\":[254,256.7],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1023/*\"},{\"ua\":\"XT1023\"}],\"dpi\":[254,256.7],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1028/*\"},{\"ua\":\"XT1028\"}],\"dpi\":[326.6,327.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1034/*\"},{\"ua\":\"XT1034\"}],\"dpi\":[326.6,328.4],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1053/*\"},{\"ua\":\"XT1053\"}],\"dpi\":[315.3,316.1],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1562/*\"},{\"ua\":\"XT1562\"}],\"dpi\":[403.4,402.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/Nexus 6/*\"},{\"ua\":\"Nexus 6 B\"}],\"dpi\":[494.3,489.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1063/*\"},{\"ua\":\"XT1063\"}],\"dpi\":[295,296.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1064/*\"},{\"ua\":\"XT1064\"}],\"dpi\":[295,295.6],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1092/*\"},{\"ua\":\"XT1092\"}],\"dpi\":[422,424.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/XT1095/*\"},{\"ua\":\"XT1095\"}],\"dpi\":[422,423.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"motorola/*/G4/*\"},{\"ua\":\"Moto G (4)\"}],\"dpi\":401,\"bw\":4,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/A0001/*\"},{\"ua\":\"A0001\"}],\"dpi\":[403.4,401],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE E1001/*\"},{\"ua\":\"ONE E1001\"}],\"dpi\":[442.4,441.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE E1003/*\"},{\"ua\":\"ONE E1003\"}],\"dpi\":[442.4,441.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE E1005/*\"},{\"ua\":\"ONE E1005\"}],\"dpi\":[442.4,441.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE A2001/*\"},{\"ua\":\"ONE A2001\"}],\"dpi\":[391.9,405.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE A2003/*\"},{\"ua\":\"ONE A2003\"}],\"dpi\":[391.9,405.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE A2005/*\"},{\"ua\":\"ONE A2005\"}],\"dpi\":[391.9,405.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A3000/*\"},{\"ua\":\"ONEPLUS A3000\"}],\"dpi\":401,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A3003/*\"},{\"ua\":\"ONEPLUS A3003\"}],\"dpi\":401,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A3010/*\"},{\"ua\":\"ONEPLUS A3010\"}],\"dpi\":401,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A5000/*\"},{\"ua\":\"ONEPLUS A5000 \"}],\"dpi\":[403.411,399.737],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONE A5010/*\"},{\"ua\":\"ONEPLUS A5010\"}],\"dpi\":[403,400],\"bw\":2,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A6000/*\"},{\"ua\":\"ONEPLUS A6000\"}],\"dpi\":401,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A6003/*\"},{\"ua\":\"ONEPLUS A6003\"}],\"dpi\":401,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A6010/*\"},{\"ua\":\"ONEPLUS A6010\"}],\"dpi\":401,\"bw\":2,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OnePlus/*/ONEPLUS A6013/*\"},{\"ua\":\"ONEPLUS A6013\"}],\"dpi\":401,\"bw\":2,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"OPPO/*/X909/*\"},{\"ua\":\"X909\"}],\"dpi\":[442.4,444.1],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9082/*\"},{\"ua\":\"GT-I9082\"}],\"dpi\":[184.7,185.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G360P/*\"},{\"ua\":\"SM-G360P\"}],\"dpi\":[196.7,205.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/Nexus S/*\"},{\"ua\":\"Nexus S\"}],\"dpi\":[234.5,229.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9300/*\"},{\"ua\":\"GT-I9300\"}],\"dpi\":[304.8,303.9],\"bw\":5,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-T230NU/*\"},{\"ua\":\"SM-T230NU\"}],\"dpi\":216,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SGH-T399/*\"},{\"ua\":\"SGH-T399\"}],\"dpi\":[217.7,231.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SGH-M919/*\"},{\"ua\":\"SGH-M919\"}],\"dpi\":[440.8,437.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N9005/*\"},{\"ua\":\"SM-N9005\"}],\"dpi\":[386.4,387],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SAMSUNG-SM-N900A/*\"},{\"ua\":\"SAMSUNG-SM-N900A\"}],\"dpi\":[386.4,387.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9500/*\"},{\"ua\":\"GT-I9500\"}],\"dpi\":[442.5,443.3],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9505/*\"},{\"ua\":\"GT-I9505\"}],\"dpi\":439.4,\"bw\":4,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G900F/*\"},{\"ua\":\"SM-G900F\"}],\"dpi\":[415.6,431.6],\"bw\":5,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G900M/*\"},{\"ua\":\"SM-G900M\"}],\"dpi\":[415.6,431.6],\"bw\":5,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G800F/*\"},{\"ua\":\"SM-G800F\"}],\"dpi\":326.8,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G906S/*\"},{\"ua\":\"SM-G906S\"}],\"dpi\":[562.7,572.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9300/*\"},{\"ua\":\"GT-I9300\"}],\"dpi\":[306.7,304.8],\"bw\":5,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-T535/*\"},{\"ua\":\"SM-T535\"}],\"dpi\":[142.6,136.4],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N920C/*\"},{\"ua\":\"SM-N920C\"}],\"dpi\":[515.1,518.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N920P/*\"},{\"ua\":\"SM-N920P\"}],\"dpi\":[386.3655,390.144],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N920W8/*\"},{\"ua\":\"SM-N920W8\"}],\"dpi\":[515.1,518.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9300I/*\"},{\"ua\":\"GT-I9300I\"}],\"dpi\":[304.8,305.8],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-I9195/*\"},{\"ua\":\"GT-I9195\"}],\"dpi\":[249.4,256.7],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SPH-L520/*\"},{\"ua\":\"SPH-L520\"}],\"dpi\":[249.4,255.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SAMSUNG-SGH-I717/*\"},{\"ua\":\"SAMSUNG-SGH-I717\"}],\"dpi\":285.8,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SPH-D710/*\"},{\"ua\":\"SPH-D710\"}],\"dpi\":[217.7,204.2],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/GT-N7100/*\"},{\"ua\":\"GT-N7100\"}],\"dpi\":265.1,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SCH-I605/*\"},{\"ua\":\"SCH-I605\"}],\"dpi\":265.1,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/Galaxy Nexus/*\"},{\"ua\":\"Galaxy Nexus\"}],\"dpi\":[315.3,314.2],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N910H/*\"},{\"ua\":\"SM-N910H\"}],\"dpi\":[515.1,518],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-N910C/*\"},{\"ua\":\"SM-N910C\"}],\"dpi\":[515.2,520.2],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G130M/*\"},{\"ua\":\"SM-G130M\"}],\"dpi\":[165.9,164.8],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G928I/*\"},{\"ua\":\"SM-G928I\"}],\"dpi\":[515.1,518.4],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G920F/*\"},{\"ua\":\"SM-G920F\"}],\"dpi\":580.6,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G920P/*\"},{\"ua\":\"SM-G920P\"}],\"dpi\":[522.5,577],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G925F/*\"},{\"ua\":\"SM-G925F\"}],\"dpi\":580.6,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G925V/*\"},{\"ua\":\"SM-G925V\"}],\"dpi\":[522.5,576.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G930F/*\"},{\"ua\":\"SM-G930F\"}],\"dpi\":576.6,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G935F/*\"},{\"ua\":\"SM-G935F\"}],\"dpi\":533,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G950F/*\"},{\"ua\":\"SM-G950F\"}],\"dpi\":[562.707,565.293],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G955U/*\"},{\"ua\":\"SM-G955U\"}],\"dpi\":[522.514,525.762],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G955F/*\"},{\"ua\":\"SM-G955F\"}],\"dpi\":[522.514,525.762],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G960F/*\"},{\"ua\":\"SM-G960F\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G9600/*\"},{\"ua\":\"SM-G9600\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G960T/*\"},{\"ua\":\"SM-G960T\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G960N/*\"},{\"ua\":\"SM-G960N\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G960U/*\"},{\"ua\":\"SM-G960U\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G9608/*\"},{\"ua\":\"SM-G9608\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G960FD/*\"},{\"ua\":\"SM-G960FD\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G960W/*\"},{\"ua\":\"SM-G960W\"}],\"dpi\":[569.575,571.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G965F/*\"},{\"ua\":\"SM-G965F\"}],\"dpi\":529,\"bw\":2,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/C6903/*\"},{\"ua\":\"C6903\"}],\"dpi\":[442.5,443.3],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/D6653/*\"},{\"ua\":\"D6653\"}],\"dpi\":[428.6,427.6],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/E6653/*\"},{\"ua\":\"E6653\"}],\"dpi\":[428.6,425.7],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/E6853/*\"},{\"ua\":\"E6853\"}],\"dpi\":[403.4,401.9],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Sony/*/SGP321/*\"},{\"ua\":\"SGP321\"}],\"dpi\":[224.7,224.1],\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"TCT/*/ALCATEL ONE TOUCH Fierce/*\"},{\"ua\":\"ALCATEL ONE TOUCH Fierce\"}],\"dpi\":[240,247.5],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"THL/*/thl 5000/*\"},{\"ua\":\"thl 5000\"}],\"dpi\":[480,443.3],\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Fly/*/IQ4412/*\"},{\"ua\":\"IQ4412\"}],\"dpi\":307.9,\"bw\":3,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"ZTE/*/ZTE Blade L2/*\"},{\"ua\":\"ZTE Blade L2\"}],\"dpi\":240,\"bw\":3,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"BENEVE/*/VR518/*\"},{\"ua\":\"VR518\"}],\"dpi\":480,\"bw\":3,\"ac\":500},{\"type\":\"ios\",\"rules\":[{\"res\":[640,960]}],\"dpi\":[325.1,328.4],\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[640,1136]}],\"dpi\":[317.1,320.2],\"bw\":3,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[750,1334]}],\"dpi\":326.4,\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[1242,2208]}],\"dpi\":[453.6,458.4],\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[1125,2001]}],\"dpi\":[410.9,415.4],\"bw\":4,\"ac\":1000},{\"type\":\"ios\",\"rules\":[{\"res\":[1125,2436]}],\"dpi\":458,\"bw\":4,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Huawei/*/EML-L29/*\"},{\"ua\":\"EML-L29\"}],\"dpi\":428,\"bw\":3.45,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"Nokia/*/Nokia 7.1/*\"},{\"ua\":\"Nokia 7.1\"}],\"dpi\":[432,431.9],\"bw\":3,\"ac\":500},{\"type\":\"ios\",\"rules\":[{\"res\":[1242,2688]}],\"dpi\":458,\"bw\":4,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G570M/*\"},{\"ua\":\"SM-G570M\"}],\"dpi\":320,\"bw\":3.684,\"ac\":1000},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G970F/*\"},{\"ua\":\"SM-G970F\"}],\"dpi\":438,\"bw\":2.281,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G973F/*\"},{\"ua\":\"SM-G973F\"}],\"dpi\":550,\"bw\":2.002,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G975F/*\"},{\"ua\":\"SM-G975F\"}],\"dpi\":522,\"bw\":2.054,\"ac\":500},{\"type\":\"android\",\"rules\":[{\"mdmh\":\"samsung/*/SM-G977F/*\"},{\"ua\":\"SM-G977F\"}],\"dpi\":505,\"bw\":2.334,\"ac\":500},{\"type\":\"ios\",\"rules\":[{\"res\":[828,1792]}],\"dpi\":326,\"bw\":5,\"ac\":500}];\nvar DPDB_CACHE = {\n\tformat: format,\n\tlast_updated: last_updated,\n\tdevices: devices\n};\nfunction Dpdb(url, onDeviceParamsUpdated) {\n this.dpdb = DPDB_CACHE;\n this.recalculateDeviceParams_();\n if (url) {\n this.onDeviceParamsUpdated = onDeviceParamsUpdated;\n var xhr = new XMLHttpRequest();\n var obj = this;\n xhr.open('GET', url, true);\n xhr.addEventListener('load', function () {\n obj.loading = false;\n if (xhr.status >= 200 && xhr.status <= 299) {\n obj.dpdb = JSON.parse(xhr.response);\n obj.recalculateDeviceParams_();\n } else {\n console.error('Error loading online DPDB!');\n }\n });\n xhr.send();\n }\n}\nDpdb.prototype.getDeviceParams = function () {\n return this.deviceParams;\n};\nDpdb.prototype.recalculateDeviceParams_ = function () {\n var newDeviceParams = this.calcDeviceParams_();\n if (newDeviceParams) {\n this.deviceParams = newDeviceParams;\n if (this.onDeviceParamsUpdated) {\n this.onDeviceParamsUpdated(this.deviceParams);\n }\n } else {\n console.error('Failed to recalculate device parameters.');\n }\n};\nDpdb.prototype.calcDeviceParams_ = function () {\n var db = this.dpdb;\n if (!db) {\n console.error('DPDB not available.');\n return null;\n }\n if (db.format != 1) {\n console.error('DPDB has unexpected format version.');\n return null;\n }\n if (!db.devices || !db.devices.length) {\n console.error('DPDB does not have a devices section.');\n return null;\n }\n var userAgent = navigator.userAgent || navigator.vendor || window.opera;\n var width = getScreenWidth();\n var height = getScreenHeight();\n if (!db.devices) {\n console.error('DPDB has no devices section.');\n return null;\n }\n for (var i = 0; i < db.devices.length; i++) {\n var device = db.devices[i];\n if (!device.rules) {\n console.warn('Device[' + i + '] has no rules section.');\n continue;\n }\n if (device.type != 'ios' && device.type != 'android') {\n console.warn('Device[' + i + '] has invalid type.');\n continue;\n }\n if (isIOS() != (device.type == 'ios')) continue;\n var matched = false;\n for (var j = 0; j < device.rules.length; j++) {\n var rule = device.rules[j];\n if (this.ruleMatches_(rule, userAgent, width, height)) {\n matched = true;\n break;\n }\n }\n if (!matched) continue;\n var xdpi = device.dpi[0] || device.dpi;\n var ydpi = device.dpi[1] || device.dpi;\n return new DeviceParams({ xdpi: xdpi, ydpi: ydpi, bevelMm: device.bw });\n }\n console.warn('No DPDB device match.');\n return null;\n};\nDpdb.prototype.ruleMatches_ = function (rule, ua, screenWidth, screenHeight) {\n if (!rule.ua && !rule.res) return false;\n if (rule.ua && rule.ua.substring(0, 2) === 'SM') rule.ua = rule.ua.substring(0, 7);\n if (rule.ua && ua.indexOf(rule.ua) < 0) return false;\n if (rule.res) {\n if (!rule.res[0] || !rule.res[1]) return false;\n var resX = rule.res[0];\n var resY = rule.res[1];\n if (Math.min(screenWidth, screenHeight) != Math.min(resX, resY) || Math.max(screenWidth, screenHeight) != Math.max(resX, resY)) {\n return false;\n }\n }\n return true;\n};\nfunction DeviceParams(params) {\n this.xdpi = params.xdpi;\n this.ydpi = params.ydpi;\n this.bevelMm = params.bevelMm;\n}\nfunction SensorSample(sample, timestampS) {\n this.set(sample, timestampS);\n}\nSensorSample.prototype.set = function (sample, timestampS) {\n this.sample = sample;\n this.timestampS = timestampS;\n};\nSensorSample.prototype.copy = function (sensorSample) {\n this.set(sensorSample.sample, sensorSample.timestampS);\n};\nfunction ComplementaryFilter(kFilter, isDebug) {\n this.kFilter = kFilter;\n this.isDebug = isDebug;\n this.currentAccelMeasurement = new SensorSample();\n this.currentGyroMeasurement = new SensorSample();\n this.previousGyroMeasurement = new SensorSample();\n if (isIOS()) {\n this.filterQ = new Quaternion(-1, 0, 0, 1);\n } else {\n this.filterQ = new Quaternion(1, 0, 0, 1);\n }\n this.previousFilterQ = new Quaternion();\n this.previousFilterQ.copy(this.filterQ);\n this.accelQ = new Quaternion();\n this.isOrientationInitialized = false;\n this.estimatedGravity = new Vector3();\n this.measuredGravity = new Vector3();\n this.gyroIntegralQ = new Quaternion();\n}\nComplementaryFilter.prototype.addAccelMeasurement = function (vector, timestampS) {\n this.currentAccelMeasurement.set(vector, timestampS);\n};\nComplementaryFilter.prototype.addGyroMeasurement = function (vector, timestampS) {\n this.currentGyroMeasurement.set(vector, timestampS);\n var deltaT = timestampS - this.previousGyroMeasurement.timestampS;\n if (isTimestampDeltaValid(deltaT)) {\n this.run_();\n }\n this.previousGyroMeasurement.copy(this.currentGyroMeasurement);\n};\nComplementaryFilter.prototype.run_ = function () {\n if (!this.isOrientationInitialized) {\n this.accelQ = this.accelToQuaternion_(this.currentAccelMeasurement.sample);\n this.previousFilterQ.copy(this.accelQ);\n this.isOrientationInitialized = true;\n return;\n }\n var deltaT = this.currentGyroMeasurement.timestampS - this.previousGyroMeasurement.timestampS;\n var gyroDeltaQ = this.gyroToQuaternionDelta_(this.currentGyroMeasurement.sample, deltaT);\n this.gyroIntegralQ.multiply(gyroDeltaQ);\n this.filterQ.copy(this.previousFilterQ);\n this.filterQ.multiply(gyroDeltaQ);\n var invFilterQ = new Quaternion();\n invFilterQ.copy(this.filterQ);\n invFilterQ.inverse();\n this.estimatedGravity.set(0, 0, -1);\n this.estimatedGravity.applyQuaternion(invFilterQ);\n this.estimatedGravity.normalize();\n this.measuredGravity.copy(this.currentAccelMeasurement.sample);\n this.measuredGravity.normalize();\n var deltaQ = new Quaternion();\n deltaQ.setFromUnitVectors(this.estimatedGravity, this.measuredGravity);\n deltaQ.inverse();\n if (this.isDebug) {\n console.log('Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)', radToDeg * getQuaternionAngle(deltaQ), this.estimatedGravity.x.toFixed(1), this.estimatedGravity.y.toFixed(1), this.estimatedGravity.z.toFixed(1), this.measuredGravity.x.toFixed(1), this.measuredGravity.y.toFixed(1), this.measuredGravity.z.toFixed(1));\n }\n var targetQ = new Quaternion();\n targetQ.copy(this.filterQ);\n targetQ.multiply(deltaQ);\n this.filterQ.slerp(targetQ, 1 - this.kFilter);\n this.previousFilterQ.copy(this.filterQ);\n};\nComplementaryFilter.prototype.getOrientation = function () {\n return this.filterQ;\n};\nComplementaryFilter.prototype.accelToQuaternion_ = function (accel) {\n var normAccel = new Vector3();\n normAccel.copy(accel);\n normAccel.normalize();\n var quat = new Quaternion();\n quat.setFromUnitVectors(new Vector3(0, 0, -1), normAccel);\n quat.inverse();\n return quat;\n};\nComplementaryFilter.prototype.gyroToQuaternionDelta_ = function (gyro, dt) {\n var quat = new Quaternion();\n var axis = new Vector3();\n axis.copy(gyro);\n axis.normalize();\n quat.setFromAxisAngle(axis, gyro.length() * dt);\n return quat;\n};\nfunction PosePredictor(predictionTimeS, isDebug) {\n this.predictionTimeS = predictionTimeS;\n this.isDebug = isDebug;\n this.previousQ = new Quaternion();\n this.previousTimestampS = null;\n this.deltaQ = new Quaternion();\n this.outQ = new Quaternion();\n}\nPosePredictor.prototype.getPrediction = function (currentQ, gyro, timestampS) {\n if (!this.previousTimestampS) {\n this.previousQ.copy(currentQ);\n this.previousTimestampS = timestampS;\n return currentQ;\n }\n var axis = new Vector3();\n axis.copy(gyro);\n axis.normalize();\n var angularSpeed = gyro.length();\n if (angularSpeed < degToRad * 20) {\n if (this.isDebug) {\n console.log('Moving slowly, at %s deg/s: no prediction', (radToDeg * angularSpeed).toFixed(1));\n }\n this.outQ.copy(currentQ);\n this.previousQ.copy(currentQ);\n return this.outQ;\n }\n var predictAngle = angularSpeed * this.predictionTimeS;\n this.deltaQ.setFromAxisAngle(axis, predictAngle);\n this.outQ.copy(this.previousQ);\n this.outQ.multiply(this.deltaQ);\n this.previousQ.copy(currentQ);\n this.previousTimestampS = timestampS;\n return this.outQ;\n};\nfunction FusionPoseSensor(kFilter, predictionTime, yawOnly, isDebug) {\n this.yawOnly = yawOnly;\n this.accelerometer = new Vector3();\n this.gyroscope = new Vector3();\n this.filter = new ComplementaryFilter(kFilter, isDebug);\n this.posePredictor = new PosePredictor(predictionTime, isDebug);\n this.isFirefoxAndroid = isFirefoxAndroid();\n this.isIOS = isIOS();\n var chromeVersion = getChromeVersion();\n this.isDeviceMotionInRadians = !this.isIOS && chromeVersion && chromeVersion < 66;\n this.isWithoutDeviceMotion = isChromeWithoutDeviceMotion() || isSafariWithoutDeviceMotion();\n this.filterToWorldQ = new Quaternion();\n if (isIOS()) {\n this.filterToWorldQ.setFromAxisAngle(new Vector3(1, 0, 0), Math.PI / 2);\n } else {\n this.filterToWorldQ.setFromAxisAngle(new Vector3(1, 0, 0), -Math.PI / 2);\n }\n this.inverseWorldToScreenQ = new Quaternion();\n this.worldToScreenQ = new Quaternion();\n this.originalPoseAdjustQ = new Quaternion();\n this.originalPoseAdjustQ.setFromAxisAngle(new Vector3(0, 0, 1), -window.orientation * Math.PI / 180);\n this.setScreenTransform_();\n if (isLandscapeMode()) {\n this.filterToWorldQ.multiply(this.inverseWorldToScreenQ);\n }\n this.resetQ = new Quaternion();\n this.orientationOut_ = new Float32Array(4);\n this.start();\n}\nFusionPoseSensor.prototype.getPosition = function () {\n return null;\n};\nFusionPoseSensor.prototype.getOrientation = function () {\n var orientation = void 0;\n if (this.isWithoutDeviceMotion && this._deviceOrientationQ) {\n this.deviceOrientationFixQ = this.deviceOrientationFixQ || function () {\n var z = new Quaternion().setFromAxisAngle(new Vector3(0, 0, -1), 0);\n var y = new Quaternion();\n if (window.orientation === -90) {\n y.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI / -2);\n } else {\n y.setFromAxisAngle(new Vector3(0, 1, 0), Math.PI / 2);\n }\n return z.multiply(y);\n }();\n this.deviceOrientationFilterToWorldQ = this.deviceOrientationFilterToWorldQ || function () {\n var q = new Quaternion();\n q.setFromAxisAngle(new Vector3(1, 0, 0), -Math.PI / 2);\n return q;\n }();\n orientation = this._deviceOrientationQ;\n var out = new Quaternion();\n out.copy(orientation);\n out.multiply(this.deviceOrientationFilterToWorldQ);\n out.multiply(this.resetQ);\n out.multiply(this.worldToScreenQ);\n out.multiplyQuaternions(this.deviceOrientationFixQ, out);\n if (this.yawOnly) {\n out.x = 0;\n out.z = 0;\n out.normalize();\n }\n this.orientationOut_[0] = out.x;\n this.orientationOut_[1] = out.y;\n this.orientationOut_[2] = out.z;\n this.orientationOut_[3] = out.w;\n return this.orientationOut_;\n } else {\n var filterOrientation = this.filter.getOrientation();\n orientation = this.posePredictor.getPrediction(filterOrientation, this.gyroscope, this.previousTimestampS);\n }\n var out = new Quaternion();\n out.copy(this.filterToWorldQ);\n out.multiply(this.resetQ);\n out.multiply(orientation);\n out.multiply(this.worldToScreenQ);\n if (this.yawOnly) {\n out.x = 0;\n out.z = 0;\n out.normalize();\n }\n this.orientationOut_[0] = out.x;\n this.orientationOut_[1] = out.y;\n this.orientationOut_[2] = out.z;\n this.orientationOut_[3] = out.w;\n return this.orientationOut_;\n};\nFusionPoseSensor.prototype.resetPose = function () {\n this.resetQ.copy(this.filter.getOrientation());\n this.resetQ.x = 0;\n this.resetQ.y = 0;\n this.resetQ.z *= -1;\n this.resetQ.normalize();\n if (isLandscapeMode()) {\n this.resetQ.multiply(this.inverseWorldToScreenQ);\n }\n this.resetQ.multiply(this.originalPoseAdjustQ);\n};\nFusionPoseSensor.prototype.onDeviceOrientation_ = function (e) {\n this._deviceOrientationQ = this._deviceOrientationQ || new Quaternion();\n var alpha = e.alpha,\n beta = e.beta,\n gamma = e.gamma;\n alpha = (alpha || 0) * Math.PI / 180;\n beta = (beta || 0) * Math.PI / 180;\n gamma = (gamma || 0) * Math.PI / 180;\n this._deviceOrientationQ.setFromEulerYXZ(beta, alpha, -gamma);\n};\nFusionPoseSensor.prototype.onDeviceMotion_ = function (deviceMotion) {\n this.updateDeviceMotion_(deviceMotion);\n};\nFusionPoseSensor.prototype.updateDeviceMotion_ = function (deviceMotion) {\n var accGravity = deviceMotion.accelerationIncludingGravity;\n var rotRate = deviceMotion.rotationRate;\n var timestampS = deviceMotion.timeStamp / 1000;\n var deltaS = timestampS - this.previousTimestampS;\n if (deltaS < 0) {\n warnOnce('fusion-pose-sensor:invalid:non-monotonic', 'Invalid timestamps detected: non-monotonic timestamp from devicemotion');\n this.previousTimestampS = timestampS;\n return;\n } else if (deltaS <= MIN_TIMESTEP || deltaS > MAX_TIMESTEP) {\n warnOnce('fusion-pose-sensor:invalid:outside-threshold', 'Invalid timestamps detected: Timestamp from devicemotion outside expected range.');\n this.previousTimestampS = timestampS;\n return;\n }\n this.accelerometer.set(-accGravity.x, -accGravity.y, -accGravity.z);\n if (rotRate) {\n if (isR7()) {\n this.gyroscope.set(-rotRate.beta, rotRate.alpha, rotRate.gamma);\n } else {\n this.gyroscope.set(rotRate.alpha, rotRate.beta, rotRate.gamma);\n }\n if (!this.isDeviceMotionInRadians) {\n this.gyroscope.multiplyScalar(Math.PI / 180);\n }\n this.filter.addGyroMeasurement(this.gyroscope, timestampS);\n }\n this.filter.addAccelMeasurement(this.accelerometer, timestampS);\n this.previousTimestampS = timestampS;\n};\nFusionPoseSensor.prototype.onOrientationChange_ = function (screenOrientation) {\n this.setScreenTransform_();\n};\nFusionPoseSensor.prototype.onMessage_ = function (event) {\n var message = event.data;\n if (!message || !message.type) {\n return;\n }\n var type = message.type.toLowerCase();\n if (type !== 'devicemotion') {\n return;\n }\n this.updateDeviceMotion_(message.deviceMotionEvent);\n};\nFusionPoseSensor.prototype.setScreenTransform_ = function () {\n this.worldToScreenQ.set(0, 0, 0, 1);\n switch (window.orientation) {\n case 0:\n break;\n case 90:\n this.worldToScreenQ.setFromAxisAngle(new Vector3(0, 0, 1), -Math.PI / 2);\n break;\n case -90:\n this.worldToScreenQ.setFromAxisAngle(new Vector3(0, 0, 1), Math.PI / 2);\n break;\n case 180:\n break;\n }\n this.inverseWorldToScreenQ.copy(this.worldToScreenQ);\n this.inverseWorldToScreenQ.inverse();\n};\nFusionPoseSensor.prototype.start = function () {\n this.onDeviceMotionCallback_ = this.onDeviceMotion_.bind(this);\n this.onOrientationChangeCallback_ = this.onOrientationChange_.bind(this);\n this.onMessageCallback_ = this.onMessage_.bind(this);\n this.onDeviceOrientationCallback_ = this.onDeviceOrientation_.bind(this);\n if (isIOS() && isInsideCrossOriginIFrame()) {\n window.addEventListener('message', this.onMessageCallback_);\n }\n window.addEventListener('orientationchange', this.onOrientationChangeCallback_);\n if (this.isWithoutDeviceMotion) {\n window.addEventListener('deviceorientation', this.onDeviceOrientationCallback_);\n } else {\n window.addEventListener('devicemotion', this.onDeviceMotionCallback_);\n }\n};\nFusionPoseSensor.prototype.stop = function () {\n window.removeEventListener('devicemotion', this.onDeviceMotionCallback_);\n window.removeEventListener('deviceorientation', this.onDeviceOrientationCallback_);\n window.removeEventListener('orientationchange', this.onOrientationChangeCallback_);\n window.removeEventListener('message', this.onMessageCallback_);\n};\nvar SENSOR_FREQUENCY = 60;\nvar X_AXIS = new Vector3(1, 0, 0);\nvar Z_AXIS = new Vector3(0, 0, 1);\nvar SENSOR_TO_VR = new Quaternion();\nSENSOR_TO_VR.setFromAxisAngle(X_AXIS, -Math.PI / 2);\nSENSOR_TO_VR.multiply(new Quaternion().setFromAxisAngle(Z_AXIS, Math.PI / 2));\nvar PoseSensor = function () {\n function PoseSensor(config) {\n classCallCheck(this, PoseSensor);\n this.config = config;\n this.sensor = null;\n this.fusionSensor = null;\n this._out = new Float32Array(4);\n this.api = null;\n this.errors = [];\n this._sensorQ = new Quaternion();\n this._outQ = new Quaternion();\n this._onSensorRead = this._onSensorRead.bind(this);\n this._onSensorError = this._onSensorError.bind(this);\n this.init();\n }\n createClass(PoseSensor, [{\n key: 'init',\n value: function init() {\n var sensor = null;\n try {\n sensor = new RelativeOrientationSensor({\n frequency: SENSOR_FREQUENCY,\n referenceFrame: 'screen'\n });\n sensor.addEventListener('error', this._onSensorError);\n } catch (error) {\n this.errors.push(error);\n if (error.name === 'SecurityError') {\n console.error('Cannot construct sensors due to the Feature Policy');\n console.warn('Attempting to fall back using \"devicemotion\"; however this will ' + 'fail in the future without correct permissions.');\n this.useDeviceMotion();\n } else if (error.name === 'ReferenceError') {\n this.useDeviceMotion();\n } else {\n console.error(error);\n }\n }\n if (sensor) {\n this.api = 'sensor';\n this.sensor = sensor;\n this.sensor.addEventListener('reading', this._onSensorRead);\n this.sensor.start();\n }\n }\n }, {\n key: 'useDeviceMotion',\n value: function useDeviceMotion() {\n this.api = 'devicemotion';\n this.fusionSensor = new FusionPoseSensor(this.config.K_FILTER, this.config.PREDICTION_TIME_S, this.config.YAW_ONLY, this.config.DEBUG);\n if (this.sensor) {\n this.sensor.removeEventListener('reading', this._onSensorRead);\n this.sensor.removeEventListener('error', this._onSensorError);\n this.sensor = null;\n }\n }\n }, {\n key: 'getOrientation',\n value: function getOrientation() {\n if (this.fusionSensor) {\n return this.fusionSensor.getOrientation();\n }\n if (!this.sensor || !this.sensor.quaternion) {\n this._out[0] = this._out[1] = this._out[2] = 0;\n this._out[3] = 1;\n return this._out;\n }\n var q = this.sensor.quaternion;\n this._sensorQ.set(q[0], q[1], q[2], q[3]);\n var out = this._outQ;\n out.copy(SENSOR_TO_VR);\n out.multiply(this._sensorQ);\n if (this.config.YAW_ONLY) {\n out.x = out.z = 0;\n out.normalize();\n }\n this._out[0] = out.x;\n this._out[1] = out.y;\n this._out[2] = out.z;\n this._out[3] = out.w;\n return this._out;\n }\n }, {\n key: '_onSensorError',\n value: function _onSensorError(event) {\n this.errors.push(event.error);\n if (event.error.name === 'NotAllowedError') {\n console.error('Permission to access sensor was denied');\n } else if (event.error.name === 'NotReadableError') {\n console.error('Sensor could not be read');\n } else {\n console.error(event.error);\n }\n this.useDeviceMotion();\n }\n }, {\n key: '_onSensorRead',\n value: function _onSensorRead() {}\n }]);\n return PoseSensor;\n}();\nvar rotateInstructionsAsset = \"\";\nfunction RotateInstructions() {\n this.loadIcon_();\n var overlay = document.createElement('div');\n var s = overlay.style;\n s.position = 'fixed';\n s.top = 0;\n s.right = 0;\n s.bottom = 0;\n s.left = 0;\n s.backgroundColor = 'gray';\n s.fontFamily = 'sans-serif';\n s.zIndex = 1000000;\n var img = document.createElement('img');\n img.src = this.icon;\n var s = img.style;\n s.marginLeft = '25%';\n s.marginTop = '25%';\n s.width = '50%';\n overlay.appendChild(img);\n var text = document.createElement('div');\n var s = text.style;\n s.textAlign = 'center';\n s.fontSize = '16px';\n s.lineHeight = '24px';\n s.margin = '24px 25%';\n s.width = '50%';\n text.innerHTML = 'Place your phone into your Cardboard viewer.';\n overlay.appendChild(text);\n var snackbar = document.createElement('div');\n var s = snackbar.style;\n s.backgroundColor = '#CFD8DC';\n s.position = 'fixed';\n s.bottom = 0;\n s.width = '100%';\n s.height = '48px';\n s.padding = '14px 24px';\n s.boxSizing = 'border-box';\n s.color = '#656A6B';\n overlay.appendChild(snackbar);\n var snackbarText = document.createElement('div');\n snackbarText.style.float = 'left';\n snackbarText.innerHTML = 'No Cardboard viewer?';\n var snackbarButton = document.createElement('a');\n snackbarButton.href = 'https://www.google.com/get/cardboard/get-cardboard/';\n snackbarButton.innerHTML = 'get one';\n snackbarButton.target = '_blank';\n var s = snackbarButton.style;\n s.float = 'right';\n s.fontWeight = 600;\n s.textTransform = 'uppercase';\n s.borderLeft = '1px solid gray';\n s.paddingLeft = '24px';\n s.textDecoration = 'none';\n s.color = '#656A6B';\n snackbar.appendChild(snackbarText);\n snackbar.appendChild(snackbarButton);\n this.overlay = overlay;\n this.text = text;\n this.hide();\n}\nRotateInstructions.prototype.show = function (parent) {\n if (!parent && !this.overlay.parentElement) {\n document.body.appendChild(this.overlay);\n } else if (parent) {\n if (this.overlay.parentElement && this.overlay.parentElement != parent) this.overlay.parentElement.removeChild(this.overlay);\n parent.appendChild(this.overlay);\n }\n this.overlay.style.display = 'block';\n var img = this.overlay.querySelector('img');\n var s = img.style;\n if (isLandscapeMode()) {\n s.width = '20%';\n s.marginLeft = '40%';\n s.marginTop = '3%';\n } else {\n s.width = '50%';\n s.marginLeft = '25%';\n s.marginTop = '25%';\n }\n};\nRotateInstructions.prototype.hide = function () {\n this.overlay.style.display = 'none';\n};\nRotateInstructions.prototype.showTemporarily = function (ms, parent) {\n this.show(parent);\n this.timer = setTimeout(this.hide.bind(this), ms);\n};\nRotateInstructions.prototype.disableShowTemporarily = function () {\n clearTimeout(this.timer);\n};\nRotateInstructions.prototype.update = function () {\n this.disableShowTemporarily();\n if (!isLandscapeMode() && isMobile()) {\n this.show();\n } else {\n this.hide();\n }\n};\nRotateInstructions.prototype.loadIcon_ = function () {\n this.icon = dataUri('image/svg+xml', rotateInstructionsAsset);\n};\nvar DEFAULT_VIEWER = 'CardboardV1';\nvar VIEWER_KEY = 'WEBVR_CARDBOARD_VIEWER';\nvar CLASS_NAME = 'webvr-polyfill-viewer-selector';\nfunction ViewerSelector(defaultViewer) {\n try {\n this.selectedKey = localStorage.getItem(VIEWER_KEY);\n } catch (error) {\n console.error('Failed to load viewer profile: %s', error);\n }\n if (!this.selectedKey) {\n this.selectedKey = defaultViewer || DEFAULT_VIEWER;\n }\n this.dialog = this.createDialog_(DeviceInfo.Viewers);\n this.root = null;\n this.onChangeCallbacks_ = [];\n}\nViewerSelector.prototype.show = function (root) {\n this.root = root;\n root.appendChild(this.dialog);\n var selected = this.dialog.querySelector('#' + this.selectedKey);\n selected.checked = true;\n this.dialog.style.display = 'block';\n};\nViewerSelector.prototype.hide = function () {\n if (this.root && this.root.contains(this.dialog)) {\n this.root.removeChild(this.dialog);\n }\n this.dialog.style.display = 'none';\n};\nViewerSelector.prototype.getCurrentViewer = function () {\n return DeviceInfo.Viewers[this.selectedKey];\n};\nViewerSelector.prototype.getSelectedKey_ = function () {\n var input = this.dialog.querySelector('input[name=field]:checked');\n if (input) {\n return input.id;\n }\n return null;\n};\nViewerSelector.prototype.onChange = function (cb) {\n this.onChangeCallbacks_.push(cb);\n};\nViewerSelector.prototype.fireOnChange_ = function (viewer) {\n for (var i = 0; i < this.onChangeCallbacks_.length; i++) {\n this.onChangeCallbacks_[i](viewer);\n }\n};\nViewerSelector.prototype.onSave_ = function () {\n this.selectedKey = this.getSelectedKey_();\n if (!this.selectedKey || !DeviceInfo.Viewers[this.selectedKey]) {\n console.error('ViewerSelector.onSave_: this should never happen!');\n return;\n }\n this.fireOnChange_(DeviceInfo.Viewers[this.selectedKey]);\n try {\n localStorage.setItem(VIEWER_KEY, this.selectedKey);\n } catch (error) {\n console.error('Failed to save viewer profile: %s', error);\n }\n this.hide();\n};\nViewerSelector.prototype.createDialog_ = function (options) {\n var container = document.createElement('div');\n container.classList.add(CLASS_NAME);\n container.style.display = 'none';\n var overlay = document.createElement('div');\n var s = overlay.style;\n s.position = 'fixed';\n s.left = 0;\n s.top = 0;\n s.width = '100%';\n s.height = '100%';\n s.background = 'rgba(0, 0, 0, 0.3)';\n overlay.addEventListener('click', this.hide.bind(this));\n var width = 280;\n var dialog = document.createElement('div');\n var s = dialog.style;\n s.boxSizing = 'border-box';\n s.position = 'fixed';\n s.top = '24px';\n s.left = '50%';\n s.marginLeft = -width / 2 + 'px';\n s.width = width + 'px';\n s.padding = '24px';\n s.overflow = 'hidden';\n s.background = '#fafafa';\n s.fontFamily = \"'Roboto', sans-serif\";\n s.boxShadow = '0px 5px 20px #666';\n dialog.appendChild(this.createH1_('Select your viewer'));\n for (var id in options) {\n dialog.appendChild(this.createChoice_(id, options[id].label));\n }\n dialog.appendChild(this.createButton_('Save', this.onSave_.bind(this)));\n container.appendChild(overlay);\n container.appendChild(dialog);\n return container;\n};\nViewerSelector.prototype.createH1_ = function (name) {\n var h1 = document.createElement('h1');\n var s = h1.style;\n s.color = 'black';\n s.fontSize = '20px';\n s.fontWeight = 'bold';\n s.marginTop = 0;\n s.marginBottom = '24px';\n h1.innerHTML = name;\n return h1;\n};\nViewerSelector.prototype.createChoice_ = function (id, name) {\n var div = document.createElement('div');\n div.style.marginTop = '8px';\n div.style.color = 'black';\n var input = document.createElement('input');\n input.style.fontSize = '30px';\n input.setAttribute('id', id);\n input.setAttribute('type', 'radio');\n input.setAttribute('value', id);\n input.setAttribute('name', 'field');\n var label = document.createElement('label');\n label.style.marginLeft = '4px';\n label.setAttribute('for', id);\n label.innerHTML = name;\n div.appendChild(input);\n div.appendChild(label);\n return div;\n};\nViewerSelector.prototype.createButton_ = function (label, onclick) {\n var button = document.createElement('button');\n button.innerHTML = label;\n var s = button.style;\n s.float = 'right';\n s.textTransform = 'uppercase';\n s.color = '#1094f7';\n s.fontSize = '14px';\n s.letterSpacing = 0;\n s.border = 0;\n s.background = 'none';\n s.marginTop = '16px';\n button.addEventListener('click', onclick);\n return button;\n};\nvar commonjsGlobal$$1 = typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : typeof self !== 'undefined' ? self : {};\nfunction unwrapExports$$1 (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nfunction createCommonjsModule$$1(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\nvar NoSleep = createCommonjsModule$$1(function (module, exports) {\n(function webpackUniversalModuleDefinition(root, factory) {\n\tmodule.exports = factory();\n})(commonjsGlobal$$1, function() {\nreturn (function(modules) {\n \tvar installedModules = {};\n \tfunction __webpack_require__(moduleId) {\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n \t\tmodule.l = true;\n \t\treturn module.exports;\n \t}\n \t__webpack_require__.m = modules;\n \t__webpack_require__.c = installedModules;\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n \t__webpack_require__.p = \"\";\n \treturn __webpack_require__(__webpack_require__.s = 0);\n })\n ([\n (function(module, exports, __webpack_require__) {\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar mediaFile = __webpack_require__(1);\nvar oldIOS = typeof navigator !== 'undefined' && parseFloat(('' + (/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0, ''])[1]).replace('undefined', '3_2').replace('_', '.').replace('_', '')) < 10 && !window.MSStream;\nvar NoSleep = function () {\n function NoSleep() {\n _classCallCheck(this, NoSleep);\n if (oldIOS) {\n this.noSleepTimer = null;\n } else {\n this.noSleepVideo = document.createElement('video');\n this.noSleepVideo.setAttribute('playsinline', '');\n this.noSleepVideo.setAttribute('src', mediaFile);\n this.noSleepVideo.addEventListener('timeupdate', function (e) {\n if (this.noSleepVideo.currentTime > 0.5) {\n this.noSleepVideo.currentTime = Math.random();\n }\n }.bind(this));\n }\n }\n _createClass(NoSleep, [{\n key: 'enable',\n value: function enable() {\n if (oldIOS) {\n this.disable();\n this.noSleepTimer = window.setInterval(function () {\n window.location.href = '/';\n window.setTimeout(window.stop, 0);\n }, 15000);\n } else {\n this.noSleepVideo.play();\n }\n }\n }, {\n key: 'disable',\n value: function disable() {\n if (oldIOS) {\n if (this.noSleepTimer) {\n window.clearInterval(this.noSleepTimer);\n this.noSleepTimer = null;\n }\n } else {\n this.noSleepVideo.pause();\n }\n }\n }]);\n return NoSleep;\n}();\nmodule.exports = NoSleep;\n }),\n (function(module, exports, __webpack_require__) {\nmodule.exports = 'data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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';\n })\n ]);\n});\n});\nvar NoSleep$1 = unwrapExports$$1(NoSleep);\nvar nextDisplayId = 1000;\nvar defaultLeftBounds = [0, 0, 0.5, 1];\nvar defaultRightBounds = [0.5, 0, 0.5, 1];\nvar raf = window.requestAnimationFrame;\nvar caf = window.cancelAnimationFrame;\nfunction VRFrameData() {\n this.leftProjectionMatrix = new Float32Array(16);\n this.leftViewMatrix = new Float32Array(16);\n this.rightProjectionMatrix = new Float32Array(16);\n this.rightViewMatrix = new Float32Array(16);\n this.pose = null;\n}\nfunction VRDisplayCapabilities(config) {\n Object.defineProperties(this, {\n hasPosition: {\n writable: false, enumerable: true, value: config.hasPosition\n },\n hasExternalDisplay: {\n writable: false, enumerable: true, value: config.hasExternalDisplay\n },\n canPresent: {\n writable: false, enumerable: true, value: config.canPresent\n },\n maxLayers: {\n writable: false, enumerable: true, value: config.maxLayers\n },\n hasOrientation: {\n enumerable: true, get: function get() {\n deprecateWarning('VRDisplayCapabilities.prototype.hasOrientation', 'VRDisplay.prototype.getFrameData');\n return config.hasOrientation;\n }\n }\n });\n}\nfunction VRDisplay(config) {\n config = config || {};\n var USE_WAKELOCK = 'wakelock' in config ? config.wakelock : true;\n this.isPolyfilled = true;\n this.displayId = nextDisplayId++;\n this.displayName = '';\n this.depthNear = 0.01;\n this.depthFar = 10000.0;\n this.isPresenting = false;\n Object.defineProperty(this, 'isConnected', {\n get: function get() {\n deprecateWarning('VRDisplay.prototype.isConnected', 'VRDisplayCapabilities.prototype.hasExternalDisplay');\n return false;\n }\n });\n this.capabilities = new VRDisplayCapabilities({\n hasPosition: false,\n hasOrientation: false,\n hasExternalDisplay: false,\n canPresent: false,\n maxLayers: 1\n });\n this.stageParameters = null;\n this.waitingForPresent_ = false;\n this.layer_ = null;\n this.originalParent_ = null;\n this.fullscreenElement_ = null;\n this.fullscreenWrapper_ = null;\n this.fullscreenElementCachedStyle_ = null;\n this.fullscreenEventTarget_ = null;\n this.fullscreenChangeHandler_ = null;\n this.fullscreenErrorHandler_ = null;\n if (USE_WAKELOCK && isMobile()) {\n this.wakelock_ = new NoSleep$1();\n }\n}\nVRDisplay.prototype.getFrameData = function (frameData) {\n return frameDataFromPose(frameData, this._getPose(), this);\n};\nVRDisplay.prototype.getPose = function () {\n deprecateWarning('VRDisplay.prototype.getPose', 'VRDisplay.prototype.getFrameData');\n return this._getPose();\n};\nVRDisplay.prototype.resetPose = function () {\n deprecateWarning('VRDisplay.prototype.resetPose');\n return this._resetPose();\n};\nVRDisplay.prototype.getImmediatePose = function () {\n deprecateWarning('VRDisplay.prototype.getImmediatePose', 'VRDisplay.prototype.getFrameData');\n return this._getPose();\n};\nVRDisplay.prototype.requestAnimationFrame = function (callback) {\n return raf(callback);\n};\nVRDisplay.prototype.cancelAnimationFrame = function (id) {\n return caf(id);\n};\nVRDisplay.prototype.wrapForFullscreen = function (element) {\n if (isIOS()) {\n return element;\n }\n if (!this.fullscreenWrapper_) {\n this.fullscreenWrapper_ = document.createElement('div');\n var cssProperties = ['height: ' + Math.min(screen.height, screen.width) + 'px !important', 'top: 0 !important', 'left: 0 !important', 'right: 0 !important', 'border: 0', 'margin: 0', 'padding: 0', 'z-index: 999999 !important', 'position: fixed'];\n this.fullscreenWrapper_.setAttribute('style', cssProperties.join('; ') + ';');\n this.fullscreenWrapper_.classList.add('webvr-polyfill-fullscreen-wrapper');\n }\n if (this.fullscreenElement_ == element) {\n return this.fullscreenWrapper_;\n }\n if (this.fullscreenElement_) {\n if (this.originalParent_) {\n this.originalParent_.appendChild(this.fullscreenElement_);\n } else {\n this.fullscreenElement_.parentElement.removeChild(this.fullscreenElement_);\n }\n }\n this.fullscreenElement_ = element;\n this.originalParent_ = element.parentElement;\n if (!this.originalParent_) {\n document.body.appendChild(element);\n }\n if (!this.fullscreenWrapper_.parentElement) {\n var parent = this.fullscreenElement_.parentElement;\n parent.insertBefore(this.fullscreenWrapper_, this.fullscreenElement_);\n parent.removeChild(this.fullscreenElement_);\n }\n this.fullscreenWrapper_.insertBefore(this.fullscreenElement_, this.fullscreenWrapper_.firstChild);\n this.fullscreenElementCachedStyle_ = this.fullscreenElement_.getAttribute('style');\n var self = this;\n function applyFullscreenElementStyle() {\n if (!self.fullscreenElement_) {\n return;\n }\n var cssProperties = ['position: absolute', 'top: 0', 'left: 0', 'width: ' + Math.max(screen.width, screen.height) + 'px', 'height: ' + Math.min(screen.height, screen.width) + 'px', 'border: 0', 'margin: 0', 'padding: 0'];\n self.fullscreenElement_.setAttribute('style', cssProperties.join('; ') + ';');\n }\n applyFullscreenElementStyle();\n return this.fullscreenWrapper_;\n};\nVRDisplay.prototype.removeFullscreenWrapper = function () {\n if (!this.fullscreenElement_) {\n return;\n }\n var element = this.fullscreenElement_;\n if (this.fullscreenElementCachedStyle_) {\n element.setAttribute('style', this.fullscreenElementCachedStyle_);\n } else {\n element.removeAttribute('style');\n }\n this.fullscreenElement_ = null;\n this.fullscreenElementCachedStyle_ = null;\n var parent = this.fullscreenWrapper_.parentElement;\n this.fullscreenWrapper_.removeChild(element);\n if (this.originalParent_ === parent) {\n parent.insertBefore(element, this.fullscreenWrapper_);\n }\n else if (this.originalParent_) {\n this.originalParent_.appendChild(element);\n }\n parent.removeChild(this.fullscreenWrapper_);\n return element;\n};\nVRDisplay.prototype.requestPresent = function (layers) {\n var wasPresenting = this.isPresenting;\n var self = this;\n if (!(layers instanceof Array)) {\n deprecateWarning('VRDisplay.prototype.requestPresent with non-array argument', 'an array of VRLayers as the first argument');\n layers = [layers];\n }\n return new Promise(function (resolve, reject) {\n if (!self.capabilities.canPresent) {\n reject(new Error('VRDisplay is not capable of presenting.'));\n return;\n }\n if (layers.length == 0 || layers.length > self.capabilities.maxLayers) {\n reject(new Error('Invalid number of layers.'));\n return;\n }\n var incomingLayer = layers[0];\n if (!incomingLayer.source) {\n resolve();\n return;\n }\n var leftBounds = incomingLayer.leftBounds || defaultLeftBounds;\n var rightBounds = incomingLayer.rightBounds || defaultRightBounds;\n if (wasPresenting) {\n var layer = self.layer_;\n if (layer.source !== incomingLayer.source) {\n layer.source = incomingLayer.source;\n }\n for (var i = 0; i < 4; i++) {\n layer.leftBounds[i] = leftBounds[i];\n layer.rightBounds[i] = rightBounds[i];\n }\n self.wrapForFullscreen(self.layer_.source);\n self.updatePresent_();\n resolve();\n return;\n }\n self.layer_ = {\n predistorted: incomingLayer.predistorted,\n source: incomingLayer.source,\n leftBounds: leftBounds.slice(0),\n rightBounds: rightBounds.slice(0)\n };\n self.waitingForPresent_ = false;\n if (self.layer_ && self.layer_.source) {\n var fullscreenElement = self.wrapForFullscreen(self.layer_.source);\n var onFullscreenChange = function onFullscreenChange() {\n var actualFullscreenElement = getFullscreenElement();\n self.isPresenting = fullscreenElement === actualFullscreenElement;\n if (self.isPresenting) {\n if (screen.orientation && screen.orientation.lock) {\n screen.orientation.lock('landscape-primary').catch(function (error) {\n console.error('screen.orientation.lock() failed due to', error.message);\n });\n }\n self.waitingForPresent_ = false;\n self.beginPresent_();\n resolve();\n } else {\n if (screen.orientation && screen.orientation.unlock) {\n screen.orientation.unlock();\n }\n self.removeFullscreenWrapper();\n self.disableWakeLock();\n self.endPresent_();\n self.removeFullscreenListeners_();\n }\n self.fireVRDisplayPresentChange_();\n };\n var onFullscreenError = function onFullscreenError() {\n if (!self.waitingForPresent_) {\n return;\n }\n self.removeFullscreenWrapper();\n self.removeFullscreenListeners_();\n self.disableWakeLock();\n self.waitingForPresent_ = false;\n self.isPresenting = false;\n reject(new Error('Unable to present.'));\n };\n self.addFullscreenListeners_(fullscreenElement, onFullscreenChange, onFullscreenError);\n if (requestFullscreen(fullscreenElement)) {\n self.enableWakeLock();\n self.waitingForPresent_ = true;\n } else if (isIOS() || isWebViewAndroid()) {\n self.enableWakeLock();\n self.isPresenting = true;\n self.beginPresent_();\n self.fireVRDisplayPresentChange_();\n resolve();\n }\n }\n if (!self.waitingForPresent_ && !isIOS()) {\n exitFullscreen();\n reject(new Error('Unable to present.'));\n }\n });\n};\nVRDisplay.prototype.exitPresent = function () {\n var wasPresenting = this.isPresenting;\n var self = this;\n this.isPresenting = false;\n this.layer_ = null;\n this.disableWakeLock();\n return new Promise(function (resolve, reject) {\n if (wasPresenting) {\n if (!exitFullscreen() && isIOS()) {\n self.endPresent_();\n self.fireVRDisplayPresentChange_();\n }\n if (isWebViewAndroid()) {\n self.removeFullscreenWrapper();\n self.removeFullscreenListeners_();\n self.endPresent_();\n self.fireVRDisplayPresentChange_();\n }\n resolve();\n } else {\n reject(new Error('Was not presenting to VRDisplay.'));\n }\n });\n};\nVRDisplay.prototype.getLayers = function () {\n if (this.layer_) {\n return [this.layer_];\n }\n return [];\n};\nVRDisplay.prototype.fireVRDisplayPresentChange_ = function () {\n var event = new CustomEvent('vrdisplaypresentchange', { detail: { display: this } });\n window.dispatchEvent(event);\n};\nVRDisplay.prototype.fireVRDisplayConnect_ = function () {\n var event = new CustomEvent('vrdisplayconnect', { detail: { display: this } });\n window.dispatchEvent(event);\n};\nVRDisplay.prototype.addFullscreenListeners_ = function (element, changeHandler, errorHandler) {\n this.removeFullscreenListeners_();\n this.fullscreenEventTarget_ = element;\n this.fullscreenChangeHandler_ = changeHandler;\n this.fullscreenErrorHandler_ = errorHandler;\n if (changeHandler) {\n if (document.fullscreenEnabled) {\n element.addEventListener('fullscreenchange', changeHandler, false);\n } else if (document.webkitFullscreenEnabled) {\n element.addEventListener('webkitfullscreenchange', changeHandler, false);\n } else if (document.mozFullScreenEnabled) {\n document.addEventListener('mozfullscreenchange', changeHandler, false);\n } else if (document.msFullscreenEnabled) {\n element.addEventListener('msfullscreenchange', changeHandler, false);\n }\n }\n if (errorHandler) {\n if (document.fullscreenEnabled) {\n element.addEventListener('fullscreenerror', errorHandler, false);\n } else if (document.webkitFullscreenEnabled) {\n element.addEventListener('webkitfullscreenerror', errorHandler, false);\n } else if (document.mozFullScreenEnabled) {\n document.addEventListener('mozfullscreenerror', errorHandler, false);\n } else if (document.msFullscreenEnabled) {\n element.addEventListener('msfullscreenerror', errorHandler, false);\n }\n }\n};\nVRDisplay.prototype.removeFullscreenListeners_ = function () {\n if (!this.fullscreenEventTarget_) return;\n var element = this.fullscreenEventTarget_;\n if (this.fullscreenChangeHandler_) {\n var changeHandler = this.fullscreenChangeHandler_;\n element.removeEventListener('fullscreenchange', changeHandler, false);\n element.removeEventListener('webkitfullscreenchange', changeHandler, false);\n document.removeEventListener('mozfullscreenchange', changeHandler, false);\n element.removeEventListener('msfullscreenchange', changeHandler, false);\n }\n if (this.fullscreenErrorHandler_) {\n var errorHandler = this.fullscreenErrorHandler_;\n element.removeEventListener('fullscreenerror', errorHandler, false);\n element.removeEventListener('webkitfullscreenerror', errorHandler, false);\n document.removeEventListener('mozfullscreenerror', errorHandler, false);\n element.removeEventListener('msfullscreenerror', errorHandler, false);\n }\n this.fullscreenEventTarget_ = null;\n this.fullscreenChangeHandler_ = null;\n this.fullscreenErrorHandler_ = null;\n};\nVRDisplay.prototype.enableWakeLock = function () {\n if (this.wakelock_) {\n this.wakelock_.enable();\n }\n};\nVRDisplay.prototype.disableWakeLock = function () {\n if (this.wakelock_) {\n this.wakelock_.disable();\n }\n};\nVRDisplay.prototype.beginPresent_ = function () {\n};\nVRDisplay.prototype.endPresent_ = function () {\n};\nVRDisplay.prototype.submitFrame = function (pose) {\n};\nVRDisplay.prototype.getEyeParameters = function (whichEye) {\n return null;\n};\nvar config = {\n ADDITIONAL_VIEWERS: [],\n DEFAULT_VIEWER: '',\n MOBILE_WAKE_LOCK: true,\n DEBUG: false,\n DPDB_URL: 'https://dpdb.webvr.rocks/dpdb.json',\n K_FILTER: 0.98,\n PREDICTION_TIME_S: 0.040,\n CARDBOARD_UI_DISABLED: false,\n ROTATE_INSTRUCTIONS_DISABLED: false,\n YAW_ONLY: false,\n BUFFER_SCALE: 0.5,\n DIRTY_SUBMIT_FRAME_BINDINGS: false\n};\nvar Eye = {\n LEFT: 'left',\n RIGHT: 'right'\n};\nfunction CardboardVRDisplay(config$$1) {\n var defaults = extend({}, config);\n config$$1 = extend(defaults, config$$1 || {});\n VRDisplay.call(this, {\n wakelock: config$$1.MOBILE_WAKE_LOCK\n });\n this.config = config$$1;\n this.displayName = 'Cardboard VRDisplay';\n this.capabilities = new VRDisplayCapabilities({\n hasPosition: false,\n hasOrientation: true,\n hasExternalDisplay: false,\n canPresent: true,\n maxLayers: 1\n });\n this.stageParameters = null;\n this.bufferScale_ = this.config.BUFFER_SCALE;\n this.poseSensor_ = new PoseSensor(this.config);\n this.distorter_ = null;\n this.cardboardUI_ = null;\n this.dpdb_ = new Dpdb(this.config.DPDB_URL, this.onDeviceParamsUpdated_.bind(this));\n this.deviceInfo_ = new DeviceInfo(this.dpdb_.getDeviceParams(), config$$1.ADDITIONAL_VIEWERS);\n this.viewerSelector_ = new ViewerSelector(config$$1.DEFAULT_VIEWER);\n this.viewerSelector_.onChange(this.onViewerChanged_.bind(this));\n this.deviceInfo_.setViewer(this.viewerSelector_.getCurrentViewer());\n if (!this.config.ROTATE_INSTRUCTIONS_DISABLED) {\n this.rotateInstructions_ = new RotateInstructions();\n }\n if (isIOS()) {\n window.addEventListener('resize', this.onResize_.bind(this));\n }\n}\nCardboardVRDisplay.prototype = Object.create(VRDisplay.prototype);\nCardboardVRDisplay.prototype._getPose = function () {\n return {\n position: null,\n orientation: this.poseSensor_.getOrientation(),\n linearVelocity: null,\n linearAcceleration: null,\n angularVelocity: null,\n angularAcceleration: null\n };\n};\nCardboardVRDisplay.prototype._resetPose = function () {\n if (this.poseSensor_.resetPose) {\n this.poseSensor_.resetPose();\n }\n};\nCardboardVRDisplay.prototype._getFieldOfView = function (whichEye) {\n var fieldOfView;\n if (whichEye == Eye.LEFT) {\n fieldOfView = this.deviceInfo_.getFieldOfViewLeftEye();\n } else if (whichEye == Eye.RIGHT) {\n fieldOfView = this.deviceInfo_.getFieldOfViewRightEye();\n } else {\n console.error('Invalid eye provided: %s', whichEye);\n return null;\n }\n return fieldOfView;\n};\nCardboardVRDisplay.prototype._getEyeOffset = function (whichEye) {\n var offset;\n if (whichEye == Eye.LEFT) {\n offset = [-this.deviceInfo_.viewer.interLensDistance * 0.5, 0.0, 0.0];\n } else if (whichEye == Eye.RIGHT) {\n offset = [this.deviceInfo_.viewer.interLensDistance * 0.5, 0.0, 0.0];\n } else {\n console.error('Invalid eye provided: %s', whichEye);\n return null;\n }\n return offset;\n};\nCardboardVRDisplay.prototype.getEyeParameters = function (whichEye) {\n var offset = this._getEyeOffset(whichEye);\n var fieldOfView = this._getFieldOfView(whichEye);\n var eyeParams = {\n offset: offset,\n renderWidth: this.deviceInfo_.device.width * 0.5 * this.bufferScale_,\n renderHeight: this.deviceInfo_.device.height * this.bufferScale_\n };\n Object.defineProperty(eyeParams, 'fieldOfView', {\n enumerable: true,\n get: function get() {\n deprecateWarning('VRFieldOfView', 'VRFrameData\\'s projection matrices');\n return fieldOfView;\n }\n });\n return eyeParams;\n};\nCardboardVRDisplay.prototype.onDeviceParamsUpdated_ = function (newParams) {\n if (this.config.DEBUG) {\n console.log('DPDB reported that device params were updated.');\n }\n this.deviceInfo_.updateDeviceParams(newParams);\n if (this.distorter_) {\n this.distorter_.updateDeviceInfo(this.deviceInfo_);\n }\n};\nCardboardVRDisplay.prototype.updateBounds_ = function () {\n if (this.layer_ && this.distorter_ && (this.layer_.leftBounds || this.layer_.rightBounds)) {\n this.distorter_.setTextureBounds(this.layer_.leftBounds, this.layer_.rightBounds);\n }\n};\nCardboardVRDisplay.prototype.beginPresent_ = function () {\n var gl = this.layer_.source.getContext('webgl');\n if (!gl) gl = this.layer_.source.getContext('experimental-webgl');\n if (!gl) gl = this.layer_.source.getContext('webgl2');\n if (!gl) return;\n if (this.layer_.predistorted) {\n if (!this.config.CARDBOARD_UI_DISABLED) {\n gl.canvas.width = getScreenWidth() * this.bufferScale_;\n gl.canvas.height = getScreenHeight() * this.bufferScale_;\n this.cardboardUI_ = new CardboardUI(gl);\n }\n } else {\n if (!this.config.CARDBOARD_UI_DISABLED) {\n this.cardboardUI_ = new CardboardUI(gl);\n }\n this.distorter_ = new CardboardDistorter(gl, this.cardboardUI_, this.config.BUFFER_SCALE, this.config.DIRTY_SUBMIT_FRAME_BINDINGS);\n this.distorter_.updateDeviceInfo(this.deviceInfo_);\n }\n if (this.cardboardUI_) {\n this.cardboardUI_.listen(function (e) {\n this.viewerSelector_.show(this.layer_.source.parentElement);\n e.stopPropagation();\n e.preventDefault();\n }.bind(this), function (e) {\n this.exitPresent();\n e.stopPropagation();\n e.preventDefault();\n }.bind(this));\n }\n if (this.rotateInstructions_) {\n if (isLandscapeMode() && isMobile()) {\n this.rotateInstructions_.showTemporarily(3000, this.layer_.source.parentElement);\n } else {\n this.rotateInstructions_.update();\n }\n }\n this.orientationHandler = this.onOrientationChange_.bind(this);\n window.addEventListener('orientationchange', this.orientationHandler);\n this.vrdisplaypresentchangeHandler = this.updateBounds_.bind(this);\n window.addEventListener('vrdisplaypresentchange', this.vrdisplaypresentchangeHandler);\n this.fireVRDisplayDeviceParamsChange_();\n};\nCardboardVRDisplay.prototype.endPresent_ = function () {\n if (this.distorter_) {\n this.distorter_.destroy();\n this.distorter_ = null;\n }\n if (this.cardboardUI_) {\n this.cardboardUI_.destroy();\n this.cardboardUI_ = null;\n }\n if (this.rotateInstructions_) {\n this.rotateInstructions_.hide();\n }\n this.viewerSelector_.hide();\n window.removeEventListener('orientationchange', this.orientationHandler);\n window.removeEventListener('vrdisplaypresentchange', this.vrdisplaypresentchangeHandler);\n};\nCardboardVRDisplay.prototype.updatePresent_ = function () {\n this.endPresent_();\n this.beginPresent_();\n};\nCardboardVRDisplay.prototype.submitFrame = function (pose) {\n if (this.distorter_) {\n this.updateBounds_();\n this.distorter_.submitFrame();\n } else if (this.cardboardUI_ && this.layer_) {\n var gl = this.layer_.source.getContext('webgl');\n if (!gl) gl = this.layer_.source.getContext('experimental-webgl');\n if (!gl) gl = this.layer_.source.getContext('webgl2');\n var canvas = gl.canvas;\n if (canvas.width != this.lastWidth || canvas.height != this.lastHeight) {\n this.cardboardUI_.onResize();\n }\n this.lastWidth = canvas.width;\n this.lastHeight = canvas.height;\n this.cardboardUI_.render();\n }\n};\nCardboardVRDisplay.prototype.onOrientationChange_ = function (e) {\n this.viewerSelector_.hide();\n if (this.rotateInstructions_) {\n this.rotateInstructions_.update();\n }\n this.onResize_();\n};\nCardboardVRDisplay.prototype.onResize_ = function (e) {\n if (this.layer_) {\n var gl = this.layer_.source.getContext('webgl');\n if (!gl) gl = this.layer_.source.getContext('experimental-webgl');\n if (!gl) gl = this.layer_.source.getContext('webgl2');\n var cssProperties = ['position: absolute', 'top: 0', 'left: 0',\n 'width: 100vw', 'height: 100vh', 'border: 0', 'margin: 0',\n 'padding: 0px', 'box-sizing: content-box'];\n gl.canvas.setAttribute('style', cssProperties.join('; ') + ';');\n safariCssSizeWorkaround(gl.canvas);\n }\n};\nCardboardVRDisplay.prototype.onViewerChanged_ = function (viewer) {\n this.deviceInfo_.setViewer(viewer);\n if (this.distorter_) {\n this.distorter_.updateDeviceInfo(this.deviceInfo_);\n }\n this.fireVRDisplayDeviceParamsChange_();\n};\nCardboardVRDisplay.prototype.fireVRDisplayDeviceParamsChange_ = function () {\n var event = new CustomEvent('vrdisplaydeviceparamschange', {\n detail: {\n vrdisplay: this,\n deviceInfo: this.deviceInfo_\n }\n });\n window.dispatchEvent(event);\n};\nCardboardVRDisplay.VRFrameData = VRFrameData;\nCardboardVRDisplay.VRDisplay = VRDisplay;\nreturn CardboardVRDisplay;\n})));\n});\nvar CardboardVRDisplay = unwrapExports(cardboardVrDisplay);\n\nvar version = \"0.10.12\";\n\nvar DefaultConfig = {\n ADDITIONAL_VIEWERS: [],\n DEFAULT_VIEWER: '',\n PROVIDE_MOBILE_VRDISPLAY: true,\n MOBILE_WAKE_LOCK: true,\n DEBUG: false,\n DPDB_URL: 'https://dpdb.webvr.rocks/dpdb.json',\n K_FILTER: 0.98,\n PREDICTION_TIME_S: 0.040,\n CARDBOARD_UI_DISABLED: false,\n ROTATE_INSTRUCTIONS_DISABLED: false,\n YAW_ONLY: false,\n BUFFER_SCALE: 0.5,\n DIRTY_SUBMIT_FRAME_BINDINGS: false\n};\n\nfunction WebVRPolyfill(config) {\n this.config = extend(extend({}, DefaultConfig), config);\n this.polyfillDisplays = [];\n this.enabled = false;\n this.hasNative = 'getVRDisplays' in navigator;\n this.native = {};\n this.native.getVRDisplays = navigator.getVRDisplays;\n this.native.VRFrameData = window.VRFrameData;\n this.native.VRDisplay = window.VRDisplay;\n if (!this.hasNative || this.config.PROVIDE_MOBILE_VRDISPLAY && isMobile()) {\n this.enable();\n this.getVRDisplays().then(function (displays) {\n if (displays && displays[0] && displays[0].fireVRDisplayConnect_) {\n displays[0].fireVRDisplayConnect_();\n }\n });\n }\n}\nWebVRPolyfill.prototype.getPolyfillDisplays = function () {\n if (this._polyfillDisplaysPopulated) {\n return this.polyfillDisplays;\n }\n if (isMobile()) {\n var vrDisplay = new CardboardVRDisplay({\n ADDITIONAL_VIEWERS: this.config.ADDITIONAL_VIEWERS,\n DEFAULT_VIEWER: this.config.DEFAULT_VIEWER,\n MOBILE_WAKE_LOCK: this.config.MOBILE_WAKE_LOCK,\n DEBUG: this.config.DEBUG,\n DPDB_URL: this.config.DPDB_URL,\n CARDBOARD_UI_DISABLED: this.config.CARDBOARD_UI_DISABLED,\n K_FILTER: this.config.K_FILTER,\n PREDICTION_TIME_S: this.config.PREDICTION_TIME_S,\n ROTATE_INSTRUCTIONS_DISABLED: this.config.ROTATE_INSTRUCTIONS_DISABLED,\n YAW_ONLY: this.config.YAW_ONLY,\n BUFFER_SCALE: this.config.BUFFER_SCALE,\n DIRTY_SUBMIT_FRAME_BINDINGS: this.config.DIRTY_SUBMIT_FRAME_BINDINGS\n });\n this.polyfillDisplays.push(vrDisplay);\n }\n this._polyfillDisplaysPopulated = true;\n return this.polyfillDisplays;\n};\nWebVRPolyfill.prototype.enable = function () {\n this.enabled = true;\n if (this.hasNative && this.native.VRFrameData) {\n var NativeVRFrameData = this.native.VRFrameData;\n var nativeFrameData = new this.native.VRFrameData();\n var nativeGetFrameData = this.native.VRDisplay.prototype.getFrameData;\n window.VRDisplay.prototype.getFrameData = function (frameData) {\n if (frameData instanceof NativeVRFrameData) {\n nativeGetFrameData.call(this, frameData);\n return;\n }\n nativeGetFrameData.call(this, nativeFrameData);\n frameData.pose = nativeFrameData.pose;\n copyArray(nativeFrameData.leftProjectionMatrix, frameData.leftProjectionMatrix);\n copyArray(nativeFrameData.rightProjectionMatrix, frameData.rightProjectionMatrix);\n copyArray(nativeFrameData.leftViewMatrix, frameData.leftViewMatrix);\n copyArray(nativeFrameData.rightViewMatrix, frameData.rightViewMatrix);\n };\n }\n navigator.getVRDisplays = this.getVRDisplays.bind(this);\n window.VRDisplay = CardboardVRDisplay.VRDisplay;\n window.VRFrameData = CardboardVRDisplay.VRFrameData;\n};\nWebVRPolyfill.prototype.getVRDisplays = function () {\n var _this = this;\n var config = this.config;\n if (!this.hasNative) {\n return Promise.resolve(this.getPolyfillDisplays());\n }\n return this.native.getVRDisplays.call(navigator).then(function (nativeDisplays) {\n return nativeDisplays.length > 0 ? nativeDisplays : _this.getPolyfillDisplays();\n });\n};\nWebVRPolyfill.version = version;\nWebVRPolyfill.VRFrameData = CardboardVRDisplay.VRFrameData;\nWebVRPolyfill.VRDisplay = CardboardVRDisplay.VRDisplay;\n\n\nvar webvrPolyfill = Object.freeze({\n\tdefault: WebVRPolyfill\n});\n\nvar require$$0 = ( webvrPolyfill && WebVRPolyfill ) || webvrPolyfill;\n\nif (typeof commonjsGlobal !== 'undefined' && commonjsGlobal.window) {\n if (!commonjsGlobal.document) {\n commonjsGlobal.document = commonjsGlobal.window.document;\n }\n if (!commonjsGlobal.navigator) {\n commonjsGlobal.navigator = commonjsGlobal.window.navigator;\n }\n}\nvar src = require$$0;\n\nreturn src;\n\n})));\n","var newline = /\\n/\nvar newlineChar = '\\n'\nvar whitespace = /\\s/\n\nmodule.exports = function(text, opt) {\n var lines = module.exports.lines(text, opt)\n return lines.map(function(line) {\n return text.substring(line.start, line.end)\n }).join('\\n')\n}\n\nmodule.exports.lines = function wordwrap(text, opt) {\n opt = opt||{}\n\n //zero width results in nothing visible\n if (opt.width === 0 && opt.mode !== 'nowrap') \n return []\n\n text = text||''\n var width = typeof opt.width === 'number' ? opt.width : Number.MAX_VALUE\n var start = Math.max(0, opt.start||0)\n var end = typeof opt.end === 'number' ? opt.end : text.length\n var mode = opt.mode\n\n var measure = opt.measure || monospace\n if (mode === 'pre')\n return pre(measure, text, start, end, width)\n else\n return greedy(measure, text, start, end, width, mode)\n}\n\nfunction idxOf(text, chr, start, end) {\n var idx = text.indexOf(chr, start)\n if (idx === -1 || idx > end)\n return end\n return idx\n}\n\nfunction isWhitespace(chr) {\n return whitespace.test(chr)\n}\n\nfunction pre(measure, text, start, end, width) {\n var lines = []\n var lineStart = start\n for (var i=start; i start) {\n if (isWhitespace(text.charAt(lineEnd)))\n break\n lineEnd--\n }\n if (lineEnd === start) {\n if (nextStart > start + newlineChar.length) nextStart--\n lineEnd = nextStart // If no characters to break, show all.\n } else {\n nextStart = lineEnd\n //eat whitespace at end of line\n while (lineEnd > start) {\n if (!isWhitespace(text.charAt(lineEnd - newlineChar.length)))\n break\n lineEnd--\n }\n }\n }\n if (lineEnd >= start) {\n var result = measure(text, start, lineEnd, testWidth)\n lines.push(result)\n }\n start = nextStart\n }\n return lines\n}\n\n//determines the visible number of glyphs within a given width\nfunction monospace(text, start, end, width) {\n var glyphs = Math.min(width, end-start)\n return {\n start: start,\n end: start+glyphs\n }\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar isFunction = require(\"is-function\")\nvar parseHeaders = require(\"parse-headers\")\nvar xtend = require(\"xtend\")\n\nmodule.exports = createXHR\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function(method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function(uri, options, callback) {\n options = initParams(uri, options, callback)\n options.method = method.toUpperCase()\n return _createXHR(options)\n }\n})\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i])\n }\n}\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri\n\n if (isFunction(options)) {\n callback = options\n if (typeof uri === \"string\") {\n params = {uri:uri}\n }\n } else {\n params = xtend(options, {uri: uri})\n }\n\n params.callback = callback\n return params\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback)\n return _createXHR(options)\n}\n\nfunction _createXHR(options) {\n if(typeof options.callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n\n var called = false\n var callback = function cbOnce(err, response, body){\n if(!called){\n called = true\n options.callback(err, response, body)\n }\n }\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0)\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else {\n body = xhr.responseText || getXml(xhr)\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n return callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n return callback(err, response, response.body)\n }\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n if (\"json\" in options && options.json !== false) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json === true ? body : options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.onabort = function(){\n aborted = true;\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n if (aborted) return\n aborted = true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n xhr.send(body || null)\n\n return xhr\n\n\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML\n }\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\"\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML\n }\n } catch (e) {}\n\n return null\n}\n\nfunction noop() {}\n","module.exports = (function xmlparser() {\n //common browsers\n if (typeof self.DOMParser !== 'undefined') {\n return function(str) {\n var parser = new self.DOMParser()\n return parser.parseFromString(str, 'application/xml')\n }\n } \n\n //IE8 fallback\n if (typeof self.ActiveXObject !== 'undefined'\n && new self.ActiveXObject('Microsoft.XMLDOM')) {\n return function(str) {\n var xmlDoc = new self.ActiveXObject(\"Microsoft.XMLDOM\")\n xmlDoc.async = \"false\"\n xmlDoc.loadXML(str)\n return xmlDoc\n }\n }\n\n //last resort fallback\n return function(str) {\n var div = document.createElement('div')\n div.innerHTML = str\n return div\n }\n})()\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","var anime = require('super-animejs').default;\nvar components = require('../core/component').components;\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar utils = require('../utils');\n\nvar colorHelperFrom = new THREE.Color();\nvar colorHelperTo = new THREE.Color();\n\nvar getComponentProperty = utils.entity.getComponentProperty;\nvar setComponentProperty = utils.entity.setComponentProperty;\nvar splitCache = {};\n\nvar TYPE_COLOR = 'color';\nvar PROP_POSITION = 'position';\nvar PROP_ROTATION = 'rotation';\nvar PROP_SCALE = 'scale';\nvar STRING_COMPONENTS = 'components';\nvar STRING_OBJECT3D = 'object3D';\n\n/**\n * Animation component for A-Frame using anime.js.\n *\n * The component manually controls the tick by setting `autoplay: false` on anime.js and\n * manually * calling `animation.tick()` in the tick handler. To pause or resume, we toggle a\n * boolean * flag * `isAnimationPlaying`.\n *\n * anime.js animation config for tweenining Javascript objects and values works as:\n *\n * config = {\n * targets: {foo: 0.0, bar: '#000'},\n * foo: 1.0,\n * bar: '#FFF'\n * }\n *\n * The above will tween each property in `targets`. The `to` values are set in the root of\n * the config.\n *\n * @member {object} animation - anime.js instance.\n * @member {boolean} animationIsPlaying - Control if animation is playing.\n */\nmodule.exports.Component = registerComponent('animation', {\n schema: {\n autoplay: {default: true},\n delay: {default: 0},\n dir: {default: ''},\n dur: {default: 1000},\n easing: {default: 'easeInQuad'},\n elasticity: {default: 400},\n enabled: {default: true},\n from: {default: ''},\n loop: {\n default: 0,\n parse: function (value) {\n // Boolean or integer.\n if (value === true || value === 'true') { return true; }\n if (value === false || value === 'false') { return false; }\n return parseInt(value, 10);\n }\n },\n property: {default: ''},\n startEvents: {type: 'array'},\n pauseEvents: {type: 'array'},\n resumeEvents: {type: 'array'},\n round: {default: false},\n to: {default: ''},\n type: {default: ''},\n isRawProperty: {default: false}\n },\n\n multiple: true,\n\n init: function () {\n var self = this;\n\n this.eventDetail = {name: this.attrName};\n this.time = 0;\n\n this.animation = null;\n this.animationIsPlaying = false;\n this.onStartEvent = this.onStartEvent.bind(this);\n this.beginAnimation = this.beginAnimation.bind(this);\n this.pauseAnimation = this.pauseAnimation.bind(this);\n this.resumeAnimation = this.resumeAnimation.bind(this);\n\n this.fromColor = {};\n this.toColor = {};\n this.targets = {};\n this.targetsArray = [];\n\n this.updateConfigForDefault = this.updateConfigForDefault.bind(this);\n this.updateConfigForRawColor = this.updateConfigForRawColor.bind(this);\n\n this.config = {\n complete: function () {\n self.animationIsPlaying = false;\n self.el.emit('animationcomplete', self.eventDetail, false);\n if (self.id) {\n self.el.emit('animationcomplete__' + self.id, self.eventDetail, false);\n }\n }\n };\n },\n\n update: function (oldData) {\n var config = this.config;\n var data = this.data;\n\n this.animationIsPlaying = false;\n\n if (!this.data.enabled) { return; }\n\n if (!data.property) { return; }\n\n // Base config.\n config.autoplay = false;\n config.direction = data.dir;\n config.duration = data.dur;\n config.easing = data.easing;\n config.elasticity = data.elasticity;\n config.loop = data.loop;\n config.round = data.round;\n\n // Start new animation.\n this.createAndStartAnimation();\n },\n\n tick: function (t, dt) {\n if (!this.animationIsPlaying) { return; }\n this.time += dt;\n this.animation.tick(this.time);\n },\n\n remove: function () {\n this.pauseAnimation();\n this.removeEventListeners();\n },\n\n pause: function () {\n this.paused = true;\n this.pausedWasPlaying = this.animationIsPlaying;\n this.pauseAnimation();\n this.removeEventListeners();\n },\n\n /**\n * `play` handler only for resuming scene.\n */\n play: function () {\n if (!this.paused) { return; }\n this.paused = false;\n this.addEventListeners();\n if (this.pausedWasPlaying) {\n this.resumeAnimation();\n this.pausedWasPlaying = false;\n }\n },\n\n /**\n * Start animation from scratch.\n */\n createAndStartAnimation: function () {\n var data = this.data;\n\n this.updateConfig();\n this.animationIsPlaying = false;\n this.animation = anime(this.config);\n this.animation.began = true;\n\n this.removeEventListeners();\n this.addEventListeners();\n\n // Wait for start events for animation.\n if (!data.autoplay || data.startEvents && data.startEvents.length) { return; }\n\n // Delay animation.\n if (data.delay) {\n setTimeout(this.beginAnimation, data.delay);\n return;\n }\n\n // Play animation.\n this.beginAnimation();\n },\n\n /**\n * This is before animation start (including from startEvents).\n * Set to initial state (config.from, time = 0, seekTime = 0).\n */\n beginAnimation: function () {\n this.updateConfig();\n this.animation.began = true;\n this.time = 0;\n this.animationIsPlaying = true;\n this.stopRelatedAnimations();\n this.el.emit('animationbegin', this.eventDetail, false);\n },\n\n pauseAnimation: function () {\n this.animationIsPlaying = false;\n },\n\n resumeAnimation: function () {\n this.animationIsPlaying = true;\n },\n\n /**\n * startEvents callback.\n */\n onStartEvent: function () {\n if (!this.data.enabled) { return; }\n\n this.updateConfig();\n if (this.animation) {\n this.animation.pause();\n }\n this.animation = anime(this.config);\n\n // Include the delay before each start event.\n if (this.data.delay) {\n setTimeout(this.beginAnimation, this.data.delay);\n return;\n }\n this.beginAnimation();\n },\n\n /**\n * rawProperty: true and type: color;\n */\n updateConfigForRawColor: function () {\n var config = this.config;\n var data = this.data;\n var el = this.el;\n var from;\n var key;\n var to;\n\n if (this.waitComponentInitRawProperty(this.updateConfigForRawColor)) {\n return;\n }\n\n from = data.from === '' ? getRawProperty(el, data.property) : data.from;\n to = data.to;\n\n // Use r/g/b vector for color type.\n this.setColorConfig(from, to);\n from = this.fromColor;\n to = this.toColor;\n\n this.targetsArray.length = 0;\n this.targetsArray.push(from);\n config.targets = this.targetsArray;\n for (key in to) { config[key] = to[key]; }\n\n config.update = (function () {\n var lastValue = {};\n return function (anim) {\n var value;\n value = anim.animatables[0].target;\n // For animation timeline.\n if (value.r === lastValue.r &&\n value.g === lastValue.g &&\n value.b === lastValue.b) { return; }\n\n setRawProperty(el, data.property, value, data.type);\n };\n })();\n },\n\n /**\n * Stuff property into generic `property` key.\n */\n updateConfigForDefault: function () {\n var config = this.config;\n var data = this.data;\n var el = this.el;\n var from;\n var isBoolean;\n var isNumber;\n var to;\n\n if (this.waitComponentInitRawProperty(this.updateConfigForDefault)) {\n return;\n }\n\n if (data.from === '') {\n // Infer from.\n from = isRawProperty(data)\n ? getRawProperty(el, data.property)\n : getComponentProperty(el, data.property);\n } else {\n // Explicit from.\n from = data.from;\n }\n\n to = data.to;\n\n isNumber = !isNaN(from || to);\n if (isNumber) {\n from = parseFloat(from);\n to = parseFloat(to);\n } else {\n from = from ? from.toString() : from;\n to = to ? to.toString() : to;\n }\n\n // Convert booleans to integer to allow boolean flipping.\n isBoolean = data.to === 'true' || data.to === 'false' ||\n data.to === true || data.to === false;\n if (isBoolean) {\n from = data.from === 'true' || data.from === true ? 1 : 0;\n to = data.to === 'true' || data.to === true ? 1 : 0;\n }\n\n this.targets.aframeProperty = from;\n config.targets = this.targets;\n config.aframeProperty = to;\n config.update = (function () {\n var lastValue;\n\n return function (anim) {\n var value;\n value = anim.animatables[0].target.aframeProperty;\n\n // Need to do a last value check for animation timeline since all the tweening\n // begins simultaenously even if the value has not changed. Also better for perf\n // anyways.\n if (value === lastValue) { return; }\n lastValue = value;\n\n if (isBoolean) { value = value >= 1; }\n\n if (isRawProperty(data)) {\n setRawProperty(el, data.property, value, data.type);\n } else {\n setComponentProperty(el, data.property, value);\n }\n };\n })();\n },\n\n /**\n * Extend x/y/z/w onto the config.\n * Update vector by modifying object3D.\n */\n updateConfigForVector: function () {\n var config = this.config;\n var data = this.data;\n var el = this.el;\n var key;\n var from;\n var to;\n\n // Parse coordinates.\n from = data.from !== ''\n ? utils.coordinates.parse(data.from) // If data.from defined, use that.\n : getComponentProperty(el, data.property); // If data.from not defined, get on the fly.\n to = utils.coordinates.parse(data.to);\n\n if (data.property === PROP_ROTATION) {\n toRadians(from);\n toRadians(to);\n }\n\n // Set to and from.\n this.targetsArray.length = 0;\n this.targetsArray.push(from);\n config.targets = this.targetsArray;\n for (key in to) { config[key] = to[key]; }\n\n // If animating object3D transformation, run more optimized updater.\n if (data.property === PROP_POSITION || data.property === PROP_ROTATION ||\n data.property === PROP_SCALE) {\n config.update = (function () {\n var lastValue = {};\n return function (anim) {\n var value = anim.animatables[0].target;\n\n if (data.property === PROP_SCALE) {\n value.x = Math.max(0.0001, value.x);\n value.y = Math.max(0.0001, value.y);\n value.z = Math.max(0.0001, value.z);\n }\n\n // For animation timeline.\n if (value.x === lastValue.x &&\n value.y === lastValue.y &&\n value.z === lastValue.z) { return; }\n\n lastValue.x = value.x;\n lastValue.y = value.y;\n lastValue.z = value.z;\n\n el.object3D[data.property].set(value.x, value.y, value.z);\n };\n })();\n return;\n }\n\n // Animating some vector.\n config.update = (function () {\n var lastValue = {};\n return function (anim) {\n var value = anim.animatables[0].target;\n\n // Animate rotation through radians.\n // For animation timeline.\n if (value.x === lastValue.x &&\n value.y === lastValue.y &&\n value.z === lastValue.z) { return; }\n lastValue.x = value.x;\n lastValue.y = value.y;\n lastValue.z = value.z;\n setComponentProperty(el, data.property, value);\n };\n })();\n },\n\n /**\n * Update the config before each run.\n */\n updateConfig: function () {\n var propType;\n\n // Route config type.\n propType = getPropertyType(this.el, this.data.property);\n if (isRawProperty(this.data) && this.data.type === TYPE_COLOR) {\n this.updateConfigForRawColor();\n } else if (propType === 'vec2' || propType === 'vec3' || propType === 'vec4') {\n this.updateConfigForVector();\n } else {\n this.updateConfigForDefault();\n }\n },\n\n /**\n * Wait for component to initialize.\n */\n waitComponentInitRawProperty: function (cb) {\n var componentName;\n var data = this.data;\n var el = this.el;\n var self = this;\n\n if (data.from !== '') { return false; }\n\n if (!data.property.startsWith(STRING_COMPONENTS)) { return false; }\n\n componentName = splitDot(data.property)[1];\n if (el.components[componentName]) { return false; }\n\n el.addEventListener('componentinitialized', function wait (evt) {\n if (evt.detail.name !== componentName) { return; }\n cb();\n // Since the config was created async, create the animation now since we missed it\n // earlier.\n self.animation = anime(self.config);\n el.removeEventListener('componentinitialized', wait);\n });\n return true;\n },\n\n /**\n * Make sure two animations on the same property don't fight each other.\n * e.g., animation__mouseenter=\"property: material.opacity\"\n * animation__mouseleave=\"property: material.opacity\"\n */\n stopRelatedAnimations: function () {\n var component;\n var componentName;\n for (componentName in this.el.components) {\n component = this.el.components[componentName];\n if (componentName === this.attrName) { continue; }\n if (component.name !== 'animation') { continue; }\n if (!component.animationIsPlaying) { continue; }\n if (component.data.property !== this.data.property) { continue; }\n component.animationIsPlaying = false;\n }\n },\n\n addEventListeners: function () {\n var data = this.data;\n var el = this.el;\n addEventListeners(el, data.startEvents, this.onStartEvent);\n addEventListeners(el, data.pauseEvents, this.pauseAnimation);\n addEventListeners(el, data.resumeEvents, this.resumeAnimation);\n },\n\n removeEventListeners: function () {\n var data = this.data;\n var el = this.el;\n removeEventListeners(el, data.startEvents, this.onStartEvent);\n removeEventListeners(el, data.pauseEvents, this.pauseAnimation);\n removeEventListeners(el, data.resumeEvents, this.resumeAnimation);\n },\n\n setColorConfig: function (from, to) {\n colorHelperFrom.set(from);\n colorHelperTo.set(to);\n from = this.fromColor;\n to = this.toColor;\n from.r = colorHelperFrom.r;\n from.g = colorHelperFrom.g;\n from.b = colorHelperFrom.b;\n to.r = colorHelperTo.r;\n to.g = colorHelperTo.g;\n to.b = colorHelperTo.b;\n }\n});\n\n/**\n * Given property name, check schema to see what type we are animating.\n * We just care whether the property is a vector.\n */\nfunction getPropertyType (el, property) {\n var component;\n var componentName;\n var split;\n var propertyName;\n\n split = property.split('.');\n componentName = split[0];\n propertyName = split[1];\n component = el.components[componentName] || components[componentName];\n\n // Primitives.\n if (!component) { return null; }\n\n // Dynamic schema. We only care about vectors anyways.\n if (propertyName && !component.schema[propertyName]) { return null; }\n\n // Multi-prop.\n if (propertyName) { return component.schema[propertyName].type; }\n\n // Single-prop.\n return component.schema.type;\n}\n\n/**\n * Convert object to radians.\n */\nfunction toRadians (obj) {\n obj.x = THREE.MathUtils.degToRad(obj.x);\n obj.y = THREE.MathUtils.degToRad(obj.y);\n obj.z = THREE.MathUtils.degToRad(obj.z);\n}\n\nfunction addEventListeners (el, eventNames, handler) {\n var i;\n for (i = 0; i < eventNames.length; i++) {\n el.addEventListener(eventNames[i], handler);\n }\n}\n\nfunction removeEventListeners (el, eventNames, handler) {\n var i;\n for (i = 0; i < eventNames.length; i++) {\n el.removeEventListener(eventNames[i], handler);\n }\n}\n\nfunction getRawProperty (el, path) {\n var i;\n var split;\n var value;\n split = splitDot(path);\n value = el;\n for (i = 0; i < split.length; i++) {\n value = value[split[i]];\n }\n if (value === undefined) {\n console.log(el);\n throw new Error('[animation] property (' + path + ') could not be found');\n }\n return value;\n}\n\nfunction setRawProperty (el, path, value, type) {\n var i;\n var split;\n var propertyName;\n var targetValue;\n\n if (path.startsWith('object3D.rotation')) {\n value = THREE.MathUtils.degToRad(value);\n }\n\n // Walk.\n split = splitDot(path);\n targetValue = el;\n for (i = 0; i < split.length - 1; i++) { targetValue = targetValue[split[i]]; }\n propertyName = split[split.length - 1];\n\n // Raw color.\n if (type === TYPE_COLOR) {\n if ('r' in targetValue[propertyName]) {\n targetValue[propertyName].r = value.r;\n targetValue[propertyName].g = value.g;\n targetValue[propertyName].b = value.b;\n } else {\n targetValue[propertyName].x = value.r;\n targetValue[propertyName].y = value.g;\n targetValue[propertyName].z = value.b;\n }\n return;\n }\n\n targetValue[propertyName] = value;\n}\n\nfunction splitDot (path) {\n if (path in splitCache) { return splitCache[path]; }\n splitCache[path] = path.split('.');\n return splitCache[path];\n}\n\nfunction isRawProperty (data) {\n return data.isRawProperty || data.property.startsWith(STRING_COMPONENTS) ||\n data.property.startsWith(STRING_OBJECT3D);\n}\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\n/**\n * Camera component.\n * Pairs along with camera system to handle tracking the active camera.\n */\nmodule.exports.Component = registerComponent('camera', {\n schema: {\n active: {default: true},\n far: {default: 10000},\n fov: {default: 80, min: 0},\n near: {default: 0.005, min: 0},\n spectator: {default: false},\n zoom: {default: 1, min: 0}\n },\n\n /**\n * Initialize three.js camera and add it to the entity.\n * Add reference from scene to this entity as the camera.\n */\n init: function () {\n var camera;\n var el = this.el;\n\n // Create camera.\n camera = this.camera = new THREE.PerspectiveCamera();\n el.setObject3D('camera', camera);\n },\n\n /**\n * Update three.js camera.\n */\n update: function (oldData) {\n var data = this.data;\n var camera = this.camera;\n\n // Update properties.\n camera.aspect = data.aspect || (window.innerWidth / window.innerHeight);\n camera.far = data.far;\n camera.fov = data.fov;\n camera.near = data.near;\n camera.zoom = data.zoom;\n camera.updateProjectionMatrix();\n\n this.updateActiveCamera(oldData);\n this.updateSpectatorCamera(oldData);\n },\n\n updateActiveCamera: function (oldData) {\n var data = this.data;\n var el = this.el;\n var system = this.system;\n // Active property did not change.\n if (oldData && oldData.active === data.active || data.spectator) { return; }\n\n // If `active` property changes, or first update, handle active camera with system.\n if (data.active && system.activeCameraEl !== el) {\n // Camera enabled. Set camera to this camera.\n system.setActiveCamera(el);\n } else if (!data.active && system.activeCameraEl === el) {\n // Camera disabled. Set camera to another camera.\n system.disableActiveCamera();\n }\n },\n\n updateSpectatorCamera: function (oldData) {\n var data = this.data;\n var el = this.el;\n var system = this.system;\n // spectator property did not change.\n if (oldData && oldData.spectator === data.spectator) { return; }\n\n // If `spectator` property changes, or first update, handle spectator camera with system.\n if (data.spectator && system.spectatorCameraEl !== el) {\n // Camera enabled. Set camera to this camera.\n system.setSpectatorCamera(el);\n } else if (!data.spectator && system.spectatorCameraEl === el) {\n // Camera disabled. Set camera to another camera.\n system.disableSpectatorCamera();\n }\n },\n\n /**\n * Remove camera on remove (callback).\n */\n remove: function () {\n this.el.removeObject3D('camera');\n }\n});\n","/* global THREE, MouseEvent, TouchEvent */\nvar registerComponent = require('../core/component').registerComponent;\nvar utils = require('../utils/');\n\nvar bind = utils.bind;\n\nvar EVENTS = {\n CLICK: 'click',\n FUSING: 'fusing',\n MOUSEENTER: 'mouseenter',\n MOUSEDOWN: 'mousedown',\n MOUSELEAVE: 'mouseleave',\n MOUSEUP: 'mouseup'\n};\n\nvar STATES = {\n FUSING: 'cursor-fusing',\n HOVERING: 'cursor-hovering',\n HOVERED: 'cursor-hovered'\n};\n\nvar CANVAS_EVENTS = {\n DOWN: ['mousedown', 'touchstart'],\n UP: ['mouseup', 'touchend']\n};\n\nvar WEBXR_EVENTS = {\n DOWN: ['selectstart'],\n UP: ['selectend']\n};\n\nvar CANVAS_HOVER_CLASS = 'a-mouse-cursor-hover';\n\n/**\n * Cursor component. Applies the raycaster component specifically for starting the raycaster\n * from the camera and pointing from camera's facing direction, and then only returning the\n * closest intersection. Cursor can be fine-tuned by setting raycaster properties.\n *\n * @member {object} fuseTimeout - Timeout to trigger fuse-click.\n * @member {Element} cursorDownEl - Entity that was last mousedowned during current click.\n * @member {object} intersection - Attributes of the current intersection event, including\n * 3D- and 2D-space coordinates. See: http://threejs.org/docs/api/core/Raycaster.html\n * @member {Element} intersectedEl - Currently-intersected entity. Used to keep track to\n * emit events when unintersecting.\n */\nmodule.exports.Component = registerComponent('cursor', {\n dependencies: ['raycaster'],\n\n schema: {\n downEvents: {default: []},\n fuse: {default: utils.device.isMobile()},\n fuseTimeout: {default: 1500, min: 0},\n mouseCursorStylesEnabled: {default: true},\n upEvents: {default: []},\n rayOrigin: {default: 'entity', oneOf: ['mouse', 'entity', 'xrselect']}\n },\n\n multiple: true,\n\n init: function () {\n var self = this;\n\n this.fuseTimeout = undefined;\n this.cursorDownEl = null;\n this.intersectedEl = null;\n this.canvasBounds = document.body.getBoundingClientRect();\n this.isCursorDown = false;\n this.activeXRInput = null;\n\n // Debounce.\n this.updateCanvasBounds = utils.debounce(function updateCanvasBounds () {\n self.canvasBounds = self.el.sceneEl.canvas.getBoundingClientRect();\n }, 500);\n\n this.eventDetail = {};\n this.intersectedEventDetail = {cursorEl: this.el};\n\n // Bind methods.\n this.onCursorDown = bind(this.onCursorDown, this);\n this.onCursorUp = bind(this.onCursorUp, this);\n this.onIntersection = bind(this.onIntersection, this);\n this.onIntersectionCleared = bind(this.onIntersectionCleared, this);\n this.onMouseMove = bind(this.onMouseMove, this);\n this.onEnterVR = bind(this.onEnterVR, this);\n },\n\n update: function (oldData) {\n if (this.data.rayOrigin === oldData.rayOrigin) { return; }\n this.updateMouseEventListeners();\n },\n\n tick: function () {\n // Update on frame to allow someone to select and mousemove\n var frame = this.el.sceneEl.frame;\n var inputSource = this.activeXRInput;\n if (this.data.rayOrigin === 'xrselect' && frame && inputSource) {\n this.onMouseMove({\n frame: frame,\n inputSource: inputSource,\n type: 'fakeselectevent'\n });\n }\n },\n\n play: function () {\n this.addEventListeners();\n },\n\n pause: function () {\n this.removeEventListeners();\n },\n\n remove: function () {\n var el = this.el;\n el.removeState(STATES.HOVERING);\n el.removeState(STATES.FUSING);\n clearTimeout(this.fuseTimeout);\n if (this.intersectedEl) { this.intersectedEl.removeState(STATES.HOVERED); }\n this.removeEventListeners();\n },\n\n addEventListeners: function () {\n var canvas;\n var data = this.data;\n var el = this.el;\n var self = this;\n\n function addCanvasListeners () {\n canvas = el.sceneEl.canvas;\n if (data.downEvents.length || data.upEvents.length) { return; }\n CANVAS_EVENTS.DOWN.forEach(function (downEvent) {\n canvas.addEventListener(downEvent, self.onCursorDown);\n });\n CANVAS_EVENTS.UP.forEach(function (upEvent) {\n canvas.addEventListener(upEvent, self.onCursorUp);\n });\n }\n\n canvas = el.sceneEl.canvas;\n if (canvas) {\n addCanvasListeners();\n } else {\n el.sceneEl.addEventListener('render-target-loaded', addCanvasListeners);\n }\n\n data.downEvents.forEach(function (downEvent) {\n el.addEventListener(downEvent, self.onCursorDown);\n });\n data.upEvents.forEach(function (upEvent) {\n el.addEventListener(upEvent, self.onCursorUp);\n });\n el.addEventListener('raycaster-intersection', this.onIntersection);\n el.addEventListener('raycaster-closest-entity-changed', this.onIntersection);\n\n el.addEventListener('raycaster-intersection-cleared', this.onIntersectionCleared);\n\n el.sceneEl.addEventListener('rendererresize', this.updateCanvasBounds);\n el.sceneEl.addEventListener('enter-vr', this.onEnterVR);\n window.addEventListener('resize', this.updateCanvasBounds);\n window.addEventListener('scroll', this.updateCanvasBounds);\n\n this.updateMouseEventListeners();\n },\n\n removeEventListeners: function () {\n var canvas;\n var data = this.data;\n var el = this.el;\n var self = this;\n\n canvas = el.sceneEl.canvas;\n if (canvas && !data.downEvents.length && !data.upEvents.length) {\n CANVAS_EVENTS.DOWN.forEach(function (downEvent) {\n canvas.removeEventListener(downEvent, self.onCursorDown);\n });\n CANVAS_EVENTS.UP.forEach(function (upEvent) {\n canvas.removeEventListener(upEvent, self.onCursorUp);\n });\n }\n\n data.downEvents.forEach(function (downEvent) {\n el.removeEventListener(downEvent, self.onCursorDown);\n });\n data.upEvents.forEach(function (upEvent) {\n el.removeEventListener(upEvent, self.onCursorUp);\n });\n el.removeEventListener('raycaster-intersection', this.onIntersection);\n el.removeEventListener('raycaster-intersection-cleared', this.onIntersectionCleared);\n canvas.removeEventListener('mousemove', this.onMouseMove);\n canvas.removeEventListener('touchstart', this.onMouseMove);\n canvas.removeEventListener('touchmove', this.onMouseMove);\n\n el.sceneEl.removeEventListener('rendererresize', this.updateCanvasBounds);\n el.sceneEl.removeEventListener('enter-vr', this.onEnterVR);\n window.removeEventListener('resize', this.updateCanvasBounds);\n window.removeEventListener('scroll', this.updateCanvasBounds);\n },\n\n updateMouseEventListeners: function () {\n var canvas;\n var el = this.el;\n\n canvas = el.sceneEl.canvas;\n canvas.removeEventListener('mousemove', this.onMouseMove);\n canvas.removeEventListener('touchmove', this.onMouseMove);\n el.setAttribute('raycaster', 'useWorldCoordinates', false);\n if (this.data.rayOrigin !== 'mouse') { return; }\n canvas.addEventListener('mousemove', this.onMouseMove, false);\n canvas.addEventListener('touchmove', this.onMouseMove, false);\n el.setAttribute('raycaster', 'useWorldCoordinates', true);\n this.updateCanvasBounds();\n },\n\n onMouseMove: (function () {\n var direction = new THREE.Vector3();\n var mouse = new THREE.Vector2();\n var origin = new THREE.Vector3();\n var rayCasterConfig = {origin: origin, direction: direction};\n\n return function (evt) {\n var bounds = this.canvasBounds;\n var camera = this.el.sceneEl.camera;\n var left;\n var point;\n var top;\n\n var frame;\n var inputSource;\n var referenceSpace;\n var pose;\n var transform;\n\n camera.parent.updateMatrixWorld();\n\n // Calculate mouse position based on the canvas element\n if (evt.type === 'touchmove' || evt.type === 'touchstart') {\n // Track the first touch for simplicity.\n point = evt.touches.item(0);\n } else {\n point = evt;\n }\n\n left = point.clientX - bounds.left;\n top = point.clientY - bounds.top;\n mouse.x = (left / bounds.width) * 2 - 1;\n mouse.y = -(top / bounds.height) * 2 + 1;\n\n if (this.data.rayOrigin === 'xrselect' && (evt.type === 'selectstart' || evt.type === 'fakeselectevent')) {\n frame = evt.frame;\n inputSource = evt.inputSource;\n referenceSpace = this.el.renderer.xr.getReferenceSpace();\n pose = frame.getPose(inputSource.targetRaySpace, referenceSpace);\n transform = pose.transform;\n direction.set(0, 0, -1);\n direction.applyQuaternion(transform.orientation);\n origin.copy(transform.position);\n } else if (evt.type === 'fakeselectout') {\n direction.set(0, 1, 0);\n origin.set(0, 9999, 0);\n } else if (camera && camera.isPerspectiveCamera) {\n origin.setFromMatrixPosition(camera.matrixWorld);\n direction.set(mouse.x, mouse.y, 0.5).unproject(camera).sub(origin).normalize();\n } else if (camera && camera.isOrthographicCamera) {\n origin.set(mouse.x, mouse.y, (camera.near + camera.far) / (camera.near - camera.far)).unproject(camera); // set origin in plane of camera\n direction.set(0, 0, -1).transformDirection(camera.matrixWorld);\n } else {\n console.error('AFRAME.Raycaster: Unsupported camera type: ' + camera.type);\n }\n\n this.el.setAttribute('raycaster', rayCasterConfig);\n if (evt.type === 'touchmove') { evt.preventDefault(); }\n };\n })(),\n\n /**\n * Trigger mousedown and keep track of the mousedowned entity.\n */\n onCursorDown: function (evt) {\n this.isCursorDown = true;\n // Raycast again for touch.\n if (this.data.rayOrigin === 'mouse' && evt.type === 'touchstart') {\n this.onMouseMove(evt);\n this.el.components.raycaster.checkIntersections();\n evt.preventDefault();\n }\n\n if (this.data.rayOrigin === 'xrselect' && evt.type === 'selectstart') {\n this.activeXRInput = evt.inputSource;\n this.onMouseMove(evt);\n this.el.components.raycaster.checkIntersections();\n\n // if something was tapped on don't do ar-hit-test things\n if (\n this.el.components.raycaster.intersectedEls.length &&\n this.el.sceneEl.components['ar-hit-test'] !== undefined &&\n this.el.sceneEl.getAttribute('ar-hit-test').enabled\n ) {\n // Cancel the ar-hit-test behaviours and disable the ar-hit-test\n this.el.sceneEl.setAttribute('ar-hit-test', 'enabled', false);\n this.reenableARHitTest = true;\n }\n }\n\n this.twoWayEmit(EVENTS.MOUSEDOWN, evt);\n this.cursorDownEl = this.intersectedEl;\n },\n\n /**\n * Trigger mouseup if:\n * - Not fusing (mobile has no mouse).\n * - Currently intersecting an entity.\n * - Currently-intersected entity is the same as the one when mousedown was triggered,\n * in case user mousedowned one entity, dragged to another, and mouseupped.\n */\n onCursorUp: function (evt) {\n if (!this.isCursorDown) { return; }\n\n this.isCursorDown = false;\n\n var data = this.data;\n this.twoWayEmit(EVENTS.MOUSEUP, evt);\n\n if (this.reenableARHitTest === true) {\n this.el.sceneEl.setAttribute('ar-hit-test', 'enabled', true);\n this.reenableARHitTest = undefined;\n }\n\n // If intersected entity has changed since the cursorDown, still emit mouseUp on the\n // previously cursorUp entity.\n if (this.cursorDownEl && this.cursorDownEl !== this.intersectedEl) {\n this.intersectedEventDetail.intersection = null;\n this.cursorDownEl.emit(EVENTS.MOUSEUP, this.intersectedEventDetail);\n }\n\n if ((!data.fuse || data.rayOrigin === 'mouse' || data.rayOrigin === 'xrselect') &&\n this.intersectedEl && this.cursorDownEl === this.intersectedEl) {\n this.twoWayEmit(EVENTS.CLICK, evt);\n }\n\n // if the current xr input stops selecting then make the ray caster point somewhere else\n if (data.rayOrigin === 'xrselect' && this.activeXRInput === evt.inputSource) {\n this.onMouseMove({\n type: 'fakeselectout'\n });\n }\n\n this.activeXRInput = null;\n this.cursorDownEl = null;\n if (evt.type === 'touchend') { evt.preventDefault(); }\n },\n\n /**\n * Handle intersection.\n */\n onIntersection: function (evt) {\n var currentIntersection;\n var cursorEl = this.el;\n var index;\n var intersectedEl;\n var intersection;\n\n // Select closest object, excluding the cursor.\n index = evt.detail.els[0] === cursorEl ? 1 : 0;\n intersection = evt.detail.intersections[index];\n intersectedEl = evt.detail.els[index];\n\n // If cursor is the only intersected object, ignore the event.\n if (!intersectedEl) { return; }\n\n // Already intersecting this entity.\n if (this.intersectedEl === intersectedEl) { return; }\n\n // Ignore events further away than active intersection.\n if (this.intersectedEl) {\n currentIntersection = this.el.components.raycaster.getIntersection(this.intersectedEl);\n if (currentIntersection && currentIntersection.distance <= intersection.distance) { return; }\n }\n\n // Unset current intersection.\n this.clearCurrentIntersection(true);\n\n this.setIntersection(intersectedEl, intersection);\n },\n\n /**\n * Handle intersection cleared.\n */\n onIntersectionCleared: function (evt) {\n var clearedEls = evt.detail.clearedEls;\n // Check if the current intersection has ended\n if (clearedEls.indexOf(this.intersectedEl) === -1) { return; }\n this.clearCurrentIntersection();\n },\n\n onEnterVR: function () {\n this.clearCurrentIntersection(true);\n var xrSession = this.el.sceneEl.xrSession;\n var self = this;\n if (!xrSession) { return; }\n if (this.data.rayOrigin === 'mouse') { return; }\n WEBXR_EVENTS.DOWN.forEach(function (downEvent) {\n xrSession.addEventListener(downEvent, self.onCursorDown);\n });\n WEBXR_EVENTS.UP.forEach(function (upEvent) {\n xrSession.addEventListener(upEvent, self.onCursorUp);\n });\n },\n\n setIntersection: function (intersectedEl, intersection) {\n var cursorEl = this.el;\n var data = this.data;\n var self = this;\n\n // Already intersecting.\n if (this.intersectedEl === intersectedEl) { return; }\n\n // Set new intersection.\n this.intersectedEl = intersectedEl;\n\n // Hovering.\n cursorEl.addState(STATES.HOVERING);\n intersectedEl.addState(STATES.HOVERED);\n this.twoWayEmit(EVENTS.MOUSEENTER);\n\n if (this.data.mouseCursorStylesEnabled && this.data.rayOrigin === 'mouse') {\n this.el.sceneEl.canvas.classList.add(CANVAS_HOVER_CLASS);\n }\n\n // Begin fuse if necessary.\n if (data.fuseTimeout === 0 || !data.fuse || data.rayOrigin === 'xrselect' || data.rayOrigin === 'mouse') { return; }\n cursorEl.addState(STATES.FUSING);\n this.twoWayEmit(EVENTS.FUSING);\n this.fuseTimeout = setTimeout(function fuse () {\n cursorEl.removeState(STATES.FUSING);\n self.twoWayEmit(EVENTS.CLICK);\n }, data.fuseTimeout);\n },\n\n clearCurrentIntersection: function (ignoreRemaining) {\n var index;\n var intersection;\n var intersections;\n var cursorEl = this.el;\n\n // Nothing to be cleared.\n if (!this.intersectedEl) { return; }\n\n // No longer hovering (or fusing).\n this.intersectedEl.removeState(STATES.HOVERED);\n cursorEl.removeState(STATES.HOVERING);\n cursorEl.removeState(STATES.FUSING);\n this.twoWayEmit(EVENTS.MOUSELEAVE);\n\n if (this.data.mouseCursorStylesEnabled && this.data.rayOrigin === 'mouse') {\n this.el.sceneEl.canvas.classList.remove(CANVAS_HOVER_CLASS);\n }\n\n // Unset intersected entity (after emitting the event).\n this.intersectedEl = null;\n\n // Clear fuseTimeout.\n clearTimeout(this.fuseTimeout);\n\n // Set intersection to another raycasted element if any.\n if (ignoreRemaining === true) { return; }\n intersections = this.el.components.raycaster.intersections;\n if (intersections.length === 0) { return; }\n // Exclude the cursor.\n index = intersections[0].object.el === cursorEl ? 1 : 0;\n intersection = intersections[index];\n if (!intersection) { return; }\n this.setIntersection(intersection.object.el, intersection);\n },\n\n /**\n * Helper to emit on both the cursor and the intersected entity (if exists).\n */\n twoWayEmit: function (evtName, originalEvent) {\n var el = this.el;\n var intersectedEl = this.intersectedEl;\n var intersection;\n\n function addOriginalEvent (detail, evt) {\n if (originalEvent instanceof MouseEvent) {\n detail.mouseEvent = originalEvent;\n } else if (typeof TouchEvent !== 'undefined' &&\n originalEvent instanceof TouchEvent) {\n detail.touchEvent = originalEvent;\n }\n }\n\n intersection = this.el.components.raycaster.getIntersection(intersectedEl);\n this.eventDetail.intersectedEl = intersectedEl;\n this.eventDetail.intersection = intersection;\n addOriginalEvent(this.eventDetail, originalEvent);\n el.emit(evtName, this.eventDetail);\n\n if (!intersectedEl) { return; }\n\n this.intersectedEventDetail.intersection = intersection;\n addOriginalEvent(this.intersectedEventDetail, originalEvent);\n intersectedEl.emit(evtName, this.intersectedEventDetail);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar DAYDREAM_CONTROLLER_MODEL_BASE_URL = 'https://cdn.aframe.io/controllers/google/';\nvar DAYDREAM_CONTROLLER_MODEL_OBJ_URL = DAYDREAM_CONTROLLER_MODEL_BASE_URL + 'vr_controller_daydream.obj';\nvar DAYDREAM_CONTROLLER_MODEL_OBJ_MTL = DAYDREAM_CONTROLLER_MODEL_BASE_URL + 'vr_controller_daydream.mtl';\n\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar GAMEPAD_ID_WEBXR = 'google-daydream';\nvar GAMEPAD_ID_WEBVR = 'Daydream Controller';\n\nvar GAMEPAD_ID_PREFIX = isWebXRAvailable ? GAMEPAD_ID_WEBXR : GAMEPAD_ID_WEBVR;\n\n/**\n * Button indices:\n * 0 - trackpad\n * 1 - menu (never dispatched on this layer)\n * 2 - system (never dispatched on this layer)\n *\n * Axis:\n * 0 - trackpad x\n * 1 - trackpad y\n */\nvar INPUT_MAPPING_WEBVR = {\n axes: {trackpad: [0, 1]},\n buttons: ['trackpad', 'menu', 'system']\n};\n\n/**\n * Button indices:\n * 0 - none\n * 1 - none\n * 2 - touchpad\n *\n * Axis:\n * 0 - touchpad x\n * 1 - touchpad y\n * Reference: https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/google/google-daydream.json\n */\nvar INPUT_MAPPING_WEBXR = {\n axes: {touchpad: [0, 1]},\n buttons: ['none', 'none', 'touchpad', 'menu', 'system']\n};\n\nvar INPUT_MAPPING = isWebXRAvailable ? INPUT_MAPPING_WEBXR : INPUT_MAPPING_WEBVR;\n\n/**\n * Daydream controls.\n * Interface with Daydream controller and map Gamepad events to\n * controller buttons: trackpad, menu, system\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('daydream-controls', {\n schema: {\n hand: {default: ''}, // This informs the degenerate arm model.\n buttonColor: {type: 'color', default: '#000000'},\n buttonTouchedColor: {type: 'color', default: '#777777'},\n buttonHighlightColor: {type: 'color', default: '#FFFFFF'},\n model: {default: true},\n orientationOffset: {type: 'vec3'},\n armModel: {default: true}\n },\n\n mapping: INPUT_MAPPING,\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.bindMethods();\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX,\n this.data.hand ? {hand: this.data.hand} : {});\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n el.setAttribute('tracked-controls', {\n armModel: data.armModel,\n hand: data.hand,\n idPrefix: GAMEPAD_ID_PREFIX,\n id: GAMEPAD_ID_PREFIX,\n orientationOffset: data.orientationOffset\n });\n if (!this.data.model) { return; }\n this.el.setAttribute('obj-model', {\n obj: DAYDREAM_CONTROLLER_MODEL_OBJ_URL,\n mtl: DAYDREAM_CONTROLLER_MODEL_OBJ_MTL\n });\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n var buttonMeshes;\n if (!this.data.model) { return; }\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.menu = controllerObject3D.getObjectByName('AppButton_AppButton_Cylinder.004');\n buttonMeshes.system = controllerObject3D.getObjectByName('HomeButton_HomeButton_Cylinder.005');\n buttonMeshes.trackpad = controllerObject3D.getObjectByName('TouchPad_TouchPad_Cylinder.003');\n buttonMeshes.touchpad = controllerObject3D.getObjectByName('TouchPad_TouchPad_Cylinder.003');\n // Offset pivot point.\n controllerObject3D.position.set(0, 0, -0.04);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n if (!button) return;\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n updateModel: function (buttonName, evtName) {\n if (!this.data.model) { return; }\n this.updateButtonModel(buttonName, evtName);\n },\n\n updateButtonModel: function (buttonName, state) {\n var buttonMeshes = this.buttonMeshes;\n if (!buttonMeshes || !buttonMeshes[buttonName]) { return; }\n var color;\n switch (state) {\n case 'down':\n color = this.data.buttonHighlightColor;\n break;\n case 'touchstart':\n color = this.data.buttonTouchedColor;\n break;\n default:\n color = this.data.buttonColor;\n }\n buttonMeshes[buttonName].material.color.set(color);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar GEARVR_CONTROLLER_MODEL_BASE_URL = 'https://cdn.aframe.io/controllers/samsung/';\nvar GEARVR_CONTROLLER_MODEL_OBJ_URL = GEARVR_CONTROLLER_MODEL_BASE_URL + 'gear_vr_controller.obj';\nvar GEARVR_CONTROLLER_MODEL_OBJ_MTL = GEARVR_CONTROLLER_MODEL_BASE_URL + 'gear_vr_controller.mtl';\n\nvar GAMEPAD_ID_WEBXR = 'samsung-gearvr';\nvar GAMEPAD_ID_WEBVR = 'Gear VR';\n\n// Prefix for Gen1 and Gen2 Oculus Touch Controllers.\nvar GAMEPAD_ID_PREFIX = isWebXRAvailable ? GAMEPAD_ID_WEBXR : GAMEPAD_ID_WEBVR;\n\n/**\n * Button indices:\n * 0 - trackpad\n * 1 - trigger\n *\n * Axis:\n * 0 - trackpad x\n * 1 - trackpad y\n */\nvar INPUT_MAPPING_WEBVR = {\n axes: {trackpad: [0, 1]},\n buttons: ['trackpad', 'trigger']\n};\n\n/**\n * Button indices:\n * 0 - trigger\n * 1 - none\n * 2 - touchpad\n * 3 - menu\n *\n * Axis:\n * 0 - touchpad x\n * 1 - touchpad y\n * Reference: https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/samsung/samsung-gearvr.json\n */\nvar INPUT_MAPPING_WEBXR = {\n axes: {touchpad: [0, 1]},\n buttons: ['trigger', 'none', 'touchpad', 'none', 'menu']\n};\n\nvar INPUT_MAPPING = isWebXRAvailable ? INPUT_MAPPING_WEBXR : INPUT_MAPPING_WEBVR;\n\n/**\n * Gear VR controls.\n * Interface with Gear VR controller and map Gamepad events to\n * controller buttons: trackpad, trigger\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('gearvr-controls', {\n schema: {\n hand: {default: ''}, // This informs the degenerate arm model.\n buttonColor: {type: 'color', default: '#000000'},\n buttonTouchedColor: {type: 'color', default: '#777777'},\n buttonHighlightColor: {type: 'color', default: '#FFFFFF'},\n model: {default: true},\n orientationOffset: {type: 'vec3'},\n armModel: {default: true}\n },\n\n mapping: INPUT_MAPPING,\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.bindMethods();\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX,\n this.data.hand ? {hand: this.data.hand} : {});\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n el.setAttribute('tracked-controls', {\n armModel: data.armModel,\n hand: data.hand,\n idPrefix: GAMEPAD_ID_PREFIX,\n id: GAMEPAD_ID_PREFIX,\n orientationOffset: data.orientationOffset\n });\n if (!this.data.model) { return; }\n this.el.setAttribute('obj-model', {\n obj: GEARVR_CONTROLLER_MODEL_OBJ_URL,\n mtl: GEARVR_CONTROLLER_MODEL_OBJ_MTL\n });\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n // No need for onButtonChanged, since Gear VR controller has no analog buttons.\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n var buttonMeshes;\n if (!this.data.model) { return; }\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.trigger = controllerObject3D.children[2];\n buttonMeshes.trackpad = controllerObject3D.children[1];\n buttonMeshes.touchpad = controllerObject3D.children[1];\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n if (!button) return;\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n updateModel: function (buttonName, evtName) {\n if (!this.data.model) { return; }\n this.updateButtonModel(buttonName, evtName);\n },\n\n updateButtonModel: function (buttonName, state) {\n var buttonMeshes = this.buttonMeshes;\n if (!buttonMeshes || !buttonMeshes[buttonName]) { return; }\n var color;\n switch (state) {\n case 'down':\n color = this.data.buttonHighlightColor;\n break;\n case 'touchstart':\n color = this.data.buttonTouchedColor;\n break;\n default:\n color = this.data.buttonColor;\n }\n buttonMeshes[buttonName].material.color.set(color);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar GAMEPAD_ID_PREFIX = 'generic';\n\n/**\n * Button indices:\n * 0 - trigger\n * 1 - squeeze\n * 2 - touchpad\n * 3 - thumbstick\n *\n * Axis:\n * 0 - touchpad\n * 1 - thumbstick\n *\n */\nvar INPUT_MAPPING = {\n axes: {\n touchpad: [0, 1],\n thumbstick: [2, 3]\n },\n buttons: ['trigger', 'squeeze', 'touchpad', 'thumbstick']\n};\n\n/**\n * Oculus Go controls.\n * Interface with Oculus Go controller and map Gamepad events to\n * controller buttons: trackpad, trigger\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('generic-tracked-controller-controls', {\n schema: {\n hand: {default: ''}, // This informs the degenerate arm model.\n defaultModel: {default: true},\n defaultModelColor: {default: 'gray'},\n orientationOffset: {type: 'vec3'},\n disabled: {default: false}\n },\n\n /**\n * Button IDs:\n * 0 - trackpad\n * 1 - trigger\n */\n mapping: INPUT_MAPPING,\n\n bindMethods: function () {\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.controllerPresent = false;\n this.wasControllerConnected = false;\n this.lastControllerCheck = 0;\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n this.bindMethods();\n\n // generic-tracked-controller-controls has the lowest precedence.\n // We must diable this component if there are more specialized controls components.\n this.el.addEventListener('controllerconnected', function (evt) {\n if (evt.detail.name === self.name) { return; }\n self.wasControllerConnected = true;\n self.removeEventListeners();\n self.removeControllersUpdateListener();\n });\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n var data = this.data;\n var hand = data.hand ? data.hand : undefined;\n checkControllerPresentAndSetup(\n this, GAMEPAD_ID_PREFIX,\n {hand: hand, iterateControllerProfiles: true});\n },\n\n play: function () {\n if (this.wasControllerConnected) { return; }\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n\n // Do nothing if tracked-controls already set.\n // Generic controls have the lowest precedence.\n if (this.el.components['tracked-controls']) {\n this.removeEventListeners();\n return;\n }\n el.setAttribute('tracked-controls', {\n hand: data.hand,\n idPrefix: GAMEPAD_ID_PREFIX,\n orientationOffset: data.orientationOffset,\n iterateControllerProfiles: true\n });\n if (!this.data.defaultModel) { return; }\n this.initDefaultModel();\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n if (!button) return;\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n initDefaultModel: function () {\n var modelEl = this.modelEl = document.createElement('a-entity');\n modelEl.setAttribute('geometry', {\n primitive: 'sphere',\n radius: 0.03\n });\n modelEl.setAttribute('material', {color: this.data.color});\n this.el.appendChild(modelEl);\n }\n});\n","var geometries = require('../core/geometry').geometries;\nvar geometryNames = require('../core/geometry').geometryNames;\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar dummyGeometry = new THREE.BufferGeometry();\n\n/**\n * Geometry component. Combined with material component to make a mesh in 3D object.\n * Extended with registered geometries.\n */\nmodule.exports.Component = registerComponent('geometry', {\n schema: {\n buffer: {default: true},\n primitive: {default: 'box', oneOf: geometryNames, schemaChange: true},\n skipCache: {default: false}\n },\n\n init: function () {\n this.geometry = null;\n },\n\n /**\n * Talk to geometry system to get or create geometry.\n */\n update: function (previousData) {\n var data = this.data;\n var el = this.el;\n var mesh;\n var system = this.system;\n\n // Dispose old geometry if we created one.\n if (this.geometry) {\n system.unuseGeometry(previousData);\n this.geometry = null;\n }\n\n // Create new geometry.\n this.geometry = system.getOrCreateGeometry(data);\n\n // Set on mesh. If mesh does not exist, create it.\n mesh = el.getObject3D('mesh');\n if (mesh) {\n mesh.geometry = this.geometry;\n } else {\n mesh = new THREE.Mesh();\n mesh.geometry = this.geometry;\n // Default material if not defined on the entity.\n if (!this.el.getAttribute('material')) {\n mesh.material = new THREE.MeshStandardMaterial({\n color: Math.random() * 0xFFFFFF,\n metalness: 0,\n roughness: 0.5\n });\n }\n el.setObject3D('mesh', mesh);\n }\n },\n\n /**\n * Tell geometry system that entity is no longer using the geometry.\n * Unset the geometry on the mesh\n */\n remove: function () {\n this.system.unuseGeometry(this.data);\n this.el.getObject3D('mesh').geometry = dummyGeometry;\n this.geometry = null;\n },\n\n /**\n * Update geometry component schema based on geometry type.\n */\n updateSchema: function (data) {\n var currentGeometryType = this.oldData && this.oldData.primitive;\n var newGeometryType = data.primitive;\n var schema = geometries[newGeometryType] && geometries[newGeometryType].schema;\n\n // Geometry has no schema.\n if (!schema) { throw new Error('Unknown geometry schema `' + newGeometryType + '`'); }\n // Nothing has changed.\n if (currentGeometryType && currentGeometryType === newGeometryType) { return; }\n\n this.extendSchema(schema);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\nvar warn = utils.debug('components:gltf-model:warn');\n\n/**\n * glTF model loader.\n */\nmodule.exports.Component = registerComponent('gltf-model', {\n schema: {type: 'model'},\n\n init: function () {\n var self = this;\n var dracoLoader = this.system.getDRACOLoader();\n var meshoptDecoder = this.system.getMeshoptDecoder();\n var ktxLoader = this.system.getKTX2Loader();\n this.model = null;\n this.loader = new THREE.GLTFLoader();\n if (dracoLoader) {\n this.loader.setDRACOLoader(dracoLoader);\n }\n if (meshoptDecoder) {\n this.ready = meshoptDecoder.then(function (meshoptDecoder) {\n self.loader.setMeshoptDecoder(meshoptDecoder);\n });\n } else {\n this.ready = Promise.resolve();\n }\n if (ktxLoader) {\n this.loader.setKTX2Loader(ktxLoader);\n }\n },\n\n update: function () {\n var self = this;\n var el = this.el;\n var src = this.data;\n\n if (!src) { return; }\n\n this.remove();\n\n this.ready.then(function () {\n self.loader.load(src, function gltfLoaded (gltfModel) {\n self.model = gltfModel.scene || gltfModel.scenes[0];\n self.model.animations = gltfModel.animations;\n el.setObject3D('mesh', self.model);\n el.emit('model-loaded', {format: 'gltf', model: self.model});\n }, undefined /* onProgress */, function gltfFailed (error) {\n var message = (error && error.message) ? error.message : 'Failed to load glTF model';\n warn(message);\n el.emit('model-error', {format: 'gltf', src: src});\n });\n });\n },\n\n remove: function () {\n if (!this.model) { return; }\n this.el.removeObject3D('mesh');\n }\n});\n","/* global THREE */\nvar registerComponent = require('../core/component').registerComponent;\n\n// Found at https://github.com/aframevr/assets.\nvar MODEL_URLS = {\n toonLeft: 'https://cdn.aframe.io/controllers/hands/leftHand.glb',\n toonRight: 'https://cdn.aframe.io/controllers/hands/rightHand.glb',\n lowPolyLeft: 'https://cdn.aframe.io/controllers/hands/leftHandLow.glb',\n lowPolyRight: 'https://cdn.aframe.io/controllers/hands/rightHandLow.glb',\n highPolyLeft: 'https://cdn.aframe.io/controllers/hands/leftHandHigh.glb',\n highPolyRight: 'https://cdn.aframe.io/controllers/hands/rightHandHigh.glb'\n};\n\n// Poses.\nvar ANIMATIONS = {\n open: 'Open',\n // point: grip active, trackpad surface active, trigger inactive.\n point: 'Point',\n // pointThumb: grip active, trigger inactive, trackpad surface inactive.\n pointThumb: 'Point + Thumb',\n // fist: grip active, trigger active, trackpad surface active.\n fist: 'Fist',\n // hold: trigger active, grip inactive.\n hold: 'Hold',\n // thumbUp: grip active, trigger active, trackpad surface inactive.\n thumbUp: 'Thumb Up'\n};\n\n// Map animation to public events for the API.\nvar EVENTS = {};\nEVENTS[ANIMATIONS.fist] = 'grip';\nEVENTS[ANIMATIONS.thumbUp] = 'pistol';\nEVENTS[ANIMATIONS.point] = 'pointing';\n\n/**\n * Hand controls component that abstracts 6DoF controls:\n * oculus-touch-controls, vive-controls, windows-motion-controls.\n *\n * Originally meant to be a sample implementation of applications-specific controls that\n * abstracts multiple types of controllers.\n *\n * Auto-detect appropriate controller.\n * Handle common events coming from the detected vendor-specific controls.\n * Translate button events to semantic hand-related event names:\n * (gripclose, gripopen, thumbup, thumbdown, pointup, pointdown)\n * Load hand model with gestures that are applied based on the button pressed.\n *\n * @property {string} Hand mapping (`left`, `right`).\n */\nmodule.exports.Component = registerComponent('hand-controls', {\n schema: {\n color: {default: 'white', type: 'color'},\n hand: { default: 'left' },\n handModelStyle: {default: 'lowPoly', oneOf: ['lowPoly', 'highPoly', 'toon']}\n },\n\n init: function () {\n var self = this;\n var el = this.el;\n // Current pose.\n this.gesture = ANIMATIONS.open;\n // Active buttons populated by events provided by the attached controls.\n this.pressedButtons = {};\n this.touchedButtons = {};\n this.loader = new THREE.GLTFLoader();\n this.loader.setCrossOrigin('anonymous');\n\n this.onGripDown = function () { self.handleButton('grip', 'down'); };\n this.onGripUp = function () { self.handleButton('grip', 'up'); };\n this.onTrackpadDown = function () { self.handleButton('trackpad', 'down'); };\n this.onTrackpadUp = function () { self.handleButton('trackpad', 'up'); };\n this.onTrackpadTouchStart = function () { self.handleButton('trackpad', 'touchstart'); };\n this.onTrackpadTouchEnd = function () { self.handleButton('trackpad', 'touchend'); };\n this.onTriggerDown = function () { self.handleButton('trigger', 'down'); };\n this.onTriggerUp = function () { self.handleButton('trigger', 'up'); };\n this.onTriggerTouchStart = function () { self.handleButton('trigger', 'touchstart'); };\n this.onTriggerTouchEnd = function () { self.handleButton('trigger', 'touchend'); };\n this.onGripTouchStart = function () { self.handleButton('grip', 'touchstart'); };\n this.onGripTouchEnd = function () { self.handleButton('grip', 'touchend'); };\n this.onThumbstickDown = function () { self.handleButton('thumbstick', 'down'); };\n this.onThumbstickUp = function () { self.handleButton('thumbstick', 'up'); };\n this.onAorXTouchStart = function () { self.handleButton('AorX', 'touchstart'); };\n this.onAorXTouchEnd = function () { self.handleButton('AorX', 'touchend'); };\n this.onBorYTouchStart = function () { self.handleButton('BorY', 'touchstart'); };\n this.onBorYTouchEnd = function () { self.handleButton('BorY', 'touchend'); };\n this.onSurfaceTouchStart = function () { self.handleButton('surface', 'touchstart'); };\n this.onSurfaceTouchEnd = function () { self.handleButton('surface', 'touchend'); };\n this.onControllerConnected = this.onControllerConnected.bind(this);\n this.onControllerDisconnected = this.onControllerDisconnected.bind(this);\n\n el.addEventListener('controllerconnected', this.onControllerConnected);\n el.addEventListener('controllerdisconnected', this.onControllerDisconnected);\n\n // Hidden by default.\n el.object3D.visible = false;\n },\n\n play: function () {\n this.addEventListeners();\n },\n\n pause: function () {\n this.removeEventListeners();\n },\n\n tick: function (time, delta) {\n var mesh = this.el.getObject3D('mesh');\n\n if (!mesh || !mesh.mixer) { return; }\n\n mesh.mixer.update(delta / 1000);\n },\n\n onControllerConnected: function () {\n this.el.object3D.visible = true;\n },\n\n onControllerDisconnected: function () {\n this.el.object3D.visible = false;\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('gripdown', this.onGripDown);\n el.addEventListener('gripup', this.onGripUp);\n el.addEventListener('trackpaddown', this.onTrackpadDown);\n el.addEventListener('trackpadup', this.onTrackpadUp);\n el.addEventListener('trackpadtouchstart', this.onTrackpadTouchStart);\n el.addEventListener('trackpadtouchend', this.onTrackpadTouchEnd);\n el.addEventListener('triggerdown', this.onTriggerDown);\n el.addEventListener('triggerup', this.onTriggerUp);\n el.addEventListener('triggertouchstart', this.onTriggerTouchStart);\n el.addEventListener('triggertouchend', this.onTriggerTouchEnd);\n el.addEventListener('griptouchstart', this.onGripTouchStart);\n el.addEventListener('griptouchend', this.onGripTouchEnd);\n el.addEventListener('thumbstickdown', this.onThumbstickDown);\n el.addEventListener('thumbstickup', this.onThumbstickUp);\n el.addEventListener('abuttontouchstart', this.onAorXTouchStart);\n el.addEventListener('abuttontouchend', this.onAorXTouchEnd);\n el.addEventListener('bbuttontouchstart', this.onBorYTouchStart);\n el.addEventListener('bbuttontouchend', this.onBorYTouchEnd);\n el.addEventListener('xbuttontouchstart', this.onAorXTouchStart);\n el.addEventListener('xbuttontouchend', this.onAorXTouchEnd);\n el.addEventListener('ybuttontouchstart', this.onBorYTouchStart);\n el.addEventListener('ybuttontouchend', this.onBorYTouchEnd);\n el.addEventListener('surfacetouchstart', this.onSurfaceTouchStart);\n el.addEventListener('surfacetouchend', this.onSurfaceTouchEnd);\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('gripdown', this.onGripDown);\n el.removeEventListener('gripup', this.onGripUp);\n el.removeEventListener('trackpaddown', this.onTrackpadDown);\n el.removeEventListener('trackpadup', this.onTrackpadUp);\n el.removeEventListener('trackpadtouchstart', this.onTrackpadTouchStart);\n el.removeEventListener('trackpadtouchend', this.onTrackpadTouchEnd);\n el.removeEventListener('triggerdown', this.onTriggerDown);\n el.removeEventListener('triggerup', this.onTriggerUp);\n el.removeEventListener('triggertouchstart', this.onTriggerTouchStart);\n el.removeEventListener('triggertouchend', this.onTriggerTouchEnd);\n el.removeEventListener('griptouchstart', this.onGripTouchStart);\n el.removeEventListener('griptouchend', this.onGripTouchEnd);\n el.removeEventListener('thumbstickdown', this.onThumbstickDown);\n el.removeEventListener('thumbstickup', this.onThumbstickUp);\n el.removeEventListener('abuttontouchstart', this.onAorXTouchStart);\n el.removeEventListener('abuttontouchend', this.onAorXTouchEnd);\n el.removeEventListener('bbuttontouchstart', this.onBorYTouchStart);\n el.removeEventListener('bbuttontouchend', this.onBorYTouchEnd);\n el.removeEventListener('xbuttontouchstart', this.onAorXTouchStart);\n el.removeEventListener('xbuttontouchend', this.onAorXTouchEnd);\n el.removeEventListener('ybuttontouchstart', this.onBorYTouchStart);\n el.removeEventListener('ybuttontouchend', this.onBorYTouchEnd);\n el.removeEventListener('surfacetouchstart', this.onSurfaceTouchStart);\n el.removeEventListener('surfacetouchend', this.onSurfaceTouchEnd);\n },\n\n /**\n * Update handler. More like the `init` handler since the only property is the hand, and\n * that won't be changing much.\n */\n update: function (previousHand) {\n var controlConfiguration;\n var el = this.el;\n var hand = this.data.hand;\n var handModelStyle = this.data.handModelStyle;\n var handColor = this.data.color;\n var self = this;\n\n // Get common configuration to abstract different vendor controls.\n controlConfiguration = {\n hand: hand,\n model: false\n };\n\n // Set model.\n if (hand !== previousHand) {\n var handmodelUrl = MODEL_URLS[handModelStyle + hand.charAt(0).toUpperCase() + hand.slice(1)];\n this.loader.load(handmodelUrl, function (gltf) {\n var mesh = gltf.scene.children[0];\n var handModelOrientation = hand === 'left' ? Math.PI / 2 : -Math.PI / 2;\n mesh.mixer = new THREE.AnimationMixer(mesh);\n self.clips = gltf.animations;\n el.setObject3D('mesh', mesh);\n\n var handMaterial = mesh.children[1].material;\n handMaterial.color = new THREE.Color(handColor);\n mesh.position.set(0, 0, 0);\n mesh.rotation.set(0, 0, handModelOrientation);\n el.setAttribute('magicleap-controls', controlConfiguration);\n el.setAttribute('vive-controls', controlConfiguration);\n el.setAttribute('oculus-touch-controls', controlConfiguration);\n el.setAttribute('windows-motion-controls', controlConfiguration);\n el.setAttribute('hp-mixed-reality-controls', controlConfiguration);\n });\n }\n },\n\n remove: function () {\n this.el.removeObject3D('mesh');\n },\n\n /**\n * Play model animation, based on which button was pressed and which kind of event.\n *\n * 1. Process buttons.\n * 2. Determine gesture (this.determineGesture()).\n * 3. Animation gesture (this.animationGesture()).\n * 4. Emit gesture events (this.emitGestureEvents()).\n *\n * @param {string} button - Name of the button.\n * @param {string} evt - Type of event for the button (i.e., down/up/touchstart/touchend).\n */\n handleButton: function (button, evt) {\n var lastGesture;\n var isPressed = evt === 'down';\n var isTouched = evt === 'touchstart';\n\n // Update objects.\n if (evt.indexOf('touch') === 0) {\n // Update touch object.\n if (isTouched === this.touchedButtons[button]) { return; }\n this.touchedButtons[button] = isTouched;\n } else {\n // Update button object.\n if (isPressed === this.pressedButtons[button]) { return; }\n this.pressedButtons[button] = isPressed;\n }\n\n // Determine the gesture.\n lastGesture = this.gesture;\n this.gesture = this.determineGesture();\n\n // Same gesture.\n if (this.gesture === lastGesture) { return; }\n // Animate gesture.\n this.animateGesture(this.gesture, lastGesture);\n\n // Emit events.\n this.emitGestureEvents(this.gesture, lastGesture);\n },\n\n /**\n * Determine which pose hand should be in considering active and touched buttons.\n */\n determineGesture: function () {\n var gesture;\n var isGripActive = this.pressedButtons.grip;\n var isSurfaceActive = this.pressedButtons.surface || this.touchedButtons.surface;\n var isTrackpadActive = this.pressedButtons.trackpad || this.touchedButtons.trackpad;\n var isTriggerActive = this.pressedButtons.trigger || this.touchedButtons.trigger;\n var isABXYActive = this.touchedButtons.AorX || this.touchedButtons.BorY;\n var isVive = isViveController(this.el.components['tracked-controls']);\n\n // Works well with Oculus Touch and Windows Motion Controls, but Vive needs tweaks.\n if (isVive) {\n if (isGripActive || isTriggerActive) {\n gesture = ANIMATIONS.fist;\n } else if (isTrackpadActive) {\n gesture = ANIMATIONS.point;\n }\n } else {\n if (isGripActive) {\n if (isSurfaceActive || isABXYActive || isTrackpadActive) {\n gesture = isTriggerActive ? ANIMATIONS.fist : ANIMATIONS.point;\n } else {\n gesture = isTriggerActive ? ANIMATIONS.thumbUp : ANIMATIONS.pointThumb;\n }\n } else if (isTriggerActive) {\n gesture = ANIMATIONS.hold;\n }\n }\n\n return gesture;\n },\n\n /**\n * Play corresponding clip to a gesture\n */\n getClip: function (gesture) {\n var clip;\n var i;\n for (i = 0; i < this.clips.length; i++) {\n clip = this.clips[i];\n if (clip.name !== gesture) { continue; }\n return clip;\n }\n },\n\n /**\n * Play gesture animation.\n *\n * @param {string} gesture - Which pose to animate to. If absent, then animate to open.\n * @param {string} lastGesture - Previous gesture, to reverse back to open if needed.\n */\n animateGesture: function (gesture, lastGesture) {\n if (gesture) {\n this.playAnimation(gesture || ANIMATIONS.open, lastGesture, false);\n return;\n }\n\n // If no gesture, then reverse the current gesture back to open pose.\n this.playAnimation(lastGesture, lastGesture, true);\n },\n\n /**\n * Emit `hand-controls`-specific events.\n */\n emitGestureEvents: function (gesture, lastGesture) {\n var el = this.el;\n var eventName;\n\n if (lastGesture === gesture) { return; }\n\n // Emit event for lastGesture not inactive.\n eventName = getGestureEventName(lastGesture, false);\n if (eventName) { el.emit(eventName); }\n\n // Emit event for current gesture now active.\n eventName = getGestureEventName(gesture, true);\n if (eventName) { el.emit(eventName); }\n },\n\n /**\n * Play hand animation based on button state.\n *\n * @param {string} gesture - Name of the animation as specified by the model.\n * @param {string} lastGesture - Previous pose.\n * @param {boolean} reverse - Whether animation should play in reverse.\n */\n playAnimation: function (gesture, lastGesture, reverse) {\n var clip;\n var fromAction;\n var mesh = this.el.getObject3D('mesh');\n var toAction;\n\n if (!mesh) { return; }\n\n // Stop all current animations.\n mesh.mixer.stopAllAction();\n\n // Grab clip action.\n clip = this.getClip(gesture);\n toAction = mesh.mixer.clipAction(clip);\n toAction.clampWhenFinished = true;\n toAction.loop = THREE.LoopRepeat;\n toAction.repetitions = 0;\n toAction.timeScale = reverse ? -1 : 1;\n toAction.time = reverse ? clip.duration : 0;\n toAction.weight = 1;\n\n // No gesture to gesture or gesture to no gesture.\n if (!lastGesture || gesture === lastGesture) {\n // Stop all current animations.\n mesh.mixer.stopAllAction();\n // Play animation.\n toAction.play();\n return;\n }\n\n // Animate or crossfade from gesture to gesture.\n clip = this.getClip(lastGesture);\n fromAction = mesh.mixer.clipAction(clip);\n fromAction.weight = 0.15;\n fromAction.play();\n toAction.play();\n fromAction.crossFadeTo(toAction, 0.15, true);\n }\n});\n\n/**\n * Suffix gestures based on toggle state (e.g., open/close, up/down, start/end).\n *\n * @param {string} gesture\n * @param {boolean} active\n */\nfunction getGestureEventName (gesture, active) {\n var eventName;\n\n if (!gesture) { return; }\n\n eventName = EVENTS[gesture];\n if (eventName === 'grip') {\n return eventName + (active ? 'close' : 'open');\n }\n if (eventName === 'point') {\n return eventName + (active ? 'up' : 'down');\n }\n if (eventName === 'pointing' || eventName === 'pistol') {\n return eventName + (active ? 'start' : 'end');\n }\n}\n\nfunction isViveController (trackedControls) {\n var controller = trackedControls && trackedControls.controller;\n var isVive = controller && (controller.id && controller.id.indexOf('OpenVR ') === 0 ||\n (controller.profiles &&\n controller.profiles[0] &&\n controller.profiles[0] === 'htc-vive'));\n return isVive;\n}\n","/* global THREE, XRRigidTransform */\nvar registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\n\nvar LEFT_HAND_MODEL_URL = 'https://cdn.aframe.io/controllers/oculus-hands/v4/left.glb';\nvar RIGHT_HAND_MODEL_URL = 'https://cdn.aframe.io/controllers/oculus-hands/v4/right.glb';\n\nvar JOINTS = [\n 'wrist',\n 'thumb-metacarpal',\n 'thumb-phalanx-proximal',\n 'thumb-phalanx-distal',\n 'thumb-tip',\n 'index-finger-metacarpal',\n 'index-finger-phalanx-proximal',\n 'index-finger-phalanx-intermediate',\n 'index-finger-phalanx-distal',\n 'index-finger-tip',\n 'middle-finger-metacarpal',\n 'middle-finger-phalanx-proximal',\n 'middle-finger-phalanx-intermediate',\n 'middle-finger-phalanx-distal',\n 'middle-finger-tip',\n 'ring-finger-metacarpal',\n 'ring-finger-phalanx-proximal',\n 'ring-finger-phalanx-intermediate',\n 'ring-finger-phalanx-distal',\n 'ring-finger-tip',\n 'pinky-finger-metacarpal',\n 'pinky-finger-phalanx-proximal',\n 'pinky-finger-phalanx-intermediate',\n 'pinky-finger-phalanx-distal',\n 'pinky-finger-tip'\n];\n\nvar PINCH_START_DISTANCE = 0.015;\nvar PINCH_END_DISTANCE = 0.03;\nvar PINCH_POSITION_INTERPOLATION = 0.5;\n\n/**\n * Controls for hand tracking\n */\nmodule.exports.Component = registerComponent('hand-tracking-controls', {\n schema: {\n hand: {default: 'right', oneOf: ['left', 'right']},\n modelStyle: {default: 'mesh', oneOf: ['dots', 'mesh']},\n modelColor: {default: 'white'}\n },\n\n bindMethods: function () {\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n },\n\n addEventListeners: function () {\n this.el.addEventListener('model-loaded', this.onModelLoaded);\n for (var i = 0; i < this.jointEls.length; ++i) {\n this.jointEls[i].object3D.visible = true;\n }\n },\n\n removeEventListeners: function () {\n this.el.removeEventListener('model-loaded', this.onModelLoaded);\n for (var i = 0; i < this.jointEls.length; ++i) {\n this.jointEls[i].object3D.visible = false;\n }\n },\n\n init: function () {\n var sceneEl = this.el.sceneEl;\n var webXROptionalAttributes = sceneEl.getAttribute('webxr').optionalFeatures;\n webXROptionalAttributes.push('hand-tracking');\n sceneEl.setAttribute('webxr', {optionalFeatures: webXROptionalAttributes});\n this.onModelLoaded = this.onModelLoaded.bind(this);\n this.jointEls = [];\n this.controllerPresent = false;\n this.isPinched = false;\n this.pinchEventDetail = {position: new THREE.Vector3()};\n this.indexTipPosition = new THREE.Vector3();\n\n this.bindMethods();\n\n this.updateReferenceSpace = this.updateReferenceSpace.bind(this);\n this.el.sceneEl.addEventListener('enter-vr', this.updateReferenceSpace);\n this.el.sceneEl.addEventListener('exit-vr', this.updateReferenceSpace);\n },\n\n updateReferenceSpace: function () {\n var self = this;\n var xrSession = this.el.sceneEl.xrSession;\n this.referenceSpace = undefined;\n if (!xrSession) { return; }\n var referenceSpaceType = self.el.sceneEl.systems.webxr.sessionReferenceSpaceType;\n xrSession.requestReferenceSpace(referenceSpaceType).then(function (referenceSpace) {\n self.referenceSpace = referenceSpace.getOffsetReferenceSpace(new XRRigidTransform({x: 0, y: 1.5, z: 0}));\n }).catch(function (error) {\n self.el.sceneEl.systems.webxr.warnIfFeatureNotRequested(referenceSpaceType, 'tracked-controls-webxr uses reference space ' + referenceSpaceType);\n throw error;\n });\n },\n\n checkIfControllerPresent: function () {\n var data = this.data;\n var hand = data.hand ? data.hand : undefined;\n checkControllerPresentAndSetup(\n this, '',\n {hand: hand, iterateControllerProfiles: true, handTracking: true});\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n tick: function () {\n var sceneEl = this.el.sceneEl;\n var controller = this.el.components['tracked-controls'] && this.el.components['tracked-controls'].controller;\n var frame = sceneEl.frame;\n var trackedControlsWebXR = this.el.components['tracked-controls-webxr'];\n if (!controller || !frame || !trackedControlsWebXR) { return; }\n if (controller.hand) {\n this.el.object3D.position.set(0, 0, 0);\n this.el.object3D.rotation.set(0, 0, 0);\n if (frame.getJointPose) { this.updateHandModel(); }\n this.detectGesture();\n }\n },\n\n updateHandModel: function () {\n if (this.data.modelStyle === 'dots') {\n this.updateHandDotsModel();\n }\n\n if (this.data.modelStyle === 'mesh') {\n this.updateHandMeshModel();\n }\n },\n\n getBone: function (name) {\n var bones = this.bones;\n for (var i = 0; i < bones.length; i++) {\n if (bones[i].name === name) { return bones[i]; }\n }\n return null;\n },\n\n updateHandMeshModel: function () {\n var frame = this.el.sceneEl.frame;\n var controller = this.el.components['tracked-controls'] && this.el.components['tracked-controls'].controller;\n var referenceSpace = this.referenceSpace;\n\n if (!controller || !this.mesh || !referenceSpace) { return; }\n this.mesh.visible = false;\n for (var inputjoint of controller.hand.values()) {\n var bone;\n var jointPose;\n var jointTransform;\n jointPose = frame.getJointPose(inputjoint, referenceSpace);\n bone = this.getBone(inputjoint.jointName);\n if (bone != null && jointPose) {\n jointTransform = jointPose.transform;\n this.mesh.visible = true;\n bone.position.copy(jointTransform.position);\n bone.quaternion.copy(jointTransform.orientation);\n }\n }\n },\n\n updateHandDotsModel: function () {\n var frame = this.el.sceneEl.frame;\n var controller = this.el.components['tracked-controls'] && this.el.components['tracked-controls'].controller;\n var trackedControlsWebXR = this.el.components['tracked-controls-webxr'];\n var referenceSpace = trackedControlsWebXR.system.referenceSpace;\n var jointEl;\n var object3D;\n var jointPose;\n var i = 0;\n\n for (var inputjoint of controller.hand.values()) {\n jointEl = this.jointEls[i++];\n object3D = jointEl.object3D;\n jointPose = frame.getJointPose(inputjoint, referenceSpace);\n jointEl.object3D.visible = !!jointPose;\n if (!jointPose) { continue; }\n object3D.matrix.elements = jointPose.transform.matrix;\n object3D.matrix.decompose(object3D.position, object3D.rotation, object3D.scale);\n jointEl.setAttribute('scale', {x: jointPose.radius, y: jointPose.radius, z: jointPose.radius});\n }\n },\n\n detectGesture: function () {\n this.detectPinch();\n },\n\n detectPinch: (function () {\n var thumbTipPosition = new THREE.Vector3();\n return function () {\n var frame = this.el.sceneEl.frame;\n var indexTipPosition = this.indexTipPosition;\n var controller = this.el.components['tracked-controls'] && this.el.components['tracked-controls'].controller;\n var trackedControlsWebXR = this.el.components['tracked-controls-webxr'];\n var referenceSpace = this.referenceSpace || trackedControlsWebXR.system.referenceSpace;\n var indexTip = controller.hand.get('index-finger-tip');\n var thumbTip = controller.hand.get('thumb-tip');\n if (!indexTip ||\n !thumbTip) { return; }\n var indexTipPose = frame.getJointPose(indexTip, referenceSpace);\n var thumbTipPose = frame.getJointPose(thumbTip, referenceSpace);\n\n if (!indexTipPose || !thumbTipPose) { return; }\n\n thumbTipPosition.copy(thumbTipPose.transform.position);\n indexTipPosition.copy(indexTipPose.transform.position);\n\n var distance = indexTipPosition.distanceTo(thumbTipPosition);\n\n if (distance < PINCH_START_DISTANCE && this.isPinched === false) {\n this.isPinched = true;\n this.pinchEventDetail.position.copy(indexTipPosition).lerp(thumbTipPosition, PINCH_POSITION_INTERPOLATION);\n this.pinchEventDetail.position.y += 1.5;\n this.el.emit('pinchstarted', this.pinchEventDetail);\n }\n\n if (distance > PINCH_END_DISTANCE && this.isPinched === true) {\n this.isPinched = false;\n this.pinchEventDetail.position.copy(indexTipPosition).lerp(thumbTipPosition, PINCH_POSITION_INTERPOLATION);\n this.pinchEventDetail.position.y += 1.5;\n this.el.emit('pinchended', this.pinchEventDetail);\n }\n\n if (this.isPinched) {\n this.pinchEventDetail.position.copy(indexTipPosition).lerp(thumbTipPosition, PINCH_POSITION_INTERPOLATION);\n this.pinchEventDetail.position.y += 1.5;\n this.el.emit('pinchmoved', this.pinchEventDetail);\n }\n\n indexTipPosition.y += 1.5;\n };\n })(),\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n el.setAttribute('tracked-controls', {\n hand: data.hand,\n iterateControllerProfiles: true,\n handTrackingEnabled: true\n });\n this.initDefaultModel();\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n var controller;\n this.checkIfControllerPresent();\n controller = this.el.components['tracked-controls'] && this.el.components['tracked-controls'].controller;\n if (!this.el.getObject3D('mesh')) { return; }\n if (!controller || !controller.hand || !controller.hand[0]) {\n this.el.getObject3D('mesh').visible = false;\n }\n },\n\n initDefaultModel: function () {\n if (this.el.getObject3D('mesh')) { return; }\n if (this.data.modelStyle === 'dots') {\n this.initDotsModel();\n }\n\n if (this.data.modelStyle === 'mesh') {\n this.initMeshHandModel();\n }\n },\n\n initDotsModel: function () {\n // Add models just once.\n if (this.jointEls.length !== 0) { return; }\n for (var i = 0; i < JOINTS.length; ++i) {\n var jointEl = this.jointEl = document.createElement('a-entity');\n jointEl.setAttribute('geometry', {\n primitive: 'sphere',\n radius: 1.0\n });\n jointEl.setAttribute('material', {color: this.data.modelColor});\n jointEl.object3D.visible = false;\n this.el.appendChild(jointEl);\n this.jointEls.push(jointEl);\n }\n },\n\n initMeshHandModel: function () {\n var modelURL = this.data.hand === 'left' ? LEFT_HAND_MODEL_URL : RIGHT_HAND_MODEL_URL;\n this.el.setAttribute('gltf-model', modelURL);\n },\n\n onModelLoaded: function () {\n var mesh = this.mesh = this.el.getObject3D('mesh').children[0];\n var skinnedMesh = this.skinnedMesh = mesh.getObjectByProperty('type', 'SkinnedMesh');\n if (!this.skinnedMesh) { return; }\n this.bones = skinnedMesh.skeleton.bones;\n this.el.removeObject3D('mesh');\n mesh.position.set(0, 1.5, 0);\n mesh.rotation.set(0, 0, 0);\n skinnedMesh.frustumCulled = false;\n skinnedMesh.material = new THREE.MeshStandardMaterial({skinning: true, color: this.data.modelColor});\n this.el.setObject3D('mesh', mesh);\n }\n});\n\n","var register = require('../core/component').registerComponent;\n\nmodule.exports.Component = register('hide-on-enter-ar', {\n init: function () {\n var self = this;\n this.el.sceneEl.addEventListener('enter-vr', function () {\n if (self.el.sceneEl.is('ar-mode')) {\n self.el.object3D.visible = false;\n }\n });\n this.el.sceneEl.addEventListener('exit-vr', function () {\n self.el.object3D.visible = true;\n });\n }\n});\n","var bind = require('../utils/bind');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\n// See Profiles Registry:\n// https://github.com/immersive-web/webxr-input-profiles/tree/master/packages/registry\n// TODO: Add a more robust system for deriving gamepad name.\nvar GAMEPAD_ID = 'hp-mixed-reality';\n\nvar HP_MIXEDL_REALITY_MODEL_GLB_BASE_URL = 'https://cdn.aframe.io/controllers/hp/mixed-reality/';\n\nvar HP_MIXED_REALITY_POSITION_OFFSET = {x: 0, y: 0, z: 0.06};\nvar HP_MIXED_REALITY_ROTATION_OFFSET = {_x: Math.PI / 4, _y: 0, _z: 0, _order: 'XYZ'};\n\n/**\n * Button IDs:\n * 0 - trigger\n * 1 - grip\n * 3 - X / A\n * 4 - Y / B\n *\n * Axis:\n * 2 - joystick x axis\n * 3 - joystick y axis\n */\nvar INPUT_MAPPING_WEBXR = {\n left: {\n axes: {touchpad: [2, 3]},\n buttons: ['trigger', 'grip', 'none', 'thumbstick', 'xbutton', 'ybutton']\n },\n right: {\n axes: {touchpad: [2, 3]},\n buttons: ['trigger', 'grip', 'none', 'thumbstick', 'abutton', 'bbutton']\n }\n};\n\n/**\n * HP Mixed Reality Controls\n */\nmodule.exports.Component = registerComponent('hp-mixed-reality-controls', {\n schema: {\n hand: {default: 'none'},\n model: {default: true},\n orientationOffset: {type: 'vec3'}\n },\n\n mapping: INPUT_MAPPING_WEBXR,\n\n init: function () {\n var self = this;\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self, self.data.hand); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self, self.data.hand); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self, self.data.hand); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self, self.data.hand); };\n this.previousButtonValues = {};\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n\n this.bindMethods();\n },\n\n update: function () {\n var data = this.data;\n this.controllerIndex = data.hand === 'right' ? 0 : data.hand === 'left' ? 1 : 2;\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('axismove', this.onAxisMoved);\n el.addEventListener('model-loaded', this.onModelLoaded);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('axismove', this.onAxisMoved);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n var data = this.data;\n checkControllerPresentAndSetup(this, GAMEPAD_ID,\n {index: this.controllerIndex, hand: data.hand});\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n\n el.setAttribute('tracked-controls', {\n // TODO: verify expected behavior between reserved prefixes.\n idPrefix: GAMEPAD_ID,\n hand: data.hand,\n controller: this.controllerIndex,\n orientationOffset: data.orientationOffset\n });\n\n // Load model.\n if (!this.data.model) { return; }\n this.el.setAttribute('gltf-model', HP_MIXEDL_REALITY_MODEL_GLB_BASE_URL + this.data.hand + '.glb');\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n // Note that due to gamepadconnected event propagation issues, we don't rely on events.\n this.checkIfControllerPresent();\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping[this.data.hand].buttons[evt.detail.id];\n var analogValue;\n\n if (!button) { return; }\n if (button === 'trigger') {\n analogValue = evt.detail.state.value;\n console.log('analog value of trigger press: ' + analogValue);\n }\n\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n\n if (!this.data.model) { return; }\n\n controllerObject3D.position.copy(HP_MIXED_REALITY_POSITION_OFFSET);\n controllerObject3D.rotation.copy(HP_MIXED_REALITY_ROTATION_OFFSET);\n\n this.el.emit('controllermodelready', {\n name: 'hp-mixed-reality-controls',\n model: this.data.model,\n rayOrigin: new THREE.Vector3(0, 0, 0)\n });\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n }\n});\n","require('./animation');\nrequire('./camera');\nrequire('./cursor');\nrequire('./daydream-controls');\nrequire('./gearvr-controls');\nrequire('./geometry');\nrequire('./generic-tracked-controller-controls');\nrequire('./gltf-model');\nrequire('./hand-tracking-controls');\nrequire('./hand-controls');\nrequire('./hide-on-enter-ar');\nrequire('./hp-mixed-reality-controls');\nrequire('./layer');\nrequire('./laser-controls');\nrequire('./light');\nrequire('./line');\nrequire('./link');\nrequire('./look-controls');\nrequire('./magicleap-controls');\nrequire('./material');\nrequire('./obj-model');\nrequire('./oculus-go-controls');\nrequire('./oculus-touch-controls');\nrequire('./position');\nrequire('./raycaster');\nrequire('./rotation');\nrequire('./scale');\nrequire('./shadow');\nrequire('./sound');\nrequire('./text');\nrequire('./tracked-controls');\nrequire('./tracked-controls-webvr');\nrequire('./tracked-controls-webxr');\nrequire('./visible');\nrequire('./valve-index-controls');\nrequire('./vive-controls');\nrequire('./vive-focus-controls');\nrequire('./wasd-controls');\nrequire('./windows-motion-controls');\n\nrequire('./scene/ar-hit-test');\nrequire('./scene/background');\nrequire('./scene/debug');\nrequire('./scene/device-orientation-permission-ui');\nrequire('./scene/embedded');\nrequire('./scene/inspector');\nrequire('./scene/fog');\nrequire('./scene/keyboard-shortcuts');\nrequire('./scene/pool');\nrequire('./scene/reflection');\nrequire('./scene/screenshot');\nrequire('./scene/stats');\nrequire('./scene/vr-mode-ui');\n","var registerComponent = require('../core/component').registerComponent;\nvar utils = require('../utils/');\n\nregisterComponent('laser-controls', {\n schema: {\n hand: {default: 'right'},\n model: {default: true},\n defaultModelColor: {type: 'color', default: 'grey'}\n },\n\n init: function () {\n var config = this.config;\n var data = this.data;\n var el = this.el;\n var self = this;\n var controlsConfiguration = {hand: data.hand, model: data.model};\n\n // Set all controller models.\n el.setAttribute('daydream-controls', controlsConfiguration);\n el.setAttribute('gearvr-controls', controlsConfiguration);\n el.setAttribute('hp-mixed-reality-controls', controlsConfiguration);\n el.setAttribute('magicleap-controls', controlsConfiguration);\n el.setAttribute('oculus-go-controls', controlsConfiguration);\n el.setAttribute('oculus-touch-controls', controlsConfiguration);\n el.setAttribute('valve-index-controls', controlsConfiguration);\n el.setAttribute('vive-controls', controlsConfiguration);\n el.setAttribute('vive-focus-controls', controlsConfiguration);\n el.setAttribute('windows-motion-controls', controlsConfiguration);\n el.setAttribute('generic-tracked-controller-controls', {hand: controlsConfiguration.hand});\n\n // Wait for controller to connect, or have a valid pointing pose, before creating ray\n el.addEventListener('controllerconnected', createRay);\n el.addEventListener('controllerdisconnected', hideRay);\n el.addEventListener('controllermodelready', function (evt) {\n createRay(evt);\n self.modelReady = true;\n });\n\n function createRay (evt) {\n var controllerConfig = config[evt.detail.name];\n\n if (!controllerConfig) { return; }\n\n // Show the line unless a particular config opts to hide it, until a controllermodelready\n // event comes through.\n var raycasterConfig = utils.extend({\n showLine: true\n }, controllerConfig.raycaster || {});\n\n // The controllermodelready event contains a rayOrigin that takes into account\n // offsets specific to the loaded model.\n if (evt.detail.rayOrigin) {\n raycasterConfig.origin = evt.detail.rayOrigin.origin;\n raycasterConfig.direction = evt.detail.rayOrigin.direction;\n raycasterConfig.showLine = true;\n }\n\n // Only apply a default raycaster if it does not yet exist. This prevents it overwriting\n // config applied from a controllermodelready event.\n if (evt.detail.rayOrigin || !self.modelReady) {\n el.setAttribute('raycaster', raycasterConfig);\n } else {\n el.setAttribute('raycaster', 'showLine', true);\n }\n\n el.setAttribute('cursor', utils.extend({\n fuse: false\n }, controllerConfig.cursor));\n }\n\n function hideRay () {\n el.setAttribute('raycaster', 'showLine', false);\n }\n },\n\n config: {\n 'daydream-controls': {\n cursor: {downEvents: ['trackpaddown', 'triggerdown'], upEvents: ['trackpadup', 'triggerup']}\n },\n\n 'gearvr-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']},\n raycaster: {origin: {x: 0, y: 0.0010, z: 0}}\n },\n\n 'generic-tracked-controller-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']}\n },\n\n 'hp-mixed-reality-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']},\n raycaster: {origin: {x: 0, y: 0, z: 0}}\n },\n\n 'magicleap-controls': {\n cursor: {downEvents: ['trackpaddown', 'triggerdown'], upEvents: ['trackpadup', 'triggerup']}\n },\n\n 'oculus-go-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']},\n raycaster: {origin: {x: 0, y: 0.0005, z: 0}}\n },\n\n 'oculus-touch-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']},\n raycaster: {origin: {x: 0, y: 0, z: 0}}\n },\n\n 'valve-index-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']}\n },\n\n 'vive-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']}\n },\n\n 'vive-focus-controls': {\n cursor: {downEvents: ['trackpaddown', 'triggerdown'], upEvents: ['trackpadup', 'triggerup']}\n },\n\n 'windows-motion-controls': {\n cursor: {downEvents: ['triggerdown'], upEvents: ['triggerup']},\n raycaster: {showLine: false}\n }\n }\n});\n","/* global THREE, XRRigidTransform, XRWebGLBinding */\nvar registerComponent = require('../core/component').registerComponent;\nvar utils = require('../utils/');\nvar warn = utils.debug('components:layer:warn');\n\nmodule.exports.Component = registerComponent('layer', {\n schema: {\n type: {default: 'quad', oneOf: ['quad', 'monocubemap', 'stereocubemap']},\n src: {type: 'map'},\n rotateCubemap: {default: false},\n width: {default: 0},\n height: {default: 0}\n },\n\n init: function () {\n var gl = this.el.sceneEl.renderer.getContext();\n\n this.quaternion = new THREE.Quaternion();\n this.position = new THREE.Vector3();\n\n this.bindMethods();\n this.needsRedraw = false;\n this.frameBuffer = gl.createFramebuffer();\n var requiredFeatures = this.el.sceneEl.getAttribute('webxr').requiredFeatures;\n requiredFeatures.push('layers');\n this.el.sceneEl.getAttribute('webxr', 'requiredFeatures', requiredFeatures);\n this.el.sceneEl.addEventListener('enter-vr', this.onEnterVR);\n this.el.sceneEl.addEventListener('exit-vr', this.onExitVR);\n },\n\n bindMethods: function () {\n this.onRequestedReferenceSpace = this.onRequestedReferenceSpace.bind(this);\n this.onEnterVR = this.onEnterVR.bind(this);\n this.onExitVR = this.onExitVR.bind(this);\n },\n\n update: function (oldData) {\n if (this.data.src !== oldData.src) { this.updateSrc(); }\n },\n\n updateSrc: function () {\n var type = this.data.type;\n this.texture = undefined;\n if (type === 'quad') {\n this.loadQuadImage();\n return;\n }\n\n if (type === 'monocubemap' || type === 'stereocubemap') {\n this.loadCubeMapImages();\n return;\n }\n },\n\n loadCubeMapImages: function () {\n var glayer;\n var xrGLFactory = this.xrGLFactory;\n var frame = this.el.sceneEl.frame;\n var src = this.data.src;\n var type = this.data.type;\n\n this.visibilityChanged = false;\n if (!this.layer) { return; }\n if (type !== 'monocubemap' && type !== 'stereocubemap') { return; }\n\n if (!src.complete) {\n this.pendingCubeMapUpdate = true;\n } else {\n this.pendingCubeMapUpdate = false;\n }\n\n if (!this.loadingScreen) {\n this.loadingScreen = true;\n } else {\n this.loadingScreen = false;\n }\n\n if (type === 'monocubemap') {\n glayer = xrGLFactory.getSubImage(this.layer, frame);\n this.loadCubeMapImage(glayer.colorTexture, src, 0);\n } else {\n glayer = xrGLFactory.getSubImage(this.layer, frame, 'left');\n this.loadCubeMapImage(glayer.colorTexture, src, 0);\n glayer = xrGLFactory.getSubImage(this.layer, frame, 'right');\n this.loadCubeMapImage(glayer.colorTexture, src, 6);\n }\n },\n\n loadQuadImage: function () {\n var src = this.data.src;\n var self = this;\n this.el.sceneEl.systems.material.loadTexture(src, {src: src}, function textureLoaded (texture) {\n self.el.sceneEl.renderer.initTexture(texture);\n self.texture = texture;\n if (src.tagName === 'VIDEO') { setTimeout(function () { self.textureIsVideo = true; }, 1000); }\n if (self.layer) {\n self.layer.height = self.data.height / 2 || self.texture.image.height / 1000;\n self.layer.width = self.data.width / 2 || self.texture.image.width / 1000;\n self.needsRedraw = true;\n }\n self.updateQuadPanel();\n });\n },\n\n preGenerateCubeMapTextures: function (src, callback) {\n if (this.data.type === 'monocubemap') {\n this.generateCubeMapTextures(src, 0, callback);\n } else {\n this.generateCubeMapTextures(src, 0, callback);\n this.generateCubeMapTextures(src, 6, callback);\n }\n },\n\n generateCubeMapTextures: function (src, faceOffset, callback) {\n var data = this.data;\n var cubeFaceSize = this.cubeFaceSize;\n var textureSourceCubeFaceSize = Math.min(src.width, src.height);\n var cubefaceTextures = [];\n var imgTmp0;\n var imgTmp2;\n\n for (var i = 0; i < 6; i++) {\n var tempCanvas = document.createElement('CANVAS');\n tempCanvas.width = tempCanvas.height = cubeFaceSize;\n var tempCanvasContext = tempCanvas.getContext('2d');\n\n if (data.rotateCubemap) {\n if (i === 2 || i === 3) {\n tempCanvasContext.save();\n tempCanvasContext.translate(cubeFaceSize, cubeFaceSize);\n tempCanvasContext.rotate(Math.PI);\n }\n }\n\n // Note that this call to drawImage will not only copy the bytes to the\n // canvas but also could resized the image if our cube face size is\n // smaller than the source image due to GL max texture size.\n tempCanvasContext.drawImage(\n src,\n (i + faceOffset) * textureSourceCubeFaceSize, // top left x coord in source\n 0, // top left y coord in source\n textureSourceCubeFaceSize, // x pixel count from source\n textureSourceCubeFaceSize, // y pixel count from source\n 0, // dest x offset in the canvas\n 0, // dest y offset in the canvas\n cubeFaceSize, // x pixel count in dest\n cubeFaceSize // y pixel count in dest\n );\n\n tempCanvasContext.restore();\n\n if (callback) { callback(); }\n cubefaceTextures.push(tempCanvas);\n }\n\n if (data.rotateCubemap) {\n imgTmp0 = cubefaceTextures[0];\n imgTmp2 = cubefaceTextures[1];\n\n cubefaceTextures[0] = imgTmp2;\n cubefaceTextures[1] = imgTmp0;\n\n imgTmp0 = cubefaceTextures[4];\n imgTmp2 = cubefaceTextures[5];\n\n cubefaceTextures[4] = imgTmp2;\n cubefaceTextures[5] = imgTmp0;\n }\n\n if (callback) { callback(); }\n return cubefaceTextures;\n },\n\n loadCubeMapImage: function (layerColorTexture, src, faceOffset) {\n var gl = this.el.sceneEl.renderer.getContext();\n var cubefaceTextures;\n\n // dont flip the pixels as we load them into the texture buffer.\n // TEXTURE_CUBE_MAP expects the Y to be flipped for the faces and it already\n // is flipped in our texture image.\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);\n gl.bindTexture(gl.TEXTURE_CUBE_MAP, layerColorTexture);\n\n if (!src.complete || this.loadingScreen) {\n cubefaceTextures = this.loadingScreenImages;\n } else {\n cubefaceTextures = this.generateCubeMapTextures(src, faceOffset);\n }\n\n var errorCode = 0;\n cubefaceTextures.forEach(function (canvas, i) {\n gl.texSubImage2D(\n gl.TEXTURE_CUBE_MAP_POSITIVE_X + i,\n 0,\n 0, 0,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n canvas\n );\n errorCode = gl.getError();\n });\n\n if (errorCode !== 0) {\n console.log('renderingError, WebGL Error Code: ' + errorCode);\n }\n gl.bindTexture(gl.TEXTURE_CUBE_MAP, null);\n },\n\n tick: function () {\n if (!this.el.sceneEl.xrSession) { return; }\n if (!this.layer && this.el.sceneEl.is('vr-mode')) { this.initLayer(); }\n this.updateTransform();\n if (this.data.src.complete && (this.pendingCubeMapUpdate || this.loadingScreen || this.visibilityChanged)) { this.loadCubeMapImages(); }\n if (!this.needsRedraw && !this.layer.needsRedraw && !this.textureIsVideo) { return; }\n if (this.data.type === 'quad') { this.draw(); }\n this.needsRedraw = false;\n },\n\n initLayer: function () {\n var self = this;\n var type = this.data.type;\n\n this.el.sceneEl.xrSession.onvisibilitychange = function (evt) {\n self.visibilityChanged = evt.session.visibilityState !== 'hidden';\n };\n\n if (type === 'quad') {\n this.initQuadLayer();\n return;\n }\n\n if (type === 'monocubemap' || type === 'stereocubemap') {\n this.initCubeMapLayer();\n return;\n }\n },\n\n initQuadLayer: function () {\n var sceneEl = this.el.sceneEl;\n var gl = sceneEl.renderer.getContext();\n var xrGLFactory = this.xrGLFactory = new XRWebGLBinding(sceneEl.xrSession, gl);\n if (!this.texture) { return; }\n this.layer = xrGLFactory.createQuadLayer({\n space: this.referenceSpace,\n viewPixelHeight: 2048,\n viewPixelWidth: 2048,\n height: this.data.height / 2 || this.texture.image.height / 1000,\n width: this.data.width / 2 || this.texture.image.width / 1000\n });\n this.initLoadingScreenImages();\n sceneEl.renderer.xr.addLayer(this.layer);\n },\n\n initCubeMapLayer: function () {\n var src = this.data.src;\n var sceneEl = this.el.sceneEl;\n var gl = sceneEl.renderer.getContext();\n var glSizeLimit = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n var cubeFaceSize = this.cubeFaceSize = Math.min(glSizeLimit, Math.min(src.width, src.height));\n var xrGLFactory = this.xrGLFactory = new XRWebGLBinding(sceneEl.xrSession, gl);\n this.layer = xrGLFactory.createCubeLayer({\n space: this.referenceSpace,\n viewPixelWidth: cubeFaceSize,\n viewPixelHeight: cubeFaceSize,\n layout: this.data.type === 'monocubemap' ? 'mono' : 'stereo',\n isStatic: false\n });\n\n this.initLoadingScreenImages();\n this.loadCubeMapImages();\n sceneEl.renderer.xr.addLayer(this.layer);\n },\n\n initLoadingScreenImages: function () {\n var cubeFaceSize = this.cubeFaceSize;\n var loadingScreenImages = this.loadingScreenImages = [];\n for (var i = 0; i < 6; i++) {\n var tempCanvas = document.createElement('CANVAS');\n tempCanvas.width = tempCanvas.height = cubeFaceSize;\n var tempCanvasContext = tempCanvas.getContext('2d');\n tempCanvas.width = tempCanvas.height = cubeFaceSize;\n tempCanvasContext.fillStyle = 'black';\n tempCanvasContext.fillRect(0, 0, cubeFaceSize, cubeFaceSize);\n if (i !== 2 && i !== 3) {\n tempCanvasContext.translate(cubeFaceSize, 0);\n tempCanvasContext.scale(-1, 1);\n tempCanvasContext.fillStyle = 'white';\n tempCanvasContext.font = '30px Arial';\n tempCanvasContext.fillText('Loading', cubeFaceSize / 2, cubeFaceSize / 2);\n }\n loadingScreenImages.push(tempCanvas);\n }\n },\n\n destroyLayer: function () {\n if (!this.layer) { return; }\n this.el.sceneEl.renderer.xr.removeLayer(this.layer);\n this.layer.destroy();\n this.layer = undefined;\n },\n\n toggleCompositorLayer: function () {\n this.enableCompositorLayer(!this.layerEnabled);\n },\n\n enableCompositorLayer: function (enable) {\n this.layerEnabled = enable;\n this.quadPanelEl.object3D.visible = !this.layerEnabled;\n },\n\n updateQuadPanel: function () {\n var quadPanelEl = this.quadPanelEl;\n if (!this.quadPanelEl) {\n quadPanelEl = this.quadPanelEl = document.createElement('a-entity');\n this.el.appendChild(quadPanelEl);\n }\n\n quadPanelEl.setAttribute('material', {\n shader: 'flat',\n src: this.data.src,\n transparent: true\n });\n\n quadPanelEl.setAttribute('geometry', {\n primitive: 'plane',\n height: this.data.height || this.texture.image.height / 1000,\n width: this.data.width || this.texture.image.height / 1000\n });\n },\n\n draw: function () {\n var sceneEl = this.el.sceneEl;\n var gl = this.el.sceneEl.renderer.getContext();\n var glayer = this.xrGLFactory.getSubImage(this.layer, sceneEl.frame);\n var texture = sceneEl.renderer.properties.get(this.texture).__webglTexture;\n var previousFrameBuffer = gl.getParameter(gl.FRAMEBUFFER_BINDING);\n\n gl.viewport(glayer.viewport.x, glayer.viewport.y, glayer.viewport.width, glayer.viewport.height);\n gl.bindFramebuffer(gl.FRAMEBUFFER, this.frameBuffer);\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, glayer.colorTexture, 0);\n\n blitTexture(gl, texture, glayer, this.data.src);\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, previousFrameBuffer);\n },\n\n updateTransform: function () {\n var el = this.el;\n var position = this.position;\n var quaternion = this.quaternion;\n el.object3D.updateMatrixWorld();\n position.setFromMatrixPosition(el.object3D.matrixWorld);\n quaternion.setFromRotationMatrix(el.object3D.matrixWorld);\n if (!this.layerEnabled) { position.set(0, 0, 100000000); }\n this.layer.transform = new XRRigidTransform(position, quaternion);\n },\n\n onEnterVR: function () {\n var sceneEl = this.el.sceneEl;\n var xrSession = sceneEl.xrSession;\n if (!sceneEl.hasWebXR || !XRWebGLBinding || !xrSession) {\n warn('The layer component requires WebXR and the layers API enabled');\n return;\n }\n xrSession.requestReferenceSpace('local-floor').then(this.onRequestedReferenceSpace);\n this.needsRedraw = true;\n this.layerEnabled = true;\n if (this.quadPanelEl) {\n this.quadPanelEl.object3D.visible = false;\n }\n if (this.data.src.play) { this.data.src.play(); }\n },\n\n onExitVR: function () {\n if (this.quadPanelEl) {\n this.quadPanelEl.object3D.visible = true;\n }\n this.destroyLayer();\n },\n\n onRequestedReferenceSpace: function (referenceSpace) {\n this.referenceSpace = referenceSpace;\n }\n});\n\nfunction blitTexture (gl, texture, subImage, textureEl) {\n var xrReadFramebuffer = gl.createFramebuffer();\n let x1offset = subImage.viewport.x;\n let y1offset = subImage.viewport.y;\n let x2offset = subImage.viewport.x + subImage.viewport.width;\n let y2offset = subImage.viewport.y + subImage.viewport.height;\n\n // Update video texture.\n if (textureEl.tagName === 'VIDEO') {\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, textureEl.width, textureEl.height, gl.RGB, gl.UNSIGNED_BYTE, textureEl);\n }\n\n // Bind texture to read framebuffer.\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, xrReadFramebuffer);\n gl.framebufferTexture2D(gl.READ_FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n // Blit into layer buffer.\n gl.readBuffer(gl.COLOR_ATTACHMENT0);\n gl.blitFramebuffer(0, 0, textureEl.width, textureEl.height, x1offset, y1offset, x2offset, y2offset, gl.COLOR_BUFFER_BIT, gl.NEAREST);\n\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);\n gl.deleteFramebuffer(xrReadFramebuffer);\n}\n","var bind = require('../utils/bind');\nvar utils = require('../utils');\nvar diff = utils.diff;\nvar debug = require('../utils/debug');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar mathUtils = require('../utils/math');\n\nvar degToRad = THREE.MathUtils.degToRad;\nvar warn = debug('components:light:warn');\nvar CubeLoader = new THREE.CubeTextureLoader();\n\nvar probeCache = {};\n\n/**\n * Light component.\n */\nmodule.exports.Component = registerComponent('light', {\n schema: {\n angle: {default: 60, if: {type: ['spot']}},\n color: {type: 'color', if: {type: ['ambient', 'directional', 'hemisphere', 'point', 'spot']}},\n envMap: {default: '', if: {type: ['probe']}},\n groundColor: {type: 'color', if: {type: ['hemisphere']}},\n decay: {default: 1, if: {type: ['point', 'spot']}},\n distance: {default: 0.0, min: 0, if: {type: ['point', 'spot']}},\n intensity: {default: 1.0, min: 0, if: {type: ['ambient', 'directional', 'hemisphere', 'point', 'spot', 'probe']}},\n penumbra: {default: 0, min: 0, max: 1, if: {type: ['spot']}},\n type: {\n default: 'directional',\n oneOf: ['ambient', 'directional', 'hemisphere', 'point', 'spot', 'probe'],\n schemaChange: true\n },\n target: {type: 'selector', if: {type: ['spot', 'directional']}},\n\n // Shadows.\n castShadow: {default: false, if: {type: ['point', 'spot', 'directional']}},\n shadowBias: {default: 0, if: {castShadow: true}},\n shadowCameraFar: {default: 500, if: {castShadow: true}},\n shadowCameraFov: {default: 90, if: {castShadow: true}},\n shadowCameraNear: {default: 0.5, if: {castShadow: true}},\n shadowCameraTop: {default: 5, if: {castShadow: true}},\n shadowCameraRight: {default: 5, if: {castShadow: true}},\n shadowCameraBottom: {default: -5, if: {castShadow: true}},\n shadowCameraLeft: {default: -5, if: {castShadow: true}},\n shadowCameraVisible: {default: false, if: {castShadow: true}},\n shadowCameraAutomatic: {default: '', if: {type: ['directional']}},\n shadowMapHeight: {default: 512, if: {castShadow: true}},\n shadowMapWidth: {default: 512, if: {castShadow: true}},\n shadowRadius: {default: 1, if: {castShadow: true}}\n },\n\n /**\n * Notifies scene a light has been added to remove default lighting.\n */\n init: function () {\n var el = this.el;\n this.light = null;\n this.defaultTarget = null;\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n this.system.registerLight(el);\n },\n\n /**\n * (Re)create or update light.\n */\n update: function (oldData) {\n var data = this.data;\n var diffData = diff(data, oldData);\n var light = this.light;\n var rendererSystem = this.rendererSystem;\n var self = this;\n\n // Existing light.\n if (light && !('type' in diffData)) {\n var shadowsLoaded = false;\n // Light type has not changed. Update light.\n Object.keys(diffData).forEach(function (key) {\n var value = data[key];\n\n switch (key) {\n case 'color': {\n light.color.set(value);\n rendererSystem.applyColorCorrection(light.color);\n break;\n }\n\n case 'groundColor': {\n light.groundColor.set(value);\n rendererSystem.applyColorCorrection(light.groundColor);\n break;\n }\n\n case 'angle': {\n light.angle = degToRad(value);\n break;\n }\n\n case 'target': {\n // Reset target if selector is null.\n if (value === null) {\n if (data.type === 'spot' || data.type === 'directional') {\n light.target = self.defaultTarget;\n }\n } else {\n // Target specified, set target to entity's `object3D` when it is loaded.\n if (value.hasLoaded) {\n self.onSetTarget(value, light);\n } else {\n value.addEventListener('loaded', bind(self.onSetTarget, self, value, light));\n }\n }\n break;\n }\n\n case 'envMap':\n self.updateProbeMap(data, light);\n break;\n\n case 'castShadow':\n case 'shadowBias':\n case 'shadowCameraFar':\n case 'shadowCameraFov':\n case 'shadowCameraNear':\n case 'shadowCameraTop':\n case 'shadowCameraRight':\n case 'shadowCameraBottom':\n case 'shadowCameraLeft':\n case 'shadowCameraVisible':\n case 'shadowMapHeight':\n case 'shadowMapWidth':\n case 'shadowRadius':\n if (!shadowsLoaded) {\n self.updateShadow();\n shadowsLoaded = true;\n }\n break;\n\n case 'shadowCameraAutomatic':\n if (data.shadowCameraAutomatic) {\n self.shadowCameraAutomaticEls = Array.from(document.querySelectorAll(data.shadowCameraAutomatic));\n } else {\n self.shadowCameraAutomaticEls = [];\n }\n break;\n\n default: {\n light[key] = value;\n }\n }\n });\n return;\n }\n\n // No light yet or light type has changed. Create and add light.\n this.setLight(this.data);\n this.updateShadow();\n },\n\n tick: (function () {\n var bbox = new THREE.Box3();\n var normal = new THREE.Vector3();\n var cameraWorldPosition = new THREE.Vector3();\n var tempMat = new THREE.Matrix4();\n var sphere = new THREE.Sphere();\n var tempVector = new THREE.Vector3();\n\n return function () {\n if (!(\n this.data.type === 'directional' &&\n this.light.shadow &&\n this.light.shadow.camera instanceof THREE.OrthographicCamera &&\n this.shadowCameraAutomaticEls.length\n )) return;\n\n var camera = this.light.shadow.camera;\n camera.getWorldDirection(normal);\n camera.getWorldPosition(cameraWorldPosition);\n tempMat.copy(camera.matrixWorld);\n tempMat.invert();\n\n camera.near = 1;\n camera.left = 100000;\n camera.right = -100000;\n camera.top = -100000;\n camera.bottom = 100000;\n this.shadowCameraAutomaticEls.forEach(function (el) {\n bbox.setFromObject(el.object3D);\n bbox.getBoundingSphere(sphere);\n var distanceToPlane = mathUtils.distanceOfPointFromPlane(cameraWorldPosition, normal, sphere.center);\n var pointOnCameraPlane = mathUtils.nearestPointInPlane(cameraWorldPosition, normal, sphere.center, tempVector);\n\n var pointInXYPlane = pointOnCameraPlane.applyMatrix4(tempMat);\n camera.near = Math.min(-distanceToPlane - sphere.radius - 1, camera.near);\n camera.left = Math.min(-sphere.radius + pointInXYPlane.x, camera.left);\n camera.right = Math.max(sphere.radius + pointInXYPlane.x, camera.right);\n camera.top = Math.max(sphere.radius + pointInXYPlane.y, camera.top);\n camera.bottom = Math.min(-sphere.radius + pointInXYPlane.y, camera.bottom);\n });\n camera.updateProjectionMatrix();\n };\n }()),\n\n setLight: function (data) {\n var el = this.el;\n var newLight = this.getLight(data);\n if (newLight) {\n if (this.light) {\n el.removeObject3D('light');\n }\n\n this.light = newLight;\n this.light.el = el;\n el.setObject3D('light', this.light);\n\n // HACK solution for issue #1624\n if (data.type === 'spot' || data.type === 'directional' || data.type === 'hemisphere') {\n el.getObject3D('light').translateY(-1);\n }\n\n // set and position default lighttarget as a child to enable spotlight orientation\n if (data.type === 'spot') {\n el.setObject3D('light-target', this.defaultTarget);\n el.getObject3D('light-target').position.set(0, 0, -1);\n }\n\n if (data.shadowCameraAutomatic) {\n this.shadowCameraAutomaticEls = Array.from(document.querySelectorAll(data.shadowCameraAutomatic));\n } else {\n this.shadowCameraAutomaticEls = [];\n }\n }\n },\n\n /**\n * Updates shadow-related properties on the current light.\n */\n updateShadow: function () {\n var el = this.el;\n var data = this.data;\n var light = this.light;\n\n light.castShadow = data.castShadow;\n\n // Shadow camera helper.\n var cameraHelper = el.getObject3D('cameraHelper');\n if (data.shadowCameraVisible && !cameraHelper) {\n el.setObject3D('cameraHelper', new THREE.CameraHelper(light.shadow.camera));\n } else if (!data.shadowCameraVisible && cameraHelper) {\n el.removeObject3D('cameraHelper');\n }\n\n if (!data.castShadow) { return light; }\n\n // Shadow appearance.\n light.shadow.bias = data.shadowBias;\n light.shadow.radius = data.shadowRadius;\n light.shadow.mapSize.height = data.shadowMapHeight;\n light.shadow.mapSize.width = data.shadowMapWidth;\n\n // Shadow camera.\n light.shadow.camera.near = data.shadowCameraNear;\n light.shadow.camera.far = data.shadowCameraFar;\n if (light.shadow.camera instanceof THREE.OrthographicCamera) {\n light.shadow.camera.top = data.shadowCameraTop;\n light.shadow.camera.right = data.shadowCameraRight;\n light.shadow.camera.bottom = data.shadowCameraBottom;\n light.shadow.camera.left = data.shadowCameraLeft;\n } else {\n light.shadow.camera.fov = data.shadowCameraFov;\n }\n light.shadow.camera.updateProjectionMatrix();\n\n if (cameraHelper) { cameraHelper.update(); }\n },\n\n /**\n * Creates a new three.js light object given data object defining the light.\n *\n * @param {object} data\n */\n getLight: function (data) {\n var angle = data.angle;\n var color = new THREE.Color(data.color);\n this.rendererSystem.applyColorCorrection(color);\n color = color.getHex();\n var decay = data.decay;\n var distance = data.distance;\n var groundColor = new THREE.Color(data.groundColor);\n this.rendererSystem.applyColorCorrection(groundColor);\n groundColor = groundColor.getHex();\n var intensity = data.intensity;\n var type = data.type;\n var target = data.target;\n var light = null;\n\n switch (type.toLowerCase()) {\n case 'ambient': {\n return new THREE.AmbientLight(color, intensity);\n }\n\n case 'directional': {\n light = new THREE.DirectionalLight(color, intensity);\n this.defaultTarget = light.target;\n if (target) {\n if (target.hasLoaded) {\n this.onSetTarget(target, light);\n } else {\n target.addEventListener('loaded', bind(this.onSetTarget, this, target, light));\n }\n }\n return light;\n }\n\n case 'hemisphere': {\n return new THREE.HemisphereLight(color, groundColor, intensity);\n }\n\n case 'point': {\n return new THREE.PointLight(color, intensity, distance, decay);\n }\n\n case 'spot': {\n light = new THREE.SpotLight(color, intensity, distance, degToRad(angle), data.penumbra, decay);\n this.defaultTarget = light.target;\n if (target) {\n if (target.hasLoaded) {\n this.onSetTarget(target, light);\n } else {\n target.addEventListener('loaded', bind(this.onSetTarget, this, target, light));\n }\n }\n return light;\n }\n\n case 'probe': {\n light = new THREE.LightProbe();\n this.updateProbeMap(data, light);\n return light;\n }\n\n default: {\n warn('%s is not a valid light type. ' +\n 'Choose from ambient, directional, hemisphere, point, spot.', type);\n }\n }\n },\n\n /**\n * Generate the spherical harmonics for the LightProbe from a cube map\n */\n updateProbeMap: function (data, light) {\n if (!data.envMap) {\n // reset parameters if no map\n light.copy(new THREE.LightProbe());\n }\n\n if (probeCache[data.envMap] instanceof window.Promise) {\n probeCache[data.envMap].then(function (tempLightProbe) {\n light.copy(tempLightProbe);\n });\n }\n if (probeCache[data.envMap] instanceof THREE.LightProbe) {\n light.copy(probeCache[data.envMap]);\n }\n probeCache[data.envMap] = new window.Promise(function (resolve) {\n utils.srcLoader.validateCubemapSrc(data.envMap, function loadEnvMap (urls) {\n CubeLoader.load(urls, function (cube) {\n var tempLightProbe = THREE.LightProbeGenerator.fromCubeTexture(cube);\n probeCache[data.envMap] = tempLightProbe;\n light.copy(tempLightProbe);\n });\n });\n });\n },\n\n onSetTarget: function (targetEl, light) {\n light.target = targetEl.object3D;\n },\n\n /**\n * Remove light on remove (callback).\n */\n remove: function () {\n var el = this.el;\n el.removeObject3D('light');\n if (el.getObject3D('cameraHelper')) {\n el.removeObject3D('cameraHelper');\n }\n }\n});\n","/* global THREE */\nvar registerComponent = require('../core/component').registerComponent;\n\nmodule.exports.Component = registerComponent('line', {\n schema: {\n start: {type: 'vec3', default: {x: 0, y: 0, z: 0}},\n end: {type: 'vec3', default: {x: 0, y: 0, z: 0}},\n color: {type: 'color', default: '#74BEC1'},\n opacity: {type: 'number', default: 1},\n visible: {default: true}\n },\n\n multiple: true,\n\n init: function () {\n var data = this.data;\n var geometry;\n var material;\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n material = this.material = new THREE.LineBasicMaterial({\n color: data.color,\n opacity: data.opacity,\n transparent: data.opacity < 1,\n visible: data.visible\n });\n geometry = this.geometry = new THREE.BufferGeometry();\n geometry.setAttribute('position', new THREE.BufferAttribute(new Float32Array(2 * 3), 3));\n\n this.rendererSystem.applyColorCorrection(material.color);\n this.line = new THREE.Line(geometry, material);\n this.el.setObject3D(this.attrName, this.line);\n },\n\n update: function (oldData) {\n var data = this.data;\n var geometry = this.geometry;\n var geoNeedsUpdate = false;\n var material = this.material;\n var positionArray = geometry.attributes.position.array;\n\n // Update geometry.\n if (!isEqualVec3(data.start, oldData.start)) {\n positionArray[0] = data.start.x;\n positionArray[1] = data.start.y;\n positionArray[2] = data.start.z;\n geoNeedsUpdate = true;\n }\n\n if (!isEqualVec3(data.end, oldData.end)) {\n positionArray[3] = data.end.x;\n positionArray[4] = data.end.y;\n positionArray[5] = data.end.z;\n geoNeedsUpdate = true;\n }\n\n if (geoNeedsUpdate) {\n geometry.attributes.position.needsUpdate = true;\n geometry.computeBoundingSphere();\n }\n\n material.color.setStyle(data.color);\n this.rendererSystem.applyColorCorrection(material.color);\n material.opacity = data.opacity;\n material.transparent = data.opacity < 1;\n material.visible = data.visible;\n },\n\n remove: function () {\n this.el.removeObject3D(this.attrName, this.line);\n }\n});\n\nfunction isEqualVec3 (a, b) {\n if (!a || !b) { return false; }\n return (a.x === b.x && a.y === b.y && a.z === b.z);\n}\n","var registerComponent = require('../core/component').registerComponent;\nvar registerShader = require('../core/shader').registerShader;\nvar THREE = require('../lib/three');\n\n/**\n * Link component. Connect experiences and traverse between them in VR\n *\n * @member {object} hiddenEls - Store the hidden elements during peek mode.\n */\nmodule.exports.Component = registerComponent('link', {\n schema: {\n backgroundColor: {default: 'red', type: 'color'},\n borderColor: {default: 'white', type: 'color'},\n highlighted: {default: false},\n highlightedColor: {default: '#24CAFF', type: 'color'},\n href: {default: ''},\n image: {type: 'asset'},\n on: {default: 'click'},\n peekMode: {default: false},\n title: {default: ''},\n titleColor: {default: 'white', type: 'color'},\n visualAspectEnabled: {default: false}\n },\n\n init: function () {\n this.navigate = this.navigate.bind(this);\n this.previousQuaternion = undefined;\n this.quaternionClone = new THREE.Quaternion();\n // Store hidden elements during peek mode so we can show them again later.\n this.hiddenEls = [];\n },\n\n update: function (oldData) {\n var data = this.data;\n var el = this.el;\n var backgroundColor;\n var strokeColor;\n\n if (!data.visualAspectEnabled) { return; }\n\n this.initVisualAspect();\n\n backgroundColor = data.highlighted ? data.highlightedColor : data.backgroundColor;\n strokeColor = data.highlighted ? data.highlightedColor : data.borderColor;\n el.setAttribute('material', 'backgroundColor', backgroundColor);\n el.setAttribute('material', 'strokeColor', strokeColor);\n\n if (data.on !== oldData.on) { this.updateEventListener(); }\n\n if (oldData.peekMode !== undefined &&\n data.peekMode !== oldData.peekMode) { this.updatePeekMode(); }\n\n if (!data.image || oldData.image === data.image) { return; }\n\n el.setAttribute('material', 'pano',\n typeof data.image === 'string' ? data.image : data.image.src);\n },\n\n /*\n * Toggle all elements and full 360 preview of the linked page.\n */\n updatePeekMode: function () {\n var el = this.el;\n var sphereEl = this.sphereEl;\n if (this.data.peekMode) {\n this.hideAll();\n el.getObject3D('mesh').visible = false;\n sphereEl.setAttribute('visible', true);\n } else {\n this.showAll();\n el.getObject3D('mesh').visible = true;\n sphereEl.setAttribute('visible', false);\n }\n },\n\n play: function () {\n this.updateEventListener();\n },\n\n pause: function () {\n this.removeEventListener();\n },\n\n updateEventListener: function () {\n var el = this.el;\n if (!el.isPlaying) { return; }\n this.removeEventListener();\n el.addEventListener(this.data.on, this.navigate);\n },\n\n removeEventListener: function () {\n var on = this.data.on;\n if (!on) { return; }\n this.el.removeEventListener(on, this.navigate);\n },\n\n initVisualAspect: function () {\n var el = this.el;\n var semiSphereEl;\n var sphereEl;\n var textEl;\n\n if (!this.data.visualAspectEnabled || this.visualAspectInitialized) { return; }\n\n textEl = this.textEl = this.textEl || document.createElement('a-entity');\n sphereEl = this.sphereEl = this.sphereEl || document.createElement('a-entity');\n semiSphereEl = this.semiSphereEl = this.semiSphereEl || document.createElement('a-entity');\n\n // Set portal.\n el.setAttribute('geometry', {primitive: 'circle', radius: 1.0, segments: 64});\n el.setAttribute('material', {shader: 'portal', pano: this.data.image, side: 'double'});\n\n // Set text that displays the link title and URL.\n textEl.setAttribute('text', {\n color: this.data.titleColor,\n align: 'center',\n font: 'kelsonsans',\n value: this.data.title || this.data.href,\n width: 4\n });\n textEl.setAttribute('position', '0 1.5 0');\n el.appendChild(textEl);\n\n // Set sphere rendered when camera is close to portal to allow user to peek inside.\n semiSphereEl.setAttribute('geometry', {\n primitive: 'sphere',\n radius: 1.0,\n phiStart: 0,\n segmentsWidth: 64,\n segmentsHeight: 64,\n phiLength: 180,\n thetaStart: 0,\n thetaLength: 360\n });\n semiSphereEl.setAttribute('material', {\n shader: 'portal',\n borderEnabled: 0.0,\n pano: this.data.image,\n side: 'back'\n });\n semiSphereEl.setAttribute('rotation', '0 180 0');\n semiSphereEl.setAttribute('position', '0 0 0');\n semiSphereEl.setAttribute('visible', false);\n el.appendChild(semiSphereEl);\n\n // Set sphere rendered when camera is close to portal to allow user to peek inside.\n sphereEl.setAttribute('geometry', {\n primitive: 'sphere',\n radius: 10,\n segmentsWidth: 64,\n segmentsHeight: 64\n });\n sphereEl.setAttribute('material', {\n shader: 'portal',\n borderEnabled: 0.0,\n pano: this.data.image,\n side: 'back'\n });\n sphereEl.setAttribute('visible', false);\n el.appendChild(sphereEl);\n\n this.visualAspectInitialized = true;\n },\n\n navigate: function () {\n window.location = this.data.href;\n },\n\n /**\n * 1. Swap plane that represents portal with sphere with a hole when the camera is close\n * so user can peek inside portal. Sphere is rendered on oposite side of portal\n * from where user enters.\n * 2. Place the url/title above or inside portal depending on distance to camera.\n * 3. Face portal to camera when far away from user.\n */\n tick: (function () {\n var cameraWorldPosition = new THREE.Vector3();\n var elWorldPosition = new THREE.Vector3();\n var quaternion = new THREE.Quaternion();\n var scale = new THREE.Vector3();\n\n return function () {\n var el = this.el;\n var object3D = el.object3D;\n var camera = el.sceneEl.camera;\n var cameraPortalOrientation;\n var distance;\n var textEl = this.textEl;\n\n if (!this.data.visualAspectEnabled) { return; }\n\n // Update matrices\n object3D.updateMatrixWorld();\n camera.parent.updateMatrixWorld();\n camera.updateMatrixWorld();\n\n object3D.matrix.decompose(elWorldPosition, quaternion, scale);\n elWorldPosition.setFromMatrixPosition(object3D.matrixWorld);\n cameraWorldPosition.setFromMatrixPosition(camera.matrixWorld);\n distance = elWorldPosition.distanceTo(cameraWorldPosition);\n\n if (distance > 20) {\n // Store original orientation to be restored when the portal stops facing the camera.\n if (!this.previousQuaternion) {\n this.quaternionClone.copy(quaternion);\n this.previousQuaternion = this.quaternionClone;\n }\n // If the portal is far away from the user, face portal to camera.\n object3D.lookAt(cameraWorldPosition);\n } else {\n // When portal is close to the user/camera.\n cameraPortalOrientation = this.calculateCameraPortalOrientation();\n // If user gets very close to portal, replace with holed sphere they can peek in.\n if (distance < 0.5) {\n // Configure text size and sphere orientation depending side user approaches portal.\n if (this.semiSphereEl.getAttribute('visible') === true) { return; }\n textEl.setAttribute('text', 'width', 1.5);\n if (cameraPortalOrientation <= 0.0) {\n textEl.setAttribute('position', '0 0 0.75');\n textEl.setAttribute('rotation', '0 180 0');\n this.semiSphereEl.setAttribute('rotation', '0 0 0');\n } else {\n textEl.setAttribute('position', '0 0 -0.75');\n textEl.setAttribute('rotation', '0 0 0');\n this.semiSphereEl.setAttribute('rotation', '0 180 0');\n }\n el.getObject3D('mesh').visible = false;\n this.semiSphereEl.setAttribute('visible', true);\n this.peekCameraPortalOrientation = cameraPortalOrientation;\n } else {\n // Calculate wich side the camera is approaching the camera (back / front).\n // Adjust text orientation based on camera position.\n if (cameraPortalOrientation <= 0.0) {\n textEl.setAttribute('rotation', '0 180 0');\n } else {\n textEl.setAttribute('rotation', '0 0 0');\n }\n textEl.setAttribute('text', 'width', 5);\n textEl.setAttribute('position', '0 1.5 0');\n el.getObject3D('mesh').visible = true;\n this.semiSphereEl.setAttribute('visible', false);\n this.peekCameraPortalOrientation = undefined;\n }\n if (this.previousQuaternion) {\n object3D.quaternion.copy(this.previousQuaternion);\n this.previousQuaternion = undefined;\n }\n }\n };\n })(),\n\n hideAll: function () {\n var el = this.el;\n var hiddenEls = this.hiddenEls;\n var self = this;\n if (hiddenEls.length > 0) { return; }\n el.sceneEl.object3D.traverse(function (object) {\n if (object && object.el && object.el.hasAttribute('link-controls')) { return; }\n if (!object.el || object === el.sceneEl.object3D || object.el === el ||\n object.el === self.sphereEl || object.el === el.sceneEl.cameraEl ||\n object.el.getAttribute('visible') === false || object.el === self.textEl ||\n object.el === self.semiSphereEl) {\n return;\n }\n object.el.setAttribute('visible', false);\n hiddenEls.push(object.el);\n });\n },\n\n showAll: function () {\n this.hiddenEls.forEach(function (el) { el.setAttribute('visible', true); });\n this.hiddenEls = [];\n },\n\n /**\n * Calculate whether the camera faces the front or back face of the portal.\n * @returns {number} > 0 if camera faces front of portal, < 0 if it faces back of portal.\n */\n calculateCameraPortalOrientation: (function () {\n var mat4 = new THREE.Matrix4();\n var cameraPosition = new THREE.Vector3();\n var portalNormal = new THREE.Vector3(0, 0, 1);\n var portalPosition = new THREE.Vector3(0, 0, 0);\n\n return function () {\n var el = this.el;\n var camera = el.sceneEl.camera;\n\n // Reset tmp variables.\n cameraPosition.set(0, 0, 0);\n portalNormal.set(0, 0, 1);\n portalPosition.set(0, 0, 0);\n\n // Apply portal orientation to the normal.\n el.object3D.matrixWorld.extractRotation(mat4);\n portalNormal.applyMatrix4(mat4);\n\n // Calculate portal world position.\n el.object3D.updateMatrixWorld();\n el.object3D.localToWorld(portalPosition);\n\n // Calculate camera world position.\n camera.parent.parent.updateMatrixWorld();\n camera.parent.updateMatrixWorld();\n camera.updateMatrixWorld();\n camera.localToWorld(cameraPosition);\n\n // Calculate vector from portal to camera.\n // (portal) -------> (camera)\n cameraPosition.sub(portalPosition).normalize();\n portalNormal.normalize();\n\n // Side where camera approaches portal is given by sign of dot product of portal normal\n // and portal to camera vectors.\n return Math.sign(portalNormal.dot(cameraPosition));\n };\n })(),\n\n remove: function () {\n this.removeEventListener();\n }\n});\n\n/* eslint-disable */\nregisterShader('portal', {\n schema: {\n borderEnabled: {default: 1.0, type: 'int', is: 'uniform'},\n backgroundColor: {default: 'red', type: 'color', is: 'uniform'},\n pano: {type: 'map', is: 'uniform'},\n strokeColor: {default: 'white', type: 'color', is: 'uniform'}\n },\n\n vertexShader: [\n 'vec3 portalPosition;',\n 'varying vec3 vWorldPosition;',\n 'varying float vDistanceToCenter;',\n 'varying float vDistance;',\n 'void main() {',\n 'vDistanceToCenter = clamp(length(position - vec3(0.0, 0.0, 0.0)), 0.0, 1.0);',\n 'portalPosition = (modelMatrix * vec4(0.0, 0.0, 0.0, 1.0)).xyz;',\n 'vDistance = length(portalPosition - cameraPosition);',\n 'vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;',\n 'gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);',\n '}'\n ].join('\\n'),\n\n fragmentShader: [\n '#define RECIPROCAL_PI2 0.15915494',\n 'uniform sampler2D pano;',\n 'uniform vec3 strokeColor;',\n 'uniform vec3 backgroundColor;',\n 'uniform float borderEnabled;',\n 'varying float vDistanceToCenter;',\n 'varying float vDistance;',\n 'varying vec3 vWorldPosition;',\n 'void main() {',\n 'vec3 direction = normalize(vWorldPosition - cameraPosition);',\n 'vec2 sampleUV;',\n 'float borderThickness = clamp(exp(-vDistance / 50.0), 0.6, 0.95);',\n 'sampleUV.y = clamp(direction.y * 0.5 + 0.5, 0.0, 1.0);',\n 'sampleUV.x = atan(direction.z, -direction.x) * -RECIPROCAL_PI2 + 0.5;',\n 'if (vDistanceToCenter > borderThickness && borderEnabled == 1.0) {',\n 'gl_FragColor = vec4(strokeColor, 1.0);',\n '} else {',\n 'gl_FragColor = mix(texture2D(pano, sampleUV), vec4(backgroundColor, 1.0), clamp(pow((vDistance / 15.0), 2.0), 0.0, 1.0));',\n '}',\n '}'\n ].join('\\n')\n});\n/* eslint-enable */\n","/* global DeviceOrientationEvent */\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\nvar bind = utils.bind;\n\n// To avoid recalculation at every mouse movement tick\nvar PI_2 = Math.PI / 2;\n\n/**\n * look-controls. Update entity pose, factoring mouse, touch, and WebVR API data.\n */\nmodule.exports.Component = registerComponent('look-controls', {\n dependencies: ['position', 'rotation'],\n\n schema: {\n enabled: {default: true},\n magicWindowTrackingEnabled: {default: true},\n pointerLockEnabled: {default: false},\n reverseMouseDrag: {default: false},\n reverseTouchDrag: {default: false},\n touchEnabled: {default: true},\n mouseEnabled: {default: true}\n },\n\n init: function () {\n this.deltaYaw = 0;\n this.previousHMDPosition = new THREE.Vector3();\n this.hmdQuaternion = new THREE.Quaternion();\n this.magicWindowAbsoluteEuler = new THREE.Euler();\n this.magicWindowDeltaEuler = new THREE.Euler();\n this.position = new THREE.Vector3();\n this.magicWindowObject = new THREE.Object3D();\n this.rotation = {};\n this.deltaRotation = {};\n this.savedPose = null;\n this.pointerLocked = false;\n this.setupMouseControls();\n this.bindMethods();\n this.previousMouseEvent = {};\n\n this.setupMagicWindowControls();\n\n // To save / restore camera pose\n this.savedPose = {\n position: new THREE.Vector3(),\n rotation: new THREE.Euler()\n };\n\n // Call enter VR handler if the scene has entered VR before the event listeners attached.\n if (this.el.sceneEl.is('vr-mode') || this.el.sceneEl.is('ar-mode')) { this.onEnterVR(); }\n },\n\n setupMagicWindowControls: function () {\n var magicWindowControls;\n var data = this.data;\n\n // Only on mobile devices and only enabled if DeviceOrientation permission has been granted.\n if (utils.device.isMobile() || utils.device.isMobileDeviceRequestingDesktopSite()) {\n magicWindowControls = this.magicWindowControls = new THREE.DeviceOrientationControls(this.magicWindowObject);\n if (typeof DeviceOrientationEvent !== 'undefined' && DeviceOrientationEvent.requestPermission) {\n magicWindowControls.enabled = false;\n if (this.el.sceneEl.components['device-orientation-permission-ui'].permissionGranted) {\n magicWindowControls.enabled = data.magicWindowTrackingEnabled;\n } else {\n this.el.sceneEl.addEventListener('deviceorientationpermissiongranted', function () {\n magicWindowControls.enabled = data.magicWindowTrackingEnabled;\n });\n }\n }\n }\n },\n\n update: function (oldData) {\n var data = this.data;\n\n // Disable grab cursor classes if no longer enabled.\n if (data.enabled !== oldData.enabled) {\n this.updateGrabCursor(data.enabled);\n }\n\n // Reset magic window eulers if tracking is disabled.\n if (oldData && !data.magicWindowTrackingEnabled && oldData.magicWindowTrackingEnabled) {\n this.magicWindowAbsoluteEuler.set(0, 0, 0);\n this.magicWindowDeltaEuler.set(0, 0, 0);\n }\n\n // Pass on magic window tracking setting to magicWindowControls.\n if (this.magicWindowControls) {\n this.magicWindowControls.enabled = data.magicWindowTrackingEnabled;\n }\n\n if (oldData && !data.pointerLockEnabled !== oldData.pointerLockEnabled) {\n this.removeEventListeners();\n this.addEventListeners();\n if (this.pointerLocked) { this.exitPointerLock(); }\n }\n },\n\n tick: function (t) {\n var data = this.data;\n if (!data.enabled) { return; }\n this.updateOrientation();\n },\n\n play: function () {\n this.addEventListeners();\n },\n\n pause: function () {\n this.removeEventListeners();\n if (this.pointerLocked) { this.exitPointerLock(); }\n },\n\n remove: function () {\n this.removeEventListeners();\n if (this.pointerLocked) { this.exitPointerLock(); }\n },\n\n bindMethods: function () {\n this.onMouseDown = bind(this.onMouseDown, this);\n this.onMouseMove = bind(this.onMouseMove, this);\n this.onMouseUp = bind(this.onMouseUp, this);\n this.onTouchStart = bind(this.onTouchStart, this);\n this.onTouchMove = bind(this.onTouchMove, this);\n this.onTouchEnd = bind(this.onTouchEnd, this);\n this.onEnterVR = bind(this.onEnterVR, this);\n this.onExitVR = bind(this.onExitVR, this);\n this.onPointerLockChange = bind(this.onPointerLockChange, this);\n this.onPointerLockError = bind(this.onPointerLockError, this);\n },\n\n /**\n * Set up states and Object3Ds needed to store rotation data.\n */\n setupMouseControls: function () {\n this.mouseDown = false;\n this.pitchObject = new THREE.Object3D();\n this.yawObject = new THREE.Object3D();\n this.yawObject.position.y = 10;\n this.yawObject.add(this.pitchObject);\n },\n\n /**\n * Add mouse and touch event listeners to canvas.\n */\n addEventListeners: function () {\n var sceneEl = this.el.sceneEl;\n var canvasEl = sceneEl.canvas;\n\n // Wait for canvas to load.\n if (!canvasEl) {\n sceneEl.addEventListener('render-target-loaded', bind(this.addEventListeners, this));\n return;\n }\n\n // Mouse events.\n canvasEl.addEventListener('mousedown', this.onMouseDown, false);\n window.addEventListener('mousemove', this.onMouseMove, false);\n window.addEventListener('mouseup', this.onMouseUp, false);\n\n // Touch events.\n canvasEl.addEventListener('touchstart', this.onTouchStart);\n window.addEventListener('touchmove', this.onTouchMove);\n window.addEventListener('touchend', this.onTouchEnd);\n\n // sceneEl events.\n sceneEl.addEventListener('enter-vr', this.onEnterVR);\n sceneEl.addEventListener('exit-vr', this.onExitVR);\n\n // Pointer Lock events.\n if (this.data.pointerLockEnabled) {\n document.addEventListener('pointerlockchange', this.onPointerLockChange, false);\n document.addEventListener('mozpointerlockchange', this.onPointerLockChange, false);\n document.addEventListener('pointerlockerror', this.onPointerLockError, false);\n }\n },\n\n /**\n * Remove mouse and touch event listeners from canvas.\n */\n removeEventListeners: function () {\n var sceneEl = this.el.sceneEl;\n var canvasEl = sceneEl && sceneEl.canvas;\n\n if (!canvasEl) { return; }\n\n // Mouse events.\n canvasEl.removeEventListener('mousedown', this.onMouseDown);\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n\n // Touch events.\n canvasEl.removeEventListener('touchstart', this.onTouchStart);\n window.removeEventListener('touchmove', this.onTouchMove);\n window.removeEventListener('touchend', this.onTouchEnd);\n\n // sceneEl events.\n sceneEl.removeEventListener('enter-vr', this.onEnterVR);\n sceneEl.removeEventListener('exit-vr', this.onExitVR);\n\n // Pointer Lock events.\n document.removeEventListener('pointerlockchange', this.onPointerLockChange, false);\n document.removeEventListener('mozpointerlockchange', this.onPointerLockChange, false);\n document.removeEventListener('pointerlockerror', this.onPointerLockError, false);\n },\n\n /**\n * Update orientation for mobile, mouse drag, and headset.\n * Mouse-drag only enabled if HMD is not active.\n */\n updateOrientation: function () {\n var object3D = this.el.object3D;\n var pitchObject = this.pitchObject;\n var yawObject = this.yawObject;\n var sceneEl = this.el.sceneEl;\n\n // In VR or AR mode, THREE is in charge of updating the camera pose.\n if ((sceneEl.is('vr-mode') || sceneEl.is('ar-mode')) && sceneEl.checkHeadsetConnected()) {\n // With WebXR THREE applies headset pose to the object3D internally.\n return;\n }\n\n this.updateMagicWindowOrientation();\n\n // On mobile, do camera rotation with touch events and sensors.\n object3D.rotation.x = this.magicWindowDeltaEuler.x + pitchObject.rotation.x;\n object3D.rotation.y = this.magicWindowDeltaEuler.y + yawObject.rotation.y;\n object3D.rotation.z = this.magicWindowDeltaEuler.z;\n },\n\n updateMagicWindowOrientation: function () {\n var magicWindowAbsoluteEuler = this.magicWindowAbsoluteEuler;\n var magicWindowDeltaEuler = this.magicWindowDeltaEuler;\n // Calculate magic window HMD quaternion.\n if (this.magicWindowControls && this.magicWindowControls.enabled) {\n this.magicWindowControls.update();\n magicWindowAbsoluteEuler.setFromQuaternion(this.magicWindowObject.quaternion, 'YXZ');\n if (!this.previousMagicWindowYaw && magicWindowAbsoluteEuler.y !== 0) {\n this.previousMagicWindowYaw = magicWindowAbsoluteEuler.y;\n }\n if (this.previousMagicWindowYaw) {\n magicWindowDeltaEuler.x = magicWindowAbsoluteEuler.x;\n magicWindowDeltaEuler.y += magicWindowAbsoluteEuler.y - this.previousMagicWindowYaw;\n magicWindowDeltaEuler.z = magicWindowAbsoluteEuler.z;\n this.previousMagicWindowYaw = magicWindowAbsoluteEuler.y;\n }\n }\n },\n\n /**\n * Translate mouse drag into rotation.\n *\n * Dragging up and down rotates the camera around the X-axis (yaw).\n * Dragging left and right rotates the camera around the Y-axis (pitch).\n */\n onMouseMove: function (evt) {\n var direction;\n var movementX;\n var movementY;\n var pitchObject = this.pitchObject;\n var previousMouseEvent = this.previousMouseEvent;\n var yawObject = this.yawObject;\n\n // Not dragging or not enabled.\n if (!this.data.enabled || (!this.mouseDown && !this.pointerLocked)) { return; }\n\n // Calculate delta.\n if (this.pointerLocked) {\n movementX = evt.movementX || evt.mozMovementX || 0;\n movementY = evt.movementY || evt.mozMovementY || 0;\n } else {\n movementX = evt.screenX - previousMouseEvent.screenX;\n movementY = evt.screenY - previousMouseEvent.screenY;\n }\n this.previousMouseEvent.screenX = evt.screenX;\n this.previousMouseEvent.screenY = evt.screenY;\n\n // Calculate rotation.\n direction = this.data.reverseMouseDrag ? 1 : -1;\n yawObject.rotation.y += movementX * 0.002 * direction;\n pitchObject.rotation.x += movementY * 0.002 * direction;\n pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x));\n },\n\n /**\n * Register mouse down to detect mouse drag.\n */\n onMouseDown: function (evt) {\n var sceneEl = this.el.sceneEl;\n if (!this.data.enabled || !this.data.mouseEnabled || ((sceneEl.is('vr-mode') || sceneEl.is('ar-mode')) && sceneEl.checkHeadsetConnected())) { return; }\n // Handle only primary button.\n if (evt.button !== 0) { return; }\n\n var canvasEl = sceneEl && sceneEl.canvas;\n\n this.mouseDown = true;\n this.previousMouseEvent.screenX = evt.screenX;\n this.previousMouseEvent.screenY = evt.screenY;\n this.showGrabbingCursor();\n\n if (this.data.pointerLockEnabled && !this.pointerLocked) {\n if (canvasEl.requestPointerLock) {\n canvasEl.requestPointerLock();\n } else if (canvasEl.mozRequestPointerLock) {\n canvasEl.mozRequestPointerLock();\n }\n }\n },\n\n /**\n * Shows grabbing cursor on scene\n */\n showGrabbingCursor: function () {\n this.el.sceneEl.canvas.style.cursor = 'grabbing';\n },\n\n /**\n * Hides grabbing cursor on scene\n */\n hideGrabbingCursor: function () {\n this.el.sceneEl.canvas.style.cursor = '';\n },\n\n /**\n * Register mouse up to detect release of mouse drag.\n */\n onMouseUp: function () {\n this.mouseDown = false;\n this.hideGrabbingCursor();\n },\n\n /**\n * Register touch down to detect touch drag.\n */\n onTouchStart: function (evt) {\n if (evt.touches.length !== 1 ||\n !this.data.touchEnabled ||\n this.el.sceneEl.is('vr-mode') ||\n this.el.sceneEl.is('ar-mode')) { return; }\n this.touchStart = {\n x: evt.touches[0].pageX,\n y: evt.touches[0].pageY\n };\n this.touchStarted = true;\n },\n\n /**\n * Translate touch move to Y-axis rotation.\n */\n onTouchMove: function (evt) {\n var direction;\n var canvas = this.el.sceneEl.canvas;\n var deltaY;\n var yawObject = this.yawObject;\n\n if (!this.touchStarted || !this.data.touchEnabled) { return; }\n\n deltaY = 2 * Math.PI * (evt.touches[0].pageX - this.touchStart.x) / canvas.clientWidth;\n\n direction = this.data.reverseTouchDrag ? 1 : -1;\n // Limit touch orientaion to to yaw (y axis).\n yawObject.rotation.y -= deltaY * 0.5 * direction;\n this.touchStart = {\n x: evt.touches[0].pageX,\n y: evt.touches[0].pageY\n };\n },\n\n /**\n * Register touch end to detect release of touch drag.\n */\n onTouchEnd: function () {\n this.touchStarted = false;\n },\n\n /**\n * Save pose.\n */\n onEnterVR: function () {\n var sceneEl = this.el.sceneEl;\n if (!sceneEl.checkHeadsetConnected()) { return; }\n this.saveCameraPose();\n this.el.object3D.position.set(0, 0, 0);\n this.el.object3D.rotation.set(0, 0, 0);\n if (sceneEl.hasWebXR) {\n this.el.object3D.matrixAutoUpdate = false;\n this.el.object3D.updateMatrix();\n }\n },\n\n /**\n * Restore the pose.\n */\n onExitVR: function () {\n if (!this.el.sceneEl.checkHeadsetConnected()) { return; }\n this.restoreCameraPose();\n this.previousHMDPosition.set(0, 0, 0);\n this.el.object3D.matrixAutoUpdate = true;\n },\n\n /**\n * Update Pointer Lock state.\n */\n onPointerLockChange: function () {\n this.pointerLocked = !!(document.pointerLockElement || document.mozPointerLockElement);\n },\n\n /**\n * Recover from Pointer Lock error.\n */\n onPointerLockError: function () {\n this.pointerLocked = false;\n },\n\n // Exits pointer-locked mode.\n exitPointerLock: function () {\n document.exitPointerLock();\n this.pointerLocked = false;\n },\n\n /**\n * Toggle the feature of showing/hiding the grab cursor.\n */\n updateGrabCursor: function (enabled) {\n var sceneEl = this.el.sceneEl;\n\n function enableGrabCursor () { sceneEl.canvas.classList.add('a-grab-cursor'); }\n function disableGrabCursor () { sceneEl.canvas.classList.remove('a-grab-cursor'); }\n\n if (!sceneEl.canvas) {\n if (enabled) {\n sceneEl.addEventListener('render-target-loaded', enableGrabCursor);\n } else {\n sceneEl.addEventListener('render-target-loaded', disableGrabCursor);\n }\n return;\n }\n\n if (enabled) {\n enableGrabCursor();\n return;\n }\n disableGrabCursor();\n },\n\n /**\n * Save camera pose before entering VR to restore later if exiting.\n */\n saveCameraPose: function () {\n var el = this.el;\n\n this.savedPose.position.copy(el.object3D.position);\n this.savedPose.rotation.copy(el.object3D.rotation);\n this.hasSavedPose = true;\n },\n\n /**\n * Reset camera pose to before entering VR.\n */\n restoreCameraPose: function () {\n var el = this.el;\n var savedPose = this.savedPose;\n\n if (!this.hasSavedPose) { return; }\n\n // Reset camera orientation.\n el.object3D.position.copy(savedPose.position);\n el.object3D.rotation.copy(savedPose.rotation);\n this.hasSavedPose = false;\n }\n});\n","var bind = require('../utils/bind');\nvar registerComponent = require('../core/component').registerComponent;\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\n// See Profiles Registry:\n// https://github.com/immersive-web/webxr-input-profiles/tree/master/packages/registry\n// TODO: Add a more robust system for deriving gamepad name.\nvar GAMEPAD_ID_PREFIX = 'magicleap';\nvar GAMEPAD_ID_SUFFIX = '-one';\nvar GAMEPAD_ID_COMPOSITE = GAMEPAD_ID_PREFIX + GAMEPAD_ID_SUFFIX;\n\nvar MAGICLEAP_CONTROLLER_MODEL_GLB_URL = 'https://cdn.aframe.io/controllers/magicleap/magicleap-one-controller.glb';\n\n/**\n * Button IDs:\n * 0 - trigger\n * 1 - grip\n * 2 - touchpad\n * 3 - menu (never dispatched on this layer)\n *\n * Axis:\n * 0 - touchpad x axis\n * 1 - touchpad y axis\n */\nvar INPUT_MAPPING_WEBXR = {\n axes: {touchpad: [0, 1]},\n buttons: ['trigger', 'grip', 'touchpad', 'menu']\n};\n\n/**\n * Magic Leap Controls\n * Interface with Magic Leap control and map Gamepad events to controller\n * buttons: trigger, grip, touchpad, and menu.\n * Load a controller model.\n */\nmodule.exports.Component = registerComponent('magicleap-controls', {\n schema: {\n hand: {default: 'none'},\n model: {default: true},\n orientationOffset: {type: 'vec3'}\n },\n\n mapping: INPUT_MAPPING_WEBXR,\n\n init: function () {\n var self = this;\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.previousButtonValues = {};\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n\n this.bindMethods();\n },\n\n update: function () {\n var data = this.data;\n this.controllerIndex = data.hand === 'right' ? 0 : data.hand === 'left' ? 1 : 2;\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('axismove', this.onAxisMoved);\n el.addEventListener('model-loaded', this.onModelLoaded);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('axismove', this.onAxisMoved);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n var data = this.data;\n checkControllerPresentAndSetup(this, GAMEPAD_ID_COMPOSITE,\n {index: this.controllerIndex, hand: data.hand});\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n\n el.setAttribute('tracked-controls', {\n // TODO: verify expected behavior between reserved prefixes.\n idPrefix: GAMEPAD_ID_COMPOSITE,\n hand: data.hand,\n controller: this.controllerIndex,\n orientationOffset: data.orientationOffset\n });\n\n // Load model.\n if (!this.data.model) { return; }\n this.el.setAttribute('gltf-model', MAGICLEAP_CONTROLLER_MODEL_GLB_URL);\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n // Note that due to gamepadconnected event propagation issues, we don't rely on events.\n this.checkIfControllerPresent();\n },\n\n /**\n * Rotate the trigger button based on how hard the trigger is pressed.\n */\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n var analogValue;\n\n if (!button) { return; }\n if (button === 'trigger') {\n analogValue = evt.detail.state.value;\n console.log('analog value of trigger press: ' + analogValue);\n }\n\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n // our glb scale is too large.\n controllerObject3D.scale.set(0.01, 0.01, 0.01);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n updateModel: function (buttonName, evtName) {},\n\n setButtonColor: function (buttonName, color) {}\n\n});\n","/* global Promise */\nvar utils = require('../utils/');\nvar component = require('../core/component');\nvar THREE = require('../lib/three');\nvar shader = require('../core/shader');\n\nvar error = utils.debug('components:material:error');\nvar registerComponent = component.registerComponent;\nvar shaders = shader.shaders;\nvar shaderNames = shader.shaderNames;\n\n/**\n * Material component.\n *\n * @member {object} shader - Determines how material is shaded. Defaults to `standard`,\n * three.js's implementation of PBR. Another standard shading model is `flat` which\n * uses MeshBasicMaterial.\n */\nmodule.exports.Component = registerComponent('material', {\n schema: {\n alphaTest: {default: 0.0, min: 0.0, max: 1.0},\n depthTest: {default: true},\n depthWrite: {default: true},\n flatShading: {default: false},\n npot: {default: false},\n offset: {type: 'vec2', default: {x: 0, y: 0}},\n opacity: {default: 1.0, min: 0.0, max: 1.0},\n repeat: {type: 'vec2', default: {x: 1, y: 1}},\n shader: {default: 'standard', oneOf: shaderNames, schemaChange: true},\n side: {default: 'front', oneOf: ['front', 'back', 'double']},\n transparent: {default: false},\n vertexColors: {type: 'string', default: 'none', oneOf: ['face', 'vertex']},\n visible: {default: true},\n blending: {default: 'normal', oneOf: ['none', 'normal', 'additive', 'subtractive', 'multiply']},\n dithering: {default: true}\n },\n\n init: function () {\n this.material = null;\n },\n\n /**\n * Update or create material.\n *\n * @param {object|null} oldData\n */\n update: function (oldData) {\n var data = this.data;\n if (!this.shader || data.shader !== oldData.shader) {\n this.updateShader(data.shader);\n }\n this.shader.update(this.data);\n this.updateMaterial(oldData);\n },\n\n updateSchema: function (data) {\n var currentShader;\n var newShader;\n var schema;\n var shader;\n\n newShader = data && data.shader;\n currentShader = this.oldData && this.oldData.shader;\n shader = newShader || currentShader;\n schema = shaders[shader] && shaders[shader].schema;\n\n if (!schema) { error('Unknown shader schema ' + shader); }\n if (currentShader && newShader === currentShader) { return; }\n this.extendSchema(schema);\n this.updateBehavior();\n },\n\n updateBehavior: function () {\n var key;\n var sceneEl = this.el.sceneEl;\n var schema = this.schema;\n var self = this;\n var tickProperties;\n\n function tickTime (time, delta) {\n var key;\n for (key in tickProperties) {\n tickProperties[key] = time;\n }\n self.shader.update(tickProperties);\n }\n\n this.tick = undefined;\n\n tickProperties = {};\n for (key in schema) {\n if (schema[key].type === 'time') {\n this.tick = tickTime;\n tickProperties[key] = true;\n }\n }\n\n if (!sceneEl) { return; }\n if (this.tick) {\n sceneEl.addBehavior(this);\n } else {\n sceneEl.removeBehavior(this);\n }\n },\n\n updateShader: function (shaderName) {\n var data = this.data;\n var Shader = shaders[shaderName] && shaders[shaderName].Shader;\n var shaderInstance;\n\n if (!Shader) { throw new Error('Unknown shader ' + shaderName); }\n\n // Get material from A-Frame shader.\n shaderInstance = this.shader = new Shader();\n shaderInstance.el = this.el;\n shaderInstance.init(data);\n this.setMaterial(shaderInstance.material);\n this.updateSchema(data);\n },\n\n /**\n * Set and update base material properties.\n * Set `needsUpdate` when needed.\n */\n updateMaterial: function (oldData) {\n var data = this.data;\n var material = this.material;\n var oldDataHasKeys;\n\n // Base material properties.\n material.alphaTest = data.alphaTest;\n material.depthTest = data.depthTest !== false;\n material.depthWrite = data.depthWrite !== false;\n material.opacity = data.opacity;\n material.flatShading = data.flatShading;\n material.side = parseSide(data.side);\n material.transparent = data.transparent !== false || data.opacity < 1.0;\n material.vertexColors = parseVertexColors(data.vertexColors);\n material.visible = data.visible;\n material.blending = parseBlending(data.blending);\n material.dithering = data.dithering;\n\n // Check if material needs update.\n for (oldDataHasKeys in oldData) { break; }\n if (oldDataHasKeys &&\n (oldData.alphaTest !== data.alphaTest ||\n oldData.side !== data.side ||\n oldData.vertexColors !== data.vertexColors)) {\n material.needsUpdate = true;\n }\n },\n\n /**\n * Remove material on remove (callback).\n * Dispose of it from memory and unsubscribe from scene updates.\n */\n remove: function () {\n var defaultMaterial = new THREE.MeshBasicMaterial();\n var material = this.material;\n var object3D = this.el.getObject3D('mesh');\n if (object3D) { object3D.material = defaultMaterial; }\n disposeMaterial(material, this.system);\n },\n\n /**\n * (Re)create new material. Has side-effects of setting `this.material` and updating\n * material registration in scene.\n *\n * @param {object} data - Material component data.\n * @param {object} type - Material type to create.\n * @returns {object} Material.\n */\n setMaterial: function (material) {\n var el = this.el;\n var mesh;\n var system = this.system;\n\n if (this.material) { disposeMaterial(this.material, system); }\n\n this.material = material;\n system.registerMaterial(material);\n\n // Set on mesh. If mesh does not exist, wait for it.\n mesh = el.getObject3D('mesh');\n if (mesh) {\n mesh.material = material;\n } else {\n el.addEventListener('object3dset', function waitForMesh (evt) {\n if (evt.detail.type !== 'mesh' || evt.target !== el) { return; }\n el.getObject3D('mesh').material = material;\n el.removeEventListener('object3dset', waitForMesh);\n });\n }\n }\n});\n\n/**\n * Return a three.js constant determining which material face sides to render\n * based on the side parameter (passed as a component property).\n *\n * @param {string} [side=front] - `front`, `back`, or `double`.\n * @returns {number} THREE.FrontSide, THREE.BackSide, or THREE.DoubleSide.\n */\nfunction parseSide (side) {\n switch (side) {\n case 'back': {\n return THREE.BackSide;\n }\n case 'double': {\n return THREE.DoubleSide;\n }\n default: {\n // Including case `front`.\n return THREE.FrontSide;\n }\n }\n}\n\n/**\n * Return a three.js constant determining vertex coloring.\n */\nfunction parseVertexColors (coloring) {\n switch (coloring) {\n case 'face': {\n return THREE.FaceColors;\n }\n case 'vertex': {\n return THREE.VertexColors;\n }\n default: {\n return THREE.NoColors;\n }\n }\n}\n\n/**\n * Return a three.js constant determining blending\n *\n * @param {string} [blending=normal]\n * - `none`, additive`, `subtractive`,`multiply` or `normal`.\n * @returns {number}\n */\nfunction parseBlending (blending) {\n switch (blending) {\n case 'none': {\n return THREE.NoBlending;\n }\n case 'additive': {\n return THREE.AdditiveBlending;\n }\n case 'subtractive': {\n return THREE.SubtractiveBlending;\n }\n case 'multiply': {\n return THREE.MultiplyBlending;\n }\n default: {\n return THREE.NormalBlending;\n }\n }\n}\n\n/**\n * Dispose of material from memory and unsubscribe material from scene updates like fog.\n */\nfunction disposeMaterial (material, system) {\n material.dispose();\n system.unregisterMaterial(material);\n}\n","var debug = require('../utils/debug');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar warn = debug('components:obj-model:warn');\n\nmodule.exports.Component = registerComponent('obj-model', {\n schema: {\n mtl: {type: 'model'},\n obj: {type: 'model'}\n },\n\n init: function () {\n var self = this;\n\n this.model = null;\n this.objLoader = new THREE.OBJLoader();\n this.mtlLoader = new THREE.MTLLoader(this.objLoader.manager);\n // Allow cross-origin images to be loaded.\n this.mtlLoader.crossOrigin = '';\n\n this.el.addEventListener('componentinitialized', function (evt) {\n if (!self.model) { return; }\n if (evt.detail.name !== 'material') { return; }\n self.applyMaterial();\n });\n },\n\n update: function () {\n var data = this.data;\n if (!data.obj) { return; }\n this.resetMesh();\n this.loadObj(data.obj, data.mtl);\n },\n\n remove: function () {\n if (!this.model) { return; }\n this.resetMesh();\n },\n\n resetMesh: function () {\n this.el.removeObject3D('mesh');\n },\n\n loadObj: function (objUrl, mtlUrl) {\n var self = this;\n var el = this.el;\n var mtlLoader = this.mtlLoader;\n var objLoader = this.objLoader;\n var rendererSystem = this.el.sceneEl.systems.renderer;\n var BASE_PATH = mtlUrl.substr(0, mtlUrl.lastIndexOf('/') + 1);\n\n if (mtlUrl) {\n // .OBJ with an .MTL.\n if (el.hasAttribute('material')) {\n warn('Material component properties are ignored when a .MTL is provided');\n }\n mtlLoader.setResourcePath(BASE_PATH);\n mtlLoader.load(mtlUrl, function (materials) {\n materials.preload();\n objLoader.setMaterials(materials);\n objLoader.load(objUrl, function (objModel) {\n self.model = objModel;\n self.model.traverse(function (object) {\n if (object.isMesh) {\n var material = object.material;\n if (material.color) rendererSystem.applyColorCorrection(material.color);\n if (material.map) rendererSystem.applyColorCorrection(material.map);\n if (material.emissive) rendererSystem.applyColorCorrection(material.emissive);\n if (material.emissiveMap) rendererSystem.applyColorCorrection(material.emissiveMap);\n }\n });\n el.setObject3D('mesh', objModel);\n el.emit('model-loaded', {format: 'obj', model: objModel});\n });\n });\n return;\n }\n\n // .OBJ only.\n objLoader.load(objUrl, function loadObjOnly (objModel) {\n self.model = objModel;\n self.applyMaterial();\n el.setObject3D('mesh', objModel);\n el.emit('model-loaded', {format: 'obj', model: objModel});\n });\n },\n\n /**\n * Apply material from material component recursively.\n */\n applyMaterial: function () {\n var material = this.el.components.material;\n if (!material) { return; }\n this.model.traverse(function (child) {\n if (child instanceof THREE.Mesh) {\n child.material = material.material;\n }\n });\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar GAMEPAD_ID_WEBXR = 'oculus-go';\nvar GAMEPAD_ID_WEBVR = 'Oculus Go';\n\nvar OCULUS_GO_CONTROLLER_MODEL_URL = 'https://cdn.aframe.io/controllers/oculus/go/oculus-go-controller.gltf';\n\n// Prefix for Gen1 and Gen2 Oculus Touch Controllers.\nvar GAMEPAD_ID_PREFIX = isWebXRAvailable ? GAMEPAD_ID_WEBXR : GAMEPAD_ID_WEBVR;\n\n/**\n * Button indices:\n * 0 - trackpad\n * 1 - trigger\n *\n * Axis:\n * 0 - trackpad x\n * 1 - trackpad y\n */\nvar INPUT_MAPPING_WEBVR = {\n axes: {trackpad: [0, 1]},\n buttons: ['trackpad', 'trigger']\n};\n\n/**\n * Button indices:\n * 0 - trigger\n * 1 - none\n * 2 - touchpad\n *\n * Axis:\n * 0 - touchpad x\n * 1 - touchpad y\n * Reference: https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/oculus/oculus-go.json\n */\nvar INPUT_MAPPING_WEBXR = {\n axes: {touchpad: [0, 1]},\n buttons: ['trigger', 'none', 'touchpad']\n};\n\nvar INPUT_MAPPING = isWebXRAvailable ? INPUT_MAPPING_WEBXR : INPUT_MAPPING_WEBVR;\n\n/**\n * Oculus Go controls.\n * Interface with Oculus Go controller and map Gamepad events to\n * controller buttons: trackpad, trigger\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('oculus-go-controls', {\n schema: {\n hand: {default: ''}, // This informs the degenerate arm model.\n buttonColor: {type: 'color', default: '#FFFFFF'},\n buttonTouchedColor: {type: 'color', default: '#BBBBBB'},\n buttonHighlightColor: {type: 'color', default: '#7A7A7A'},\n model: {default: true},\n orientationOffset: {type: 'vec3'},\n armModel: {default: true}\n },\n\n mapping: INPUT_MAPPING,\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n this.bindMethods();\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX,\n this.data.hand ? {hand: this.data.hand} : {});\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n el.setAttribute('tracked-controls', {\n armModel: data.armModel,\n hand: data.hand,\n idPrefix: GAMEPAD_ID_PREFIX,\n orientationOffset: data.orientationOffset\n });\n if (!this.data.model) { return; }\n this.el.setAttribute('gltf-model', OCULUS_GO_CONTROLLER_MODEL_URL);\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n // No need for onButtonChanged, since Oculus Go controller has no analog buttons.\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n var buttonMeshes;\n\n if (!this.data.model) { return; }\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.trigger = controllerObject3D.getObjectByName('oculus_go_button_trigger');\n buttonMeshes.trackpad = controllerObject3D.getObjectByName('oculus_go_touchpad');\n buttonMeshes.touchpad = controllerObject3D.getObjectByName('oculus_go_touchpad');\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n if (!button) return;\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n updateModel: function (buttonName, evtName) {\n if (!this.data.model) { return; }\n this.updateButtonModel(buttonName, evtName);\n },\n\n updateButtonModel: function (buttonName, state) {\n var buttonMeshes = this.buttonMeshes;\n if (!buttonMeshes || !buttonMeshes[buttonName]) { return; }\n var color;\n var button;\n switch (state) {\n case 'down':\n color = this.data.buttonHighlightColor;\n break;\n case 'touchstart':\n color = this.data.buttonTouchedColor;\n break;\n default:\n color = this.data.buttonColor;\n }\n button = buttonMeshes[buttonName];\n button.material.color.set(color);\n this.rendererSystem.applyColorCorrection(button.material.color);\n }\n});\n","var bind = require('../utils/bind');\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar GAMEPAD_ID_WEBXR = 'oculus-touch';\nvar GAMEPAD_ID_WEBVR = 'Oculus Touch';\n\n// Prefix for Gen1 and Gen2 Oculus Touch Controllers.\nvar GAMEPAD_ID_PREFIX = isWebXRAvailable ? GAMEPAD_ID_WEBXR : GAMEPAD_ID_WEBVR;\n\n// First generation model URL.\nvar TOUCH_CONTROLLER_MODEL_BASE_URL = 'https://cdn.aframe.io/controllers/oculus/oculus-touch-controller-';\nvar META_CONTROLLER_MODEL_BASE_URL = 'https://cdn.aframe.io/controllers/meta/';\n\nvar OCULUS_TOUCH_WEBVR = {\n left: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'left.gltf',\n rayOrigin: {origin: {x: 0.008, y: -0.01, z: 0}, direction: {x: 0, y: -0.8, z: -1}},\n modelPivotOffset: new THREE.Vector3(-0.005, 0.003, -0.055),\n modelPivotRotation: new THREE.Euler(0, 0, 0)\n },\n right: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'right.gltf',\n rayOrigin: {origin: {x: -0.008, y: -0.01, z: 0}, direction: {x: 0, y: -0.8, z: -1}},\n modelPivotOffset: new THREE.Vector3(0.005, 0.003, -0.055),\n modelPivotRotation: new THREE.Euler(0, 0, 0)\n }\n};\n\nvar OCULUS_TOUCH_WEBXR = {\n left: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'left.gltf',\n rayOrigin: {origin: {x: 0.002, y: -0.005, z: -0.03}, direction: {x: 0, y: -0.8, z: -1}},\n modelPivotOffset: new THREE.Vector3(-0.005, 0.036, -0.037),\n modelPivotRotation: new THREE.Euler(Math.PI / 4.5, 0, 0)\n },\n right: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'right.gltf',\n rayOrigin: {origin: {x: -0.002, y: -0.005, z: -0.03}, direction: {x: 0, y: -0.8, z: -1}},\n modelPivotOffset: new THREE.Vector3(0.005, 0.036, -0.037),\n modelPivotRotation: new THREE.Euler(Math.PI / 4.5, 0, 0)\n }\n};\n\nvar OCULUS_TOUCH_CONFIG = isWebXRAvailable ? OCULUS_TOUCH_WEBXR : OCULUS_TOUCH_WEBVR;\n\nvar CONTROLLER_DEFAULT = 'oculus-touch';\nvar CONTROLLER_PROPERTIES = {\n 'oculus-touch': OCULUS_TOUCH_CONFIG,\n 'oculus-touch-v2': {\n left: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'gen2-left.gltf',\n rayOrigin: {origin: {x: -0.006, y: -0.03, z: -0.04}, direction: {x: 0, y: -0.9, z: -1}},\n modelPivotOffset: new THREE.Vector3(0, -0.007, -0.021),\n modelPivotRotation: new THREE.Euler(-Math.PI / 4, 0, 0)\n },\n right: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'gen2-right.gltf',\n rayOrigin: {origin: {x: 0.006, y: -0.03, z: -0.04}, direction: {x: 0, y: -0.9, z: -1}},\n modelPivotOffset: new THREE.Vector3(0, -0.007, -0.021),\n modelPivotRotation: new THREE.Euler(-Math.PI / 4, 0, 0)\n }\n },\n 'oculus-touch-v3': {\n left: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'v3-left.glb',\n rayOrigin: {\n origin: {x: 0.0065, y: -0.0186, z: -0.05},\n direction: {x: 0.12394785839500175, y: -0.5944043672340157, z: -0.7945567170519814}\n },\n modelPivotOffset: new THREE.Vector3(0, 0, 0),\n modelPivotRotation: new THREE.Euler(0, 0, 0)\n },\n right: {\n modelUrl: TOUCH_CONTROLLER_MODEL_BASE_URL + 'v3-right.glb',\n rayOrigin: {\n origin: {x: -0.0065, y: -0.0186, z: -0.05},\n direction: {x: -0.12394785839500175, y: -0.5944043672340157, z: -0.7945567170519814}\n },\n modelPivotOffset: new THREE.Vector3(0, 0, 0),\n modelPivotRotation: new THREE.Euler(0, 0, 0)\n }\n },\n 'meta-quest-touch-pro': {\n left: {\n modelUrl: META_CONTROLLER_MODEL_BASE_URL + 'quest-touch-pro-left.glb',\n rayOrigin: {\n origin: {x: 0.0065, y: -0.0186, z: -0.05},\n direction: {x: 0.12394785839500175, y: -0.5944043672340157, z: -0.7945567170519814}\n },\n modelPivotOffset: new THREE.Vector3(0, 0, 0),\n modelPivotRotation: new THREE.Euler(0, 0, 0)\n },\n right: {\n modelUrl: META_CONTROLLER_MODEL_BASE_URL + 'quest-touch-pro-right.glb',\n rayOrigin: {\n origin: {x: -0.0065, y: -0.0186, z: -0.05},\n direction: {x: -0.12394785839500175, y: -0.5944043672340157, z: -0.7945567170519814}\n },\n modelPivotOffset: new THREE.Vector3(0, 0, 0),\n modelPivotRotation: new THREE.Euler(0, 0, 0)\n }\n }\n};\n\n/**\n * Button indices:\n * 0 - thumbstick (which has separate axismove / thumbstickmoved events)\n * 1 - trigger (with analog value, which goes up to 1)\n * 2 - grip (with analog value, which goes up to 1)\n * 3 - X (left) or A (right)\n * 4 - Y (left) or B (right)\n * 5 - surface (touch only)\n */\nvar INPUT_MAPPING_WEBVR = {\n left: {\n axes: {thumbstick: [0, 1]},\n buttons: ['thumbstick', 'trigger', 'grip', 'xbutton', 'ybutton', 'surface']\n },\n right: {\n axes: {thumbstick: [0, 1]},\n buttons: ['thumbstick', 'trigger', 'grip', 'abutton', 'bbutton', 'surface']\n }\n};\n\n/**\n * Button indices:\n * 0 - trigger\n * 1 - grip\n * 2 - none\n * 3 - thumbstick\n * 4 - X or A button\n * 5 - Y or B button\n * 6 - surface\n *\n * Axis:\n * 0 - none\n * 1 - none\n * 2 - thumbstick\n * 3 - thumbstick\n * Reference: https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/oculus/oculus-touch.json\n */\nvar INPUT_MAPPING_WEBXR = {\n left: {\n axes: {thumbstick: [2, 3]},\n buttons: ['trigger', 'grip', 'none', 'thumbstick', 'xbutton', 'ybutton', 'surface']\n },\n right: {\n axes: {thumbstick: [2, 3]},\n buttons: ['trigger', 'grip', 'none', 'thumbstick', 'abutton', 'bbutton', 'surface']\n }\n};\n\nvar INPUT_MAPPING = isWebXRAvailable ? INPUT_MAPPING_WEBXR : INPUT_MAPPING_WEBVR;\n\n/**\n * Oculus Touch controls.\n * Interface with Oculus Touch controllers and map Gamepad events to\n * controller buttons: thumbstick, trigger, grip, xbutton, ybutton, surface\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('oculus-touch-controls', {\n schema: {\n hand: {default: 'left'},\n buttonColor: {type: 'color', default: '#999'}, // Off-white.\n buttonTouchColor: {type: 'color', default: '#8AB'},\n buttonHighlightColor: {type: 'color', default: '#2DF'}, // Light blue.\n model: {default: true},\n controllerType: {default: 'auto', oneOf: ['auto', 'oculus-touch', 'oculus-touch-v2', 'oculus-touch-v3']},\n orientationOffset: {type: 'vec3', default: {x: 43, y: 0, z: 0}}\n },\n\n mapping: INPUT_MAPPING,\n\n bindMethods: function () {\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onThumbstickMoved = bind(this.onThumbstickMoved, this);\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self, self.data.hand); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self, self.data.hand); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self, self.data.hand); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self, self.data.hand); };\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.previousButtonValues = {};\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n this.bindMethods();\n this.triggerEuler = new THREE.Euler();\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('axismove', this.onAxisMoved);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('thumbstickmoved', this.onThumbstickMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('axismove', this.onAxisMoved);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('thumbstickmoved', this.onThumbstickMoved);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX, {\n hand: this.data.hand,\n iterateControllerProfiles: true\n });\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n loadModel: function (controller) {\n var data = this.data;\n var controllerId;\n\n if (!data.model) { return; }\n // Set the controller display model based on the data passed in.\n this.displayModel = CONTROLLER_PROPERTIES[data.controllerType] || CONTROLLER_PROPERTIES[CONTROLLER_DEFAULT];\n // If the developer is asking for auto-detection, use the retrieved displayName to identify the specific unit.\n // This only works for WebVR currently.\n if (data.controllerType === 'auto') {\n var trackedControlsSystem = this.el.sceneEl.systems['tracked-controls-webvr'];\n // WebVR\n if (trackedControlsSystem && trackedControlsSystem.vrDisplay) {\n var displayName = trackedControlsSystem.vrDisplay.displayName;\n if (/^Oculus Quest$/.test(displayName)) {\n this.displayModel = CONTROLLER_PROPERTIES['oculus-touch-v2'];\n }\n } else { // WebXR\n controllerId = CONTROLLER_DEFAULT;\n var controllersPropertiesIds = Object.keys(CONTROLLER_PROPERTIES);\n for (var i = 0; i < controller.profiles.length; i++) {\n if (controllersPropertiesIds.indexOf(controller.profiles[i]) !== -1) {\n controllerId = controller.profiles[i];\n break;\n }\n }\n this.displayModel = CONTROLLER_PROPERTIES[controllerId];\n }\n }\n var modelUrl = this.displayModel[data.hand].modelUrl;\n this.isOculusTouchV3 = this.displayModel === CONTROLLER_PROPERTIES['oculus-touch-v3'];\n this.el.setAttribute('gltf-model', modelUrl);\n },\n\n injectTrackedControls: function (controller) {\n var data = this.data;\n var webXRId = GAMEPAD_ID_WEBXR;\n var webVRId = data.hand === 'right' ? 'Oculus Touch (Right)' : 'Oculus Touch (Left)';\n var id = isWebXRAvailable ? webXRId : webVRId;\n this.el.setAttribute('tracked-controls', {\n id: id,\n hand: data.hand,\n orientationOffset: data.orientationOffset,\n handTrackingEnabled: false,\n iterateControllerProfiles: true,\n space: 'gripSpace'\n });\n this.loadModel(controller);\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n // Note that due to gamepadconnected event propagation issues, we don't rely on events.\n this.checkIfControllerPresent();\n },\n\n onButtonChanged: function (evt) {\n var button = this.mapping[this.data.hand].buttons[evt.detail.id];\n if (!button) { return; }\n // move the button meshes\n if (this.isOculusTouchV3) {\n this.onButtonChangedV3(evt);\n } else {\n var buttonMeshes = this.buttonMeshes;\n var analogValue;\n\n if (button === 'trigger' || button === 'grip') { analogValue = evt.detail.state.value; }\n\n if (buttonMeshes) {\n if (button === 'trigger' && buttonMeshes.trigger) {\n buttonMeshes.trigger.rotation.x = this.originalXRotationTrigger - analogValue * (Math.PI / 26);\n }\n if (button === 'grip' && buttonMeshes.grip) {\n analogValue *= this.data.hand === 'left' ? -1 : 1;\n buttonMeshes.grip.position.x = this.originalXPositionGrip + analogValue * 0.004;\n }\n }\n }\n // Pass along changed event with button state, using the buttom mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n clickButtons: ['xbutton', 'ybutton', 'abutton', 'bbutton', 'thumbstick'],\n onButtonChangedV3: function (evt) {\n var button = this.mapping[this.data.hand].buttons[evt.detail.id];\n var buttonObjects = this.buttonObjects;\n var analogValue;\n\n analogValue = evt.detail.state.value;\n analogValue *= this.data.hand === 'left' ? -1 : 1;\n\n if (button === 'trigger') {\n this.triggerEuler.copy(this.buttonRanges.trigger.min.rotation);\n this.triggerEuler.x += analogValue * this.buttonRanges.trigger.diff.x;\n this.triggerEuler.y += analogValue * this.buttonRanges.trigger.diff.y;\n this.triggerEuler.z += analogValue * this.buttonRanges.trigger.diff.z;\n buttonObjects.trigger.setRotationFromEuler(this.triggerEuler);\n } else if (button === 'grip') {\n buttonObjects.grip.position.x = buttonObjects.grip.minX + analogValue * 0.004;\n } else if (this.clickButtons.includes(button)) {\n buttonObjects[button].position.y = analogValue === 0 ? this.buttonRanges[button].unpressedY : this.buttonRanges[button].pressedY;\n }\n },\n\n onModelLoaded: function (evt) {\n if (!this.data.model) { return; }\n if (this.isOculusTouchV3) {\n this.onOculusTouchV3ModelLoaded(evt);\n } else {\n // All oculus headset controller models prior to the Quest 2 (i.e., Oculus Touch V3)\n // used a consistent format that is handled here\n var controllerObject3D = this.controllerObject3D = evt.detail.model;\n var buttonMeshes;\n\n buttonMeshes = this.buttonMeshes = {};\n\n buttonMeshes.grip = controllerObject3D.getObjectByName('buttonHand');\n this.originalXPositionGrip = buttonMeshes.grip && buttonMeshes.grip.position.x;\n buttonMeshes.trigger = controllerObject3D.getObjectByName('buttonTrigger');\n this.originalXRotationTrigger = buttonMeshes.trigger && buttonMeshes.trigger.rotation.x;\n buttonMeshes.thumbstick = controllerObject3D.getObjectByName('stick');\n buttonMeshes.xbutton = controllerObject3D.getObjectByName('buttonX');\n buttonMeshes.abutton = controllerObject3D.getObjectByName('buttonA');\n buttonMeshes.ybutton = controllerObject3D.getObjectByName('buttonY');\n buttonMeshes.bbutton = controllerObject3D.getObjectByName('buttonB');\n }\n\n for (var button in this.buttonMeshes) {\n if (this.buttonMeshes[button]) {\n cloneMeshMaterial(this.buttonMeshes[button]);\n }\n }\n\n this.applyOffset(evt.detail.model);\n\n this.el.emit('controllermodelready', {\n name: 'oculus-touch-controls',\n model: this.data.model,\n rayOrigin: this.displayModel[this.data.hand].rayOrigin\n });\n },\n\n applyOffset: function (model) {\n model.position.copy(this.displayModel[this.data.hand].modelPivotOffset);\n model.rotation.copy(this.displayModel[this.data.hand].modelPivotRotation);\n },\n\n onOculusTouchV3ModelLoaded: function (evt) {\n var controllerObject3D = this.controllerObject3D = evt.detail.model;\n\n var buttonObjects = this.buttonObjects = {};\n var buttonMeshes = this.buttonMeshes = {};\n var buttonRanges = this.buttonRanges = {};\n\n buttonMeshes.grip = controllerObject3D.getObjectByName('squeeze');\n buttonObjects.grip = controllerObject3D.getObjectByName('xr_standard_squeeze_pressed_value');\n buttonRanges.grip = {\n min: controllerObject3D.getObjectByName('xr_standard_squeeze_pressed_min'),\n max: controllerObject3D.getObjectByName('xr_standard_squeeze_pressed_max')\n };\n buttonObjects.grip.minX = buttonObjects.grip.position.x;\n\n buttonMeshes.thumbstick = controllerObject3D.getObjectByName('thumbstick');\n buttonObjects.thumbstick = controllerObject3D.getObjectByName('xr_standard_thumbstick_pressed_value');\n buttonRanges.thumbstick = {\n min: controllerObject3D.getObjectByName('xr_standard_thumbstick_pressed_min'),\n max: controllerObject3D.getObjectByName('xr_standard_thumbstick_pressed_max'),\n originalRotation: this.buttonObjects.thumbstick.rotation.clone()\n };\n buttonRanges.thumbstick.pressedY = buttonObjects.thumbstick.position.y;\n buttonRanges.thumbstick.unpressedY =\n buttonRanges.thumbstick.pressedY + Math.abs(buttonRanges.thumbstick.max.position.y) - Math.abs(buttonRanges.thumbstick.min.position.y);\n\n buttonMeshes.trigger = controllerObject3D.getObjectByName('trigger');\n buttonObjects.trigger = controllerObject3D.getObjectByName('xr_standard_trigger_pressed_value');\n buttonRanges.trigger = {\n min: controllerObject3D.getObjectByName('xr_standard_trigger_pressed_min'),\n max: controllerObject3D.getObjectByName('xr_standard_trigger_pressed_max')\n };\n buttonRanges.trigger.diff = {\n x: Math.abs(buttonRanges.trigger.max.rotation.x) - Math.abs(buttonRanges.trigger.min.rotation.x),\n y: Math.abs(buttonRanges.trigger.max.rotation.y) - Math.abs(buttonRanges.trigger.min.rotation.y),\n z: Math.abs(buttonRanges.trigger.max.rotation.z) - Math.abs(buttonRanges.trigger.min.rotation.z)\n };\n\n var button1 = this.data.hand === 'left' ? 'x' : 'a';\n var button2 = this.data.hand === 'left' ? 'y' : 'b';\n var button1id = button1 + 'button';\n var button2id = button2 + 'button';\n\n buttonMeshes[button1id] = controllerObject3D.getObjectByName(button1 + '_button');\n buttonObjects[button1id] = controllerObject3D.getObjectByName(button1 + '_button_pressed_value');\n buttonRanges[button1id] = {\n min: controllerObject3D.getObjectByName(button1 + '_button_pressed_min'),\n max: controllerObject3D.getObjectByName(button1 + '_button_pressed_max')\n };\n\n buttonMeshes[button2id] = controllerObject3D.getObjectByName(button2 + '_button');\n buttonObjects[button2id] = controllerObject3D.getObjectByName(button2 + '_button_pressed_value');\n buttonRanges[button2id] = {\n min: controllerObject3D.getObjectByName(button2 + '_button_pressed_min'),\n max: controllerObject3D.getObjectByName(button2 + '_button_pressed_max')\n };\n\n buttonRanges[button1id].unpressedY = buttonObjects[button1id].position.y;\n buttonRanges[button1id].pressedY =\n buttonRanges[button1id].unpressedY + Math.abs(buttonRanges[button1id].max.position.y) - Math.abs(buttonRanges[button1id].min.position.y);\n\n buttonRanges[button2id].unpressedY = buttonObjects[button2id].position.y;\n buttonRanges[button2id].pressedY =\n buttonRanges[button2id].unpressedY - Math.abs(buttonRanges[button2id].max.position.y) + Math.abs(buttonRanges[button2id].min.position.y);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping[this.data.hand].axes, evt);\n },\n\n onThumbstickMoved: function (evt) {\n if (!this.isOculusTouchV3 || !this.buttonMeshes || !this.buttonMeshes.thumbstick) { return; }\n for (var axis in evt.detail) {\n this.buttonObjects.thumbstick.rotation[this.axisMap[axis]] =\n this.buttonRanges.thumbstick.originalRotation[this.axisMap[axis]] -\n (Math.PI / 8) *\n evt.detail[axis] *\n (axis === 'y' || this.data.hand === 'right' ? -1 : 1);\n }\n },\n axisMap: {\n y: 'x',\n x: 'z'\n },\n\n updateModel: function (buttonName, evtName) {\n if (!this.data.model) { return; }\n this.updateButtonModel(buttonName, evtName);\n },\n\n updateButtonModel: function (buttonName, state) {\n // update the button mesh colors\n var button;\n var color = (state === 'up' || state === 'touchend') ? this.buttonMeshes[buttonName].originalColor || this.data.buttonColor : state === 'touchstart' ? this.data.buttonTouchColor : this.data.buttonHighlightColor;\n var buttonMeshes = this.buttonMeshes;\n\n if (buttonMeshes && buttonMeshes[buttonName]) {\n button = buttonMeshes[buttonName];\n button.material.color.set(color);\n this.rendererSystem.applyColorCorrection(button.material.color);\n }\n }\n});\n\n/**\n * Some of the controller models share the same material for different parts (buttons, triggers...).\n * In order to change their color independently we have to create separate materials.\n */\nfunction cloneMeshMaterial (object3d) {\n object3d.traverse(function (node) {\n if (node.type !== 'Mesh') return;\n let newMaterial = node.material.clone();\n object3d.originalColor = node.material.color;\n node.material.dispose();\n node.material = newMaterial;\n });\n}\n","var registerComponent = require('../core/component').registerComponent;\n\nmodule.exports.Component = registerComponent('position', {\n schema: {type: 'vec3'},\n\n update: function () {\n var object3D = this.el.object3D;\n var data = this.data;\n object3D.position.set(data.x, data.y, data.z);\n },\n\n remove: function () {\n // Pretty much for mixins.\n this.el.object3D.position.set(0, 0, 0);\n }\n});\n","/* global MutationObserver */\n\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar warn = utils.debug('components:raycaster:warn');\n\n// Defines selectors that should be 'safe' for the MutationObserver used to\n// refresh the whitelist. Matches classnames, IDs, and presence of attributes.\n// Selectors for the value of an attribute, like [position=0 2 0], cannot be\n// reliably detected and are therefore disallowed.\nvar OBSERVER_SELECTOR_RE = /^[\\w\\s-.,[\\]#]*$/;\n\n// Configuration for the MutationObserver used to refresh the whitelist.\n// Listens for addition/removal of elements and attributes within the scene.\nvar OBSERVER_CONFIG = {\n childList: true,\n attributes: true,\n subtree: true\n};\n\nvar EVENTS = {\n INTERSECT: 'raycaster-intersected',\n INTERSECTION: 'raycaster-intersection',\n INTERSECT_CLEAR: 'raycaster-intersected-cleared',\n INTERSECTION_CLEAR: 'raycaster-intersection-cleared',\n INTERSECTION_CLOSEST_ENTITY_CHANGED: 'raycaster-closest-entity-changed'\n};\n\n/**\n * Raycaster component.\n *\n * Pass options to three.js Raycaster including which objects to test.\n * Poll for intersections.\n * Emit event on origin entity and on target entity on intersect.\n *\n * @member {array} intersectedEls - List of currently intersected entities.\n * @member {array} objects - Cached list of meshes to intersect.\n * @member {number} prevCheckTime - Previous time intersection was checked. To help interval.\n * @member {object} raycaster - three.js Raycaster.\n */\nmodule.exports.Component = registerComponent('raycaster', {\n schema: {\n autoRefresh: {default: true},\n direction: {type: 'vec3', default: {x: 0, y: 0, z: -1}},\n enabled: {default: true},\n far: {default: 1000},\n interval: {default: 0},\n near: {default: 0},\n objects: {default: ''},\n origin: {type: 'vec3'},\n showLine: {default: false},\n lineColor: {default: 'white'},\n lineOpacity: {default: 1},\n useWorldCoordinates: {default: false}\n },\n\n multiple: true,\n\n init: function () {\n this.clearedIntersectedEls = [];\n this.unitLineEndVec3 = new THREE.Vector3();\n this.intersectedEls = [];\n this.intersections = [];\n this.newIntersectedEls = [];\n this.newIntersections = [];\n this.objects = [];\n this.prevCheckTime = undefined;\n this.prevIntersectedEls = [];\n this.rawIntersections = [];\n this.raycaster = new THREE.Raycaster();\n this.updateOriginDirection();\n this.setDirty = this.setDirty.bind(this);\n this.updateLine = this.updateLine.bind(this);\n this.observer = new MutationObserver(this.setDirty);\n this.dirty = true;\n this.lineEndVec3 = new THREE.Vector3();\n this.otherLineEndVec3 = new THREE.Vector3();\n this.lineData = {end: this.lineEndVec3};\n\n this.getIntersection = this.getIntersection.bind(this);\n this.intersectedDetail = {el: this.el, getIntersection: this.getIntersection};\n this.intersectedClearedDetail = {el: this.el};\n this.intersectionClearedDetail = {clearedEls: this.clearedIntersectedEls};\n this.intersectionDetail = {};\n },\n\n /**\n * Create or update raycaster object.\n */\n update: function (oldData) {\n var data = this.data;\n var el = this.el;\n var raycaster = this.raycaster;\n\n // Set raycaster properties.\n raycaster.far = data.far;\n raycaster.near = data.near;\n\n // Draw line.\n if (data.showLine &&\n (data.far !== oldData.far || data.origin !== oldData.origin ||\n data.direction !== oldData.direction || !oldData.showLine)) {\n // Calculate unit vector for line direction. Can be multiplied via scalar to performantly\n // adjust line length.\n this.unitLineEndVec3.copy(data.origin).add(data.direction).normalize();\n this.drawLine();\n }\n\n if (!data.showLine && oldData.showLine) {\n el.removeAttribute('line');\n }\n\n if (data.objects !== oldData.objects && !OBSERVER_SELECTOR_RE.test(data.objects)) {\n warn('[raycaster] Selector \"' + data.objects +\n '\" may not update automatically with DOM changes.');\n }\n\n if (!data.objects) {\n warn('[raycaster] For performance, please define raycaster.objects when using ' +\n 'raycaster or cursor components to whitelist which entities to intersect with. ' +\n 'e.g., raycaster=\"objects: [data-raycastable]\".');\n }\n\n if (data.autoRefresh !== oldData.autoRefresh && el.isPlaying) {\n data.autoRefresh\n ? this.addEventListeners()\n : this.removeEventListeners();\n }\n\n if (oldData.enabled && !data.enabled) { this.clearAllIntersections(); }\n\n this.setDirty();\n },\n\n play: function () {\n this.addEventListeners();\n },\n\n pause: function () {\n this.removeEventListeners();\n },\n\n remove: function () {\n if (this.data.showLine) {\n this.el.removeAttribute('line');\n }\n this.clearAllIntersections();\n },\n\n addEventListeners: function () {\n if (!this.data.autoRefresh) { return; }\n this.observer.observe(this.el.sceneEl, OBSERVER_CONFIG);\n this.el.sceneEl.addEventListener('object3dset', this.setDirty);\n this.el.sceneEl.addEventListener('object3dremove', this.setDirty);\n },\n\n removeEventListeners: function () {\n this.observer.disconnect();\n this.el.sceneEl.removeEventListener('object3dset', this.setDirty);\n this.el.sceneEl.removeEventListener('object3dremove', this.setDirty);\n },\n\n /**\n * Mark the object list as dirty, to be refreshed before next raycast.\n */\n setDirty: function () {\n this.dirty = true;\n },\n\n /**\n * Update list of objects to test for intersection.\n */\n refreshObjects: function () {\n var data = this.data;\n var els;\n\n // If objects not defined, intersect with everything.\n els = data.objects\n ? this.el.sceneEl.querySelectorAll(data.objects)\n : this.el.sceneEl.querySelectorAll('*');\n this.objects = this.flattenObject3DMaps(els);\n this.dirty = false;\n },\n\n /**\n * Check for intersections and cleared intersections on an interval.\n */\n tock: function (time) {\n var data = this.data;\n var prevCheckTime = this.prevCheckTime;\n\n if (!data.enabled) { return; }\n\n // Only check for intersection if interval time has passed.\n if (prevCheckTime && (time - prevCheckTime < data.interval)) { return; }\n\n // Update check time.\n this.prevCheckTime = time;\n this.checkIntersections();\n },\n\n /**\n * Raycast for intersections and emit events for current and cleared intersections.\n */\n checkIntersections: function () {\n var clearedIntersectedEls = this.clearedIntersectedEls;\n var el = this.el;\n var data = this.data;\n var i;\n var intersectedEls = this.intersectedEls;\n var intersection;\n var intersections = this.intersections;\n var newIntersectedEls = this.newIntersectedEls;\n var newIntersections = this.newIntersections;\n var prevIntersectedEls = this.prevIntersectedEls;\n var rawIntersections = this.rawIntersections;\n\n // Refresh the object whitelist if needed.\n if (this.dirty) { this.refreshObjects(); }\n\n // Store old previously intersected entities.\n copyArray(this.prevIntersectedEls, this.intersectedEls);\n\n // Raycast.\n this.updateOriginDirection();\n rawIntersections.length = 0;\n this.raycaster.intersectObjects(this.objects, true, rawIntersections);\n\n // Only keep intersections against objects that have a reference to an entity.\n intersections.length = 0;\n intersectedEls.length = 0;\n for (i = 0; i < rawIntersections.length; i++) {\n intersection = rawIntersections[i];\n // Don't intersect with own line.\n if (data.showLine && intersection.object === el.getObject3D('line')) {\n continue;\n }\n if (intersection.object.el) {\n intersections.push(intersection);\n intersectedEls.push(intersection.object.el);\n }\n }\n\n // Get newly intersected entities.\n newIntersections.length = 0;\n newIntersectedEls.length = 0;\n for (i = 0; i < intersections.length; i++) {\n if (prevIntersectedEls.indexOf(intersections[i].object.el) === -1) {\n newIntersections.push(intersections[i]);\n newIntersectedEls.push(intersections[i].object.el);\n }\n }\n\n // Emit intersection cleared on both entities per formerly intersected entity.\n clearedIntersectedEls.length = 0;\n for (i = 0; i < prevIntersectedEls.length; i++) {\n if (intersectedEls.indexOf(prevIntersectedEls[i]) !== -1) { continue; }\n prevIntersectedEls[i].emit(EVENTS.INTERSECT_CLEAR,\n this.intersectedClearedDetail);\n clearedIntersectedEls.push(prevIntersectedEls[i]);\n }\n if (clearedIntersectedEls.length) {\n el.emit(EVENTS.INTERSECTION_CLEAR, this.intersectionClearedDetail);\n }\n\n // Emit intersected on intersected entity per intersected entity.\n for (i = 0; i < newIntersectedEls.length; i++) {\n newIntersectedEls[i].emit(EVENTS.INTERSECT, this.intersectedDetail);\n }\n\n // Emit all intersections at once on raycasting entity.\n if (newIntersections.length) {\n this.intersectionDetail.els = newIntersectedEls;\n this.intersectionDetail.intersections = newIntersections;\n el.emit(EVENTS.INTERSECTION, this.intersectionDetail);\n }\n\n // Emit event when the closest intersected entity has changed.\n if (prevIntersectedEls.length === 0 && intersections.length > 0 ||\n prevIntersectedEls.length > 0 && intersections.length === 0 ||\n (prevIntersectedEls.length && intersections.length &&\n prevIntersectedEls[0] !== intersections[0].object.el)) {\n this.intersectionDetail.els = this.intersectedEls;\n this.intersectionDetail.intersections = intersections;\n el.emit(EVENTS.INTERSECTION_CLOSEST_ENTITY_CHANGED, this.intersectionDetail);\n }\n\n // Update line length.\n if (data.showLine) { setTimeout(this.updateLine); }\n },\n\n updateLine: function () {\n var el = this.el;\n var intersections = this.intersections;\n var lineLength;\n\n if (intersections.length) {\n if (intersections[0].object.el === el && intersections[1]) {\n lineLength = intersections[1].distance;\n } else {\n lineLength = intersections[0].distance;\n }\n }\n this.drawLine(lineLength);\n },\n\n /**\n * Return the most recent intersection details for a given entity, if any.\n * @param {AEntity} el\n * @return {Object}\n */\n getIntersection: function (el) {\n var i;\n var intersection;\n for (i = 0; i < this.intersections.length; i++) {\n intersection = this.intersections[i];\n if (intersection.object.el === el) { return intersection; }\n }\n return null;\n },\n\n /**\n * Update origin and direction of raycaster using entity transforms and supplied origin or\n * direction offsets.\n */\n updateOriginDirection: (function () {\n var direction = new THREE.Vector3();\n var originVec3 = new THREE.Vector3();\n\n // Closure to make quaternion/vector3 objects private.\n return function updateOriginDirection () {\n var el = this.el;\n var data = this.data;\n\n if (data.useWorldCoordinates) {\n this.raycaster.set(data.origin, data.direction);\n return;\n }\n\n el.object3D.updateMatrixWorld();\n originVec3.setFromMatrixPosition(el.object3D.matrixWorld);\n\n // If non-zero origin, translate the origin into world space.\n if (data.origin.x !== 0 || data.origin.y !== 0 || data.origin.z !== 0) {\n originVec3 = el.object3D.localToWorld(originVec3.copy(data.origin));\n }\n\n // three.js raycaster direction is relative to 0, 0, 0 NOT the origin / offset we\n // provide. Apply the offset to the direction, then rotation from the object,\n // and normalize.\n direction.copy(data.direction).transformDirection(el.object3D.matrixWorld).normalize();\n\n // Apply offset and direction, in world coordinates.\n this.raycaster.set(originVec3, direction);\n };\n })(),\n\n /**\n * Create or update line to give raycaster visual representation.\n * Customize the line through through line component.\n * We draw the line in the raycaster component to customize the line to the\n * raycaster's origin, direction, and far.\n *\n * Unlike the raycaster, we create the line as a child of the object. The line will\n * be affected by the transforms of the objects, so we don't have to calculate transforms\n * like we do with the raycaster.\n *\n * @param {number} length - Length of line. Pass in to shorten the line to the intersection\n * point. If not provided, length will default to the max length, `raycaster.far`.\n */\n drawLine: function (length) {\n var data = this.data;\n var el = this.el;\n var endVec3;\n\n // Switch each time vector so line update triggered and to avoid unnecessary vector clone.\n endVec3 = this.lineData.end === this.lineEndVec3\n ? this.otherLineEndVec3\n : this.lineEndVec3;\n\n // Treat Infinity as 1000m for the line.\n if (length === undefined) {\n length = data.far === Infinity ? 1000 : data.far;\n }\n\n // Update the length of the line if given. `unitLineEndVec3` is the direction\n // given by data.direction, then we apply a scalar to give it a length.\n this.lineData.start = data.origin;\n this.lineData.end = endVec3.copy(this.unitLineEndVec3).multiplyScalar(length);\n this.lineData.color = data.lineColor;\n this.lineData.opacity = data.lineOpacity;\n el.setAttribute('line', this.lineData);\n },\n\n /**\n * Return A-Frame attachments of each element's object3D group (e.g., mesh).\n * Children are flattened by one level, removing the THREE.Group wrapper,\n * so that non-recursive raycasting remains useful.\n *\n * Only push children defined as component attachements (e.g., setObject3D),\n * NOT actual children in the scene graph hierarchy.\n *\n * @param {Array} els\n * @return {Array}\n */\n flattenObject3DMaps: function (els) {\n var key;\n var i;\n var objects = this.objects;\n var scene = this.el.sceneEl.object3D;\n\n function isAttachedToScene (object) {\n if (object.parent) {\n return isAttachedToScene(object.parent);\n } else {\n return (object === scene);\n }\n }\n\n // Push meshes and other attachments onto list of objects to intersect.\n objects.length = 0;\n for (i = 0; i < els.length; i++) {\n var el = els[i];\n if (el.isEntity && el.object3D && isAttachedToScene(el.object3D)) {\n for (key in el.object3DMap) {\n objects.push(el.getObject3D(key));\n }\n }\n }\n\n return objects;\n },\n\n clearAllIntersections: function () {\n var i;\n for (i = 0; i < this.intersectedEls.length; i++) {\n this.intersectedEls[i].emit(EVENTS.INTERSECT_CLEAR,\n this.intersectedClearedDetail);\n }\n copyArray(this.clearedIntersectedEls, this.intersectedEls);\n this.intersectedEls.length = 0;\n this.intersections.length = 0;\n this.el.emit(EVENTS.INTERSECTION_CLEAR, this.intersectionClearedDetail);\n }\n});\n\n/**\n * Copy contents of one array to another without allocating new array.\n */\nfunction copyArray (a, b) {\n var i;\n a.length = b.length;\n for (i = 0; i < b.length; i++) {\n a[i] = b[i];\n }\n}\n","var degToRad = require('../lib/three').MathUtils.degToRad;\nvar registerComponent = require('../core/component').registerComponent;\n\nmodule.exports.Component = registerComponent('rotation', {\n schema: {type: 'vec3'},\n\n /**\n * Updates object3D rotation.\n */\n update: function () {\n var data = this.data;\n var object3D = this.el.object3D;\n object3D.rotation.set(degToRad(data.x), degToRad(data.y), degToRad(data.z));\n object3D.rotation.order = 'YXZ';\n },\n\n remove: function () {\n // Pretty much for mixins.\n this.el.object3D.rotation.set(0, 0, 0);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\n// Avoids triggering a zero-determinant which makes object3D matrix non-invertible.\nvar zeroScale = 0.00001;\n\nmodule.exports.Component = registerComponent('scale', {\n schema: {\n type: 'vec3',\n default: {x: 1, y: 1, z: 1}\n },\n\n update: function () {\n var data = this.data;\n var object3D = this.el.object3D;\n var x = data.x === 0 ? zeroScale : data.x;\n var y = data.y === 0 ? zeroScale : data.y;\n var z = data.z === 0 ? zeroScale : data.z;\n object3D.scale.set(x, y, z);\n },\n\n remove: function () {\n // Pretty much for mixins.\n this.el.object3D.scale.set(1, 1, 1);\n }\n});\n","/* global ImageData, Map, Set */\nvar arrowURL = 'data:image/webp;base64,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';\nvar register = require('../../core/component').registerComponent;\nvar THREE = require('../../lib/three');\nvar CAM_LAYER = 21;\n\nvar applyPose = (function () {\n var tempQuaternion = new THREE.Quaternion();\n var tempVec3 = new THREE.Vector3();\n function applyPose (pose, object3D, offset) {\n object3D.position.copy(pose.transform.position);\n object3D.quaternion.copy(pose.transform.orientation);\n\n tempVec3.copy(offset);\n tempQuaternion.copy(pose.transform.orientation);\n tempVec3.applyQuaternion(tempQuaternion);\n object3D.position.sub(tempVec3);\n }\n return applyPose;\n}());\n\napplyPose.tempFakePose = {\n transform: {\n orientation: new THREE.Quaternion(),\n position: new THREE.Vector3()\n }\n};\n\n/**\n * Class to handle hit-test from a single source\n *\n * For a normal space provide it as a space option\n * new HitTest(renderer, {\n * space: viewerSpace\n * });\n *\n * this is also useful for the targetRaySpace of an XRInputSource\n *\n * It can also describe a transient input source like so:\n *\n * var profileToSupport = 'generic-touchscreen';\n * var transientHitTest = new HitTest(renderer, {\n * profile: profileToSupport\n * });\n *\n * Where the profile matches an item in a type of controller, profiles matching 'generic-touchscreen'\n * will always be a transient input and as of 08/2021 all transient inputs are 'generic-touchscreen'\n *\n * @param {WebGLRenderer} renderer THREE.JS Renderer\n * @param {} hitTestSourceDetails The source information either as the information for a transient hit-test or a regular hit-test\n */\nfunction HitTest (renderer, hitTestSourceDetails) {\n this.renderer = renderer;\n this.xrHitTestSource = null;\n\n renderer.xr.addEventListener('sessionend', function () {\n this.xrHitTestSource = null;\n }.bind(this));\n renderer.xr.addEventListener('sessionstart', function () {\n this.sessionStart(hitTestSourceDetails);\n }.bind(this));\n\n if (this.renderer.xr.isPresenting) {\n this.sessionStart(hitTestSourceDetails);\n }\n}\n\nHitTest.prototype.previousFrameAnchors = new Set();\nHitTest.prototype.anchorToObject3D = new Map();\n\nfunction warnAboutHitTest (e) {\n console.warn(e.message);\n console.warn('Cannot requestHitTestSource Are you missing: webxr=\"optionalFeatures: hit-test;\" from ?');\n}\n\nHitTest.prototype.sessionStart = function sessionStart (hitTestSourceDetails) {\n this.session = this.renderer.xr.getSession();\n if (!('requestHitTestSource' in this.session)) {\n warnAboutHitTest({message: 'No requestHitTestSource on the session.'});\n return;\n }\n if (hitTestSourceDetails.space) {\n this.session.requestHitTestSource(hitTestSourceDetails)\n .then(function (xrHitTestSource) {\n this.xrHitTestSource = xrHitTestSource;\n }.bind(this))\n .catch(warnAboutHitTest);\n } else if (hitTestSourceDetails.profile) {\n this.session.requestHitTestSourceForTransientInput(hitTestSourceDetails)\n .then(function (xrHitTestSource) {\n this.xrHitTestSource = xrHitTestSource;\n this.transient = true;\n }.bind(this))\n .catch(warnAboutHitTest);\n }\n};\n\n/**\n * Turns the last hit test into an anchor, the provided Object3D will have it's\n * position update to track the anchor.\n *\n * @param {Object3D} object3D object to track\n * @param {Vector3} offset offset of the object from the origin that gets subtracted\n * @returns\n */\nHitTest.prototype.anchorFromLastHitTestResult = function (object3D, offset) {\n var hitTest = this.lastHitTest;\n\n if (!hitTest) { return; }\n\n var object3DOptions = {\n object3D: object3D,\n offset: offset\n };\n\n Array.from(this.anchorToObject3D.entries())\n .forEach(function (entry) {\n var entryObject = entry[1].object3D;\n var anchor = entry[0];\n if (entryObject === object3D) {\n this.anchorToObject3D.delete(anchor);\n anchor.delete();\n }\n }.bind(this));\n\n if (hitTest.createAnchor) {\n hitTest.createAnchor()\n .then(function (anchor) {\n this.anchorToObject3D.set(anchor, object3DOptions);\n }.bind(this))\n .catch(function (e) {\n console.warn(e.message);\n console.warn('Cannot create anchor, are you missing: webxr=\"optionalFeatures: anchors;\" from ?');\n });\n }\n};\n\nHitTest.prototype.doHit = function doHit (frame) {\n if (!this.renderer.xr.isPresenting) { return; }\n var refSpace = this.renderer.xr.getReferenceSpace();\n var xrViewerPose = frame.getViewerPose(refSpace);\n var hitTestResults;\n var results;\n\n if (this.xrHitTestSource && xrViewerPose) {\n if (this.transient) {\n hitTestResults = frame.getHitTestResultsForTransientInput(this.xrHitTestSource);\n if (hitTestResults.length > 0) {\n results = hitTestResults[0].results;\n if (results.length > 0) {\n this.lastHitTest = results[0];\n return results[0].getPose(refSpace);\n } else {\n return false;\n }\n } else {\n return false;\n }\n } else {\n hitTestResults = frame.getHitTestResults(this.xrHitTestSource);\n if (hitTestResults.length > 0) {\n this.lastHitTest = hitTestResults[0];\n return hitTestResults[0].getPose(refSpace);\n } else {\n return false;\n }\n }\n }\n};\n\n// static function\nHitTest.updateAnchorPoses = function (frame, refSpace) {\n // If tracked anchors isn't defined because it's not supported then just use the empty set\n var trackedAnchors = frame.trackedAnchors || HitTest.prototype.previousFrameAnchors;\n\n HitTest.prototype.previousFrameAnchors.forEach(function (anchor) {\n // Handle anchor tracking loss - `anchor` was present\n // in the present frame but is no longer tracked.\n if (!trackedAnchors.has(anchor)) {\n HitTest.prototype.anchorToObject3D.delete(anchor);\n }\n });\n\n trackedAnchors.forEach(function (anchor) {\n var anchorPose;\n var object3DOptions;\n var offset;\n var object3D;\n\n try {\n // Query most recent pose of the anchor relative to some reference space:\n anchorPose = frame.getPose(anchor.anchorSpace, refSpace);\n } catch (e) {\n // This will fail if the anchor has been deleted that frame\n }\n\n if (anchorPose) {\n object3DOptions = HitTest.prototype.anchorToObject3D.get(anchor);\n offset = object3DOptions.offset;\n object3D = object3DOptions.object3D;\n\n applyPose(anchorPose, object3D, offset);\n }\n });\n};\n\nvar hitTestCache;\nmodule.exports.Component = register('ar-hit-test', {\n schema: {\n target: { type: 'selector' },\n enabled: { default: true },\n src: {\n default: arrowURL,\n type: 'map'\n },\n type: {\n default: 'footprint',\n oneOf: ['footprint', 'map']\n },\n footprintDepth: {\n default: 0.1\n },\n mapSize: {\n type: 'vec2',\n default: {\n x: 0.5,\n y: 0.5\n }\n }\n },\n\n init: function () {\n this.hitTest = null;\n this.imageDataArray = new Uint8ClampedArray(512 * 512 * 4);\n this.imageData = new ImageData(this.imageDataArray, 512, 512);\n\n this.textureCache = new Map();\n\n this.orthoCam = new THREE.OrthographicCamera();\n this.orthoCam.layers.set(CAM_LAYER);\n this.textureTarget = new THREE.WebGLRenderTarget(512, 512, {});\n this.basicMaterial = new THREE.MeshBasicMaterial({\n color: 0x000000,\n side: THREE.DoubleSide\n });\n this.canvas = document.createElement('canvas');\n this.context = this.canvas.getContext('2d');\n this.context.imageSmoothingEnabled = false;\n this.canvas.width = 512;\n this.canvas.height = 512;\n this.canvasTexture = new THREE.CanvasTexture(this.canvas, {\n alpha: true\n });\n this.canvasTexture.flipY = false;\n\n // Update WebXR to support hit-test and anchors\n var webxrData = this.el.getAttribute('webxr');\n var optionalFeaturesArray = webxrData.optionalFeatures;\n if (\n !optionalFeaturesArray.includes('hit-test') ||\n !optionalFeaturesArray.includes('anchors')\n ) {\n optionalFeaturesArray.push('hit-test');\n optionalFeaturesArray.push('anchors');\n this.el.setAttribute('webxr', webxrData);\n }\n\n this.el.sceneEl.renderer.xr.addEventListener('sessionend', function () {\n this.hitTest = null;\n }.bind(this));\n\n this.el.sceneEl.renderer.xr.addEventListener('sessionstart', function () {\n // Don't request Hit Test unless AR (breaks WebXR Emulator)\n if (!this.el.is('ar-mode')) { return; }\n\n var renderer = this.el.sceneEl.renderer;\n var session = this.session = renderer.xr.getSession();\n this.hasPosedOnce = false;\n this.bboxMesh.visible = false;\n\n if (!hitTestCache) { hitTestCache = new Map(); }\n\n // Default to selecting through the face\n session.requestReferenceSpace('viewer')\n .then(function (viewerSpace) {\n this.hitTest = new HitTest(renderer, {\n space: viewerSpace\n });\n\n hitTestCache.set(viewerSpace, this.hitTest);\n\n this.el.emit('ar-hit-test-start');\n }.bind(this));\n\n // These are transient inputs so need to be handled seperately\n var profileToSupport = 'generic-touchscreen';\n var transientHitTest = new HitTest(renderer, {\n profile: profileToSupport\n });\n\n session.addEventListener('selectstart', function (e) {\n if (this.data.enabled !== true) { return; }\n\n var inputSource = e.inputSource;\n\n this.bboxMesh.visible = true;\n\n if (this.hasPosedOnce === true) {\n this.el.emit('ar-hit-test-select-start', {\n inputSource: inputSource,\n position: this.bboxMesh.position,\n orientation: this.bboxMesh.quaternion\n });\n\n if (inputSource.profiles[0] === profileToSupport) {\n this.hitTest = transientHitTest;\n } else {\n this.hitTest = hitTestCache.get(inputSource) || new HitTest(renderer, {\n space: inputSource.targetRaySpace\n });\n hitTestCache.set(inputSource, this.hitTest);\n }\n }\n }.bind(this));\n\n session.addEventListener('selectend', function (e) {\n if (!this.hitTest || this.data.enabled !== true) {\n this.hitTest = null;\n return;\n }\n\n var inputSource = e.inputSource;\n var object;\n\n if (this.hasPosedOnce === true) {\n this.bboxMesh.visible = false;\n\n // if we have a target with a 3D object then automatically generate an anchor for it.\n if (this.data.target) {\n object = this.data.target.object3D;\n\n if (object) {\n applyPose.tempFakePose.transform.position.copy(this.bboxMesh.position);\n applyPose.tempFakePose.transform.orientation.copy(this.bboxMesh.quaternion);\n applyPose(applyPose.tempFakePose, object, this.bboxOffset);\n object.visible = true;\n\n // create an anchor attatched to the object\n this.hitTest.anchorFromLastHitTestResult(object, this.bboxOffset);\n }\n }\n\n this.el.emit('ar-hit-test-select', {\n inputSource: inputSource,\n position: this.bboxMesh.position,\n orientation: this.bboxMesh.quaternion\n });\n }\n\n this.hitTest = null;\n }.bind(this));\n }.bind(this));\n\n this.bboxOffset = new THREE.Vector3();\n this.update = this.update.bind(this);\n this.makeBBox();\n },\n update: function () {\n // If it is disabled it's cleaned up\n if (this.data.enabled === false) {\n this.hitTest = null;\n this.bboxMesh.visible = false;\n }\n if (this.data.target) {\n if (this.data.target.object3D) {\n this.data.target.addEventListener('model-loaded', this.update);\n this.data.target.object3D.layers.enable(CAM_LAYER);\n this.data.target.object3D.traverse(function (child) {\n child.layers.enable(CAM_LAYER);\n });\n } else {\n this.data.target.addEventListener('loaded', this.update, {once: true});\n }\n }\n this.bboxNeedsUpdate = true;\n },\n makeBBox: function () {\n var geometry = new THREE.PlaneGeometry(1, 1);\n var material = new THREE.MeshBasicMaterial({\n transparent: true,\n color: 0xffffff\n });\n geometry.rotateX(-Math.PI / 2);\n geometry.rotateY(-Math.PI / 2);\n this.bbox = new THREE.Box3();\n this.bboxMesh = new THREE.Mesh(geometry, material);\n this.el.setObject3D('ar-hit-test', this.bboxMesh);\n this.bboxMesh.visible = false;\n },\n updateFootprint: function () {\n var tempImageData;\n var renderer = this.el.sceneEl.renderer;\n var oldRenderTarget, oldBackground;\n var isXREnabled = renderer.xr.enabled;\n this.bboxMesh.material.map = this.canvasTexture;\n this.bboxMesh.material.needsUpdate = true;\n this.orthoCam.rotation.set(-Math.PI / 2, 0, -Math.PI / 2);\n this.orthoCam.position.copy(this.bboxMesh.position);\n this.orthoCam.position.y -= this.bboxMesh.scale.y / 2;\n this.orthoCam.near = 0.1;\n this.orthoCam.far = this.orthoCam.near + (this.data.footprintDepth * this.bboxMesh.scale.y);\n this.orthoCam.position.y += this.orthoCam.far;\n this.orthoCam.right = this.bboxMesh.scale.z / 2;\n this.orthoCam.left = -this.bboxMesh.scale.z / 2;\n this.orthoCam.top = this.bboxMesh.scale.x / 2;\n this.orthoCam.bottom = -this.bboxMesh.scale.x / 2;\n this.orthoCam.updateProjectionMatrix();\n\n oldRenderTarget = renderer.getRenderTarget();\n renderer.setRenderTarget(this.textureTarget);\n renderer.xr.enabled = false;\n oldBackground = this.el.object3D.background;\n this.el.object3D.overrideMaterial = this.basicMaterial;\n this.el.object3D.background = null;\n renderer.render(this.el.object3D, this.orthoCam);\n this.el.object3D.background = oldBackground;\n this.el.object3D.overrideMaterial = null;\n renderer.xr.enabled = isXREnabled;\n renderer.setRenderTarget(oldRenderTarget);\n renderer.readRenderTargetPixels(this.textureTarget, 0, 0, 512, 512, this.imageDataArray);\n\n this.context.putImageData(this.imageData, 0, 0);\n this.context.shadowColor = 'white';\n this.context.shadowBlur = 10;\n this.context.drawImage(this.canvas, 0, 0);\n tempImageData = this.context.getImageData(0, 0, 512, 512);\n for (var i = 0; i < 512 * 512; i++) {\n // if it's a little bit transparent but not opaque make it middle transparent\n if (tempImageData.data[ i * 4 + 3 ] !== 0 && tempImageData.data[ i * 4 + 3 ] !== 255) {\n tempImageData.data[ i * 4 + 3 ] = 128;\n }\n }\n this.context.putImageData(tempImageData, 0, 0);\n this.canvasTexture.needsUpdate = true;\n },\n tick: function () {\n var pose;\n var frame = this.el.sceneEl.frame;\n var renderer = this.el.sceneEl.renderer;\n\n if (frame) {\n // if we are in XR then update the positions of the objects attatched to anchors\n HitTest.updateAnchorPoses(frame, renderer.xr.getReferenceSpace());\n }\n if (this.bboxNeedsUpdate) {\n this.bboxNeedsUpdate = false;\n\n if (!this.data.target || this.data.type === 'map') {\n var texture;\n if (this.textureCache.has(this.data.src)) {\n texture = this.textureCache.get(this.data.src);\n } else {\n texture = new THREE.TextureLoader().load(this.data.src);\n this.textureCache.set(this.data.src, texture);\n }\n this.bboxMesh.material.map = texture;\n this.bboxMesh.material.needsUpdate = true;\n }\n\n if (this.data.target && this.data.target.object3D) {\n this.bbox.setFromObject(this.data.target.object3D);\n this.bbox.getCenter(this.bboxMesh.position);\n this.bbox.getSize(this.bboxMesh.scale);\n\n if (this.data.type === 'footprint') {\n // Add a little buffer for the footprint border\n this.bboxMesh.scale.x *= 1.04;\n this.bboxMesh.scale.z *= 1.04;\n this.updateFootprint();\n }\n\n this.bboxMesh.position.y -= this.bboxMesh.scale.y / 2;\n this.bboxOffset.copy(this.bboxMesh.position);\n this.bboxOffset.sub(this.data.target.object3D.position);\n } else {\n this.bboxMesh.scale.set(this.data.mapSize.x, 1, this.data.mapSize.y);\n }\n }\n\n if (this.hitTest) {\n pose = this.hitTest.doHit(frame);\n if (pose) {\n if (this.hasPosedOnce !== true) {\n this.hasPosedOnce = true;\n this.el.emit('ar-hit-test-achieved');\n }\n this.bboxMesh.visible = true;\n this.bboxMesh.position.copy(pose.transform.position);\n this.bboxMesh.quaternion.copy(pose.transform.orientation);\n }\n }\n }\n});\n","/* global THREE */\nvar register = require('../../core/component').registerComponent;\nvar COMPONENTS = require('../../core/component').components;\n\nmodule.exports.Component = register('background', {\n schema: {\n color: { type: 'color', default: 'black' },\n transparent: { default: false }\n },\n update: function () {\n var data = this.data;\n var object3D = this.el.object3D;\n\n if (data.transparent) {\n object3D.background = null;\n } else {\n object3D.background = new THREE.Color(data.color);\n }\n },\n\n remove: function () {\n var data = this.data;\n var object3D = this.el.object3D;\n if (data.transparent) {\n object3D.background = null;\n return;\n }\n object3D.background = COMPONENTS[this.name].schema.color.default;\n }\n});\n","var register = require('../../core/component').registerComponent;\n\nmodule.exports.Component = register('debug', {\n schema: {default: true}\n});\n","/* global DeviceOrientationEvent, location */\nvar registerComponent = require('../../core/component').registerComponent;\nvar utils = require('../../utils/');\nvar bind = utils.bind;\n\nvar constants = require('../../constants/');\n\nvar MODAL_CLASS = 'a-modal';\nvar DIALOG_CLASS = 'a-dialog';\nvar DIALOG_TEXT_CLASS = 'a-dialog-text';\nvar DIALOG_TEXT_CONTAINER_CLASS = 'a-dialog-text-container';\nvar DIALOG_BUTTONS_CONTAINER_CLASS = 'a-dialog-buttons-container';\nvar DIALOG_BUTTON_CLASS = 'a-dialog-button';\nvar DIALOG_ALLOW_BUTTON_CLASS = 'a-dialog-allow-button';\nvar DIALOG_DENY_BUTTON_CLASS = 'a-dialog-deny-button';\nvar DIALOG_OK_BUTTON_CLASS = 'a-dialog-ok-button';\n\n/**\n * UI for enabling device motion permission\n */\nmodule.exports.Component = registerComponent('device-orientation-permission-ui', {\n schema: {\n enabled: {default: true},\n deviceMotionMessage: {\n default: 'This immersive website requires access to your device motion sensors.'\n },\n httpsMessage: {\n default: 'Access this site over HTTPS to enter VR mode and grant access to the device sensors.'\n },\n denyButtonText: {default: 'Deny'},\n allowButtonText: {default: 'Allow'},\n cancelButtonText: {default: 'Cancel'}\n },\n\n init: function () {\n var self = this;\n\n if (!this.data.enabled) { return; }\n\n if (location.hostname !== 'localhost' &&\n location.hostname !== '127.0.0.1' &&\n location.protocol === 'http:') {\n this.showHTTPAlert();\n }\n\n // Browser doesn't support or doesn't require permission to DeviceOrientationEvent API.\n if (typeof DeviceOrientationEvent === 'undefined' || !DeviceOrientationEvent.requestPermission) {\n this.permissionGranted = true;\n return;\n }\n\n this.onDeviceMotionDialogAllowClicked = bind(this.onDeviceMotionDialogAllowClicked, this);\n this.onDeviceMotionDialogDenyClicked = bind(this.onDeviceMotionDialogDenyClicked, this);\n // Show dialog only if permission has not yet been granted.\n DeviceOrientationEvent.requestPermission().then(function () {\n self.el.emit('deviceorientationpermissiongranted');\n self.permissionGranted = true;\n }).catch(function () {\n self.devicePermissionDialogEl = createPermissionDialog(\n self.data.denyButtonText,\n self.data.allowButtonText,\n self.data.deviceMotionMessage,\n self.onDeviceMotionDialogAllowClicked,\n self.onDeviceMotionDialogDenyClicked);\n self.el.appendChild(self.devicePermissionDialogEl);\n });\n },\n\n remove: function () {\n // This removes the modal screen\n if (this.devicePermissionDialogEl) { this.el.removeChild(this.devicePermissionDialogEl); }\n },\n\n onDeviceMotionDialogDenyClicked: function () {\n this.remove();\n },\n\n showHTTPAlert: function () {\n var self = this;\n var httpAlertEl = createAlertDialog(\n self.data.cancelButtonText,\n self.data.httpsMessage,\n function () { self.el.removeChild(httpAlertEl); });\n this.el.appendChild(httpAlertEl);\n },\n\n /**\n * Enable device motion permission when clicked.\n */\n onDeviceMotionDialogAllowClicked: function () {\n var self = this;\n this.el.emit('deviceorientationpermissionrequested');\n DeviceOrientationEvent.requestPermission().then(function (response) {\n if (response === 'granted') {\n self.el.emit('deviceorientationpermissiongranted');\n self.permissionGranted = true;\n } else {\n self.el.emit('deviceorientationpermissionrejected');\n }\n self.remove();\n }).catch(console.error);\n }\n});\n\n/**\n * Create a modal dialog that request users permission to access the Device Motion API.\n *\n * @param {function} onAllowClicked - click event handler\n * @param {function} onDenyClicked - click event handler\n *\n * @returns {Element} Wrapper
.\n */\nfunction createPermissionDialog (\n denyText, allowText, dialogText, onAllowClicked, onDenyClicked) {\n var buttonsContainer;\n var denyButton;\n var acceptButton;\n\n buttonsContainer = document.createElement('div');\n buttonsContainer.classList.add(DIALOG_BUTTONS_CONTAINER_CLASS);\n\n // Buttons\n denyButton = document.createElement('button');\n denyButton.classList.add(DIALOG_BUTTON_CLASS, DIALOG_DENY_BUTTON_CLASS);\n denyButton.setAttribute(constants.AFRAME_INJECTED, '');\n denyButton.innerHTML = denyText;\n buttonsContainer.appendChild(denyButton);\n\n acceptButton = document.createElement('button');\n acceptButton.classList.add(DIALOG_BUTTON_CLASS, DIALOG_ALLOW_BUTTON_CLASS);\n acceptButton.setAttribute(constants.AFRAME_INJECTED, '');\n acceptButton.innerHTML = allowText;\n buttonsContainer.appendChild(acceptButton);\n\n // Ask for sensor events to be used\n acceptButton.addEventListener('click', function (evt) {\n evt.stopPropagation();\n onAllowClicked();\n });\n\n denyButton.addEventListener('click', function (evt) {\n evt.stopPropagation();\n onDenyClicked();\n });\n\n return createDialog(dialogText, buttonsContainer);\n}\n\nfunction createAlertDialog (closeText, dialogText, onOkClicked) {\n var buttonsContainer;\n var okButton;\n\n buttonsContainer = document.createElement('div');\n buttonsContainer.classList.add(DIALOG_BUTTONS_CONTAINER_CLASS);\n\n // Buttons\n okButton = document.createElement('button');\n okButton.classList.add(DIALOG_BUTTON_CLASS, DIALOG_OK_BUTTON_CLASS);\n okButton.setAttribute(constants.AFRAME_INJECTED, '');\n okButton.innerHTML = closeText;\n buttonsContainer.appendChild(okButton);\n\n // Ask for sensor events to be used\n okButton.addEventListener('click', function (evt) {\n evt.stopPropagation();\n onOkClicked();\n });\n\n return createDialog(dialogText, buttonsContainer);\n}\n\nfunction createDialog (text, buttonsContainerEl) {\n var modalContainer;\n var dialog;\n var dialogTextContainer;\n var dialogText;\n\n modalContainer = document.createElement('div');\n modalContainer.classList.add(MODAL_CLASS);\n modalContainer.setAttribute(constants.AFRAME_INJECTED, '');\n\n dialog = document.createElement('div');\n dialog.className = DIALOG_CLASS;\n dialog.setAttribute(constants.AFRAME_INJECTED, '');\n modalContainer.appendChild(dialog);\n\n dialogTextContainer = document.createElement('div');\n dialogTextContainer.classList.add(DIALOG_TEXT_CONTAINER_CLASS);\n dialog.appendChild(dialogTextContainer);\n\n dialogText = document.createElement('div');\n dialogText.classList.add(DIALOG_TEXT_CLASS);\n dialogText.innerHTML = text;\n dialogTextContainer.appendChild(dialogText);\n\n dialog.appendChild(buttonsContainerEl);\n\n return modalContainer;\n}\n","var registerComponent = require('../../core/component').registerComponent;\n\n/**\n * Component to embed an a-frame scene within the layout of a 2D page.\n */\nmodule.exports.Component = registerComponent('embedded', {\n dependencies: ['vr-mode-ui'],\n\n schema: {default: true},\n\n update: function () {\n var sceneEl = this.el;\n var enterVREl = sceneEl.querySelector('.a-enter-vr');\n if (this.data === true) {\n if (enterVREl) { enterVREl.classList.add('embedded'); }\n sceneEl.removeFullScreenStyles();\n } else {\n if (enterVREl) { enterVREl.classList.remove('embedded'); }\n sceneEl.addFullScreenStyles();\n }\n }\n\n});\n","var register = require('../../core/component').registerComponent;\nvar THREE = require('../../lib/three');\nvar debug = require('../../utils/debug');\n\nvar warn = debug('components:fog:warn');\n\n/**\n * Fog component.\n * Applies only to the scene entity.\n */\nmodule.exports.Component = register('fog', {\n schema: {\n color: {type: 'color', default: '#000'},\n density: {default: 0.00025},\n far: {default: 1000, min: 0},\n near: {default: 1, min: 0},\n type: {default: 'linear', oneOf: ['linear', 'exponential']}\n },\n\n update: function () {\n var data = this.data;\n var el = this.el;\n var fog = this.el.object3D.fog;\n\n if (!el.isScene) {\n warn('Fog component can only be applied to ');\n return;\n }\n\n // (Re)create fog if fog doesn't exist or fog type changed.\n if (!fog || data.type !== fog.name) {\n el.object3D.fog = getFog(data);\n el.systems.material.updateMaterials();\n return;\n }\n\n // Fog data changed. Update fog.\n Object.keys(this.schema).forEach(function (key) {\n var value = data[key];\n if (key === 'color') { value = new THREE.Color(value); }\n fog[key] = value;\n });\n },\n\n /**\n * Remove fog on remove (callback).\n */\n remove: function () {\n var fog = this.el.object3D.fog;\n if (!fog) { return; }\n fog.far = 0;\n fog.near = 0.1;\n }\n});\n\n/**\n * Creates a fog object. Sets fog.name to be able to detect fog type changes.\n *\n * @param {object} data - Fog data.\n * @returns {object} fog\n */\nfunction getFog (data) {\n var fog;\n if (data.type === 'exponential') {\n fog = new THREE.FogExp2(data.color, data.density);\n } else {\n fog = new THREE.Fog(data.color, data.near, data.far);\n }\n fog.name = data.type;\n return fog;\n}\n","/* global AFRAME */\nvar AFRAME_INJECTED = require('../../constants').AFRAME_INJECTED;\nvar pkg = require('../../../package');\nvar registerComponent = require('../../core/component').registerComponent;\nvar utils = require('../../utils/');\n\n/**\n * 0.4.2 to 0.4.x\n * Will need to update this when A-Frame goes to 1.x.x.\n */\nfunction getFuzzyPatchVersion (version) {\n var split = version.split('.');\n split[2] = 'x';\n return split.join('.');\n}\n\nvar INSPECTOR_DEV_URL = 'https://aframe.io/aframe-inspector/dist/aframe-inspector.js';\nvar INSPECTOR_RELEASE_URL = 'https://unpkg.com/aframe-inspector@' + getFuzzyPatchVersion(pkg.version) + '/dist/aframe-inspector.min.js';\nvar INSPECTOR_URL = process.env.INSPECTOR_VERSION === 'dev' ? INSPECTOR_DEV_URL : INSPECTOR_RELEASE_URL;\nvar LOADING_MESSAGE = 'Loading Inspector';\nvar LOADING_ERROR_MESSAGE = 'Error loading Inspector';\n\nmodule.exports.Component = registerComponent('inspector', {\n schema: {\n url: {default: INSPECTOR_URL}\n },\n\n init: function () {\n this.firstPlay = true;\n this.onKeydown = this.onKeydown.bind(this);\n this.onMessage = this.onMessage.bind(this);\n this.initOverlay();\n window.addEventListener('keydown', this.onKeydown);\n window.addEventListener('message', this.onMessage);\n },\n\n play: function () {\n var urlParam;\n if (!this.firstPlay) { return; }\n urlParam = utils.getUrlParameter('inspector');\n if (urlParam !== 'false' && !!urlParam) {\n this.openInspector();\n this.firstPlay = false;\n }\n },\n\n initOverlay: function () {\n var dotsHTML = '...';\n this.loadingMessageEl = document.createElement('div');\n this.loadingMessageEl.classList.add('a-inspector-loader');\n this.loadingMessageEl.innerHTML = LOADING_MESSAGE + dotsHTML;\n },\n\n remove: function () {\n this.removeEventListeners();\n },\n\n /**\n * + + i keyboard shortcut.\n */\n onKeydown: function (evt) {\n var shortcutPressed = evt.keyCode === 73 && (evt.ctrlKey && evt.altKey || evt.getModifierState('AltGraph'));\n if (!shortcutPressed) { return; }\n this.openInspector();\n },\n\n showLoader: function () {\n document.body.appendChild(this.loadingMessageEl);\n },\n\n hideLoader: function () {\n document.body.removeChild(this.loadingMessageEl);\n },\n\n /**\n * postMessage. aframe.io uses this to create a button on examples to open Inspector.\n */\n onMessage: function (evt) {\n if (evt.data === 'INJECT_AFRAME_INSPECTOR') { this.openInspector(); }\n },\n\n openInspector: function (focusEl) {\n var self = this;\n var script;\n\n // Already injected. Open.\n if (AFRAME.INSPECTOR || AFRAME.inspectorInjected) {\n AFRAME.INSPECTOR.open(focusEl);\n return;\n }\n\n this.showLoader();\n\n // Inject.\n script = document.createElement('script');\n script.src = this.data.url;\n script.setAttribute('data-name', 'aframe-inspector');\n script.setAttribute(AFRAME_INJECTED, '');\n script.onload = function () {\n AFRAME.INSPECTOR.open(focusEl);\n self.hideLoader();\n self.removeEventListeners();\n };\n script.onerror = function () {\n self.loadingMessageEl.innerHTML = LOADING_ERROR_MESSAGE;\n };\n document.head.appendChild(script);\n AFRAME.inspectorInjected = true;\n },\n\n removeEventListeners: function () {\n window.removeEventListener('keydown', this.onKeydown);\n window.removeEventListener('message', this.onMessage);\n }\n});\n","var registerComponent = require('../../core/component').registerComponent;\nvar shouldCaptureKeyEvent = require('../../utils/').shouldCaptureKeyEvent;\n\nmodule.exports.Component = registerComponent('keyboard-shortcuts', {\n schema: {\n enterVR: {default: true},\n exitVR: {default: true}\n },\n\n init: function () {\n this.onKeyup = this.onKeyup.bind(this);\n },\n\n update: function (oldData) {\n var data = this.data;\n this.enterVREnabled = data.enterVR;\n },\n\n play: function () {\n window.addEventListener('keyup', this.onKeyup, false);\n },\n\n pause: function () {\n window.removeEventListener('keyup', this.onKeyup);\n },\n\n onKeyup: function (evt) {\n var scene = this.el;\n if (!shouldCaptureKeyEvent(evt)) { return; }\n if (this.enterVREnabled && evt.keyCode === 70) { // f.\n scene.enterVR();\n }\n if (this.enterVREnabled && evt.keyCode === 27) { // escape.\n scene.exitVR();\n }\n }\n});\n","var debug = require('../../utils/debug');\nvar registerComponent = require('../../core/component').registerComponent;\n\nvar warn = debug('components:pool:warn');\n\n/**\n * Pool component to reuse entities.\n * Avoids creating and destroying the same kind of entities.\n * Helps reduce GC pauses. For example in a game to reuse enemies entities.\n *\n * @member {array} availableEls - Available entities in the pool.\n * @member {array} usedEls - Entities of the pool in use.\n */\nmodule.exports.Component = registerComponent('pool', {\n schema: {\n container: {default: ''},\n mixin: {default: ''},\n size: {default: 0},\n dynamic: {default: false}\n },\n\n multiple: true,\n\n initPool: function () {\n var i;\n\n this.availableEls = [];\n this.usedEls = [];\n\n if (!this.data.mixin) {\n warn('No mixin provided for pool component.');\n }\n\n if (this.data.container) {\n this.container = document.querySelector(this.data.container);\n if (!this.container) {\n warn('Container ' + this.data.container + ' not found.');\n }\n }\n this.container = this.container || this.el;\n\n for (i = 0; i < this.data.size; ++i) {\n this.createEntity();\n }\n },\n\n update: function (oldData) {\n var data = this.data;\n if (oldData.mixin !== data.mixin || oldData.size !== data.size) {\n this.initPool();\n }\n },\n\n /**\n * Add a new entity to the list of available entities.\n */\n createEntity: function () {\n var el;\n el = document.createElement('a-entity');\n el.play = this.wrapPlay(el.play);\n el.setAttribute('mixin', this.data.mixin);\n el.object3D.visible = false;\n el.pause();\n this.container.appendChild(el);\n this.availableEls.push(el);\n\n var usedEls = this.usedEls;\n el.addEventListener('loaded', function () {\n if (usedEls.indexOf(el) !== -1) { return; }\n el.object3DParent = el.object3D.parent;\n el.object3D.parent.remove(el.object3D);\n });\n },\n\n /**\n * Play wrapper for pooled entities. When pausing and playing a scene, don't want to play\n * entities that are not in use.\n */\n wrapPlay: function (playMethod) {\n var usedEls = this.usedEls;\n return function () {\n if (usedEls.indexOf(this) === -1) { return; }\n playMethod.call(this);\n };\n },\n\n /**\n * Used to request one of the available entities of the pool.\n */\n requestEntity: function () {\n var el;\n if (this.availableEls.length === 0) {\n if (this.data.dynamic === false) {\n warn('Requested entity from empty pool: ' + this.attrName);\n return;\n } else {\n warn('Requested entity from empty pool. This pool is dynamic and will resize ' +\n 'automatically. You might want to increase its initial size: ' + this.attrName);\n }\n this.createEntity();\n }\n el = this.availableEls.shift();\n this.usedEls.push(el);\n if (el.object3DParent) {\n el.object3DParent.add(el.object3D);\n this.updateRaycasters();\n }\n el.object3D.visible = true;\n return el;\n },\n\n /**\n * Used to return a used entity to the pool.\n */\n returnEntity: function (el) {\n var index = this.usedEls.indexOf(el);\n if (index === -1) {\n warn('The returned entity was not previously pooled from ' + this.attrName);\n return;\n }\n this.usedEls.splice(index, 1);\n this.availableEls.push(el);\n el.object3DParent = el.object3D.parent;\n el.object3D.parent.remove(el.object3D);\n this.updateRaycasters();\n el.object3D.visible = false;\n el.pause();\n return el;\n },\n\n updateRaycasters () {\n var raycasterEls = document.querySelectorAll('[raycaster]');\n\n raycasterEls.forEach(function (el) {\n el.components['raycaster'].setDirty();\n });\n }\n});\n","/* global THREE, XRWebGLBinding */\nvar register = require('../../core/component').registerComponent;\n\n// source: view-source:https://storage.googleapis.com/chromium-webxr-test/r886480/proposals/lighting-estimation.html\nfunction updateLights (estimate, probeLight, directionalLight, directionalLightPosition) {\n var intensityScalar =\n Math.max(estimate.primaryLightIntensity.x,\n Math.max(estimate.primaryLightIntensity.y,\n estimate.primaryLightIntensity.z));\n\n probeLight.sh.fromArray(estimate.sphericalHarmonicsCoefficients);\n probeLight.intensity = 1;\n\n if (directionalLight) {\n directionalLight.color.setRGB(\n estimate.primaryLightIntensity.x / intensityScalar,\n estimate.primaryLightIntensity.y / intensityScalar,\n estimate.primaryLightIntensity.z / intensityScalar);\n\n directionalLight.intensity = intensityScalar;\n directionalLightPosition.copy(estimate.primaryLightDirection);\n }\n}\n\nmodule.exports.Component = register('reflection', {\n schema: {\n directionalLight: { type: 'selector' }\n },\n init: function () {\n var self = this;\n this.cubeRenderTarget = new THREE.WebGLCubeRenderTarget(16);\n this.cubeCamera = new THREE.CubeCamera(0.1, 1000, this.cubeRenderTarget);\n this.lightingEstimationTexture = (new THREE.WebGLCubeRenderTarget(16)).texture;\n this.needsVREnvironmentUpdate = true;\n\n // Update WebXR to support light-estimation\n var webxrData = this.el.getAttribute('webxr');\n var optionalFeaturesArray = webxrData.optionalFeatures;\n if (!optionalFeaturesArray.includes('light-estimation')) {\n optionalFeaturesArray.push('light-estimation');\n this.el.setAttribute('webxr', webxrData);\n }\n\n this.el.addEventListener('enter-vr', function () {\n var renderer = self.el.renderer;\n var session = renderer.xr.getSession();\n if (\n session.requestLightProbe && self.el.is('ar-mode')\n ) {\n self.startLightProbe();\n }\n });\n\n this.el.addEventListener('exit-vr', function () {\n self.stopLightProbe();\n });\n\n this.el.object3D.environment = this.cubeRenderTarget.texture;\n },\n stopLightProbe: function () {\n this.xrLightProbe = null;\n if (this.probeLight) {\n this.probeLight.components.light.light.intensity = 0;\n }\n this.needsVREnvironmentUpdate = true;\n this.el.object3D.environment = this.cubeRenderTarget.texture;\n },\n startLightProbe: function () {\n this.needsLightProbeUpdate = true;\n },\n setupLightProbe: function () {\n var renderer = this.el.renderer;\n var xrSession = renderer.xr.getSession();\n var self = this;\n var gl = renderer.getContext();\n\n if (!this.probeLight) {\n var probeLight = document.createElement('a-light');\n probeLight.setAttribute('type', 'probe');\n probeLight.setAttribute('intensity', 0);\n this.el.appendChild(probeLight);\n this.probeLight = probeLight;\n }\n\n // Ensure that we have any extensions needed to use the preferred cube map format.\n switch (xrSession.preferredReflectionFormat) {\n case 'srgba8':\n gl.getExtension('EXT_sRGB');\n break;\n\n case 'rgba16f':\n gl.getExtension('OES_texture_half_float');\n break;\n }\n\n this.glBinding = new XRWebGLBinding(xrSession, gl);\n gl.getExtension('EXT_sRGB');\n gl.getExtension('OES_texture_half_float');\n\n xrSession.requestLightProbe()\n .then(function (lightProbe) {\n self.xrLightProbe = lightProbe;\n lightProbe.addEventListener('reflectionchange', self.updateXRCubeMap.bind(self));\n })\n .catch(function (err) {\n console.warn('Lighting estimation not supported: ' + err.message);\n console.warn('Are you missing: webxr=\"optionalFeatures: light-estimation;\" from ?');\n });\n },\n updateXRCubeMap: function () {\n // Update Cube Map, cubeMap maybe some unavailable on some hardware\n var renderer = this.el.renderer;\n var cubeMap = this.glBinding.getReflectionCubeMap(this.xrLightProbe);\n if (cubeMap) {\n var rendererProps = renderer.properties.get(this.lightingEstimationTexture);\n rendererProps.__webglTexture = cubeMap;\n this.lightingEstimationTexture.needsPMREMUpdate = true;\n this.el.object3D.environment = this.lightingEstimationTexture;\n }\n },\n tick: function () {\n var scene = this.el.object3D;\n var renderer = this.el.renderer;\n var frame = this.el.frame;\n\n if (frame && this.xrLightProbe) {\n // light estimate may not yet be available, it takes a few frames to start working\n var estimate = frame.getLightEstimate(this.xrLightProbe);\n\n if (estimate) {\n updateLights(\n estimate,\n this.probeLight.components.light.light,\n this.data.directionalLight && this.data.directionalLight.components.light.light,\n this.data.directionalLight && this.data.directionalLight.object3D.position\n );\n }\n }\n\n if (this.needsVREnvironmentUpdate) {\n scene.environment = null;\n this.needsVREnvironmentUpdate = false;\n this.cubeCamera.position.set(0, 1.6, 0);\n this.cubeCamera.update(renderer, scene);\n scene.environment = this.cubeRenderTarget.texture;\n }\n\n if (this.needsLightProbeUpdate && frame) {\n // wait until the XR Session has started before trying to make\n // the light probe\n this.setupLightProbe();\n this.needsLightProbeUpdate = false;\n }\n },\n\n remove: function () {\n this.el.object3D.environment = null;\n if (this.probeLight) {\n this.el.removeChild(this.probeLight);\n }\n }\n});\n","/* global ImageData, URL */\nvar registerComponent = require('../../core/component').registerComponent;\nvar THREE = require('../../lib/three');\n\nvar VERTEX_SHADER = [\n 'attribute vec3 position;',\n 'attribute vec2 uv;',\n 'uniform mat4 projectionMatrix;',\n 'uniform mat4 modelViewMatrix;',\n 'varying vec2 vUv;',\n 'void main() {',\n ' vUv = vec2( 1.- uv.x, uv.y );',\n ' gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );',\n '}'\n].join('\\n');\n\nvar FRAGMENT_SHADER = [\n 'precision mediump float;',\n 'uniform samplerCube map;',\n 'varying vec2 vUv;',\n '#define M_PI 3.141592653589793238462643383279',\n 'void main() {',\n ' vec2 uv = vUv;',\n ' float longitude = uv.x * 2. * M_PI - M_PI + M_PI / 2.;',\n ' float latitude = uv.y * M_PI;',\n ' vec3 dir = vec3(',\n ' - sin( longitude ) * sin( latitude ),',\n ' cos( latitude ),',\n ' - cos( longitude ) * sin( latitude )',\n ' );',\n ' normalize( dir );',\n ' gl_FragColor = vec4( textureCube( map, dir ).rgb, 1.0 );',\n '}'\n].join('\\n');\n\n/**\n * Component to take screenshots of the scene using a keboard shortcut (alt+s).\n * It can be configured to either take 360° captures (`equirectangular`)\n * or regular screenshots (`projection`)\n *\n * This is based on https://github.com/spite/THREE.CubemapToEquirectangular\n * To capture an equirectangular projection of the scene a THREE.CubeCamera is used\n * The cube map produced by the CubeCamera is projected on a quad and then rendered to\n * WebGLRenderTarget with an ortographic camera.\n */\nmodule.exports.Component = registerComponent('screenshot', {\n schema: {\n width: {default: 4096},\n height: {default: 2048},\n camera: {type: 'selector'}\n },\n\n init: function () {\n var el = this.el;\n var self = this;\n\n if (el.renderer) {\n setup();\n } else {\n el.addEventListener('render-target-loaded', setup);\n }\n\n function setup () {\n var gl = el.renderer.getContext();\n if (!gl) { return; }\n self.cubeMapSize = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE);\n self.material = new THREE.RawShaderMaterial({\n uniforms: {map: {type: 't', value: null}},\n vertexShader: VERTEX_SHADER,\n fragmentShader: FRAGMENT_SHADER,\n side: THREE.DoubleSide\n });\n self.quad = new THREE.Mesh(\n new THREE.PlaneGeometry(1, 1),\n self.material\n );\n self.quad.visible = false;\n self.camera = new THREE.OrthographicCamera(-1 / 2, 1 / 2, 1 / 2, -1 / 2, -10000, 10000);\n self.canvas = document.createElement('canvas');\n self.ctx = self.canvas.getContext('2d');\n el.object3D.add(self.quad);\n self.onKeyDown = self.onKeyDown.bind(self);\n }\n },\n\n getRenderTarget: function (width, height) {\n return new THREE.WebGLRenderTarget(width, height, {\n encoding: this.el.sceneEl.renderer.outputEncoding,\n minFilter: THREE.LinearFilter,\n magFilter: THREE.LinearFilter,\n wrapS: THREE.ClampToEdgeWrapping,\n wrapT: THREE.ClampToEdgeWrapping,\n format: THREE.RGBAFormat,\n type: THREE.UnsignedByteType\n });\n },\n\n resize: function (width, height) {\n // Resize quad.\n this.quad.scale.set(width, height, 1);\n\n // Resize camera.\n this.camera.left = -1 * width / 2;\n this.camera.right = width / 2;\n this.camera.top = height / 2;\n this.camera.bottom = -1 * height / 2;\n this.camera.updateProjectionMatrix();\n\n // Resize canvas.\n this.canvas.width = width;\n this.canvas.height = height;\n },\n\n play: function () {\n window.addEventListener('keydown', this.onKeyDown);\n },\n\n /**\n * + + s = Regular screenshot.\n * + + + s = Equirectangular screenshot.\n */\n onKeyDown: function (evt) {\n var shortcutPressed = evt.keyCode === 83 && evt.ctrlKey && evt.altKey;\n if (!this.data || !shortcutPressed) { return; }\n var projection = evt.shiftKey ? 'equirectangular' : 'perspective';\n this.capture(projection);\n },\n\n /**\n * Capture a screenshot of the scene.\n *\n * @param {string} projection - Screenshot projection (equirectangular or perspective).\n */\n setCapture: function (projection) {\n var el = this.el;\n var size;\n var camera;\n var cubeCamera;\n var cubeRenderTarget;\n // Configure camera.\n if (projection === 'perspective') {\n // Quad is only used in equirectangular mode. Hide it in this case.\n this.quad.visible = false;\n // Use scene camera.\n camera = (this.data.camera && this.data.camera.components.camera.camera) || el.camera;\n size = {width: this.data.width, height: this.data.height};\n } else {\n // Use ortho camera.\n camera = this.camera;\n cubeRenderTarget = new THREE.WebGLCubeRenderTarget(\n Math.min(this.cubeMapSize, 2048),\n {\n format: THREE.RGBFormat,\n generateMipmaps: true,\n minFilter: THREE.LinearMipmapLinearFilter,\n encoding: THREE.sRGBEncoding\n });\n // Create cube camera and copy position from scene camera.\n cubeCamera = new THREE.CubeCamera(el.camera.near, el.camera.far, cubeRenderTarget);\n // Copy camera position into cube camera;\n el.camera.getWorldPosition(cubeCamera.position);\n el.camera.getWorldQuaternion(cubeCamera.quaternion);\n // Render scene with cube camera.\n cubeCamera.update(el.renderer, el.object3D);\n this.quad.material.uniforms.map.value = cubeCamera.renderTarget.texture;\n size = {width: this.data.width, height: this.data.height};\n // Use quad to project image taken by the cube camera.\n this.quad.visible = true;\n }\n return {\n camera: camera,\n size: size,\n projection: projection\n };\n },\n\n /**\n * Maintained for backwards compatibility.\n */\n capture: function (projection) {\n var isVREnabled = this.el.renderer.xr.enabled;\n var renderer = this.el.renderer;\n var params;\n // Disable VR.\n renderer.xr.enabled = false;\n params = this.setCapture(projection);\n this.renderCapture(params.camera, params.size, params.projection);\n // Trigger file download.\n this.saveCapture();\n // Restore VR.\n renderer.xr.enabled = isVREnabled;\n },\n\n /**\n * Return canvas instead of triggering download (e.g., for uploading blob to server).\n */\n getCanvas: function (projection) {\n var isVREnabled = this.el.renderer.xr.enabled;\n var renderer = this.el.renderer;\n // Disable VR.\n var params = this.setCapture(projection);\n renderer.xr.enabled = false;\n this.renderCapture(params.camera, params.size, params.projection);\n // Restore VR.\n renderer.xr.enabled = isVREnabled;\n return this.canvas;\n },\n\n renderCapture: function (camera, size, projection) {\n var autoClear = this.el.renderer.autoClear;\n var el = this.el;\n var imageData;\n var output;\n var pixels;\n var renderer = el.renderer;\n // Create rendering target and buffer to store the read pixels.\n output = this.getRenderTarget(size.width, size.height);\n pixels = new Uint8Array(4 * size.width * size.height);\n // Resize quad, camera, and canvas.\n this.resize(size.width, size.height);\n // Render scene to render target.\n renderer.autoClear = true;\n renderer.clear();\n renderer.setRenderTarget(output);\n renderer.render(el.object3D, camera);\n renderer.autoClear = autoClear;\n // Read image pizels back.\n renderer.readRenderTargetPixels(output, 0, 0, size.width, size.height, pixels);\n renderer.setRenderTarget(null);\n if (projection === 'perspective') {\n pixels = this.flipPixelsVertically(pixels, size.width, size.height);\n }\n imageData = new ImageData(new Uint8ClampedArray(pixels), size.width, size.height);\n // Hide quad after projecting the image.\n this.quad.visible = false;\n // Copy pixels into canvas.\n this.ctx.putImageData(imageData, 0, 0);\n },\n\n flipPixelsVertically: function (pixels, width, height) {\n var flippedPixels = pixels.slice(0);\n for (var x = 0; x < width; ++x) {\n for (var y = 0; y < height; ++y) {\n flippedPixels[x * 4 + y * width * 4] = pixels[x * 4 + (height - y) * width * 4];\n flippedPixels[x * 4 + 1 + y * width * 4] = pixels[x * 4 + 1 + (height - y) * width * 4];\n flippedPixels[x * 4 + 2 + y * width * 4] = pixels[x * 4 + 2 + (height - y) * width * 4];\n flippedPixels[x * 4 + 3 + y * width * 4] = pixels[x * 4 + 3 + (height - y) * width * 4];\n }\n }\n return flippedPixels;\n },\n\n /**\n * Download capture to file.\n */\n saveCapture: function () {\n this.canvas.toBlob(function (blob) {\n var fileName = 'screenshot-' + document.title.toLowerCase() + '-' + Date.now() + '.png';\n var linkEl = document.createElement('a');\n var url = URL.createObjectURL(blob);\n linkEl.href = url;\n linkEl.setAttribute('download', fileName);\n linkEl.innerHTML = 'downloading...';\n linkEl.style.display = 'none';\n document.body.appendChild(linkEl);\n setTimeout(function () {\n linkEl.click();\n document.body.removeChild(linkEl);\n }, 1);\n }, 'image/png');\n }\n});\n","var registerComponent = require('../../core/component').registerComponent;\nvar RStats = require('../../../vendor/rStats');\nvar utils = require('../../utils');\nrequire('../../../vendor/rStats.extras');\nrequire('../../lib/rStatsAframe');\n\nvar AFrameStats = window.aframeStats;\nvar bind = utils.bind;\nvar HIDDEN_CLASS = 'a-hidden';\nvar ThreeStats = window.threeStats;\n\n/**\n * Stats appended to document.body by RStats.\n */\nmodule.exports.Component = registerComponent('stats', {\n schema: {default: true},\n\n init: function () {\n var scene = this.el;\n\n if (utils.getUrlParameter('stats') === 'false') { return; }\n\n this.stats = createStats(scene);\n this.statsEl = document.querySelector('.rs-base');\n\n this.hideBound = bind(this.hide, this);\n this.showBound = bind(this.show, this);\n\n scene.addEventListener('enter-vr', this.hideBound);\n scene.addEventListener('exit-vr', this.showBound);\n },\n\n update: function () {\n if (!this.stats) { return; }\n return (!this.data) ? this.hide() : this.show();\n },\n\n remove: function () {\n this.el.removeEventListener('enter-vr', this.hideBound);\n this.el.removeEventListener('exit-vr', this.showBound);\n if (!this.statsEl) { return; } // Scene detached.\n this.statsEl.parentNode.removeChild(this.statsEl);\n },\n\n tick: function () {\n var stats = this.stats;\n\n if (!stats) { return; }\n\n stats('rAF').tick();\n stats('FPS').frame();\n stats().update();\n },\n\n hide: function () {\n this.statsEl.classList.add(HIDDEN_CLASS);\n },\n\n show: function () {\n this.statsEl.classList.remove(HIDDEN_CLASS);\n }\n});\n\nfunction createStats (scene) {\n var threeStats = new ThreeStats(scene.renderer);\n var aframeStats = new AFrameStats(scene);\n var plugins = scene.isMobile ? [] : [threeStats, aframeStats];\n return new RStats({\n css: [], // Our stylesheet is injected from `src/index.js`.\n values: {\n fps: {caption: 'fps', below: 30}\n },\n groups: [\n {caption: 'Framerate', values: ['fps', 'raf']}\n ],\n plugins: plugins\n });\n}\n","var registerComponent = require('../../core/component').registerComponent;\nvar constants = require('../../constants/');\nvar utils = require('../../utils/');\nvar bind = utils.bind;\n\nvar ENTER_VR_CLASS = 'a-enter-vr';\nvar ENTER_AR_CLASS = 'a-enter-ar';\nvar ENTER_VR_BTN_CLASS = 'a-enter-vr-button';\nvar ENTER_AR_BTN_CLASS = 'a-enter-ar-button';\nvar HIDDEN_CLASS = 'a-hidden';\nvar ORIENTATION_MODAL_CLASS = 'a-orientation-modal';\n\n/**\n * UI for entering VR mode.\n */\nmodule.exports.Component = registerComponent('vr-mode-ui', {\n dependencies: ['canvas'],\n\n schema: {\n enabled: {default: true},\n cardboardModeEnabled: {default: false},\n enterVRButton: {default: ''},\n enterARButton: {default: ''}\n },\n\n init: function () {\n var self = this;\n var sceneEl = this.el;\n\n if (utils.getUrlParameter('ui') === 'false') { return; }\n\n this.insideLoader = false;\n this.enterVREl = null;\n this.enterAREl = null;\n this.orientationModalEl = null;\n this.bindMethods();\n\n // Hide/show VR UI when entering/exiting VR mode.\n sceneEl.addEventListener('enter-vr', this.updateEnterInterfaces);\n sceneEl.addEventListener('exit-vr', this.updateEnterInterfaces);\n sceneEl.addEventListener('update-vr-devices', this.updateEnterInterfaces);\n\n window.addEventListener('message', function (event) {\n if (event.data.type === 'loaderReady') {\n self.insideLoader = true;\n self.remove();\n }\n });\n\n // Modal that tells the user to change orientation if in portrait.\n window.addEventListener('orientationchange', this.toggleOrientationModalIfNeeded);\n },\n\n bindMethods: function () {\n this.onEnterVRButtonClick = bind(this.onEnterVRButtonClick, this);\n this.onEnterARButtonClick = bind(this.onEnterARButtonClick, this);\n this.onModalClick = bind(this.onModalClick, this);\n this.toggleOrientationModalIfNeeded = bind(this.toggleOrientationModalIfNeeded, this);\n this.updateEnterInterfaces = bind(this.updateEnterInterfaces, this);\n },\n\n /**\n * Exit VR when modal clicked.\n */\n onModalClick: function () {\n this.el.exitVR();\n },\n\n /**\n * Enter VR when clicked.\n */\n onEnterVRButtonClick: function () {\n this.el.enterVR();\n },\n\n /**\n * Enter AR when clicked.\n */\n onEnterARButtonClick: function () {\n this.el.enterAR();\n },\n\n update: function () {\n var data = this.data;\n var sceneEl = this.el;\n\n if (!data.enabled || this.insideLoader || utils.getUrlParameter('ui') === 'false') {\n return this.remove();\n }\n\n if (this.enterVREl || this.enterAREl || this.orientationModalEl) { return; }\n\n // Add UI if enabled and not already present.\n if (data.enterVRButton) {\n // Custom button.\n this.enterVREl = document.querySelector(data.enterVRButton);\n this.enterVREl.addEventListener('click', this.onEnterVRButtonClick);\n } else {\n this.enterVREl = createEnterVRButton(this.onEnterVRButtonClick);\n sceneEl.appendChild(this.enterVREl);\n }\n if (data.enterARButton) {\n // Custom button.\n this.enterAREl = document.querySelector(data.enterARButton);\n this.enterAREl.addEventListener('click', this.onEnterARButtonClick);\n } else {\n this.enterAREl = createEnterARButton(this.onEnterARButtonClick);\n sceneEl.appendChild(this.enterAREl);\n }\n\n this.orientationModalEl = createOrientationModal(this.onModalClick);\n sceneEl.appendChild(this.orientationModalEl);\n\n this.updateEnterInterfaces();\n },\n\n remove: function () {\n [this.enterVREl, this.enterAREl, this.orientationModalEl].forEach(function (uiElement) {\n if (uiElement && uiElement.parentNode) {\n uiElement.parentNode.removeChild(uiElement);\n }\n });\n this.enterVREl = undefined;\n this.enterAREl = undefined;\n this.orientationModalEl = undefined;\n },\n\n updateEnterInterfaces: function () {\n this.toggleEnterVRButtonIfNeeded();\n this.toggleEnterARButtonIfNeeded();\n this.toggleOrientationModalIfNeeded();\n },\n\n toggleEnterVRButtonIfNeeded: function () {\n var sceneEl = this.el;\n if (!this.enterVREl) { return; }\n if (sceneEl.is('vr-mode') ||\n ((sceneEl.isMobile || utils.device.isMobileDeviceRequestingDesktopSite()) && !this.data.cardboardModeEnabled && !utils.device.checkVRSupport())) {\n this.enterVREl.classList.add(HIDDEN_CLASS);\n } else {\n if (!utils.device.checkVRSupport()) { this.enterVREl.classList.add('fullscreen'); }\n this.enterVREl.classList.remove(HIDDEN_CLASS);\n }\n },\n\n toggleEnterARButtonIfNeeded: function () {\n var sceneEl = this.el;\n if (!this.enterAREl) { return; }\n // Hide the button while in a session, or if AR is not supported.\n if (sceneEl.is('vr-mode') || !utils.device.checkARSupport()) {\n this.enterAREl.classList.add(HIDDEN_CLASS);\n } else {\n this.enterAREl.classList.remove(HIDDEN_CLASS);\n }\n },\n\n toggleOrientationModalIfNeeded: function () {\n var sceneEl = this.el;\n var orientationModalEl = this.orientationModalEl;\n if (!orientationModalEl || !sceneEl.isMobile) { return; }\n if (!utils.device.isLandscape() && sceneEl.is('vr-mode')) {\n // Show if in VR mode on portrait.\n orientationModalEl.classList.remove(HIDDEN_CLASS);\n } else {\n orientationModalEl.classList.add(HIDDEN_CLASS);\n }\n }\n});\n\n/**\n * Create a button that when clicked will enter into stereo-rendering mode for VR.\n *\n * Structure:
\n *\n * @param {function} onClick - click event handler\n * @returns {Element} Wrapper
.\n */\nfunction createEnterVRButton (onClick) {\n var vrButton;\n var wrapper;\n\n // Create elements.\n wrapper = document.createElement('div');\n wrapper.classList.add(ENTER_VR_CLASS);\n wrapper.setAttribute(constants.AFRAME_INJECTED, '');\n vrButton = document.createElement('button');\n vrButton.className = ENTER_VR_BTN_CLASS;\n vrButton.setAttribute('title',\n 'Enter VR mode with a headset or fullscreen without');\n vrButton.setAttribute(constants.AFRAME_INJECTED, '');\n if (utils.device.isMobile()) { applyStickyHoverFix(vrButton); }\n // Insert elements.\n wrapper.appendChild(vrButton);\n vrButton.addEventListener('click', function (evt) {\n onClick();\n evt.stopPropagation();\n });\n return wrapper;\n}\n\n/**\n * Create a button that when clicked will enter into AR mode\n *\n * Structure:
\n *\n * @param {function} onClick - click event handler\n * @returns {Element} Wrapper
.\n */\nfunction createEnterARButton (onClick) {\n var arButton;\n var wrapper;\n\n // Create elements.\n wrapper = document.createElement('div');\n wrapper.classList.add(ENTER_AR_CLASS);\n wrapper.setAttribute(constants.AFRAME_INJECTED, '');\n arButton = document.createElement('button');\n arButton.className = ENTER_AR_BTN_CLASS;\n arButton.setAttribute('title',\n 'Enter AR mode with a headset or handheld device.');\n arButton.setAttribute(constants.AFRAME_INJECTED, '');\n if (utils.device.isMobile()) { applyStickyHoverFix(arButton); }\n // Insert elements.\n wrapper.appendChild(arButton);\n arButton.addEventListener('click', function (evt) {\n onClick();\n evt.stopPropagation();\n });\n return wrapper;\n}\n\n/**\n * Creates a modal dialog to request the user to switch to landscape orientation.\n *\n * @param {function} onClick - click event handler\n * @returns {Element} Wrapper
.\n */\nfunction createOrientationModal (onClick) {\n var modal = document.createElement('div');\n modal.className = ORIENTATION_MODAL_CLASS;\n modal.classList.add(HIDDEN_CLASS);\n modal.setAttribute(constants.AFRAME_INJECTED, '');\n\n var exit = document.createElement('button');\n exit.setAttribute(constants.AFRAME_INJECTED, '');\n exit.innerHTML = 'Exit VR';\n\n // Exit VR on close.\n exit.addEventListener('click', onClick);\n\n modal.appendChild(exit);\n\n return modal;\n}\n\n/**\n * CSS hover state is sticky in iOS (as in 12/18/2019)\n * They are not removed on mouseleave and this function applies a class\n * to resets the style.\n *\n * @param {function} buttonEl - Button element\n */\nfunction applyStickyHoverFix (buttonEl) {\n buttonEl.addEventListener('touchstart', function () {\n buttonEl.classList.remove('resethover');\n });\n buttonEl.addEventListener('touchend', function () {\n buttonEl.classList.add('resethover');\n });\n}\n","var component = require('../core/component');\nvar THREE = require('../lib/three');\nvar bind = require('../utils/bind');\nvar registerComponent = component.registerComponent;\n\n/**\n * Shadow component.\n *\n * When applied to an entity, that entity's geometry and any descendants will cast or receive\n * shadows as specified by the `cast` and `receive` properties.\n */\nmodule.exports.Component = registerComponent('shadow', {\n schema: {\n cast: {default: true},\n receive: {default: true}\n },\n\n init: function () {\n this.onMeshChanged = bind(this.update, this);\n this.el.addEventListener('object3dset', this.onMeshChanged);\n this.system.setShadowMapEnabled(true);\n },\n\n update: function () {\n var data = this.data;\n this.updateDescendants(data.cast, data.receive);\n },\n\n remove: function () {\n var el = this.el;\n el.removeEventListener('object3dset', this.onMeshChanged);\n this.updateDescendants(false, false);\n },\n\n updateDescendants: function (cast, receive) {\n var sceneEl = this.el.sceneEl;\n this.el.object3D.traverse(function (node) {\n if (!(node instanceof THREE.Mesh)) { return; }\n\n node.castShadow = cast;\n node.receiveShadow = receive;\n\n // If scene has already rendered, materials must be updated.\n if (sceneEl.hasLoaded && node.material) {\n var materials = Array.isArray(node.material) ? node.material : [node.material];\n for (var i = 0; i < materials.length; i++) {\n materials[i].needsUpdate = true;\n }\n }\n });\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar debug = require('../utils/debug');\nvar THREE = require('../lib/three');\n\nvar warn = debug('components:sound:warn');\n\n/**\n * Sound component.\n */\nmodule.exports.Component = registerComponent('sound', {\n schema: {\n autoplay: {default: false},\n distanceModel: {default: 'inverse', oneOf: ['linear', 'inverse', 'exponential']},\n loop: {default: false},\n maxDistance: {default: 10000},\n on: {default: ''},\n poolSize: {default: 1},\n positional: {default: true},\n refDistance: {default: 1},\n rolloffFactor: {default: 1},\n src: {type: 'audio'},\n volume: {default: 1}\n },\n\n multiple: true,\n\n init: function () {\n var self = this;\n\n this.listener = null;\n this.audioLoader = new THREE.AudioLoader();\n this.pool = new THREE.Group();\n this.loaded = false;\n this.mustPlay = false;\n\n // Don't pass evt because playSound takes a function as parameter.\n this.playSoundBound = function () { self.playSound(); };\n },\n\n update: function (oldData) {\n var data = this.data;\n var i;\n var sound;\n var srcChanged = data.src !== oldData.src;\n\n // Create new sound if not yet created or changing `src`.\n if (srcChanged) {\n if (!data.src) { return; }\n this.setupSound();\n }\n\n for (i = 0; i < this.pool.children.length; i++) {\n sound = this.pool.children[i];\n if (data.positional) {\n sound.setDistanceModel(data.distanceModel);\n sound.setMaxDistance(data.maxDistance);\n sound.setRefDistance(data.refDistance);\n sound.setRolloffFactor(data.rolloffFactor);\n }\n sound.setLoop(data.loop);\n sound.setVolume(data.volume);\n sound.isPaused = false;\n }\n\n if (data.on !== oldData.on) {\n this.updateEventListener(oldData.on);\n }\n\n // All sound values set. Load in `src`.\n if (srcChanged) {\n var self = this;\n\n this.loaded = false;\n this.audioLoader.load(data.src, function (buffer) {\n for (i = 0; i < self.pool.children.length; i++) {\n sound = self.pool.children[i];\n sound.setBuffer(buffer);\n }\n self.loaded = true;\n\n // Remove this key from cache, otherwise we can't play it again\n THREE.Cache.remove(data.src);\n if (self.data.autoplay || self.mustPlay) { self.playSound(); }\n self.el.emit('sound-loaded', self.evtDetail, false);\n });\n }\n },\n\n pause: function () {\n this.stopSound();\n this.removeEventListener();\n },\n\n play: function () {\n if (this.data.autoplay) { this.playSound(); }\n this.updateEventListener();\n },\n\n remove: function () {\n var i;\n var sound;\n\n this.removeEventListener();\n\n if (this.el.getObject3D(this.attrName)) {\n this.el.removeObject3D(this.attrName);\n }\n\n try {\n for (i = 0; i < this.pool.children.length; i++) {\n sound = this.pool.children[i];\n sound.disconnect();\n }\n } catch (e) {\n // disconnect() will throw if it was never connected initially.\n warn('Audio source not properly disconnected');\n }\n },\n\n /**\n * Update listener attached to the user defined on event.\n */\n updateEventListener: function (oldEvt) {\n var el = this.el;\n if (oldEvt) { el.removeEventListener(oldEvt, this.playSoundBound); }\n el.addEventListener(this.data.on, this.playSoundBound);\n },\n\n removeEventListener: function () {\n this.el.removeEventListener(this.data.on, this.playSoundBound);\n },\n\n /**\n * Removes current sound object, creates new sound object, adds to entity.\n *\n * @returns {object} sound\n */\n setupSound: function () {\n var el = this.el;\n var i;\n var sceneEl = el.sceneEl;\n var self = this;\n var sound;\n\n if (this.pool.children.length > 0) {\n this.stopSound();\n el.removeObject3D('sound');\n }\n\n // Only want one AudioListener. Cache it on the scene.\n var listener = this.listener = sceneEl.audioListener || new THREE.AudioListener();\n sceneEl.audioListener = listener;\n\n if (sceneEl.camera) {\n sceneEl.camera.add(listener);\n }\n\n // Wait for camera if necessary.\n sceneEl.addEventListener('camera-set-active', function (evt) {\n evt.detail.cameraEl.getObject3D('camera').add(listener);\n });\n\n // Create [poolSize] audio instances and attach them to pool\n this.pool = new THREE.Group();\n for (i = 0; i < this.data.poolSize; i++) {\n sound = this.data.positional\n ? new THREE.PositionalAudio(listener)\n : new THREE.Audio(listener);\n this.pool.add(sound);\n }\n el.setObject3D(this.attrName, this.pool);\n\n for (i = 0; i < this.pool.children.length; i++) {\n sound = this.pool.children[i];\n sound.onEnded = function () {\n this.isPlaying = false;\n self.el.emit('sound-ended', self.evtDetail, false);\n };\n }\n },\n\n /**\n * Pause all the sounds in the pool.\n */\n pauseSound: function () {\n var i;\n var sound;\n\n this.isPlaying = false;\n for (i = 0; i < this.pool.children.length; i++) {\n sound = this.pool.children[i];\n if (!sound.source || !sound.source.buffer || !sound.isPlaying || sound.isPaused) {\n continue;\n }\n sound.isPaused = true;\n sound.pause();\n }\n },\n\n /**\n * Look for an unused sound in the pool and play it if found.\n */\n playSound: function (processSound) {\n var found;\n var i;\n var sound;\n\n if (!this.loaded) {\n warn('Sound not loaded yet. It will be played once it finished loading');\n this.mustPlay = true;\n return;\n }\n\n found = false;\n this.isPlaying = true;\n for (i = 0; i < this.pool.children.length; i++) {\n sound = this.pool.children[i];\n if (!sound.isPlaying && sound.buffer && !found) {\n if (processSound) { processSound(sound); }\n sound.play();\n sound.isPaused = false;\n found = true;\n continue;\n }\n }\n\n if (!found) {\n warn('All the sounds are playing. If you need to play more sounds simultaneously ' +\n 'consider increasing the size of pool with the `poolSize` attribute.', this.el);\n return;\n }\n\n this.mustPlay = false;\n },\n\n /**\n * Stop all the sounds in the pool.\n */\n stopSound: function () {\n var i;\n var sound;\n this.isPlaying = false;\n for (i = 0; i < this.pool.children.length; i++) {\n sound = this.pool.children[i];\n if (!sound.source || !sound.source.buffer) { return; }\n sound.stop();\n }\n }\n});\n","var createTextGeometry = require('three-bmfont-text');\nvar loadBMFont = require('load-bmfont');\n\nvar registerComponent = require('../core/component').registerComponent;\nvar coreShader = require('../core/shader');\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar error = utils.debug('components:text:error');\nvar shaders = coreShader.shaders;\nvar warn = utils.debug('components:text:warn');\n\n// 1 to match other A-Frame default widths.\nvar DEFAULT_WIDTH = 1;\n\n// @bryik set anisotropy to 16. Improves look of large amounts of text when viewed from angle.\nvar MAX_ANISOTROPY = 16;\n\nvar FONT_BASE_URL = 'https://cdn.aframe.io/fonts/';\nvar FONTS = {\n aileronsemibold: FONT_BASE_URL + 'Aileron-Semibold.fnt',\n dejavu: FONT_BASE_URL + 'DejaVu-sdf.fnt',\n exo2bold: FONT_BASE_URL + 'Exo2Bold.fnt',\n exo2semibold: FONT_BASE_URL + 'Exo2SemiBold.fnt',\n kelsonsans: FONT_BASE_URL + 'KelsonSans.fnt',\n monoid: FONT_BASE_URL + 'Monoid.fnt',\n mozillavr: FONT_BASE_URL + 'mozillavr.fnt',\n roboto: FONT_BASE_URL + 'Roboto-msdf.json',\n sourcecodepro: FONT_BASE_URL + 'SourceCodePro.fnt'\n};\nvar MSDF_FONTS = ['roboto'];\nvar DEFAULT_FONT = 'roboto';\nmodule.exports.FONTS = FONTS;\n\nvar cache = new PromiseCache();\nvar fontWidthFactors = {};\nvar textures = {};\n\n// Regular expression for detecting a URLs with a protocol prefix.\nvar protocolRe = /^\\w+:/;\n\n/**\n * SDF-based text component.\n * Based on https://github.com/Jam3/three-bmfont-text.\n *\n * All the stock fonts are for the `sdf` registered shader, an improved version of jam3's\n * original `sdf` shader.\n */\nmodule.exports.Component = registerComponent('text', {\n multiple: true,\n\n schema: {\n align: {type: 'string', default: 'left', oneOf: ['left', 'right', 'center']},\n alphaTest: {default: 0.5},\n // `anchor` defaults to center to match geometries.\n anchor: {default: 'center', oneOf: ['left', 'right', 'center', 'align']},\n baseline: {default: 'center', oneOf: ['top', 'center', 'bottom']},\n color: {type: 'color', default: '#FFF'},\n font: {type: 'string', default: DEFAULT_FONT},\n // `fontImage` defaults to the font name as a .png (e.g., mozillavr.fnt -> mozillavr.png).\n fontImage: {type: 'string'},\n // `height` has no default, will be populated at layout.\n height: {type: 'number'},\n letterSpacing: {type: 'number', default: 0},\n // `lineHeight` defaults to font's `lineHeight` value.\n lineHeight: {type: 'number'},\n // `negate` must be true for fonts generated with older versions of msdfgen (white background).\n negate: {type: 'boolean', default: true},\n opacity: {type: 'number', default: 1.0},\n shader: {default: 'sdf', oneOf: shaders},\n side: {default: 'front', oneOf: ['front', 'back', 'double']},\n tabSize: {default: 4},\n transparent: {default: true},\n value: {type: 'string'},\n whiteSpace: {default: 'normal', oneOf: ['normal', 'pre', 'nowrap']},\n // `width` defaults to geometry width if present, else `DEFAULT_WIDTH`.\n width: {type: 'number'},\n // `wrapCount` units are about one default font character. Wrap roughly at this number.\n wrapCount: {type: 'number', default: 40},\n // `wrapPixels` will wrap using bmfont pixel units (e.g., dejavu's is 32 pixels).\n wrapPixels: {type: 'number'},\n // `xOffset` to add padding.\n xOffset: {type: 'number', default: 0},\n // `yOffset` to adjust generated fonts from tools that may have incorrect metrics.\n yOffset: {type: 'number', default: 0},\n // `zOffset` will provide a small z offset to avoid z-fighting.\n zOffset: {type: 'number', default: 0.001}\n },\n\n init: function () {\n this.shaderData = {};\n this.geometry = createTextGeometry();\n this.createOrUpdateMaterial();\n },\n\n update: function (oldData) {\n var data = this.data;\n var font = this.currentFont;\n if (textures[data.font]) {\n this.texture = textures[data.font];\n } else {\n // Create texture per font.\n this.texture = textures[data.font] = new THREE.Texture();\n this.texture.anisotropy = MAX_ANISOTROPY;\n }\n\n // Update material.\n this.createOrUpdateMaterial();\n\n // New font. `updateFont` will later change data and layout.\n if (oldData.font !== data.font) {\n this.updateFont();\n return;\n }\n\n // Update geometry and layout.\n if (font) {\n this.updateGeometry(this.geometry, font);\n this.updateLayout();\n }\n },\n\n /**\n * Clean up geometry, material, texture, mesh, objects.\n */\n remove: function () {\n this.geometry.dispose();\n this.geometry = null;\n this.el.removeObject3D(this.attrName);\n this.material.dispose();\n this.material = null;\n this.texture.dispose();\n this.texture = null;\n if (this.shaderObject) { delete this.shaderObject; }\n },\n\n /**\n * Update the shader of the material.\n */\n createOrUpdateMaterial: function () {\n var data = this.data;\n var hasChangedShader;\n var material = this.material;\n var NewShader;\n var shaderData = this.shaderData;\n var shaderName;\n\n // Infer shader if using a stock font (or from `-msdf` filename convention).\n shaderName = data.shader;\n if (MSDF_FONTS.indexOf(data.font) !== -1 || data.font.indexOf('-msdf.') >= 0) {\n shaderName = 'msdf';\n } else if (data.font in FONTS && MSDF_FONTS.indexOf(data.font) === -1) {\n shaderName = 'sdf';\n }\n\n hasChangedShader = (this.shaderObject && this.shaderObject.name) !== shaderName;\n\n shaderData.alphaTest = data.alphaTest;\n shaderData.color = data.color;\n shaderData.map = this.texture;\n shaderData.opacity = data.opacity;\n shaderData.side = parseSide(data.side);\n shaderData.transparent = data.transparent;\n shaderData.negate = data.negate;\n\n // Shader has not changed, do an update.\n if (!hasChangedShader) {\n // Update shader material.\n this.shaderObject.update(shaderData);\n // Apparently, was not set on `init` nor `update`.\n material.transparent = shaderData.transparent;\n material.side = shaderData.side;\n return;\n }\n\n // Shader has changed. Create a shader material.\n NewShader = createShader(this.el, shaderName, shaderData);\n this.material = NewShader.material;\n this.shaderObject = NewShader.shader;\n\n // Set new shader material.\n this.material.side = shaderData.side;\n if (this.mesh) { this.mesh.material = this.material; }\n },\n\n /**\n * Load font for geometry, load font image for material, and apply.\n */\n updateFont: function () {\n var data = this.data;\n var el = this.el;\n var fontSrc;\n var geometry = this.geometry;\n var self = this;\n\n if (!data.font) { warn('No font specified. Using the default font.'); }\n\n // Make invisible during font swap.\n if (this.mesh) { this.mesh.visible = false; }\n\n // Look up font URL to use, and perform cached load.\n fontSrc = this.lookupFont(data.font || DEFAULT_FONT) || data.font;\n cache.get(fontSrc, function doLoadFont () {\n return loadFont(fontSrc, data.yOffset);\n }).then(function setFont (font) {\n var fontImgSrc;\n\n if (font.pages.length !== 1) {\n throw new Error('Currently only single-page bitmap fonts are supported.');\n }\n\n if (!fontWidthFactors[fontSrc]) {\n font.widthFactor = fontWidthFactors[font] = computeFontWidthFactor(font);\n }\n self.currentFont = font;\n // Look up font image URL to use, and perform cached load.\n fontImgSrc = self.getFontImageSrc();\n cache.get(fontImgSrc, function () {\n return loadTexture(fontImgSrc);\n }).then(function (image) {\n // Make mesh visible and apply font image as texture.\n var texture = self.texture;\n // The component may have been removed at this point and texture will\n // be null. This happens mainly while executing the tests,\n // in this case we just return.\n if (!texture) return;\n texture.image = image;\n texture.needsUpdate = true;\n textures[data.font] = texture;\n self.texture = texture;\n self.initMesh();\n self.currentFont = font;\n // Update geometry given font metrics.\n self.updateGeometry(geometry, font);\n self.updateLayout();\n self.mesh.visible = true;\n el.emit('textfontset', {font: data.font, fontObj: font});\n }).catch(function (err) {\n error(err.message);\n error(err.stack);\n });\n }).catch(function (err) {\n error(err.message);\n error(err.stack);\n });\n },\n\n initMesh: function () {\n if (this.mesh) { return; }\n this.mesh = new THREE.Mesh(this.geometry, this.material);\n this.el.setObject3D(this.attrName, this.mesh);\n },\n\n getFontImageSrc: function () {\n if (this.data.fontImage) { return this.data.fontImage; }\n var fontSrc = this.lookupFont(this.data.font || DEFAULT_FONT) || this.data.font;\n var imageSrc = this.currentFont.pages[0];\n // If the image URL contains a non-HTTP(S) protocol, assume it's an absolute\n // path on disk and try to infer the path from the font source instead.\n if (imageSrc.match(protocolRe) && imageSrc.indexOf('http') !== 0) {\n return fontSrc.replace(/(\\.fnt)|(\\.json)/, '.png');\n }\n return THREE.LoaderUtils.extractUrlBase(fontSrc) + imageSrc;\n },\n\n /**\n * Update layout with anchor, alignment, baseline, and considering any meshes.\n */\n updateLayout: function () {\n var anchor;\n var baseline;\n var el = this.el;\n var data = this.data;\n var geometry = this.geometry;\n var geometryComponent;\n var height;\n var layout;\n var mesh = this.mesh;\n var textRenderWidth;\n var textScale;\n var width;\n var x;\n var y;\n\n if (!mesh || !geometry.layout) { return; }\n\n // Determine width to use (defined width, geometry's width, or default width).\n geometryComponent = el.getAttribute('geometry');\n width = data.width || (geometryComponent && geometryComponent.width) || DEFAULT_WIDTH;\n\n // Determine wrap pixel count. Either specified or by experimental fudge factor.\n // Note that experimental factor will never be correct for variable width fonts.\n textRenderWidth = computeWidth(data.wrapPixels, data.wrapCount,\n this.currentFont.widthFactor);\n textScale = width / textRenderWidth;\n\n // Determine height to use.\n layout = geometry.layout;\n height = textScale * (layout.height + layout.descender);\n\n // Update geometry dimensions to match text layout if width and height are set to 0.\n // For example, scales a plane to fit text.\n if (geometryComponent && geometryComponent.primitive === 'plane') {\n if (!geometryComponent.width) { el.setAttribute('geometry', 'width', width); }\n if (!geometryComponent.height) { el.setAttribute('geometry', 'height', height); }\n }\n\n // Calculate X position to anchor text left, center, or right.\n anchor = data.anchor === 'align' ? data.align : data.anchor;\n if (anchor === 'left') {\n x = 0;\n } else if (anchor === 'right') {\n x = -1 * layout.width;\n } else if (anchor === 'center') {\n x = -1 * layout.width / 2;\n } else {\n throw new TypeError('Invalid text.anchor property value', anchor);\n }\n\n // Calculate Y position to anchor text top, center, or bottom.\n baseline = data.baseline;\n if (baseline === 'bottom') {\n y = 0;\n } else if (baseline === 'top') {\n y = -1 * layout.height + layout.ascender;\n } else if (baseline === 'center') {\n y = -1 * layout.height / 2;\n } else {\n throw new TypeError('Invalid text.baseline property value', baseline);\n }\n\n // Position and scale mesh to apply layout.\n mesh.position.x = x * textScale + data.xOffset;\n mesh.position.y = y * textScale;\n // Place text slightly in front to avoid Z-fighting.\n mesh.position.z = data.zOffset;\n mesh.scale.set(textScale, -1 * textScale, textScale);\n },\n\n /**\n * Grab font from the constant.\n * Set as a method for test stubbing purposes.\n */\n lookupFont: function (key) {\n return FONTS[key];\n },\n\n /**\n * Update the text geometry using `three-bmfont-text.update`.\n */\n updateGeometry: (function () {\n var geometryUpdateBase = {};\n var geometryUpdateData = {};\n var newLineRegex = /\\\\n/g;\n var tabRegex = /\\\\t/g;\n\n return function (geometry, font) {\n var data = this.data;\n\n geometryUpdateData.font = font;\n geometryUpdateData.lineHeight = data.lineHeight && isFinite(data.lineHeight)\n ? data.lineHeight\n : font.common.lineHeight;\n geometryUpdateData.text = data.value.toString().replace(newLineRegex, '\\n')\n .replace(tabRegex, '\\t');\n geometryUpdateData.width = computeWidth(data.wrapPixels, data.wrapCount,\n font.widthFactor);\n geometry.update(utils.extend(geometryUpdateBase, data, geometryUpdateData));\n };\n })()\n});\n\n/**\n * Due to using negative scale, we return the opposite side specified.\n * https://github.com/mrdoob/three.js/pull/12787/\n */\nfunction parseSide (side) {\n switch (side) {\n case 'back': {\n return THREE.FrontSide;\n }\n case 'double': {\n return THREE.DoubleSide;\n }\n default: {\n return THREE.BackSide;\n }\n }\n}\n\n/**\n * @returns {Promise}\n */\nfunction loadFont (src, yOffset) {\n return new Promise(function (resolve, reject) {\n loadBMFont(src, function (err, font) {\n if (err) {\n error('Error loading font', src);\n reject(err);\n return;\n }\n\n // Fix negative Y offsets for Roboto MSDF font from tool. Experimentally determined.\n if (src.indexOf('/Roboto-msdf.json') >= 0) { yOffset = 30; }\n if (yOffset) { font.chars.map(function doOffset (ch) { ch.yoffset += yOffset; }); }\n\n resolve(font);\n });\n });\n}\n\n/**\n * @returns {Promise}\n */\nfunction loadTexture (src) {\n return new Promise(function (resolve, reject) {\n new THREE.ImageLoader().load(src, function (image) {\n resolve(image);\n }, undefined, function () {\n error('Error loading font image', src);\n reject(null);\n });\n });\n}\n\nfunction createShader (el, shaderName, data) {\n var shader;\n var shaderObject;\n\n // Set up Shader.\n shaderObject = new shaders[shaderName].Shader();\n shaderObject.el = el;\n shaderObject.init(data);\n shaderObject.update(data);\n\n // Get material.\n shader = shaderObject.material;\n // Apparently, was not set on `init` nor `update`.\n shader.transparent = data.transparent;\n\n return {\n material: shader,\n shader: shaderObject\n };\n}\n\n/**\n * Determine wrap pixel count. Either specified or by experimental fudge factor.\n * Note that experimental factor will never be correct for variable width fonts.\n */\nfunction computeWidth (wrapPixels, wrapCount, widthFactor) {\n return wrapPixels || ((0.5 + wrapCount) * widthFactor);\n}\n\n/**\n * Compute default font width factor to use.\n */\nfunction computeFontWidthFactor (font) {\n var sum = 0;\n var digitsum = 0;\n var digits = 0;\n font.chars.map(function (ch) {\n sum += ch.xadvance;\n if (ch.id >= 48 && ch.id <= 57) {\n digits++;\n digitsum += ch.xadvance;\n }\n });\n return digits ? digitsum / digits : sum / font.chars.length;\n}\n\n/**\n * Get or create a promise given a key and promise generator.\n * @todo Move to a utility and use in other parts of A-Frame.\n */\nfunction PromiseCache () {\n var cache = this.cache = {};\n\n this.get = function (key, promiseGenerator) {\n if (key in cache) {\n return cache[key];\n }\n cache[key] = promiseGenerator();\n return cache[key];\n };\n}\n","var registerComponent = require('../core/component').registerComponent;\nvar controllerUtils = require('../utils/tracked-controls');\nvar DEFAULT_CAMERA_HEIGHT = require('../constants').DEFAULT_CAMERA_HEIGHT;\nvar THREE = require('../lib/three');\n\nvar DEFAULT_HANDEDNESS = require('../constants').DEFAULT_HANDEDNESS;\n// Vector from eyes to elbow (divided by user height).\nvar EYES_TO_ELBOW = {x: 0.175, y: -0.3, z: -0.03};\n// Vector from eyes to elbow (divided by user height).\nvar FOREARM = {x: 0, y: 0, z: -0.175};\n\n// Due to unfortunate name collision, add empty touches array to avoid Daydream error.\nvar EMPTY_DAYDREAM_TOUCHES = {touches: []};\n\nvar EVENTS = {\n AXISMOVE: 'axismove',\n BUTTONCHANGED: 'buttonchanged',\n BUTTONDOWN: 'buttondown',\n BUTTONUP: 'buttonup',\n TOUCHSTART: 'touchstart',\n TOUCHEND: 'touchend'\n};\n\n/**\n * Tracked controls component.\n * Wrap the gamepad API for pose and button states.\n * Select the appropriate controller and apply pose to the entity.\n * Observe button states and emit appropriate events.\n *\n * @property {number} controller - Index of controller in array returned by Gamepad API.\n * Only used if hand property is not set.\n * @property {string} id - Selected controller among those returned by Gamepad API.\n * @property {number} hand - If multiple controllers found with id, choose the one with the\n * given value for hand. If set, we ignore 'controller' property\n */\nmodule.exports.Component = registerComponent('tracked-controls-webvr', {\n schema: {\n autoHide: {default: true},\n controller: {default: 0},\n id: {type: 'string', default: ''},\n hand: {type: 'string', default: ''},\n idPrefix: {type: 'string', default: ''},\n orientationOffset: {type: 'vec3'},\n // Arm model parameters when not 6DoF.\n armModel: {default: false},\n headElement: {type: 'selector'}\n },\n\n init: function () {\n // Copy variables back to tracked-controls for backwards compatibility.\n // Some 3rd components rely on them.\n this.axis = this.el.components['tracked-controls'].axis = [0, 0, 0];\n this.buttonStates = this.el.components['tracked-controls'].buttonStates = {};\n this.changedAxes = [];\n this.targetControllerNumber = this.data.controller;\n\n this.axisMoveEventDetail = {axis: this.axis, changed: this.changedAxes};\n this.deltaControllerPosition = new THREE.Vector3();\n this.controllerQuaternion = new THREE.Quaternion();\n this.controllerEuler = new THREE.Euler();\n\n this.updateGamepad();\n\n this.buttonEventDetails = {};\n },\n\n tick: function (time, delta) {\n var mesh = this.el.getObject3D('mesh');\n // Update mesh animations.\n if (mesh && mesh.update) { mesh.update(delta / 1000); }\n this.updateGamepad();\n this.updatePose();\n this.updateButtons();\n },\n\n /**\n * Return default user height to use for non-6DOF arm model.\n */\n defaultUserHeight: function () {\n return DEFAULT_CAMERA_HEIGHT;\n },\n\n /**\n * Return head element to use for non-6DOF arm model.\n */\n getHeadElement: function () {\n return this.data.headElement || this.el.sceneEl.camera.el;\n },\n\n /**\n * Handle update controller match criteria (such as `id`, `idPrefix`, `hand`, `controller`)\n */\n updateGamepad: function () {\n var data = this.data;\n var controller = controllerUtils.findMatchingControllerWebVR(\n this.system.controllers,\n data.id,\n data.idPrefix,\n data.hand,\n data.controller\n );\n\n this.controller = controller;\n // Legacy handle to the controller for old components.\n this.el.components['tracked-controls'].controller = controller;\n\n if (this.data.autoHide) { this.el.object3D.visible = !!this.controller; }\n },\n\n /**\n * Applies an artificial arm model to simulate elbow to wrist positioning\n * based on the orientation of the controller.\n *\n * @param {object} controllerPosition - Existing vector to update with controller position.\n */\n applyArmModel: function (controllerPosition) {\n // Use controllerPosition and deltaControllerPosition to avoid creating variables.\n var controller = this.controller;\n var controllerEuler = this.controllerEuler;\n var controllerQuaternion = this.controllerQuaternion;\n var deltaControllerPosition = this.deltaControllerPosition;\n var hand;\n var headEl;\n var headObject3D;\n var pose;\n var userHeight;\n\n headEl = this.getHeadElement();\n headObject3D = headEl.object3D;\n userHeight = this.defaultUserHeight();\n\n pose = controller.pose;\n hand = (controller ? controller.hand : undefined) || DEFAULT_HANDEDNESS;\n\n // Use camera position as head position.\n controllerPosition.copy(headObject3D.position);\n // Set offset for degenerate \"arm model\" to elbow.\n deltaControllerPosition.set(\n EYES_TO_ELBOW.x * (hand === 'left' ? -1 : hand === 'right' ? 1 : 0),\n EYES_TO_ELBOW.y, // Lower than our eyes.\n EYES_TO_ELBOW.z); // Slightly out in front.\n // Scale offset by user height.\n deltaControllerPosition.multiplyScalar(userHeight);\n // Apply camera Y rotation (not X or Z, so you can look down at your hand).\n deltaControllerPosition.applyAxisAngle(headObject3D.up, headObject3D.rotation.y);\n // Apply rotated offset to position.\n controllerPosition.add(deltaControllerPosition);\n\n // Set offset for degenerate \"arm model\" forearm. Forearm sticking out from elbow.\n deltaControllerPosition.set(FOREARM.x, FOREARM.y, FOREARM.z);\n // Scale offset by user height.\n deltaControllerPosition.multiplyScalar(userHeight);\n // Apply controller X/Y rotation (tilting up/down/left/right is usually moving the arm).\n if (pose.orientation) {\n controllerQuaternion.fromArray(pose.orientation);\n } else {\n controllerQuaternion.copy(headObject3D.quaternion);\n }\n controllerEuler.setFromQuaternion(controllerQuaternion);\n controllerEuler.set(controllerEuler.x, controllerEuler.y, 0);\n deltaControllerPosition.applyEuler(controllerEuler);\n // Apply rotated offset to position.\n controllerPosition.add(deltaControllerPosition);\n },\n\n /**\n * Read pose from controller (from Gamepad API), apply transforms, apply to entity.\n */\n updatePose: function () {\n var controller = this.controller;\n var data = this.data;\n var object3D = this.el.object3D;\n var pose;\n var vrDisplay = this.system.vrDisplay;\n var standingMatrix;\n\n if (!controller) { return; }\n\n // Compose pose from Gamepad.\n pose = controller.pose;\n\n if (pose.position) {\n object3D.position.fromArray(pose.position);\n } else {\n // Controller not 6DOF, apply arm model.\n if (data.armModel) { this.applyArmModel(object3D.position); }\n }\n\n if (pose.orientation) {\n object3D.quaternion.fromArray(pose.orientation);\n }\n\n // Apply transforms, if 6DOF and in VR.\n if (vrDisplay && pose.position) {\n standingMatrix = this.el.sceneEl.renderer.xr.getStandingMatrix();\n object3D.matrix.compose(object3D.position, object3D.quaternion, object3D.scale);\n object3D.matrix.multiplyMatrices(standingMatrix, object3D.matrix);\n object3D.matrix.decompose(object3D.position, object3D.quaternion, object3D.scale);\n }\n\n object3D.rotateX(this.data.orientationOffset.x * THREE.MathUtils.DEG2RAD);\n object3D.rotateY(this.data.orientationOffset.y * THREE.MathUtils.DEG2RAD);\n object3D.rotateZ(this.data.orientationOffset.z * THREE.MathUtils.DEG2RAD);\n },\n\n /**\n * Handle button changes including axes, presses, touches, values.\n */\n updateButtons: function () {\n var buttonState;\n var controller = this.controller;\n var id;\n\n if (!controller) { return; }\n\n // Check every button.\n for (id = 0; id < controller.buttons.length; ++id) {\n // Initialize button state.\n if (!this.buttonStates[id]) {\n this.buttonStates[id] = {pressed: false, touched: false, value: 0};\n }\n if (!this.buttonEventDetails[id]) {\n this.buttonEventDetails[id] = {id: id, state: this.buttonStates[id]};\n }\n\n buttonState = controller.buttons[id];\n this.handleButton(id, buttonState);\n }\n // Check axes.\n this.handleAxes();\n },\n\n /**\n * Handle presses and touches for a single button.\n *\n * @param {number} id - Index of button in Gamepad button array.\n * @param {number} buttonState - Value of button state from 0 to 1.\n * @returns {boolean} Whether button has changed in any way.\n */\n handleButton: function (id, buttonState) {\n var changed;\n changed = this.handlePress(id, buttonState) |\n this.handleTouch(id, buttonState) |\n this.handleValue(id, buttonState);\n if (!changed) { return false; }\n this.el.emit(EVENTS.BUTTONCHANGED, this.buttonEventDetails[id], false);\n return true;\n },\n\n /**\n * An axis is an array of values from -1 (up, left) to 1 (down, right).\n * Compare each component of the axis to the previous value to determine change.\n *\n * @returns {boolean} Whether axes changed.\n */\n handleAxes: function () {\n var changed = false;\n var controllerAxes = this.controller.axes;\n var i;\n var previousAxis = this.axis;\n var changedAxes = this.changedAxes;\n\n // Check if axis changed.\n this.changedAxes.splice(0, this.changedAxes.length);\n for (i = 0; i < controllerAxes.length; ++i) {\n changedAxes.push(previousAxis[i] !== controllerAxes[i]);\n if (changedAxes[i]) { changed = true; }\n }\n if (!changed) { return false; }\n\n this.axis.splice(0, this.axis.length);\n for (i = 0; i < controllerAxes.length; i++) {\n this.axis.push(controllerAxes[i]);\n }\n this.el.emit(EVENTS.AXISMOVE, this.axisMoveEventDetail, false);\n return true;\n },\n\n /**\n * Determine whether a button press has occured and emit events as appropriate.\n *\n * @param {string} id - ID of the button to check.\n * @param {object} buttonState - State of the button to check.\n * @returns {boolean} Whether button press state changed.\n */\n handlePress: function (id, buttonState) {\n var evtName;\n var previousButtonState = this.buttonStates[id];\n\n // Not changed.\n if (buttonState.pressed === previousButtonState.pressed) { return false; }\n\n evtName = buttonState.pressed ? EVENTS.BUTTONDOWN : EVENTS.BUTTONUP;\n this.el.emit(evtName, this.buttonEventDetails[id], false);\n previousButtonState.pressed = buttonState.pressed;\n return true;\n },\n\n /**\n * Determine whether a button touch has occured and emit events as appropriate.\n *\n * @param {string} id - ID of the button to check.\n * @param {object} buttonState - State of the button to check.\n * @returns {boolean} Whether button touch state changed.\n */\n handleTouch: function (id, buttonState) {\n var evtName;\n var previousButtonState = this.buttonStates[id];\n\n // Not changed.\n if (buttonState.touched === previousButtonState.touched) { return false; }\n\n evtName = buttonState.touched ? EVENTS.TOUCHSTART : EVENTS.TOUCHEND;\n this.el.emit(evtName, this.buttonEventDetails[id], false, EMPTY_DAYDREAM_TOUCHES);\n previousButtonState.touched = buttonState.touched;\n return true;\n },\n\n /**\n * Determine whether a button value has changed.\n *\n * @param {string} id - Id of the button to check.\n * @param {object} buttonState - State of the button to check.\n * @returns {boolean} Whether button value changed.\n */\n handleValue: function (id, buttonState) {\n var previousButtonState = this.buttonStates[id];\n\n // Not changed.\n if (buttonState.value === previousButtonState.value) { return false; }\n\n previousButtonState.value = buttonState.value;\n return true;\n }\n});\n","var controllerUtils = require('../utils/tracked-controls');\nvar registerComponent = require('../core/component').registerComponent;\n\nvar EVENTS = {\n AXISMOVE: 'axismove',\n BUTTONCHANGED: 'buttonchanged',\n BUTTONDOWN: 'buttondown',\n BUTTONUP: 'buttonup',\n TOUCHSTART: 'touchstart',\n TOUCHEND: 'touchend'\n};\n\nmodule.exports.Component = registerComponent('tracked-controls-webxr', {\n schema: {\n id: {type: 'string', default: ''},\n hand: {type: 'string', default: ''},\n handTrackingEnabled: {default: false},\n index: {type: 'int', default: -1},\n iterateControllerProfiles: {default: false},\n space: {type: 'string', oneOf: ['targetRaySpace', 'gripSpace'], default: 'gripSpace'}\n },\n\n init: function () {\n this.updateController = this.updateController.bind(this);\n this.buttonEventDetails = {};\n this.buttonStates = this.el.components['tracked-controls'].buttonStates = {};\n this.axis = this.el.components['tracked-controls'].axis = [0, 0, 0];\n this.changedAxes = [];\n this.axisMoveEventDetail = {axis: this.axis, changed: this.changedAxes};\n },\n\n update: function () {\n this.updateController();\n },\n\n play: function () {\n var sceneEl = this.el.sceneEl;\n this.updateController();\n sceneEl.addEventListener('controllersupdated', this.updateController);\n },\n\n pause: function () {\n var sceneEl = this.el.sceneEl;\n sceneEl.removeEventListener('controllersupdated', this.updateController);\n },\n\n isControllerPresent: function (evt) {\n if (!this.controller || this.controller.gamepad) { return false; }\n if (evt.inputSource.handedness !== 'none' &&\n evt.inputSource.handedness !== this.data.hand) {\n return false;\n }\n return true;\n },\n\n /**\n * Handle update controller match criteria (such as `id`, `idPrefix`, `hand`, `controller`)\n */\n updateController: function () {\n this.controller = controllerUtils.findMatchingControllerWebXR(\n this.system.controllers,\n this.data.id,\n this.data.hand,\n this.data.index,\n this.data.iterateControllerProfiles,\n this.data.handTrackingEnabled\n );\n // Legacy handle to the controller for old components.\n this.el.components['tracked-controls'].controller = this.controller;\n if (this.data.autoHide) { this.el.object3D.visible = !!this.controller; }\n },\n\n tick: function () {\n var sceneEl = this.el.sceneEl;\n var controller = this.controller;\n var frame = sceneEl.frame;\n if (!controller || !sceneEl.frame || !this.system.referenceSpace) { return; }\n if (!controller.hand) {\n this.pose = frame.getPose(controller[this.data.space], this.system.referenceSpace);\n this.updatePose();\n this.updateButtons();\n }\n },\n\n updatePose: function () {\n var object3D = this.el.object3D;\n var pose = this.pose;\n if (!pose) { return; }\n object3D.matrix.elements = pose.transform.matrix;\n object3D.matrix.decompose(object3D.position, object3D.rotation, object3D.scale);\n },\n\n /**\n * Handle button changes including axes, presses, touches, values.\n */\n updateButtons: function () {\n var buttonState;\n var id;\n var controller = this.controller;\n var gamepad;\n if (!controller || !controller.gamepad) { return; }\n\n gamepad = controller.gamepad;\n // Check every button.\n for (id = 0; id < gamepad.buttons.length; ++id) {\n // Initialize button state.\n if (!this.buttonStates[id]) {\n this.buttonStates[id] = {pressed: false, touched: false, value: 0};\n }\n if (!this.buttonEventDetails[id]) {\n this.buttonEventDetails[id] = {id: id, state: this.buttonStates[id]};\n }\n\n buttonState = gamepad.buttons[id];\n this.handleButton(id, buttonState);\n }\n // Check axes.\n this.handleAxes();\n },\n\n /**\n * Handle presses and touches for a single button.\n *\n * @param {number} id - Index of button in Gamepad button array.\n * @param {number} buttonState - Value of button state from 0 to 1.\n * @returns {boolean} Whether button has changed in any way.\n */\n handleButton: function (id, buttonState) {\n var changed;\n changed = this.handlePress(id, buttonState) |\n this.handleTouch(id, buttonState) |\n this.handleValue(id, buttonState);\n if (!changed) { return false; }\n this.el.emit(EVENTS.BUTTONCHANGED, this.buttonEventDetails[id], false);\n return true;\n },\n\n /**\n * An axis is an array of values from -1 (up, left) to 1 (down, right).\n * Compare each component of the axis to the previous value to determine change.\n *\n * @returns {boolean} Whether axes changed.\n */\n handleAxes: function () {\n var changed = false;\n var controllerAxes = this.controller.gamepad.axes;\n var i;\n var previousAxis = this.axis;\n var changedAxes = this.changedAxes;\n\n // Check if axis changed.\n this.changedAxes.splice(0, this.changedAxes.length);\n for (i = 0; i < controllerAxes.length; ++i) {\n changedAxes.push(previousAxis[i] !== controllerAxes[i]);\n if (changedAxes[i]) { changed = true; }\n }\n if (!changed) { return false; }\n\n this.axis.splice(0, this.axis.length);\n for (i = 0; i < controllerAxes.length; i++) {\n this.axis.push(controllerAxes[i]);\n }\n this.el.emit(EVENTS.AXISMOVE, this.axisMoveEventDetail, false);\n return true;\n },\n\n /**\n * Determine whether a button press has occured and emit events as appropriate.\n *\n * @param {string} id - ID of the button to check.\n * @param {object} buttonState - State of the button to check.\n * @returns {boolean} Whether button press state changed.\n */\n handlePress: function (id, buttonState) {\n var evtName;\n var previousButtonState = this.buttonStates[id];\n\n // Not changed.\n if (buttonState.pressed === previousButtonState.pressed) { return false; }\n\n evtName = buttonState.pressed ? EVENTS.BUTTONDOWN : EVENTS.BUTTONUP;\n this.el.emit(evtName, this.buttonEventDetails[id], false);\n previousButtonState.pressed = buttonState.pressed;\n return true;\n },\n\n /**\n * Determine whether a button touch has occured and emit events as appropriate.\n *\n * @param {string} id - ID of the button to check.\n * @param {object} buttonState - State of the button to check.\n * @returns {boolean} Whether button touch state changed.\n */\n handleTouch: function (id, buttonState) {\n var evtName;\n var previousButtonState = this.buttonStates[id];\n\n // Not changed.\n if (buttonState.touched === previousButtonState.touched) { return false; }\n\n evtName = buttonState.touched ? EVENTS.TOUCHSTART : EVENTS.TOUCHEND;\n this.el.emit(evtName, this.buttonEventDetails[id], false);\n previousButtonState.touched = buttonState.touched;\n return true;\n },\n\n /**\n * Determine whether a button value has changed.\n *\n * @param {string} id - Id of the button to check.\n * @param {object} buttonState - State of the button to check.\n * @returns {boolean} Whether button value changed.\n */\n handleValue: function (id, buttonState) {\n var previousButtonState = this.buttonStates[id];\n\n // Not changed.\n if (buttonState.value === previousButtonState.value) { return false; }\n\n previousButtonState.value = buttonState.value;\n return true;\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\n/**\n * Tracked controls.\n * Abstract controls that decide if the WebVR or WebXR version is going to be applied.\n *\n * @property {number} controller - Index of controller in array returned by Gamepad API.\n * Only used if hand property is not set.\n * @property {string} id - Selected controller among those returned by Gamepad API.\n * @property {number} hand - If multiple controllers found with id, choose the one with the\n * given value for hand. If set, we ignore 'controller' property\n */\nmodule.exports.Component = registerComponent('tracked-controls', {\n schema: {\n autoHide: {default: true},\n controller: {default: -1},\n id: {type: 'string', default: ''},\n hand: {type: 'string', default: ''},\n idPrefix: {type: 'string', default: ''},\n handTrackingEnabled: {default: false},\n orientationOffset: {type: 'vec3'},\n // Arm model parameters when not 6DoF.\n armModel: {default: false},\n headElement: {type: 'selector'},\n iterateControllerProfiles: {default: false},\n space: {type: 'string', oneOf: ['targetRaySpace', 'gripSpace'], default: 'targetRaySpace'}\n },\n\n update: function () {\n var data = this.data;\n var el = this.el;\n if (el.sceneEl.hasWebXR) {\n el.setAttribute('tracked-controls-webxr', {\n id: data.id,\n hand: data.hand,\n index: data.controller,\n iterateControllerProfiles: data.iterateControllerProfiles,\n handTrackingEnabled: data.handTrackingEnabled,\n space: data.space\n });\n } else {\n el.setAttribute('tracked-controls-webvr', data);\n }\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\nvar THREE = require('../lib/three');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar INDEX_CONTROLLER_MODEL_BASE_URL = 'https://cdn.aframe.io/controllers/valve/index/valve-index-';\nvar INDEX_CONTROLLER_MODEL_URL = {\n left: INDEX_CONTROLLER_MODEL_BASE_URL + 'left.glb',\n right: INDEX_CONTROLLER_MODEL_BASE_URL + 'right.glb'\n};\n\nvar GAMEPAD_ID_PREFIX = 'valve';\n\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar INDEX_CONTROLLER_POSITION_OFFSET_WEBVR = {\n left: {x: -0.00023692678902063457, y: 0.04724540367838371, z: -0.061959880395271096},\n right: {x: 0.002471558599671131, y: 0.055765208987076195, z: -0.061068168708348844}\n};\n\nvar INDEX_CONTROLLER_POSITION_OFFSET_WEBXR = {\n left: {x: 0, y: -0.05, z: 0.06},\n right: {x: 0, y: -0.05, z: 0.06}\n};\n\nvar INDEX_CONTROLLER_ROTATION_OFFSET_WEBVR = {\n left: {_x: 0.692295102620542, _y: -0.0627618864318427, _z: -0.06265893149611756, _order: 'XYZ'},\n right: {_x: 0.6484021229942998, _y: -0.032563619881892894, _z: -0.1327973171917482, _order: 'XYZ'}\n};\n\nvar INDEX_CONTROLLER_ROTATION_OFFSET_WEBXR = {\n left: {_x: Math.PI / 3, _y: 0, _z: 0, _order: 'XYZ'},\n right: {_x: Math.PI / 3, _y: 0, _z: 0, _order: 'XYZ'}\n};\n\nvar INDEX_CONTROLLER_ROTATION_OFFSET = isWebXRAvailable ? INDEX_CONTROLLER_ROTATION_OFFSET_WEBXR : INDEX_CONTROLLER_ROTATION_OFFSET_WEBVR;\n\nvar INDEX_CONTROLLER_POSITION_OFFSET = isWebXRAvailable ? INDEX_CONTROLLER_POSITION_OFFSET_WEBXR : INDEX_CONTROLLER_POSITION_OFFSET_WEBVR;\n/**\n * Vive controls.\n * Interface with Vive controllers and map Gamepad events to controller buttons:\n * trackpad, trigger, grip, menu, system\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('valve-index-controls', {\n schema: {\n hand: {default: 'left'},\n buttonColor: {type: 'color', default: '#FAFAFA'}, // Off-white.\n buttonHighlightColor: {type: 'color', default: '#22D1EE'}, // Light blue.\n model: {default: true},\n orientationOffset: {type: 'vec3'}\n },\n\n mapping: {\n axes: {\n trackpad: [0, 1],\n thumbstick: [2, 3]\n },\n buttons: ['trigger', 'grip', 'trackpad', 'thumbstick', 'abutton']\n },\n\n init: function () {\n var self = this;\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.previousButtonValues = {};\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n\n this.bindMethods();\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n },\n\n /**\n * Once OpenVR returns correct hand data in supporting browsers, we can use hand property.\n * var isPresent = checkControllerPresentAndSetup(this.el.sceneEl, GAMEPAD_ID_PREFIX,\n { hand: data.hand });\n * Until then, use hardcoded index.\n */\n checkIfControllerPresent: function () {\n var data = this.data;\n var controllerIndex = data.hand === 'right' ? 0 : data.hand === 'left' ? 1 : 2;\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX, {index: controllerIndex, iterateControllerProfiles: true, hand: data.hand});\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n\n // If we have an OpenVR Gamepad, use the fixed mapping.\n el.setAttribute('tracked-controls', {\n idPrefix: GAMEPAD_ID_PREFIX,\n // Hand IDs: 1 = right, 0 = left, 2 = anything else.\n controller: data.hand === 'right' ? 1 : data.hand === 'left' ? 0 : 2,\n hand: data.hand,\n orientationOffset: data.orientationOffset\n });\n\n this.loadModel();\n },\n\n loadModel: function () {\n var data = this.data;\n if (!data.model) { return; }\n this.el.setAttribute('gltf-model', '' + INDEX_CONTROLLER_MODEL_URL[data.hand] + '');\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n /**\n * Rotate the trigger button based on how hard the trigger is pressed.\n */\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n var buttonMeshes = this.buttonMeshes;\n var analogValue;\n\n if (!button) { return; }\n\n if (button === 'trigger') {\n analogValue = evt.detail.state.value;\n // Update trigger rotation depending on button value.\n if (buttonMeshes && buttonMeshes.trigger) {\n buttonMeshes.trigger.rotation.x = this.triggerOriginalRotationX - analogValue * (Math.PI / 40);\n }\n }\n\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onModelLoaded: function (evt) {\n var buttonMeshes;\n var controllerObject3D = evt.detail.model;\n var self = this;\n\n if (!this.data.model) { return; }\n\n // Store button meshes object to be able to change their colors.\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.grip = {\n left: controllerObject3D.getObjectByName('leftgrip'),\n right: controllerObject3D.getObjectByName('rightgrip')\n };\n buttonMeshes.menu = controllerObject3D.getObjectByName('menubutton');\n buttonMeshes.system = controllerObject3D.getObjectByName('systembutton');\n buttonMeshes.trackpad = controllerObject3D.getObjectByName('touchpad');\n buttonMeshes.trigger = controllerObject3D.getObjectByName('trigger');\n this.triggerOriginalRotationX = buttonMeshes.trigger.rotation.x;\n\n // Set default colors.\n Object.keys(buttonMeshes).forEach(function (buttonName) {\n self.setButtonColor(buttonName, self.data.buttonColor);\n });\n\n // Offset pivot point.\n controllerObject3D.position.copy(INDEX_CONTROLLER_POSITION_OFFSET[this.data.hand]);\n controllerObject3D.rotation.copy(INDEX_CONTROLLER_ROTATION_OFFSET[this.data.hand]);\n\n this.el.emit('controllermodelready', {\n name: 'valve-index-controlls',\n model: this.data.model,\n rayOrigin: new THREE.Vector3(0, 0, 0)\n });\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n updateModel: function (buttonName, evtName) {\n var color;\n var isTouch;\n if (!this.data.model) { return; }\n\n isTouch = evtName.indexOf('touch') !== -1;\n // Don't change color for trackpad touch.\n if (isTouch) { return; }\n\n // Update colors.\n color = evtName === 'up' ? this.data.buttonColor : this.data.buttonHighlightColor;\n this.setButtonColor(buttonName, color);\n },\n setButtonColor: function (buttonName, color) {\n // TODO: The meshes aren't set up correctly now, skipping for the moment\n return;\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\n\n/**\n * Visibility component.\n */\nmodule.exports.Component = registerComponent('visible', {\n schema: {default: true},\n\n update: function () {\n this.el.object3D.visible = this.data;\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar VIVE_CONTROLLER_MODEL_OBJ_URL = 'https://cdn.aframe.io/controllers/vive/vr_controller_vive.obj';\nvar VIVE_CONTROLLER_MODEL_OBJ_MTL = 'https://cdn.aframe.io/controllers/vive/vr_controller_vive.mtl';\n\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar GAMEPAD_ID_WEBXR = 'htc-vive';\nvar GAMEPAD_ID_WEBVR = 'OpenVR ';\n\n// Prefix for Gen1 and Gen2 Oculus Touch Controllers.\nvar GAMEPAD_ID_PREFIX = isWebXRAvailable ? GAMEPAD_ID_WEBXR : GAMEPAD_ID_WEBVR;\n\n/**\n * Button IDs:\n * 0 - trackpad\n * 1 - trigger (intensity value from 0.5 to 1)\n * 2 - grip\n * 3 - menu (dispatch but better for menu options)\n * 4 - system (never dispatched on this layer)\n */\nvar INPUT_MAPPING_WEBVR = {\n axes: {trackpad: [0, 1]},\n buttons: ['trackpad', 'trigger', 'grip', 'menu', 'system']\n};\n\n/**\n * Button IDs:\n * 0 - trigger\n * 1 - squeeze\n * 2 - touchpad\n * 3 - none (dispatch but better for menu options)\n * 4 - menu (never dispatched on this layer)\n *\n * Axis:\n * 0 - touchpad x axis\n * 1 - touchpad y axis\n * Reference: https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/htc/htc-vive.json\n */\nvar INPUT_MAPPING_WEBXR = {\n axes: {thumbstick: [0, 1]},\n buttons: ['trigger', 'grip', 'trackpad', 'none', 'menu']\n};\n\nvar INPUT_MAPPING = isWebXRAvailable ? INPUT_MAPPING_WEBXR : INPUT_MAPPING_WEBVR;\n\n/**\n * Vive controls.\n * Interface with Vive controllers and map Gamepad events to controller buttons:\n * trackpad, trigger, grip, menu, system\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('vive-controls', {\n schema: {\n hand: {default: 'left'},\n buttonColor: {type: 'color', default: '#FAFAFA'}, // Off-white.\n buttonHighlightColor: {type: 'color', default: '#22D1EE'}, // Light blue.\n model: {default: true},\n orientationOffset: {type: 'vec3'}\n },\n\n mapping: INPUT_MAPPING,\n\n init: function () {\n var self = this;\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.previousButtonValues = {};\n this.rendererSystem = this.el.sceneEl.systems.renderer;\n\n this.bindMethods();\n },\n\n update: function () {\n var data = this.data;\n this.controllerIndex = data.hand === 'right' ? 0 : data.hand === 'left' ? 1 : 2;\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n },\n\n /**\n * Once OpenVR returns correct hand data in supporting browsers, we can use hand property.\n * var isPresent = checkControllerPresentAndSetup(this.el.sceneEl, GAMEPAD_ID_PREFIX,\n { hand: data.hand });\n * Until then, use hardcoded index.\n */\n checkIfControllerPresent: function () {\n var data = this.data;\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX, {index: this.controllerIndex, hand: data.hand});\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n\n // If we have an OpenVR Gamepad, use the fixed mapping.\n el.setAttribute('tracked-controls', {\n idPrefix: GAMEPAD_ID_PREFIX,\n hand: data.hand,\n controller: this.controllerIndex,\n orientationOffset: data.orientationOffset\n });\n\n // Load model.\n if (!this.data.model) { return; }\n this.el.setAttribute('obj-model', {\n obj: VIVE_CONTROLLER_MODEL_OBJ_URL,\n mtl: VIVE_CONTROLLER_MODEL_OBJ_MTL\n });\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n /**\n * Rotate the trigger button based on how hard the trigger is pressed.\n */\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n var buttonMeshes = this.buttonMeshes;\n var analogValue;\n\n if (!button) { return; }\n\n if (button === 'trigger') {\n analogValue = evt.detail.state.value;\n // Update trigger rotation depending on button value.\n if (buttonMeshes && buttonMeshes.trigger) {\n buttonMeshes.trigger.rotation.x = -analogValue * (Math.PI / 12);\n }\n }\n\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onModelLoaded: function (evt) {\n var buttonMeshes;\n var controllerObject3D = evt.detail.model;\n var self = this;\n\n if (!this.data.model) { return; }\n\n // Store button meshes object to be able to change their colors.\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.grip = {\n left: controllerObject3D.getObjectByName('leftgrip'),\n right: controllerObject3D.getObjectByName('rightgrip')\n };\n buttonMeshes.menu = controllerObject3D.getObjectByName('menubutton');\n buttonMeshes.system = controllerObject3D.getObjectByName('systembutton');\n buttonMeshes.trackpad = controllerObject3D.getObjectByName('touchpad');\n buttonMeshes.trigger = controllerObject3D.getObjectByName('trigger');\n\n // Set default colors.\n Object.keys(buttonMeshes).forEach(function (buttonName) {\n self.setButtonColor(buttonName, self.data.buttonColor);\n });\n\n // Offset pivot point.\n controllerObject3D.position.set(0, -0.015, 0.04);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n updateModel: function (buttonName, evtName) {\n var color;\n var isTouch;\n if (!this.data.model) { return; }\n\n isTouch = evtName.indexOf('touch') !== -1;\n // Don't change color for trackpad touch.\n if (isTouch) { return; }\n\n // Update colors.\n color = evtName === 'up' ? this.data.buttonColor : this.data.buttonHighlightColor;\n this.setButtonColor(buttonName, color);\n },\n\n setButtonColor: function (buttonName, color) {\n var buttonMeshes = this.buttonMeshes;\n var rendererSystem = this.rendererSystem;\n\n if (!buttonMeshes) { return; }\n\n // Need to do both left and right sides for grip.\n if (buttonName === 'grip') {\n buttonMeshes.grip.left.material.color.set(color);\n buttonMeshes.grip.right.material.color.set(color);\n rendererSystem.applyColorCorrection(buttonMeshes.grip.left.material.color);\n rendererSystem.applyColorCorrection(buttonMeshes.grip.right.material.color);\n return;\n }\n buttonMeshes[buttonName].material.color.set(color);\n rendererSystem.applyColorCorrection(buttonMeshes[buttonName].material.color);\n }\n});\n","var registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar GAMEPAD_ID_PREFIX = 'HTC Vive Focus';\n\nvar VIVE_FOCUS_CONTROLLER_MODEL_URL = 'https://cdn.aframe.io/controllers/vive/focus-controller/focus-controller.gltf';\n\n/**\n * Vive Focus controls.\n * Interface with Vive Focus controller and map Gamepad events to\n * controller buttons: trackpad, trigger\n * Load a controller model and highlight the pressed buttons.\n */\nmodule.exports.Component = registerComponent('vive-focus-controls', {\n schema: {\n hand: {default: ''}, // This informs the degenerate arm model.\n buttonTouchedColor: {type: 'color', default: '#BBBBBB'},\n buttonHighlightColor: {type: 'color', default: '#7A7A7A'},\n model: {default: true},\n orientationOffset: {type: 'vec3'},\n armModel: {default: true}\n },\n\n /**\n * Button IDs:\n * 0 - trackpad\n * 1 - trigger\n */\n mapping: {\n axes: {trackpad: [0, 1]},\n buttons: ['trackpad', 'trigger']\n },\n\n bindMethods: function () {\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.removeControllersUpdateListener = bind(this.removeControllersUpdateListener, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.bindMethods();\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('model-loaded', this.onModelLoaded);\n el.addEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = true;\n this.addControllersUpdateListener();\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n el.removeEventListener('axismove', this.onAxisMoved);\n this.controllerEventsActive = false;\n this.removeControllersUpdateListener();\n },\n\n checkIfControllerPresent: function () {\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX,\n this.data.hand ? {hand: this.data.hand} : {});\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n injectTrackedControls: function () {\n var el = this.el;\n var data = this.data;\n el.setAttribute('tracked-controls', {\n armModel: data.armModel,\n idPrefix: GAMEPAD_ID_PREFIX,\n orientationOffset: data.orientationOffset\n });\n if (!this.data.model) { return; }\n this.el.setAttribute('gltf-model', VIVE_FOCUS_CONTROLLER_MODEL_URL);\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n onModelLoaded: function (evt) {\n var controllerObject3D = evt.detail.model;\n var buttonMeshes;\n\n if (!this.data.model) { return; }\n buttonMeshes = this.buttonMeshes = {};\n buttonMeshes.trigger = controllerObject3D.getObjectByName('BumperKey');\n buttonMeshes.triggerPressed = controllerObject3D.getObjectByName('BumperKey_Press');\n if (buttonMeshes.triggerPressed) {\n buttonMeshes.triggerPressed.visible = false;\n }\n buttonMeshes.trackpad = controllerObject3D.getObjectByName('TouchPad');\n buttonMeshes.trackpadPressed = controllerObject3D.getObjectByName('TouchPad_Press');\n if (buttonMeshes.trackpadPressed) {\n buttonMeshes.trackpadPressed.visible = false;\n }\n },\n\n // No analog buttons, only emits 0/1 values\n onButtonChanged: function (evt) {\n var button = this.mapping.buttons[evt.detail.id];\n if (!button) return;\n // Pass along changed event with button state, using button mapping for convenience.\n this.el.emit(button + 'changed', evt.detail.state);\n },\n\n onAxisMoved: function (evt) {\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n updateModel: function (buttonName, evtName) {\n if (!this.data.model) { return; }\n this.updateButtonModel(buttonName, evtName);\n },\n\n updateButtonModel: function (buttonName, state) {\n var buttonMeshes = this.buttonMeshes;\n var pressedName = buttonName + 'Pressed';\n if (!buttonMeshes || !buttonMeshes[buttonName] || !buttonMeshes[pressedName]) {\n return;\n }\n var color;\n switch (state) {\n case 'down':\n color = this.data.buttonHighlightColor;\n break;\n case 'touchstart':\n color = this.data.buttonTouchedColor;\n break;\n }\n if (color) {\n buttonMeshes[pressedName].material.color.set(color);\n }\n buttonMeshes[pressedName].visible = !!color;\n buttonMeshes[buttonName].visible = !color;\n }\n});\n","var KEYCODE_TO_CODE = require('../constants').keyboardevent.KEYCODE_TO_CODE;\nvar registerComponent = require('../core/component').registerComponent;\nvar THREE = require('../lib/three');\nvar utils = require('../utils/');\n\nvar bind = utils.bind;\nvar shouldCaptureKeyEvent = utils.shouldCaptureKeyEvent;\n\nvar CLAMP_VELOCITY = 0.00001;\nvar MAX_DELTA = 0.2;\nvar KEYS = [\n 'KeyW', 'KeyA', 'KeyS', 'KeyD',\n 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'ArrowDown'\n];\n\n/**\n * WASD component to control entities using WASD keys.\n */\nmodule.exports.Component = registerComponent('wasd-controls', {\n schema: {\n acceleration: {default: 65},\n adAxis: {default: 'x', oneOf: ['x', 'y', 'z']},\n adEnabled: {default: true},\n adInverted: {default: false},\n enabled: {default: true},\n fly: {default: false},\n wsAxis: {default: 'z', oneOf: ['x', 'y', 'z']},\n wsEnabled: {default: true},\n wsInverted: {default: false}\n },\n\n init: function () {\n // To keep track of the pressed keys.\n this.keys = {};\n this.easing = 1.1;\n\n this.velocity = new THREE.Vector3();\n\n // Bind methods and add event listeners.\n this.onBlur = bind(this.onBlur, this);\n this.onContextMenu = bind(this.onContextMenu, this);\n this.onFocus = bind(this.onFocus, this);\n this.onKeyDown = bind(this.onKeyDown, this);\n this.onKeyUp = bind(this.onKeyUp, this);\n this.onVisibilityChange = bind(this.onVisibilityChange, this);\n this.attachVisibilityEventListeners();\n },\n\n tick: function (time, delta) {\n var data = this.data;\n var el = this.el;\n var velocity = this.velocity;\n\n if (!velocity[data.adAxis] && !velocity[data.wsAxis] &&\n isEmptyObject(this.keys)) { return; }\n\n // Update velocity.\n delta = delta / 1000;\n this.updateVelocity(delta);\n\n if (!velocity[data.adAxis] && !velocity[data.wsAxis]) { return; }\n\n // Get movement vector and translate position.\n el.object3D.position.add(this.getMovementVector(delta));\n },\n\n update: function (oldData) {\n // Reset velocity if axis have changed.\n if (oldData.adAxis !== this.data.adAxis) { this.velocity[oldData.adAxis] = 0; }\n if (oldData.wsAxis !== this.data.wsAxis) { this.velocity[oldData.wsAxis] = 0; }\n },\n\n remove: function () {\n this.removeKeyEventListeners();\n this.removeVisibilityEventListeners();\n },\n\n play: function () {\n this.attachKeyEventListeners();\n },\n\n pause: function () {\n this.keys = {};\n this.removeKeyEventListeners();\n },\n\n updateVelocity: function (delta) {\n var acceleration;\n var adAxis;\n var adSign;\n var data = this.data;\n var keys = this.keys;\n var velocity = this.velocity;\n var wsAxis;\n var wsSign;\n\n adAxis = data.adAxis;\n wsAxis = data.wsAxis;\n\n // If FPS too low, reset velocity.\n if (delta > MAX_DELTA) {\n velocity[adAxis] = 0;\n velocity[wsAxis] = 0;\n return;\n }\n\n // https://gamedev.stackexchange.com/questions/151383/frame-rate-independant-movement-with-acceleration\n var scaledEasing = Math.pow(1 / this.easing, delta * 60);\n // Velocity Easing.\n if (velocity[adAxis] !== 0) {\n velocity[adAxis] = velocity[adAxis] * scaledEasing;\n }\n if (velocity[wsAxis] !== 0) {\n velocity[wsAxis] = velocity[wsAxis] * scaledEasing;\n }\n\n // Clamp velocity easing.\n if (Math.abs(velocity[adAxis]) < CLAMP_VELOCITY) { velocity[adAxis] = 0; }\n if (Math.abs(velocity[wsAxis]) < CLAMP_VELOCITY) { velocity[wsAxis] = 0; }\n\n if (!data.enabled) { return; }\n\n // Update velocity using keys pressed.\n acceleration = data.acceleration;\n if (data.adEnabled) {\n adSign = data.adInverted ? -1 : 1;\n if (keys.KeyA || keys.ArrowLeft) { velocity[adAxis] -= adSign * acceleration * delta; }\n if (keys.KeyD || keys.ArrowRight) { velocity[adAxis] += adSign * acceleration * delta; }\n }\n if (data.wsEnabled) {\n wsSign = data.wsInverted ? -1 : 1;\n if (keys.KeyW || keys.ArrowUp) { velocity[wsAxis] -= wsSign * acceleration * delta; }\n if (keys.KeyS || keys.ArrowDown) { velocity[wsAxis] += wsSign * acceleration * delta; }\n }\n },\n\n getMovementVector: (function () {\n var directionVector = new THREE.Vector3(0, 0, 0);\n var rotationEuler = new THREE.Euler(0, 0, 0, 'YXZ');\n\n return function (delta) {\n var rotation = this.el.getAttribute('rotation');\n var velocity = this.velocity;\n var xRotation;\n\n directionVector.copy(velocity);\n directionVector.multiplyScalar(delta);\n\n // Absolute.\n if (!rotation) { return directionVector; }\n\n xRotation = this.data.fly ? rotation.x : 0;\n\n // Transform direction relative to heading.\n rotationEuler.set(THREE.MathUtils.degToRad(xRotation), THREE.MathUtils.degToRad(rotation.y), 0);\n directionVector.applyEuler(rotationEuler);\n return directionVector;\n };\n })(),\n\n attachVisibilityEventListeners: function () {\n window.oncontextmenu = this.onContextMenu;\n window.addEventListener('blur', this.onBlur);\n window.addEventListener('focus', this.onFocus);\n document.addEventListener('visibilitychange', this.onVisibilityChange);\n },\n\n removeVisibilityEventListeners: function () {\n window.removeEventListener('blur', this.onBlur);\n window.removeEventListener('focus', this.onFocus);\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n },\n\n attachKeyEventListeners: function () {\n window.addEventListener('keydown', this.onKeyDown);\n window.addEventListener('keyup', this.onKeyUp);\n },\n\n removeKeyEventListeners: function () {\n window.removeEventListener('keydown', this.onKeyDown);\n window.removeEventListener('keyup', this.onKeyUp);\n },\n\n onContextMenu: function () {\n var keys = Object.keys(this.keys);\n for (var i = 0; i < keys.length; i++) {\n delete this.keys[keys[i]];\n }\n },\n\n onBlur: function () {\n this.pause();\n },\n\n onFocus: function () {\n this.play();\n },\n\n onVisibilityChange: function () {\n if (document.hidden) {\n this.onBlur();\n } else {\n this.onFocus();\n }\n },\n\n onKeyDown: function (event) {\n var code;\n if (!shouldCaptureKeyEvent(event)) { return; }\n code = event.code || KEYCODE_TO_CODE[event.keyCode];\n if (KEYS.indexOf(code) !== -1) { this.keys[code] = true; }\n },\n\n onKeyUp: function (event) {\n var code;\n code = event.code || KEYCODE_TO_CODE[event.keyCode];\n delete this.keys[code];\n }\n});\n\nfunction isEmptyObject (keys) {\n var key;\n for (key in keys) { return false; }\n return true;\n}\n","/* global THREE */\nvar registerComponent = require('../core/component').registerComponent;\nvar bind = require('../utils/bind');\n\nvar trackedControlsUtils = require('../utils/tracked-controls');\nvar checkControllerPresentAndSetup = trackedControlsUtils.checkControllerPresentAndSetup;\nvar emitIfAxesChanged = trackedControlsUtils.emitIfAxesChanged;\nvar onButtonEvent = trackedControlsUtils.onButtonEvent;\n\nvar utils = require('../utils/');\n\nvar debug = utils.debug('components:windows-motion-controls:debug');\nvar warn = utils.debug('components:windows-motion-controls:warn');\n\nvar DEFAULT_HANDEDNESS = require('../constants').DEFAULT_HANDEDNESS;\n\nvar MODEL_BASE_URL = 'https://cdn.aframe.io/controllers/microsoft/';\nvar MODEL_FILENAMES = { left: 'left.glb', right: 'right.glb', default: 'universal.glb' };\n\nvar isWebXRAvailable = require('../utils/').device.isWebXRAvailable;\n\nvar GAMEPAD_ID_WEBXR = 'windows-mixed-reality';\nvar GAMEPAD_ID_WEBVR = 'Spatial Controller (Spatial Interaction Source) ';\nvar GAMEPAD_ID_PATTERN = /([0-9a-zA-Z]+-[0-9a-zA-Z]+)$/;\n\nvar GAMEPAD_ID_PREFIX = isWebXRAvailable ? GAMEPAD_ID_WEBXR : GAMEPAD_ID_WEBVR;\n\nvar INPUT_MAPPING_WEBVR = {\n // A-Frame specific semantic axis names\n axes: {'thumbstick': [0, 1], 'trackpad': [2, 3]},\n // A-Frame specific semantic button names\n buttons: ['thumbstick', 'trigger', 'grip', 'menu', 'trackpad'],\n // A mapping of the semantic name to node name in the glTF model file,\n // that should be transformed by axis value.\n // This array mirrors the browser Gamepad.axes array, such that\n // the mesh corresponding to axis 0 is in this array index 0.\n axisMeshNames: [\n 'THUMBSTICK_X',\n 'THUMBSTICK_Y',\n 'TOUCHPAD_TOUCH_X',\n 'TOUCHPAD_TOUCH_Y'\n ],\n // A mapping of the semantic name to button node name in the glTF model file,\n // that should be transformed by button value.\n buttonMeshNames: {\n 'trigger': 'SELECT',\n 'menu': 'MENU',\n 'grip': 'GRASP',\n 'thumbstick': 'THUMBSTICK_PRESS',\n 'trackpad': 'TOUCHPAD_PRESS'\n },\n pointingPoseMeshName: 'POINTING_POSE'\n};\n\nvar INPUT_MAPPING_WEBXR = {\n // A-Frame specific semantic axis names\n axes: {'touchpad': [0, 1], 'thumbstick': [2, 3]},\n // A-Frame specific semantic button names\n buttons: ['trigger', 'squeeze', 'touchpad', 'thumbstick', 'menu'],\n // A mapping of the semantic name to node name in the glTF model file,\n // that should be transformed by axis value.\n // This array mirrors the browser Gamepad.axes array, such that\n // the mesh corresponding to axis 0 is in this array index 0.\n axisMeshNames: [\n 'TOUCHPAD_TOUCH_X',\n 'TOUCHPAD_TOUCH_X',\n 'THUMBSTICK_X',\n 'THUMBSTICK_Y'\n ],\n // A mapping of the semantic name to button node name in the glTF model file,\n // that should be transformed by button value.\n buttonMeshNames: {\n 'trigger': 'SELECT',\n 'menu': 'MENU',\n 'squeeze': 'GRASP',\n 'thumbstick': 'THUMBSTICK_PRESS',\n 'touchpad': 'TOUCHPAD_PRESS'\n },\n pointingPoseMeshName: 'POINTING_POSE'\n};\n\nvar INPUT_MAPPING = isWebXRAvailable ? INPUT_MAPPING_WEBXR : INPUT_MAPPING_WEBVR;\n\n/**\n * Windows Motion Controller controls.\n * Interface with Windows Motion Controller controllers and map Gamepad events to\n * controller buttons: trackpad, trigger, grip, menu, thumbstick\n * Load a controller model and transform the pressed buttons.\n */\nmodule.exports.Component = registerComponent('windows-motion-controls', {\n schema: {\n hand: {default: DEFAULT_HANDEDNESS},\n // It is possible to have multiple pairs of controllers attached (a pair has both left and right).\n // Set this to 1 to use a controller from the second pair, 2 from the third pair, etc.\n pair: {default: 0},\n // If true, loads the controller glTF asset.\n model: {default: true},\n // If true, will hide the model from the scene if no matching gamepad (based on ID & hand) is connected.\n hideDisconnected: {default: true}\n },\n\n mapping: INPUT_MAPPING,\n\n bindMethods: function () {\n this.onModelError = bind(this.onModelError, this);\n this.onModelLoaded = bind(this.onModelLoaded, this);\n this.onControllersUpdate = bind(this.onControllersUpdate, this);\n this.checkIfControllerPresent = bind(this.checkIfControllerPresent, this);\n this.onAxisMoved = bind(this.onAxisMoved, this);\n },\n\n init: function () {\n var self = this;\n var el = this.el;\n this.onButtonChanged = bind(this.onButtonChanged, this);\n this.onButtonDown = function (evt) { onButtonEvent(evt.detail.id, 'down', self); };\n this.onButtonUp = function (evt) { onButtonEvent(evt.detail.id, 'up', self); };\n this.onButtonTouchStart = function (evt) { onButtonEvent(evt.detail.id, 'touchstart', self); };\n this.onButtonTouchEnd = function (evt) { onButtonEvent(evt.detail.id, 'touchend', self); };\n this.onControllerConnected = function () { self.setModelVisibility(true); };\n this.onControllerDisconnected = function () { self.setModelVisibility(false); };\n this.controllerPresent = false;\n this.lastControllerCheck = 0;\n this.previousButtonValues = {};\n this.bindMethods();\n\n // Cache for submeshes that we have looked up by name.\n this.loadedMeshInfo = {\n buttonMeshes: null,\n axisMeshes: null\n };\n\n // Pointing poses\n this.rayOrigin = {\n origin: new THREE.Vector3(),\n direction: new THREE.Vector3(0, 0, -1),\n createdFromMesh: false\n };\n\n el.addEventListener('controllerconnected', this.onControllerConnected);\n el.addEventListener('controllerdisconnected', this.onControllerDisconnected);\n },\n\n addEventListeners: function () {\n var el = this.el;\n el.addEventListener('buttonchanged', this.onButtonChanged);\n el.addEventListener('buttondown', this.onButtonDown);\n el.addEventListener('buttonup', this.onButtonUp);\n el.addEventListener('touchstart', this.onButtonTouchStart);\n el.addEventListener('touchend', this.onButtonTouchEnd);\n el.addEventListener('axismove', this.onAxisMoved);\n el.addEventListener('model-error', this.onModelError);\n el.addEventListener('model-loaded', this.onModelLoaded);\n this.controllerEventsActive = true;\n },\n\n removeEventListeners: function () {\n var el = this.el;\n el.removeEventListener('buttonchanged', this.onButtonChanged);\n el.removeEventListener('buttondown', this.onButtonDown);\n el.removeEventListener('buttonup', this.onButtonUp);\n el.removeEventListener('touchstart', this.onButtonTouchStart);\n el.removeEventListener('touchend', this.onButtonTouchEnd);\n el.removeEventListener('axismove', this.onAxisMoved);\n el.removeEventListener('model-error', this.onModelError);\n el.removeEventListener('model-loaded', this.onModelLoaded);\n this.controllerEventsActive = false;\n },\n\n checkIfControllerPresent: function () {\n checkControllerPresentAndSetup(this, GAMEPAD_ID_PREFIX, {\n hand: this.data.hand,\n index: this.data.pair,\n iterateControllerProfiles: true\n });\n },\n\n play: function () {\n this.checkIfControllerPresent();\n this.addControllersUpdateListener();\n },\n\n pause: function () {\n this.removeEventListeners();\n this.removeControllersUpdateListener();\n },\n\n updateControllerModel: function () {\n // If we do not want to load a model, or, have already loaded the model, emit the controllermodelready event.\n if (!this.data.model || this.rayOrigin.createdFromMesh) {\n this.modelReady();\n return;\n }\n\n var sourceUrl = this.createControllerModelUrl();\n this.loadModel(sourceUrl);\n },\n\n /**\n * Helper function that constructs a URL from the controller ID suffix, for future proofed\n * art assets.\n */\n createControllerModelUrl: function (forceDefault) {\n // Determine the device specific folder based on the ID suffix\n var trackedControlsComponent = this.el.components['tracked-controls'];\n var controller = trackedControlsComponent ? trackedControlsComponent.controller : null;\n var device = 'default';\n var hand = this.data.hand;\n var filename;\n\n if (controller && !window.hasNativeWebXRImplementation) {\n // Read hand directly from the controller, rather than this.data, as in the case that the controller\n // is unhanded this.data will still have 'left' or 'right' (depending on what the user inserted in to the scene).\n // In this case, we want to load the universal model, so need to get the '' from the controller.\n hand = controller.hand;\n\n if (!forceDefault) {\n var match = controller.id.match(GAMEPAD_ID_PATTERN);\n device = ((match && match[0]) || device);\n }\n }\n\n // Hand\n filename = MODEL_FILENAMES[hand] || MODEL_FILENAMES.default;\n\n // Final url\n return MODEL_BASE_URL + device + '/' + filename;\n },\n\n injectTrackedControls: function () {\n var data = this.data;\n this.el.setAttribute('tracked-controls', {\n idPrefix: GAMEPAD_ID_PREFIX,\n controller: data.pair,\n hand: data.hand,\n armModel: false\n });\n\n this.updateControllerModel();\n },\n\n addControllersUpdateListener: function () {\n this.el.sceneEl.addEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n removeControllersUpdateListener: function () {\n this.el.sceneEl.removeEventListener('controllersupdated', this.onControllersUpdate, false);\n },\n\n onControllersUpdate: function () {\n this.checkIfControllerPresent();\n },\n\n onModelError: function (evt) {\n var defaultUrl = this.createControllerModelUrl(true);\n if (evt.detail.src !== defaultUrl) {\n warn('Failed to load controller model for device, attempting to load default.');\n this.loadModel(defaultUrl);\n } else {\n warn('Failed to load default controller model.');\n }\n },\n\n loadModel: function (url) {\n // The model is loaded by the gltf-model compoent when this attribute is initially set,\n // removed and re-loaded if the given url changes.\n this.el.setAttribute('gltf-model', 'url(' + url + ')');\n },\n\n onModelLoaded: function (evt) {\n var rootNode = this.controllerModel = evt.detail.model;\n var loadedMeshInfo = this.loadedMeshInfo;\n var i;\n var meshName;\n var mesh;\n var meshInfo;\n\n debug('Processing model');\n\n // Reset the caches\n loadedMeshInfo.buttonMeshes = {};\n loadedMeshInfo.axisMeshes = {};\n\n // Cache our meshes so we aren't traversing the hierarchy per frame\n if (rootNode) {\n // Button Meshes\n for (i = 0; i < this.mapping.buttons.length; i++) {\n meshName = this.mapping.buttonMeshNames[this.mapping.buttons[i]];\n if (!meshName) {\n debug('Skipping unknown button at index: ' + i + ' with mapped name: ' + this.mapping.buttons[i]);\n continue;\n }\n\n mesh = rootNode.getObjectByName(meshName);\n if (!mesh) {\n warn('Missing button mesh with name: ' + meshName);\n continue;\n }\n\n meshInfo = {\n index: i,\n value: getImmediateChildByName(mesh, 'VALUE'),\n pressed: getImmediateChildByName(mesh, 'PRESSED'),\n unpressed: getImmediateChildByName(mesh, 'UNPRESSED')\n };\n if (meshInfo.value && meshInfo.pressed && meshInfo.unpressed) {\n loadedMeshInfo.buttonMeshes[this.mapping.buttons[i]] = meshInfo;\n } else {\n // If we didn't find the mesh, it simply means this button won't have transforms applied as mapped button value changes.\n warn('Missing button submesh under mesh with name: ' + meshName +\n '(VALUE: ' + !!meshInfo.value +\n ', PRESSED: ' + !!meshInfo.pressed +\n ', UNPRESSED:' + !!meshInfo.unpressed +\n ')');\n }\n }\n\n // Axis Meshes\n for (i = 0; i < this.mapping.axisMeshNames.length; i++) {\n meshName = this.mapping.axisMeshNames[i];\n if (!meshName) {\n debug('Skipping unknown axis at index: ' + i);\n continue;\n }\n\n mesh = rootNode.getObjectByName(meshName);\n if (!mesh) {\n warn('Missing axis mesh with name: ' + meshName);\n continue;\n }\n\n meshInfo = {\n index: i,\n value: getImmediateChildByName(mesh, 'VALUE'),\n min: getImmediateChildByName(mesh, 'MIN'),\n max: getImmediateChildByName(mesh, 'MAX')\n };\n if (meshInfo.value && meshInfo.min && meshInfo.max) {\n loadedMeshInfo.axisMeshes[i] = meshInfo;\n } else {\n // If we didn't find the mesh, it simply means this axis won't have transforms applied as mapped axis values change.\n warn('Missing axis submesh under mesh with name: ' + meshName +\n '(VALUE: ' + !!meshInfo.value +\n ', MIN: ' + !!meshInfo.min +\n ', MAX:' + !!meshInfo.max +\n ')');\n }\n }\n\n this.calculateRayOriginFromMesh(rootNode);\n // Determine if the model has to be visible or not.\n this.setModelVisibility();\n }\n\n debug('Model load complete.');\n\n // Look through only immediate children. This will return null if no mesh exists with the given name.\n function getImmediateChildByName (object3d, value) {\n for (var i = 0, l = object3d.children.length; i < l; i++) {\n var obj = object3d.children[i];\n if (obj && obj['name'] === value) {\n return obj;\n }\n }\n return undefined;\n }\n },\n\n calculateRayOriginFromMesh: (function () {\n var quaternion = new THREE.Quaternion();\n return function (rootNode) {\n var mesh;\n\n // Calculate the pointer pose (used for rays), by applying the world transform of th POINTER_POSE node\n // in the glTF (assumes that root node is at world origin)\n this.rayOrigin.origin.set(0, 0, 0);\n this.rayOrigin.direction.set(0, 0, -1);\n this.rayOrigin.createdFromMesh = true;\n\n // Try to read Pointing pose from the source model\n mesh = rootNode.getObjectByName(this.mapping.pointingPoseMeshName);\n if (mesh) {\n var parent = rootNode.parent;\n\n // We need to read pose transforms accumulated from the root of the glTF, not the scene.\n if (parent) {\n rootNode.parent = null;\n rootNode.updateMatrixWorld(true);\n rootNode.parent = parent;\n }\n\n mesh.getWorldPosition(this.rayOrigin.origin);\n mesh.getWorldQuaternion(quaternion);\n this.rayOrigin.direction.applyQuaternion(quaternion);\n\n // Recalculate the world matrices now that the rootNode is re-attached to the parent.\n if (parent) {\n rootNode.updateMatrixWorld(true);\n }\n } else {\n debug('Mesh does not contain pointing origin data, defaulting to none.');\n }\n\n // Emit event stating that our pointing ray is now accurate.\n this.modelReady();\n };\n })(),\n\n lerpAxisTransform: (function () {\n var quaternion = new THREE.Quaternion();\n return function (axis, axisValue) {\n var axisMeshInfo = this.loadedMeshInfo.axisMeshes[axis];\n if (!axisMeshInfo) return;\n\n var min = axisMeshInfo.min;\n var max = axisMeshInfo.max;\n var target = axisMeshInfo.value;\n\n // Convert from gamepad value range (-1 to +1) to lerp range (0 to 1)\n var lerpValue = axisValue * 0.5 + 0.5;\n target.setRotationFromQuaternion(quaternion.copy(min.quaternion).slerp(max.quaternion, lerpValue));\n target.position.lerpVectors(min.position, max.position, lerpValue);\n };\n })(),\n\n lerpButtonTransform: (function () {\n var quaternion = new THREE.Quaternion();\n return function (buttonName, buttonValue) {\n var buttonMeshInfo = this.loadedMeshInfo.buttonMeshes[buttonName];\n if (!buttonMeshInfo) return;\n\n var min = buttonMeshInfo.unpressed;\n var max = buttonMeshInfo.pressed;\n var target = buttonMeshInfo.value;\n\n target.setRotationFromQuaternion(quaternion.copy(min.quaternion).slerp(max.quaternion, buttonValue));\n target.position.lerpVectors(min.position, max.position, buttonValue);\n };\n })(),\n\n modelReady: function () {\n this.el.emit('controllermodelready', {\n name: 'windows-motion-controls',\n model: this.data.model,\n rayOrigin: this.rayOrigin\n });\n },\n\n onButtonChanged: function (evt) {\n var buttonName = this.mapping.buttons[evt.detail.id];\n\n if (buttonName) {\n // Update the button mesh transform\n if (this.loadedMeshInfo && this.loadedMeshInfo.buttonMeshes) {\n this.lerpButtonTransform(buttonName, evt.detail.state.value);\n }\n\n // Only emit events for buttons that we know how to map from index to name\n this.el.emit(buttonName + 'changed', evt.detail.state);\n }\n },\n\n onAxisMoved: function (evt) {\n var numAxes = this.mapping.axisMeshNames.length;\n\n // Only attempt to update meshes if we have valid data.\n if (this.loadedMeshInfo && this.loadedMeshInfo.axisMeshes) {\n for (var axis = 0; axis < numAxes; axis++) {\n // Update the button mesh transform\n this.lerpAxisTransform(axis, evt.detail.axis[axis] || 0.0);\n }\n }\n\n emitIfAxesChanged(this, this.mapping.axes, evt);\n },\n\n setModelVisibility: function (visible) {\n var model = this.el.getObject3D('mesh');\n visible = visible !== undefined ? visible : this.modelVisible;\n this.modelVisible = visible;\n if (!model) { return; }\n model.visible = visible;\n }\n});\n","module.exports = {\n AFRAME_INJECTED: 'aframe-injected',\n DEFAULT_CAMERA_HEIGHT: 1.6,\n DEFAULT_HANDEDNESS: 'right',\n keyboardevent: require('./keyboardevent')\n};\n","module.exports = {\n // Tiny KeyboardEvent.code polyfill.\n KEYCODE_TO_CODE: {\n '38': 'ArrowUp',\n '37': 'ArrowLeft',\n '40': 'ArrowDown',\n '39': 'ArrowRight',\n '87': 'KeyW',\n '65': 'KeyA',\n '83': 'KeyS',\n '68': 'KeyD'\n }\n};\n","/* global customElements */\nvar ANode = require('./a-node').ANode;\nvar bind = require('../utils/bind');\nvar debug = require('../utils/debug');\nvar THREE = require('../lib/three');\n\nvar fileLoader = new THREE.FileLoader();\nvar warn = debug('core:a-assets:warn');\n\n/**\n * Asset management system. Handles blocking on asset loading.\n */\nclass AAssets extends ANode {\n constructor () {\n super();\n this.isAssets = true;\n this.fileLoader = fileLoader;\n this.timeout = null;\n }\n\n connectedCallback () {\n // Defer if DOM is not ready.\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', this.connectedCallback.bind(this));\n return;\n }\n\n this.doConnectedCallback();\n }\n\n doConnectedCallback () {\n var self = this;\n var i;\n var loaded = [];\n var mediaEl;\n var mediaEls;\n var imgEl;\n var imgEls;\n var timeout;\n\n super.connectedCallback();\n\n if (!this.parentNode.isScene) {\n throw new Error(' must be a child of a .');\n }\n\n // Wait for s.\n imgEls = this.querySelectorAll('img');\n for (i = 0; i < imgEls.length; i++) {\n imgEl = fixUpMediaElement(imgEls[i]);\n loaded.push(new Promise(function (resolve, reject) {\n // Set in cache because we won't be needing to call three.js loader if we have.\n // a loaded media element.\n THREE.Cache.add(imgEls[i].getAttribute('src'), imgEl);\n imgEl.onload = resolve;\n imgEl.onerror = reject;\n }));\n }\n\n // Wait for