This commit is contained in:
Rafael Tavares Juliani committed 2025-09-04 15:42:21 -03:00
commit 1b93182afd
193 files changed
+23098

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
{
"Generator": [
"Quarto",
"This file provides type information for Lua completion and diagnostics.",
"Quarto will automatically update this file to reflect the current path",
"of your Quarto installation, and the file will also be added to .gitignore",
"since it points to the absolute path of Quarto on the local system.",
"Remove the 'Generator' key to manage this file's contents manually."
],
"Lua.runtime.version": "Lua 5.3",
"Lua.workspace.checkThirdParty": false,
"Lua.workspace.library": [
"/opt/quarto/share/lua-types"
],
"Lua.runtime.plugin": "/opt/quarto/share/lua-plugin/plugin.lua",
"Lua.completion.showWord": "Disable",
"Lua.completion.keywordSnippet": "Both",
"Lua.diagnostics.disable": [
"lowercase-global",
"trailing-space"
]
}
@@ -0,0 +1,11 @@
{
"hash": "b1e458e76aa5c045dc9d9aa01cc46b5f",
"result": {
"markdown": "# Capítulo 1​: Funções trigonométricas circulares​ {.unnumbered}\n\n\n```{=html}\n\n<div id=\"conteudo-capitulo\">\n\n\n \n <p class=\" unidade\" id=\"1P1\" title=\"1P1\">\n Neste capítulo, vamos revisar os aspectos da trigonometria circular. Definiremos as funções trigonométricas circulares e estudaremos suas principais propriedades e identidades. Evidenciaremos alguns limites, os gráficos para cada uma dessas funções e deduziremos as derivadas para elas. Finalmente, definiremos as funções trigonométricas inversas e estudaremos também alguns limites, os gráficos e as derivadas das funções inversas. \n </p>\n\n \n```\n\n\n## 1.1 A trigonometria circular {#SECTION00510000000000000000}\n\n\n \n\n```{=html}\n\n <p class=\" unidade\" id=\"1P2\" title=\"1P2\">\n A trigonometria surgiu do estudo das medidas de um triângulo retângulo. A palavra trigonometria significa, em grego, medidas dos lados do triângulo. Dado um triângulo retângulo, marca-se um dos ângulos não reto e as relações trigonométricas atribuídas a esse ângulo são as seis razões possíveis envolvendo as medidas da hipotenusa, do cateto oposto (ao ângulo marcado) e do cateto adjacente (ao ângulo marcado). \n </p>\n <a id=\"135\"></a>\n <div id=\"1I1\" title=\"1I1\" class=\"interativo unidade\">\n <div class=\"controles_interatividade\">\n \n <a href=\"/interativo/fig1-1.html\" target=\"_blank\" class=\"btn_abrirInterativo\">Ver maior</a><span class=\"barra\"> | </span><span class=\"referencia\" onclick=\"alert('A referência é: 1I1.')\">Referência</span>\n \n </div>\n \n <iframe id=\"fig1-1\" class=\"graficos\" loading=\"lazy\" src=\"/interativo/fig1-1.html\"></iframe>\n </div>\n```\n\n::: {.raw_html}\n \n <p class=\" unidade\" id=\"1P3\" title=\"1P3\">\n Observando o triângulo <span class=\"MATH\"><img style=\"height: 1.65ex; vertical-align: -0.10ex; \" src=\"img/img12.svg\" alt=\"$OPA$\" loading=\"lazy\"></span> da figura anterior e sendo <span class=\"MATH\"><img style=\"height: 1.16ex; vertical-align: -0.10ex; \" src=\"img/img13.svg\" alt=\"$\\alpha$\" loading=\"lazy\"></span> o ângulo <span class=\"MATH\"><img style=\"height: 2.26ex; vertical-align: -0.10ex; \" src=\"img/img14.svg\" alt=\"$P\\hat{O}A$\" loading=\"lazy\"></span>, temos as seis relações trigonométricas associadas a este ângulo <span class=\"MATH\"><img style=\"height: 1.16ex; vertical-align: -0.10ex; \" src=\"img/img13.svg\" alt=\"$\\alpha$\" loading=\"lazy\"></span>, dadas por\n </p>\n\n\n\n <div class=\"mathdisplay unidade\" id=\"1P4\" title=\"1P4\"><table class=\"equation\">\n <tbody><tr>\n <td style=\"text-align:right;\"><span class=\"MATH\"><img style=\"height: 1.19ex; vertical-align: -0.13ex; \" src=\"img/img15.svg\" alt=\"$\\displaystyle {\\mathrm {sen}}\\alpha$\" loading=\"lazy\"></span></td>\n <td style=\"text-align:left;\"><span class=\"MATH\"><img style=\"height: 4.94ex; vertical-align: -1.98ex; \" src=\"img/img16.svg\" alt=\"$\\displaystyle = \\frac{\\text{cateto oposto}}{\\text{hipotenusa}} = \\frac{PA}{OA},$\" loading=\"lazy\"></span></td>\n <td class=\"eqno\" style=\"text-align:right\">\n &nbsp;&nbsp;&nbsp;</td></tr>\n <tr>\n <td style=\"text-align:right;\"><span class=\"MATH\"><img style=\"height: 1.19ex; vertical-align: -0.13ex; \" src=\"img/img17.svg\" alt=\"$\\displaystyle \\cos \\alpha$\" loading=\"lazy\"></span></td>\n <td style=\"text-align:left;\"><span class=\"MATH\"><img style=\"height: 4.95ex; vertical-align: -1.98ex; \" src=\"img/img18.svg\" alt=\"$\\displaystyle = \\frac{\\text{cateto adjacente}}{\\text{hipotenusa}} = \\frac{OP}{OA},$\" loading=\"lazy\"></span></td>\n <td class=\"eqno\" style=\"text-align:right\">\n &nbsp;&nbsp;&nbsp;</td></tr>\n <tr>\n <td style=\"text-align:right;\"><span class=\"MATH\"><img style=\"height: 1.66ex; vertical-align: -0.58ex; \" src=\"img/img19.svg\" alt=\"$\\displaystyle {\\mathrm {tg}}\\alpha$\" loading=\"lazy\"></span></td>\n <td style=\"text-align:left;\"><span class=\"MATH\"><img style=\"height: 4.99ex; vertical-align: -2.02ex; \" src=\"img/img20.svg\" alt=\"$\\displaystyle = \\frac{\\text{cateto oposto}}{\\text{cateto adjacente}} = \\frac{PA}{OP},$\" loading=\"lazy\"></span></td>\n <td class=\"eqno\" style=\"text-align:right\">\n &nbsp;&nbsp;&nbsp;</td></tr>\n <tr>\n <td style=\"text-align:right;\"><span class=\"MATH\"><img style=\"height: 1.66ex; vertical-align: -0.58ex; \" src=\"img/img21.svg\" alt=\"$\\displaystyle {\\mathrm {ctg}}\\alpha$\" loading=\"lazy\"></span></td>\n Line truncated
"supporting": [
"funcoes-trigonometricas-circulares_files"
],
"filters": [],
"includes": {}
}
}
+7
View File
@@ -0,0 +1,7 @@
/*!
* clipboard.js v2.0.11
* https://clipboardjs.com/
*
* Licensed MIT © Zeno Rocha
*/
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body},n="";return"string"==typeof t?n=o(t,e):t instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(null==t?void 0:t.type)?n=o(t.value,e):(n=r()(t),c("copy")),n};function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var s=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=t.action,n=void 0===e?"copy":e,o=t.container,e=t.target,t=t.text;if("copy"!==n&&"cut"!==n)throw new Error('Invalid "action" value, use either "copy" or "cut"');if(void 0!==e){if(!e||"object"!==l(e)||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===n&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===n&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes')}return t?f(t,{container:o}):e?"cut"===n?a(e):f(e,{container:o}):void 0};function p(t){return(p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function d(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function y(t,e){return(y=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function h(n){var o=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e=v(n);return t=o?(t=v(this).constructor,Reflect.construct(e,arguments,t)):e.apply(this,arguments),e=this,!(t=t)||"object"!==p(t)&&"function"!=typeof t?function(t){if(void 0!==t)return t;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}}function v(t){return(v=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function m(t,e){t="data-clipboard-".concat(t);if(e.hasAttribute(t))return e.getAttribute(t)}var b=function(){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&y(t,e)}(r,i());var t,e,n,o=h(r);function r(t,e){var n;return function(t){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this),(n=o.call(this)).resolveOptions(e),n.listenClick(t),n}return t=r,n=[{key:"copy",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{container:document.body};return f(t,e)}},{key:"cut",value:function(t){return a(t)}},{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof t?[t]:t,e=!!document.queryCommandSupported;return t.forEach(function(t){e=e&&!!document.queryCommandSupported(t)}),e}}],(e=[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===p(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=u()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget,n=this.action(e)||"copy",t=s({action:n,container:thLine truncated
@@ -0,0 +1,4 @@
div.cookie-consent-footer {
font-size: 0.8em;
text-decoration: none;
}
@@ -0,0 +1 @@
var cookieconsent=function(e){var t={};function i(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)i.d(n,o,function(t){return e[t]}.bind(null,o));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=51)}([function(e,t,i){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var i=function(e,t){var i=e[1]||"",n=e[3];if(!n)return i;if(t&&"function"==typeof btoa){var o=(r=n,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */"),a=n.sources.map((function(e){return"/*# sourceURL="+n.sourceRoot+e+" */"}));return[i].concat(a).concat([o]).join("\n")}var r;return[i].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+i+"}":i})).join("")},t.i=function(e,i){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},o=0;o<this.length;o++){var a=this[o][0];null!=a&&(n[a]=!0)}for(o=0;o<e.length;o++){var r=e[o];null!=r[0]&&n[r[0]]||(i&&!r[2]?r[2]=i:i&&(r[2]="("+r[2]+") and ("+i+")"),t.push(r))}},t}},function(e,t,i){var n,o,a={},r=(n=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===o&&(o=n.apply(this,arguments)),o}),s=function(e,t){return t?t.querySelector(e):document.querySelector(e)},c=function(e){var t={};return function(e,i){if("function"==typeof e)return e();if(void 0===t[e]){var n=s.call(this,e,i);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}}(),l=null,p=0,d=[],u=i(38);function m(e,t){for(var i=0;i<e.length;i++){var n=e[i],o=a[n.id];if(o){o.refs++;for(var r=0;r<o.parts.length;r++)o.parts[r](n.parts[r]);for(;r<n.parts.length;r++)o.parts.push(h(n.parts[r],t))}else{var s=[];for(r=0;r<n.parts.length;r++)s.push(h(n.parts[r],t));a[n.id]={id:n.id,refs:1,parts:s}}}}function _(e,t){for(var i=[],n={},o=0;o<e.length;o++){var a=e[o],r=t.base?a[0]+t.base:a[0],s={css:a[1],media:a[2],sourceMap:a[3]};n[r]?n[r].parts.push(s):i.push(n[r]={id:r,parts:[s]})}return i}function k(e,t){var i=c(e.insertInto);if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var n=d[d.length-1];if("top"===e.insertAt)n?n.nextSibling?i.insertBefore(t,n.nextSibling):i.appendChild(t):i.insertBefore(t,i.firstChild),d.push(t);else if("bottom"===e.insertAt)i.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var o=c(e.insertAt.before,i);i.insertBefore(t,o)}}function v(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=d.indexOf(e);t>=0&&d.splice(t,1)}function f(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var n=function(){0;return i.nc}();n&&(e.attrs.nonce=n)}return b(t,e.attrs),k(e,t),t}function b(e,t){Object.keys(t).forEach((function(i){e.setAttribute(i,t[i])}))}function h(e,t){var i,n,o,a;if(t.transform&&e.css){if(!(a="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=a}if(t.singleton){var r=p++;i=l||(l=f(t)),n=x.bind(null,i,r,!1),o=x.bind(null,i,r,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(i=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",b(t,e.attrs),k(e,t),t}(t),n=z.bind(null,i,t),o=function(){v(i),i.href&&URL.revokeObjectURL(i.href)}):(i=f(t),n=w.bind(null,i),o=function(){v(i)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else o()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=r()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var i=_(e,t);retLine truncated
+1
View File
@@ -0,0 +1 @@
{"a-volta-das-aulas-presenciais.qmd":[],"a_volta_das_aulas_presenciais.qmd":[],"agradecimentos.qmd":[],"aplicacoes.qmd":[],"apresentacao.qmd":[],"aula-on-line-como-eu-nao-gosto-de-aula-on-line.qmd":[],"aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd":[],"autores.qmd":[],"funcoes-trigonometricas-circulares.qmd":[],"funcoes-trigonometricas-hiperbolicas.qmd":[],"geracao-alpha-versus-geracao-millennials.qmd":[],"geracao_alpha_versus_geracao_millennials.qmd":[],"igualdades-exponenciais-e-logaritmicas.qmd":[],"index.qmd":[],"indice-remissivo.qmd":[],"introducao.qmd":[],"referencias.qmd":[],"rolima.qmd":[],"teste.qmd":[]}
@@ -0,0 +1 @@
{"title":"Capítulo 3: a volta das aulas presenciais","markdown":{"headingText":"Capítulo 3: a volta das aulas presenciais","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n```{=html}\n\n<script src=\"scripts/pintarTela.js\"></script>\n\n<div id=\"conteudo-capitulo\">\n\n <h1 class=\"cap_titulo\">Capítulo 2</h1>\n\n <h1 id=\"titulo\">A volta das aulas presenciais</h1>\n\n\n <p class=\"unidade\" id=\"3P1\" title=\"3P1\">Amanhã voltam as minhas aulas presenciais, confesso que estou muito animado para deixar o meu quarto/sala de aula e retornar à escola, rever meus amigos e os meus professores. Por mais que eu já conversasse com o Heitor pelo celular, o Luís não mexe muito no celular, então não tive muito contato com ele.</p><p class=\"unidade\" id=\"3P2\" title=\"3P2\">Com a gincana que eu, a Júlia e nossos pais fizemos, eu percebi que eu me diverti bastante sem o celular, então agora que eu fui entender um pouco o Luís... Não precisamos do celular para nos divertirmos (se bem que ele exagera um pouco).</p><p class=\"unidade\" id=\"3P3\" title=\"3P3\">Ontem o Heitor me mandou uma mensagem para eu ir na casa dele conversar, jogar e brincar. Eu aceitei e às quatro horas da tarde, eu estava lá. Nós jogamos e brincamos muito, fiquei feliz sabendo que ele também começou a soltar o celular um pouco, então resolvemos fazer um carrinho de rolimã. </p><p class=\"unidade\" id=\"3P4\" title=\"3P4\">Como eu já tinha experiência no assunto, ensinei ele a fazer o carrinho. Mas, fiz errado novamente... E como descobri isso? Da pior maneira possível, quando fomos andar, o carrinho se despedaçou e nos ralamos inteiros. Aprendi outras lições: eu não tinha tanta experiência assim em carrinhos de rolimã e tomar banho quando se está ralado dói muito.</p><p class=\"unidade\" id=\"3P5\" title=\"3P5\">Eu já ia me esquecendo, lembra que eu disse que minhas aulas voltarão? Então, vejo que tem um lado bom e um ruim. O lado bom é que vamos finalmente voltar à escola e aprender de verdade e o lado não tão bom assim, é que eu terei menos tempo para jogar o “Meia no espaço”. Diz a minha mãe que isso é ótimo para eu viver o mundo fora da tela do celular e do computador. </p><p class=\"unidade\" id=\"3P6\" title=\"3P6\">— Você poderá brincar com seus amigos e aprender muitas coisas novas. Fazer os experimentos de Ciências que você tanto gosta presencialmente. A escola vai te fazer muito bem. Ela sempre faz.</p><p class=\"unidade\" id=\"3P7\" title=\"3P7\">Parei para pensar e minha mãe estava certa (as mães sempre estão). Eu acho que depois de ter tido um ano inteiro de aula em casa acabei esquecendo da importância da escola. Além do mais, meu celular precisa descansar um pouco mesmo. E terá aula amanhã, ou seja, eu vou testar isso.</p><p style=\"text-align: center;\" class=\"unidade\" id=\"3P8\" title=\"3P8\"><em>___Depois da aula___</em></p><p class=\"unidade\" id=\"3P9\" title=\"3P9\">Na aula, ou melhor, no parque, nós brincamos de barata no ar, os únicos que não foram pegos foi o Luís e eu. No final do parque o Heitor falou:</p><p class=\"unidade\" id=\"3P10\" title=\"3P10\">— Nossa, como você é bom nessa brincadeira hein!?</p><p class=\"unidade\" id=\"3P11\" title=\"3P11\">E eu respondi:</p><p class=\"unidade\" id=\"3P12\" title=\"3P12\">— Obrigado, eu gostei tanto que nem senti falta do meu celular. </p><p class=\"unidade\" id=\"3P13\" title=\"3P13\">E o Heitor surpreso respondeu:</p><p class=\"unidade\" id=\"3P14\" title=\"3P14\">– O QUE? Aahh já entendi, é uma piada, né?</p><p class=\"unidade\" id=\"3P15\" title=\"3P15\">E eu orgulhoso falei: </p><p class=\"unidade\" id=\"3P16\" title=\"3P16\">— Não, não é uma piada! (será que eu exagerei?).</p><p class=\"unidade\" id=\"3P17\" title=\"3P17\">O meu pai ao saber disso ficou feliz, afinal ele não gosta que eu jogue o dia inteiro e agora ele não para de falar:</p><p class=\"unidade\" id=\"3P18\" title=\"3P18\">– Viu só, fazer aquela gincana foi muito bom para você.</p><p class=\"unidade\" id=\"3P19\" title=\"3P19\">– Eu sei pai, é a quarta vez que você fala isso só hoje!</p><p class=\"unidade\" id=\"3P20\" title=\"3P20\"> Eu estava no meu quarto jogando “Meia no espaço”, mas eu estava meio entediado, então eu ouvi na rua duas crianças brincando. Como ainda não estava tarde, pedi<sup><a href=\"#footnote-2\" id=\"footnote-ref-2\">[1]</a></sup> para minha mãe se eu podia ir também:</p><p class=\"unidade\" id=\"3P21\" title=\"3P21\">– Oi mãe, você deixa eu ir brincar lá fora?</p><p class=\"unidade\" id=\"3P22\" title=\"3P22\">– Claro, meu amor, só toma cuidado com os carros.</p><p class=\"unidade\" id=\"3P23\" title=\"3P23\">Quando eu sai de casa, logo vi as crianças da rua brincando e logo perguntei se eu podia brincar com eles. </p><p class=\"unidade\" id=\"3P24\" title=\"3P24\">— Oi, meu nome é Jean... Posso briLine truncated
+1
View File
@@ -0,0 +1 @@
{"title":"Apresentação","markdown":{"headingText":"Apresentação","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n\n```{=html}\n\n<script src=\"scripts/pintarTela.js\"></script>\n\n<div id=\"conteudo-capitulo\">\n\n```\n\n \n::: {.grid .grid_titulo}\n\n::: {.g-col-3}\n\n::: {.fig_titulo}\n\n![](img/phone-2655101_1280_pixabay_iamwahid.png \"Desenho dois braços e um celular na mão esquerda. A mão direita faz como se estivesse passando conteúdo no celular.\") \n\n:::\n\n:::\n \n::: {.g-col-9}\n\n# Apresentação {.unnumbered}\n\n:::\n \n::: \n\n\n```{=html}\n\n<p class=\"unidade\" id=\"BP1\" title=\"BP1\">\tLembro-me de quando ganhei o meu primeiro celular, eu tinha 13 anos e ele não tinha acesso à internet. As músicas e fotos eram enviadas de um aparelho ao outro por meio de <em>bluetooth </em>(nome inglês dado a uma tecnologia de comunicação sem fio). Hoje, nem todas as crianças conhecem essa tecnologia.</p>\n<p class=\"unidade\" id=\"BP2\" title=\"BP2\">Há dez anos em sala de aula, percebo como as crianças estão, cada vez mais cedo, tendo acesso a esse e outros tipos de aparelhos eletrônicos, preferindo, muitas vezes, “brincarem” com e no celular do que com atividades ao ar livre e com pessoas ao seu entorno.</p>\n<p class=\"unidade\" id=\"BP3\" title=\"BP3\">Assim, este livro surge, a partir de discussões em sala de aula sobre o uso do celular, jogos eletrônicos e brincadeiras. As crianças (autoras e autores) desenvolveram a história a partir de estudos relacionados ao mesmo. Portanto, “qualquer semelhança com a realidade (não) é mera coincidência”.</p>\n<p class=\"unidade\" id=\"BP4\" title=\"BP4\">Possivelmente você se identificará com algum personagem da história, mas, muito além disso, esperamos que você aprecie a leitura, se divirta com as histórias de Jean (uma criança fictícia) e pratique alguma brincadeira com sua família. </p>\n<canvas class=\"unidade\" id=\"BP5\" width=\"230\" height=\"400\"><img srr=\"img/jean-online.png\" alt=\"Desenho a mão do menino Jean fazendo o sinal de valeu com o polegar da mão esquerda. Aparece escrito é duas vezes, um é de cada lado do rosto, mas não em cima do desenho do Jean.\" /></canvas>\n<p class=\"unidade\" id=\"BP6\" title=\"BP6\">Você também pode personalizar o seu livro, deixando sua opinião e colorindo os desenhos.</p>\n\n<p class=\"unidade legenda\" id=\"BP7\" title=\"BP7\" style=\"text-indent: 0px; font-size: 0.8em;\"><span style=\"font-weight: bold; font-variant: small-caps;\">Ilustrações </span>(desenhadas a mão): <br />\n\n<a href=\"http://livro.online/autor/demitry-santos\" targe=\"blank\">Demitry Wallace dos Santos</a></p>\n\n\n<p id=\"BP8\" title=\"BP8\" class=\"unidade\" style=\"text-align: right; margin-top: 50px;\"><a href=\"http://livro.online/autor/diullye-miola/\" targe=\"blank\"><img src=\"img/rabisco_Diullye.png\" alt=\"Escrita Professora Mestra Diullye Miola\"></a></p>\n\n\n\n</div>\n\n<script>\n\n var js_el_um = document.getElementById('BP5');\n var img_url =\"img/jean-online.png\";\n var programa_dois_criado = new pintarTela(js_el_um, img_url);\n\n</script>\n\n```","srcMarkdownNoYaml":""},"formats":{"moan-livro-html":{"identifier":{"display-name":"HTML","target-format":"moan-livro-html","base-format":"html","extension-name":"moan-livro"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[],"notebook-links":true,"shortcodes":[],"format-links":false},"pandoc":{"standalone":true,"wrap":"none","default-image-extension":"png","to":"html","filters":[],"include-after-body":{"text":"<script src=\"https://leitorweb.livro.online/leitor-web.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://leitorweb.livro.online/css/configuracoesleitor.min.css\" type=\"text/css\">\n"},"number-sections":true,"output-file":"apresentacao.html"},"language":{"toc-tLine truncated
@@ -0,0 +1 @@
{"title":"Capítulo 2: aula on-line, como eu não gosto de aula on-line","markdown":{"headingText":"Capítulo 2: aula on-line, como eu não gosto de aula on-line","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n\n```{=html}\n\n<script src=\"scripts/pintarTela.js\"></script>\n\n<div id=\"conteudo-capitulo\">\n\n <h1 class=\"cap_titulo\">Capítulo 2</h1>\n\n <h1 id=\"titulo\">Aula on-line: <br /> como eu não gosto de aula on-line</h1>\n\n\n <p class=\"unidade\" id=\"2P1\" title=\"2P1\">Minha mãe diz que eu preciso estabelecer horários para jogar para não esquecer que eu sou um estudante do 5º ano. Ainda mais que a escola está literalmente dentro da minha casa. \n<p class=\"unidade\" id=\"2P2\" title=\"2P2\">Ano passado (2020), minhas aulas aconteceram on-line por causa da pandemia. Tivemos aula por videoconferência, então, o meu quarto era a minha sala de aula. Sinceramente, apesar de gostar de me comunicar pela <em>internet</em>, não me dei bem com esse tipo de aula, mas respeito quem gostou. \n<p class=\"unidade\" id=\"2P3\" title=\"2P3\">Eu não gostei, porque a professora me pegou comendo durante a aula. \n<p class=\"unidade\" id=\"2P4\" title=\"2P4\">– Estou em casa, mas não posso comer? \n<p class=\"unidade\" id=\"2P5\" title=\"2P5\">– Não Jean, precisamos respeitar os mesmos horários da escola. \n<p class=\"unidade\" id=\"2P6\" title=\"2P6\">– Eu acho isso um desrespeito com minha fome! Falei comigo nos meus pensamentos. \n<p class=\"unidade\" id=\"2P7\" title=\"2P7\">Como você já sabe, eu, Jean, não gosto de aula on-line. Gosto mais de ir para a escola, estudar lá. Não tenho muita concentração em casa, porque é espaço em que eu fico conectado com meus amigos e para jogar. Além disso, é muito melhor estar com a professora por perto. \n<p class=\"unidade\" id=\"2P8\" title=\"2P8\">\tE que graça tem ficar em casa se não posso ficar “beliscando” alguma coisa? Ou ficar deitado na minha cama enquanto escuto a aula? \n<p class=\"unidade\" id=\"2P9\" title=\"2P9\">\tEu assisto as aulas pelo meu computador, mas ainda tenho meu celular e como não resisto aos meus jogos, ele fica conectado também. Mas, mesmo com a distância física da escola eu fiz novos amigos: o Luís e o Heitor. \n<p class=\"unidade\" id=\"2P10\" title=\"2P10\">\tO Luís é muito inteligente e gosta de brincar de amarelinha. Sempre pede para a professora de Educação Física passar esses tipos de brincadeiras para fazermos em casa. Ele diz que é “anti-tecnologia”, acredita? Eu não aguentaria nem uma hora sem tecnologia. \n<p class=\"unidade\" id=\"2P11\" title=\"2P11\">\tNão sei como nossa amizade começou, acho que foi por causa dele sempre querer ajudar os outros. Teve um dia que ele se ofereceu para ajudar o Heitor, que não estava indo muito bem nas aulas de matemática. Ele mandou um áudio no grupo da nossa sala: \n<p class=\"unidade\" id=\"2P12\" title=\"2P12\">\t– Oi Heitor, eu sou o Luís, você quer ajuda com a tarefa de casa? Percebi que você não estava entendendo. \n<p class=\"unidade\" id=\"2P13\" title=\"2P13\">\tFiquei bem pensativo e ofereci ajuda também, já que eu estudava na escola desde bebê e conhecia a professora Lucélia. \n<p class=\"unidade\" id=\"2P14\" title=\"2P14\">\tDurante as nossas conversas para estudarmos para matemática, o Heitor disse que gostava muito de jogos on-line, então, além das tarefas, começamos a jogar juntos também.\t \n<p class=\"unidade\" id=\"2P15\" title=\"2P15\">\tAlém disso, nós três, temos uma coisa em comum: Ninguém gosta de aula on-line. \n<p class=\"unidade\" id=\"2P16\" title=\"2P16\">\tEu contarei a você uma coisa que aconteceu comigo durante a aula. Eu desliguei a câmera (pelo menos eu achei que tivesse desligado) e, de repente, a professora Amélia, de inglês, falou: \n<p class=\"unidade\" id=\"2P17\" title=\"2P17\">\t– <em>Didn’t you lunch today, Jean?</em> (Você não almoçou hoje, Jean?) \n<p class=\"unidade\" id=\"2P18\" title=\"2P18\">\tEu fiquei com muita vergonha, todos riram de mim. Mas eu superei. \n<p class=\"unidade\" id=\"2P19\" title=\"2P19\">\tTeve um outro dia que eu estava na aula, mas não conseguia prestar atenção no que a professora falava, olhava as notificações no meu celular e nada de conseguir entender o conteúdo da aula. E bem nesse dia a professora pediu para eu explicar o exercício: \n<p class=\"unidade\" id=\"2P20\" title=\"2P20\">\t– Jean, explique o que é para fazer na atividade 15, por favor. \n<p class=\"unidade\" id=\"2P21\" title=\"2P21\">\t– Na quinze? Bem essa que eu não entendi, professora. \n<p class=\"unidade\" id=\"2P22\" title=\"2P22\">– Eu não acredito que você estava jogando de novo, senhor Jean! \n<p class=\"unidade\" id=\"2P23\" title=\"2P23\">A professora parecia bem brava, eu percebi que exagerei um pouco e acabei ficando de castigo. Aprendi a lição: não importa o ambiente, hora de eLine truncated
+1
View File
@@ -0,0 +1 @@
{"title":"Sobre os autores","markdown":{"headingText":"Sobre os autores","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n\n```{=html}\n\n<div id=\"conteudo-capitulo\">\n\n```\n\n \n::: {.grid}\n\n::: {.g-col-3}\n\n::: {.fig_titulo}\n\n![](img/bat-25764_1280_pixabay_Clker-Free-Vector-Images.png \"Desenho de duas raquetes (vermelha e azul) e uma bola de ping-pong\") \n\n:::\n\n:::\n \n::: {.g-col-9}\n\n# Sobre os Autores {.unnumbered}\n\n:::\n \n::: \n\n::: {.grid .destaque}\n\n::: {.g-col-2}\n\n![](img/teacher-309533_1280_pixabay_Clker-Free-Vector-ImagesBranco.png \"Desenho de uma única cor (branca) de um professor\") \n\n:::\n \n::: {.g-col-10}\n\n```{=html}\n<p id=\"AP1\" title=\"AP1\" class=\"unidade\"><span class=\"versalete\">Diullye Miola,</span> nasci em 06 de julho de 1995. Sou professora e apaixonada por crianças. Sobre minha infância, aproveitei muito e, embora eu não tivesse tanto contato com jogos eletrônicos, aprendo hoje com meus alunos.</p>\n```\n\n:::\n \n::: \n\n```{=html}\n\n<p id=\"AP2\" title=\"AP2\" class=\"unidade\"><span class=\"versalete\">Demitry Wallace dos Santos,</span> nasci em 17 de novembro de 2009. Sou uma criança que adora desenhar e criar desenhos. Além disso, gosto muito de jogos eletrônicos de aventura e exploração.</p><p id=\"AP3\" title=\"AP3\" class=\"unidade\"><span class=\"versalete\">Guilherme Bigilini,</span> nasci em 31 de maio de 2010. Sou uma criança muito feliz, sempre sorridente e minha brincadeira favorita é <em>ping pong</em> (tênis de mesa), sempre brinco no intervalo das aulas <em>on-line</em>. </p><p id=\"AP4\" title=\"AP4\" class=\"unidade\"><span class=\"versalete\">Gustavo Cosmo Rodrigues,</span> nasci em 24 de julho de 2011. Sou uma criança com muitas ideias e estudioso. Gosto de pesquisar sobre países e desenhar suas bandeiras. Em relação aos jogos, gosto mais dos eletrônicos.</p><p id=\"AP5\" title=\"AP5\" class=\"unidade\"><span class=\"versalete\">Helena Sgarbi de Oliveira,</span> nasci em 19 de agosto de 2011. Sou uma criança feliz e divertida. Minha disciplina favorita é ciências e quando estou com meus amigos gosto de jogar futebol.</p><p id=\"AP6\" title=\"AP6\" class=\"unidade\"><span class=\"versalete\">Isabella de Morais Santos,</span> nasci em 18 de abril de 2011. Sou uma criança animada e engraçada. Gostei de participar da elaboração do livro e me identifiquei com os jogos eletrônicos, que gosto bastante.</p><p id=\"AP7\" title=\"AP7\" class=\"unidade\"><span class=\"versalete\">João Pedro Miranda Fernandes,</span> nasci em 27 de agosto de 2011. Sou uma criança tagarela e sou feliz assim. Quando estou com meus amigos gosto de brincar de pega-pega e, em casa, gosto de jogos eletrônicos. </p><p id=\"AP8\" title=\"AP8\" class=\"unidade\"><span class=\"versalete\">Lucas Pietruszynski de Sousa,</span> nasci em 16 de dezembro de 2010. Sou uma criança que gosta de brincar e de praticar esportes, sendo que futebol é o meu favorito. Também gosto de jogos eletrônicos.</p><p id=\"AP9\" title=\"AP9\" class=\"unidade\"><span class=\"versalete\">Mariana Martins Meyer,</span> nasci em 20 de setembro de 2011. Sou uma criança criativa e isso me ajudou na hora de escrever a história. Adorei essa experiência. Gosto de jogar futebol com meus amigos e, também, gosto de jogos eletrônicos.</p><p id=\"AP10\" title=\"AP10\" class=\"unidade\"><span class=\"versalete\">Mateus Possa Tonini,</span> nasci em 15 de agosto de 2011. Sou uma criança criativa e gosto muito de jogos eletrônicos e de passar tempo com meus amigos brincando. Tenho sonho de conhecer a neve.</p><p id=\"AP11\" title=\"AP11\" class=\"unidade\"><span class=\"versalete\">Murilo Pompeu Brandalize Nascimento,</span> nasci em 19 de maio de 2011. Sou uma criança apaixonada por esportes e, no recreio, sempre peço para a professora se podemos jogar futebol.</p>\n\n\n\n\n</div>\n\n```","srcMarkdownNoYaml":""},"formats":{"moan-livro-html":{"identifier":{"display-name":"HTML","target-format":"moan-livro-html","base-format":"html","extension-name":"moan-livro"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"laLine truncated
@@ -0,0 +1 @@
{"title":"Capítulo 1: geração alpha versus geração millennials","markdown":{"headingText":"Capítulo 1: geração alpha versus geração millennials","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n\n```{=html}\n\n<script src=\"scripts/pintarTela.js\"></script>\n\n<div id=\"conteudo-capitulo\">\n\n <h1 class=\"cap_titulo\">Capítulo 1</h1>\n\n <h1 id=\"titulo\">Geração alpha <br /> versus <br/> geração millennials</h1>\n\n <img id=\"silhueta\" src=\"img/silhouette-3148600_1280_pixabay_mohamed_hassan.png\" alt=\"Silhueta de uma mulher de costas no chão e pernas pro ar segurando uma criança com os joelhos e as mãos\">\n <p class=\"unidade\" id=\"1P1\" title=\"1P1\">\tOs meus pais são muito amigos dos pais da Júlia desde quando eram crianças. Então, nos finais de semana, sempre vamos um na casa do outro. A Júlia e eu temos a mesma idade, mas ela é dois meses mais velha que eu.</p> \n<p class=\"unidade\" id=\"1P2\" title=\"1P2\">\tNossas mães se conheceram quando crianças e ficaram muito amigas. De tão amigas, engravidaram quase na mesma época. A mãe da Júlia, a tia Letícia, descobriu primeiro o gênero do bebê. </p> \n\n<img id=\"ampulheta\" src=\"img/Ampulheta-de-Antonio-Gloria-sketchfab-user.png\" alt=\"Ampulheta\">\n\n<p style=\"text-align: center; margin: 50px 0;\" class=\"unidade\" id=\"1P3\" title=\"1P3\"><em>___Abril de 2010___</em></p> \n<p class=\"unidade\" id=\"1P4\" title=\"1P4\">– É uma menina! Ela se chamará Júlia.</p> \n<p class=\"unidade\" id=\"1P5\" title=\"1P5\">Disse a tia Letícia para minha mãe. </p> \n<p class=\"unidade\" id=\"1P6\" title=\"1P6\">– Sério? Que legal! Eu estou ansiosa para saber o gênero do meu bebê.</p> \n<p class=\"unidade\" id=\"1P7\" title=\"1P7\">Respondeu minha mãe.</p> \n<p class=\"unidade\" id=\"1P8\" title=\"1P8\">\t– Imagina se é uma menina também?! Elas serão melhores amigas, assim como nós.</p> \n<p class=\"unidade\" id=\"1P9\" title=\"1P9\">Dois meses depois, mamãe descobriu que eu era um menino. Correu contar para meu pai e depois para a tia Letícia.</p> \n<p class=\"unidade\" id=\"1P10\" title=\"1P10\">– Letícia, o bebê é menin...</p> \n<p class=\"unidade\" id=\"1P11\" title=\"1P11\">– Me conta, estou curiosa. </p> \n<p class=\"unidade\" id=\"1P12\" title=\"1P12\">– Será um lindo e admirável menino. </p> \n<p class=\"unidade\" id=\"1P13\" title=\"1P13\">Talvez minha mãe não tenha dito exatamente assim, mas como eu que estou contando essa história, foi como eu imaginei. Já que sou lindo mesmo!</p> \n<p class=\"unidade\" id=\"1P14\" title=\"1P14\">Então, tia Letícia logo disse:</p> \n<p class=\"unidade\" id=\"1P15\" title=\"1P15\">– Será incrível! Eles serão grandes amigos do mesmo jeito.</p> \n<p style=\"text-align: center; margin: 50px 0;\" class=\"unidade\" id=\"1P16\" title=\"1P16\"><em>___Fevereiro de 2021___</em></p> \n<p class=\"unidade\" id=\"1P17\" title=\"1P17\">A tia Letícia acertou em cheio. Eu e a Júlia somos muito amigos e jogamos on-line todos os dias. Nosso jogo favorito é “Meia no espaço”; é um jogo de ação e sobrevivência em vários mundos; completamos missões e podemos ajudar as pessoas do jogo construindo casas.</p> \n<p class=\"unidade\" id=\"1P18\" title=\"1P18\">Nossos pais não são muito a favor de jogarmos todos os dias. Acham que ficaremos “viciados” em tecnologia e não prestaremos atenção na vida de verdade. Final de semana passado, no almoço de domingo na minha casa, meu pai e o pai da Júlia estavam conversando sobre o que eles poderiam fazer para diminuir o tempo “das crianças na tela”.</p> \n<p class=\"unidade\" id=\"1P19\" title=\"1P19\">Meu pai começou a lembrar de sua época de criança, quando construía carrinhos de rolimã e saía pelas ruas do bairro com seus amigos. Foi quando ele disse:</p> \n<p class=\"unidade\" id=\"1P20\" title=\"1P20\">– Que tal propormos uma gincana para eles?</p> \n<p class=\"unidade\" id=\"1P21\" title=\"1P21\">– Ótima ideia!</p> \n<p class=\"unidade\" id=\"1P22\" title=\"1P22\">Então, meu pai chamou a gente até a sala para sugerir a ideia. </p> \n<p class=\"unidade\" id=\"1P23\" title=\"1P23\">– Filho, percebemos que vocês dois estão muito conectados com outros mundos, então tivemos uma ideia de fazer uma gincana para vocês terem contato com as brincadeiras antigas.</p> \n<p class=\"unidade\" id=\"1P24\" title=\"1P24\">O pai da Júlia complementou:</p> \n<p class=\"unidade\" id=\"1P25\" title=\"1P25\">– Vai ter carrinho de rolimã, queimada e pula corda. Será vocês dois contra nós dois. Filhos contra pais. </p> \n<p class=\"unidade\" id=\"1P26\" title=\"1P26\">A Júlia e eu conversamos e dissemos juntos:</p> \n<p class=\"unidade\" id=\"1P27\" title=\"1P27\">– Aceitamos se vocês jogarem um jogo on-line contra a gente.</p> \n<p class=\"unidade\" id=\"1P28\" title=\"1P28\">Nossos pais toparam. Fiquei bem convencido da Line truncated
+1
View File
@@ -0,0 +1 @@
{"title":"Metadados","markdown":{"headingText":"Metadados","headingAttr":{"id":"","classes":["unnumbered"],"keyvalue":[["style","text-align:left;"]]},"containsRefs":false,"markdown":"```{=html}\n\n<style>\n\nh1.title {display: block;}\n\n</style>\n\n```\n\n![]({{< meta book.navbar.logo-href >}})\n\n\nEste livro é uma publicação da [**{{< meta moan-dados.editora >}}**](https://editora.livro.online), {{< meta moan-dados.local >}}. Seu identificador é **ark:{{< meta moan-dados.ark >}}**. A versão física (impressa) deste livro possui **ark:{{< meta moan-dados.ark-versao-impressa >}}** e **isbn:{{< meta moan-dados.isbn-versao-impressa >}}**.\n\n![](img/logomoan.png){fig-alt=\"Logo da Editora Moan. Um triângulo representando uma câmera, um retângulo representando um livro, a escrita Editora Moan. Tudo branco em um fundo escuro. E o 'R' de marca registrada em azul\"}\n\nPara saber o que é e como usar um identificador ARK, acesse: [https://n2t.net/ark:68745/eMT4d/posts/ark_o_que_e](https://n2t.net/ark:68745/eMT4d/posts/ark_o_que_e).\n\nConfira, abaixo, os metadados completos deste livro, conforme registro ARK. Você pode escolher a versão JSON ou YAML.\n\n\n::: {.panel-tabset}\n\n## JSON\n\n```{=html}\n\n<object id=\"metadados_livro_json\" style=\"width: 100%; height:500px;\" data=\"https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json\" type=\"text/json\"></object>\n\n<p>Caso não esteja visualizando, acesse: <a href=\"https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json\">https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json</a></p>\n\n```\n\n\n## YAML\n\n```{=html}\n\n<object id=\"metadados_livro_yml\" style=\"width: 100%; height:500px;\" data=\"https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml\" type=\"text/yaml\"></object>\n\n<p>Caso não esteja visualizando, acesse: <a href=\"https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml\">https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml</a></p>\n\n```\n\n:::\n\n## Como Citar\n\nBibTeX:\n\n::: {#como-citar-bibtex}\n```\n@book{miola_d_2022,\n editor = {Miola, Diullye},\n title = {Jean: entre jogos e brincadeiras},\n year = {2022},\n publisher = {Editora Moan},\n address = {Foz do Iguaçu},\n url = {https://livro.online/ark:68745/eMdbp},\n urldate = {A data que vc acessou no padrão yyyy-mm-dd},\n}\n```\n:::\n\nPara atribuição, cite este trabalho como:\n\n::: {#como-citar-atribuicao}\nMiola, D. (org). **Jean: entre jogos e brincadeiras**. Foz do Iguaçu: Editora Moan, 2022. Disponível em: https://livro.online/ark:68745/eMdbp. Acesso em: dd mmm(3 primeiras letras). yyyy.\n:::\n\n## Versão Impressa\n\nCompre a versão impressa e ajude a manter este projeto com livros gratuitos *online*. Mantenha o conhecimento livre!\n\nAssim que o livro físico estiver disponível para venda, ele aparecerá aqui[^1].\n\n[^1]: Se algum link de compra estiver quebrado, por favor, nos avise no e-mail {{< var e-mail >}} ou pelo whatsapp {{< var whatsapp >}}.\n\n## Direitos Autorais\n\n{{< meta moan-dados.direitos-autorais >}}\n\n[{{< meta moan-dados.licenca >}}]({{< meta moan-dados.licenca-link >}})","srcMarkdownNoYaml":""},"formats":{"moan-livro-html":{"identifier":{"display-name":"HTML","target-format":"moan-livro-html","base-format":"html","extension-name":"moan-livro"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"default","fig-pos":null,"fig-env":null,"code-fold":"none","code-overflow":"scroll","code-link":false,"code-line-numbers":false,"code-tools":false,"tbl-colwidths":"auto","merge-includes":true,"inline-includes":false,"preserve-yaml":false,"latex-auto-mk":true,"latex-auto-install":true,"latex-clean":true,"latex-min-runs":1,"latex-max-runs":10,"latex-makeindex":"makeindex","latex-makeindex-opts":[],"latex-tlmgr-opts":[],"latex-input-paths":[],"latex-output-dir":null,"link-external-icon":false,"link-external-newwindow":false,"self-contained-math":false,"format-resources":[],"notebook-links":true,"shortcodes":[],"format-links":false},"pandoc":{"standalone":true,"wrap":"none","default-image-extension":"png","to":"html","filters":[],"include-after-body":{"text":"<script src=\"https://leitorweb.livro.online/leitor-web.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://leitorweb.livro.online/css/configuracoesleitor.min.css\" type=\"text/css\">\n"},"number-sections":true,"output-file":"index.html"},"language":{"toc-title-document":"Neste capítulo","toc-title-website":"Nesta página","related-formats-title":"Outros formaLine truncated
+1
View File
@@ -0,0 +1 @@
{"title":"Introdução","markdown":{"headingText":"Introdução","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n\n```{=html}\n\n<script src=\"scripts/pintarTela.js\"></script>\n\n<div id=\"conteudo-capitulo\">\n\n```\n\n \n::: {.grid .grid_titulo}\n\n::: {.g-col-3}\n\n::: {.fig_titulo}\n\n![](img/controller-1784571_295_pixabay_IO-Images.png \"Desenho de um controle genérico de video game\") \n\n:::\n\n:::\n \n::: {.g-col-9}\n\n# Introdução {.unnumbered}\n\n:::\n \n::: \n\n\n```{=html}\n\n<p class=\"unidade\" id=\"CP1\" title=\"CP1\">E se pudéssemos viver na época dos nossos pais, como seria? Você já deve ter ouvido de algum adulto “em minha época não era assim”. Meu pai sempre me diz isso. E o pai dele sempre dizia isso para ele. <a id=\"_Hlk87018112\"></a>E o pai do pai do meu pai também dizia isso. E... bom, acho que você entendeu, né!?</p><p class=\"unidade\" id=\"CP2\" title=\"CP2\">– Em minha época meus amigos e eu brincávamos na rua, descalços, entrávamos sujos em casa ao anoitecer. Você só fica nesse quarto. Se não está mexendo no celular está no computador.</p><p class=\"unidade\" id=\"CP3\" title=\"CP3\">Essa fala é uma das várias que meu pai utiliza, quando eu estou conectado com meus amigos. É tão difícil assim para ele entender que eu também estou brincando e interagindo? Só que de maneira diferente.</p><p class=\"unidade\" id=\"CP4\" title=\"CP4\">Sem contar que, quando o meu pai tinha a minha idade, não tinha os jogos nos celulares e computadores como tem hoje. Acho que por isso que é tão difícil dele aceitar o meu tempo com os jogos. Além disso, meu pai pertence a geração chamada de <em>millennials, </em>pois tem 39 anos. Os nascidos nessa geração viram a internet se desenvolver e evoluir, mas isso não quer dizer que meu pai é a favor dos jogos eletrônicos, pelo contrário. Ele gosta de pesquisar o resultado do jogo do nosso time, de conversar com seus amigos em redes sociais, mas falou em jogo ele é contra.</p><p class=\"unidade\" id=\"CP5\" title=\"CP5\">Meu pai tem o costume de dizer que eu sou criança, mas na verdade sou quase um adolescente. E pessoas nessa fase da vida não ficam mais brincando de carrinho. Pois bem, aqui inicia uma história divertida que eu, Jean, vou contar a você.</p><p class=\"unidade\" id=\"CP6\" title=\"CP6\">Eu nasci em 10 de outubro de 2010. Tenho 11 anos e pertenço a geração <em>alpha</em>. Uma geração conhecida por ser rodeada de tecnologia. Há quem diga que os nascidos nessa geração “vão dominar o mundo”. Isso inclui: eu!</p><p class=\"unidade\" id=\"CP7\" title=\"CP7\">Eu já nasci sabendo mexer no celular e olha que não é exagero. Uma vez, eu estava chorando e meu pai entregou o celular dele com um desenho animado e desde então, sou encantado pela tecnologia. E olha que eu só tinha três meses de vida.</p><canvas class=\"unidade\" id=\"CP8\" title=\"CP8\" width=\"465\" height=\"285\"><img class=\"substituta\" src=\"img/bua.png\" alt=\"Desenho a m~ão de um carrinho de bebê com um choro vindo de dentro.\"/></canvas><p class=\"unidade\" id=\"CP9\" title=\"CP9\">Com dois anos, eu já sabia acessar vídeos na <em>Internet, </em>com cinco eu já instalava jogos e com oito eu já gravava vídeos e postava em meu canal. E no meu aniversário de dez anos, ganhei o meu primeiro computador. Agora, depois de tudo isso, meu pai me diz:</p><p class=\"unidade\" id=\"CP10\" title=\"CP10\">– Estou a ponto de quebrar esse computador!</p><p class=\"unidade\" id=\"CP11\" title=\"CP11\">– Mas pai, você que me deu.</p><p class=\"unidade\" id=\"CP12\" title=\"CP12\">Eu respondi preocupado.</p><p class=\"unidade\" id=\"CP13\" title=\"CP13\">– Não me responda Jean.</p><p class=\"unidade\" id=\"CP14\" title=\"CP14\">– Mas pai... </p><p class=\"unidade\" id=\"CP15\" title=\"CP15\">– Mas nada, desliga isso agora!</p><div style=\"width: 40px; margin: 40px auto; display: block; text-align: center;\">* * *</div>\n\n</div>\n\n<script>\n\n var js_el_um = document.getElementById('CP8');\n var img_url =\"img/bua.png\";\n var programa_um_criado = new pintarTela(js_el_um, img_url);\n\n</script>\n\n```","srcMarkdownNoYaml":""},"formats":{"moan-livro-html":{"identifier":{"display-name":"HTML","target-format":"moan-livro-html","base-format":"html","extension-name":"moan-livro"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","error":false,"eval":true,"cache":null,"freeze":false,"echo":true,"output":true,"warning":true,"include":true,"keep-md":false,"keep-ipynb":false,"ipynb":null,"enabled":null,"daemon":null,"daemon-restart":false,"debug":false,"ipynb-filters":[],"ipynb-shell-interactivity":null,"plotly-connected":true,"engine":"markdown"},"render":{"keep-tex":false,"keep-typ":false,"keep-source":false,"keep-hidden":false,"prefer-html":false,"output-divs":true,"output-ext":"html","fig-align":"defaLine truncated
+1
View File
@@ -0,0 +1 @@
{"title":"Jogo VR Carrinho de Rolimã","markdown":{"headingText":"Jogo VR Carrinho de Rolimã","headingAttr":{"id":"","classes":["unnumbered","hidden"],"keyvalue":[]},"containsRefs":false,"markdown":"\n```{=html}\n\n<div id=\"conteudo-capitulo\">\n\n<h1 id=\"titulo\">Jogo VR Carrinho de Rolimã</h1>\n\n<p>Desvie dos cones e vá passando de fase. Para fazer as curvas com o carrinho, gire a cabeça se estiver usando um óculos de realidade virtual (VR). Caso esteja jogando pelo computador com um <em>mouse</em>, clique na tela e mexa o mouse para desviar dos cones.</p><p>Clique no link abaixo e espere o jogo carregar e, então, clique no óculos que aparece no canto inferior direito para poder iniciar.</p>\n<br />\n\n<span style=\"text-align: center; width: 100%; display: block;\">\n<a style=\" text-decoration: none; text-align: center; padding: 8px 15px; background-color:#fdb208; border-radius: 4px; color:#fff; font-weight: bold\" href=\"interativos/index.html\" target=\"blank\" >Acesse aqui o jogo</a>\n</span>\n<style>\n span a:hover {background-color: #fbbc2b !important;}\n</style>\n\n<br />\n<br />\n<br />\n<br />\n<h2 style=\"font-weight: bold;\">Créditos</h2>\n<ul>\n<li>Jogo criado por Rafael Tavares Juliani (Editora Moan)</li>\n\t\t\t\t<li> Modelo da Cidade\n\t\t\t\t\t\"CCity Building Set 1\" (<a href=\"https://skfb.ly/LpSC\">https://skfb.ly/LpSC</a>) by Neberkenezer is licensed under Creative Commons Attribution (<a href=\"http://creativecommons.org/licenses/by/4.0/\">http://creativecommons.org/licenses/by/4.0/</a>).\n\t\t\t\t\tAlterações foram feitas. \n\t\t\t\t\t</li>\n\t\t\t\n\n\t\t\t\t<li>\n\t\t\t\t\tCone\n\t\t\t\t\t\"Orange street cone\" (<a href=\"https://skfb.ly/6RUHP\">https://skfb.ly/6RUHP</a>) by Mateusz Woliński is licensed under Creative Commons Attribution (<a href=\"http://creativecommons.org/licenses/by/4.0/\">http://creativecommons.org/licenses/by/4.0/</a>).\n\t\t\t\t\tAlterações foram feitas.\n\t\t\t\t</li>\n\t\t\t\t<li>\n\n\t\t\t Som Rolimã\n\t\t\t\t\tUsuário InspectorJ do freesound.org\n\t\t\t\t\tMarble, Rolling on Wood, A.wav\n\t\t\t\t\t<a href=\"https://freesound.org/people/InspectorJ/sounds/429104/\">https://freesound.org/people/InspectorJ/sounds/429104/</a>\n\t\t\t\t\tlicença: <a href=\"https://creativecommons.org/licenses/by/3.0/\">https://creativecommons.org/licenses/by/3.0/</a>.\n\t\t\t\t\tForam realizadas alterações no arquivo. \n \t\t\t\n</li>\n<li>\n\t\t\t\t Som contagem\n\t\t\t\t\tUsuário Alexhanj do freesound.org\n\t\t\t\t\tPing.aiff\n\t\t\t\t\t<a href=\"https://freesound.org/people/Alexhanj/sounds/528730/\">https://freesound.org/people/Alexhanj/sounds/528730/</a>\n\t\t\t\t\tlicença: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">https://creativecommons.org/publicdomain/zero/1.0/</a> . </li>\n\t\t\t\t\t\n <li> \t\t\t\nSom do vai\n\t\t\t\t\tUsuário InspectorJ do freesound.org\n\t\t\t\t\t UI Confirmation Alert, A4.wav\n\t\t\t\t\t<a href=\"https://freesound.org/people/InspectorJ/sounds/403005/\">\thttps://freesound.org/people/InspectorJ/sounds/403005/</a>\n\t\t\t\t\tlicença: <a href=\"https://creativecommons.org/licenses/by/3.0/\">https://creativecommons.org/licenses/by/3.0/</a> .\n\t\t\t\t</li>\n\t\t\t\t\n\t\t\t\t<li>\n \t\t\t Som de sucesso, conclusão\n\t\t\t\t\tUsuário jobro do freesound.org\n\t\t\t\t\t Success!! » tada1.wav\n\t\t\t\t\t<a href=\"https://freesound.org/people/jobro/sounds/60443/\">https://freesound.org/people/jobro/sounds/60443/</a>\n\t\t\t\t\tlicença: <a href=\"https://creativecommons.org/licenses/by/3.0/\">https://creativecommons.org/licenses/by/3.0/</a>.\n\t\t\t\t\t\tFoi feita uma pequena alteração.\n\t\t\t\t\t\t\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<li>\n \t\t\t\t Som batida no cone\n\t\t\t\t\tUsuário cupido-1 do freesound.org\n\t\t\t\t\thit ball.WAV\n\t\t\t\t\t<a href=\"https://freesound.org/people/cupido-1/sounds/456319/\">https://freesound.org/people/cupido-1/sounds/456319/</a>\n\t\t\t\t\tlicença: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">https://creativecommons.org/publicdomain/zero/1.0/</a>.\n\t\t\t\t\tAlterações foram feitas.\n \t\t\t</li>\n \t\t\t\n \t\t\t<li>\n Som de game over, você falhou\n\t\t\t\t\tUsuário NikPlaymostories do freesound.org\n\t\t\t\t\tFail (Trombone wah, wah, wah…) - Sound Effect.mp3\n\t\t\t\t\t<a href=\"https://freesound.org/people/NikPlaymostories/sounds/563850/\">https://freesound.org/people/NikPlaymostories/sounds/563850/</a>\n\t\t\t\t\tlicença: <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">https://creativecommons.org/publicdomain/zero/1.0/</a>.\n\t\t\t\t\tAlterações foram feitas.\n\t\t\t\t\t</li>\n \t\t\t\t</ul>\n\n</div>\n\n```","srcMarkdownNoYaml":""},"formats":{"moan-livro-html":{"identifier":{"display-name":"HTML","target-format":"moan-livro-html","base-format":"html","extension-name":"moan-livro"},"execute":{"fig-width":7,"fig-height":5,"fig-format":"retina","fig-dpi":96,"df-print":"default","errLine truncated
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"options":{"chapter-id":"SECTION001000000000000000000","chapters":true},"headings":["SECTION001000000000000000000"]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":["SECTION00710000000000000000","SECTION00720000000000000000","SECTION00730000000000000000","SECTION00740000000000000000","SECTION00750000000000000000","SECTION00760000000000000000"]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":["introdução"],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"options":{"chapters":true,"chapter-id":"SECTION00600000000000000000"},"entries":[],"headings":["SECTION00610000000000000000","SECTION00620000000000000000","SECTION00630000000000000000","SECTION00640000000000000000","SECTION00650000000000000000","SECTION00660000000000000000","SECTION00670000000000000000","SECTION00680000000000000000","SECTION00600000000000000000"]}
+1
View File
@@ -0,0 +1 @@
{"headings":[],"entries":[],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"options":{"chapters":true},"entries":[],"headings":[]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":["metadados","como-citar","versão-impressa","direitos-autorais"],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":[]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":["apresentação"],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true,"chapter-id":"SECTION00900000000000000000"},"headings":["SECTION00900000000000000000"]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}
+59
View File
@@ -0,0 +1,59 @@
{
"index.qmd": {
"index.html": "5307b9e1"
},
"apresentacao.qmd": {
"apresentacao.html": "8174a0ab"
},
"agradecimentos.qmd": {
"agradecimentos.html": "4fffaab4"
},
"funcoes-trigonometricas-circulares.qmd": {
"funcoes-trigonometricas-circulares.html": "d905b7b4"
},
"igualdades-exponenciais-e-logaritmicas.qmd": {
"igualdades-exponenciais-e-logaritmicas.html": "18ece635"
},
"teste.qmd": {
"teste.html": "b93f9b0b"
},
"funcoes-trigonometricas-hiperbolicas.qmd": {
"funcoes-trigonometricas-hiperbolicas.html": "460be21c"
},
"aplicacoes.qmd": {
"aplicacoes.html": "b3847cd7"
},
"referencias.qmd": {
"referencias.html": "82bf74d1"
},
"indice-remissivo.qmd": {
"indice-remissivo.html": "0b8f7ef8"
},
"autores.qmd": {
"autores.html": "eab7737d"
},
"introducao.qmd": {
"introducao.html": "3ef5a026"
},
"geracao-alpha-versus-geracao-millennials.qmd": {
"geracao-alpha-versus-geracao-millennials.html": "03afee17"
},
"aula-on-line-como-eu-nao-gosto-de-aula-on-line.qmd": {
"aula-on-line-como-eu-nao-gosto-de-aula-on-line.html": "80836196"
},
"a-volta-das-aulas-presenciais.qmd": {
"a-volta-das-aulas-presenciais.html": "4a1dc47f"
},
"rolima.qmd": {
"rolima.html": "e6d7f6b9"
},
"a_volta_das_aulas_presenciais.qmd": {
"a_volta_das_aulas_presenciais.html": "54d7babf"
},
"geracao_alpha_versus_geracao_millennials.qmd": {
"geracao_alpha_versus_geracao_millennials.html": "4026ce60"
},
"aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd": {
"aula_on_line_como_eu_nao_gosto_de_aula_on_line.html": "83919ff0"
}
}
+1
View File
@@ -0,0 +1 @@
{"options":{"chapter-id":"SECTION00800000000000000000","chapters":true},"entries":[],"headings":["SECTION00810000000000000000","SECTION00820000000000000000","SECTION00830000000000000000","SECTION00840000000000000000","SECTION00850000000000000000","SECTION00860000000000000000","SECTION00870000000000000000","SECTION00800000000000000000"]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":[]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"options":{"chapters":true},"headings":["SECTION00510000000000000000","SECTION00520000000000000000","SECTION00530000000000000000","SECTION00540000000000000000","SECTION00550000000000000000","SECTION00560000000000000000","SECTION00570000000000000000"]}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":[],"options":{"chapters":true}}
+1
View File
@@ -0,0 +1 @@
{"entries":[],"headings":["sobre-os-autores"],"options":{"chapters":true}}
+11
View File
@@ -0,0 +1,11 @@
# Sobre
Repositório do livro online "Jean Jogos e Brincadeiras".
# Direitos autorais
© Os autores e a Editora Moan, 2022.
# Licença
Todos os direitos reservados. A reprodução, cópia ou distribuição desta obra, seja em parte ou no todo, só poderá ser realizada mediante autorização, sob pena de violação da [lei de direitos autorais. (Lei 9.610/98)](https://www.planalto.gov.br/ccivil_03/leis/l9610.htm)
+17
View File
@@ -0,0 +1,17 @@
title: Moan-livro
author: Rafael Tavares Juliani
version: 1.0.0
quarto-required: ">=1.4.0"
lang: pt-BR
contributes:
formats:
html:
mainfont: Source Sans Pro
lang: pt-BR
citation: true
google-scholar: true
smooth-scroll: true
theme:
light: [cosmo, custom.scss]
dark: [superhero, custom.scss]
+154
View File
@@ -0,0 +1,154 @@
/*-- scss:defaults --*/
/* TODO: Customize html appearance by setting SCSS variables */
/* See https://quarto.org/docs/output-formats/html-themes.html#theme-options */
/*-- scss:rules --*/
/* TODO: Provide custom CSS rules */
/*-- scss:defaults --*/
$h2-font-size: 1.6rem !default;
$headings-font-weight: 500 !default;
$font-size-base: 1.1rem !default;
/*-- scss:rules --*/
main p, main li {
text-align: left;
hyphens: auto;
-webkit-hyphens: auto;
font-kerning: auto;
}
.verso, .exemplo
{
display: block;
margin: 15px auto;
width: 300px;
}
#como-citar-bibtex, #como-citar-atribuicao {
border: 1px solid #dedede;
border-radius: 2px;
padding: 10px;
margin-bottom: 1rem;
}
#como-citar-atribuicao p {
text-indent: -20px;
margin-left: 20px;
}
#como-citar p {
margin-bottom: 5px;
}
.verso {
text-indent: -15px;
}
main li {
margin-bottom: 15px;
}
h1{
margin-bottom: 18px !important;
text-align: center;
}
h2#toc-title {
box-shadow:none;
}
h1, h2 {
margin-top: 50px;
}
#TOC .small_h2{
font-size: inherit;
}
#TOC a {
word-break: normal;
}
.subtitle {
text-align: center;
}
div.autores{
margin-bottom: 30px;
margin-top: -15px;
font-size: 0.8em;
}
div.autores p {
text-align: right;
}
#direitos-autorais p {
text-align: center;
}
blockquote{
text-align: left;
hyphens: auto;
font-kerning: auto;
margin-top: 30px;
}
blockquote+p span div {
text-align: left;
font-weight: normal;
font-size: unset;
}
.references div{
text-indent: -20px;
margin-left: 20px;
text-align: justify;
}
.citation div {
text-align: justify;
}
.figure-caption {
text-align: center;
}
.contador-figura{
font-weight: bold;
font-variant: small-caps;
}
mjx-container {
overflow-x: auto;
overflow-y: hidden;
}
@media (max-width: 991.98px){
body .page-columns, body.fullcontent:not(.floating):not(.docked) .page-columns, body.slimcontent:not(.floating):not(.docked) .page-columns, body.docked .page-columns, body.docked.slimcontent .page-columns, body.docked.fullcontent .page-columns, body.floating .page-columns, body.floating.slimcontent .page-columns, body.floating.fullcontent .page-columns {
display: grid;
gap: 0;
grid-template-columns: [screen-start] 1.5em [screen-start-inset page-start page-start-inset body-start-outset body-start body-content-start] minmax(0px, 1fr) [body-content-end body-end body-end-outset page-end-inset page-end screen-end-inset] 1.5em [screen-end];
}
#quarto-margin-sidebar {
display: none;
}
#quarto-content {
max-width: 768px;
margin: auto;
}
}
+242
View File
@@ -0,0 +1,242 @@
import os
import yaml
from bs4 import BeautifulSoup
import json
import copy
import shutil
# Caminho para o arquivo _quarto.yml
quarto_config_file = "_quarto.yml"
with open(quarto_config_file) as f:
quarto_config = yaml.safe_load(f)
# Extrair as informações do arquivo _quarto.yml
# funcao para iterar os capítulos
def extrair_arquivos_qmd(objeto, capitulos_arquivos_html):
if isinstance(objeto, list):
for elemento in objeto:
extrair_arquivos_qmd(elemento, capitulos_arquivos_html)
elif isinstance(objeto, dict):
if 'part' in objeto:
extrair_arquivos_qmd(objeto['part'], capitulos_arquivos_html)
if 'chapters' in objeto:
extrair_arquivos_qmd(objeto['chapters'], capitulos_arquivos_html)
elif isinstance(objeto, str) and objeto.endswith('.qmd'):
capitulos_arquivos_html.append(objeto[:-4])
# pegando o local dos arquivos html
pasta_livro_renderizado = quarto_config["project"]["output-dir"]
# pegando o campo controle-moan para verificar se é um dicionário
é_dicionário = quarto_config["controle-moan"]["dicionario"]
# pegando os capítulos
capitulos = quarto_config["book"]["chapters"]
capitulos_arquivo_html = []
extrair_arquivos_qmd(capitulos, capitulos_arquivo_html)
# altera os arquivos html
for index, output_file in enumerate(capitulos_arquivo_html):
# Caminho completo para o arquivo HTML
arquivo_html = os.path.join(pasta_livro_renderizado, output_file + ".html")
# conta os elementos que serão uma referencia / Ele começa em 0 na abertura de um novo capítulo
ref_num = 0
# Abre o arquivo HTML
with open(arquivo_html, "r", encoding="utf-8") as f:
content = f.read()
# Cria um objeto BeautifulSoup
soup = BeautifulSoup(content, "html.parser")
# Encontre a tag 'main' no documento
main_tag = soup.find("main")
# Crie o elemento script com os metadados
script_tag = soup.new_tag('script', data="moan-metadados")
#pegar apenas a url do livro
url_livro = os.path.basename(pasta_livro_renderizado)
script_tag.string = f'var metadados = {{livroUrl: "{url_livro}"}};'
script_tag.string += f'var modelo_antigo = true;'
# Adicione o script ao cabeçalho (head) do HTML
soup.head.append(script_tag)
# Se existir o ark, colocar os dados nas tags object do primeiro capítulo do livro
if "ark" in quarto_config["moan-dados"] and index == 0:
ark = quarto_config["moan-dados"]["ark"]
# Substitua "." por "_p_" e "/" por "_b_" em 'ark'
ark = ark.replace(".", "_p_").replace("/", "_b_")
# Adicione "ark_dp_" ao início de 'ark'
ark = "ark_dp_" + ark
# Encontre as tags object com id "metadados_livro_yml" e "metadados_livro_json"
obj_metadados_yml = main_tag.find("object", {"id": "metadados_livro_yml"})
obj_metadados_json = main_tag.find("object", {"id": "metadados_livro_json"})
if obj_metadados_yml and obj_metadados_json:
# Defina o atributo "data" das tags object
obj_metadados_yml["data"] = "https://ark.livro.online/yaml/" + ark + ".yml"
obj_metadados_json["data"] = "https://ark.livro.online/json/" + ark + ".json"
# Verifique se o arquivo "postos-de-venda.json" existe
json_file_path = "postos-de-venda.json"
if os.path.exists(json_file_path) and index == 0:
# O arquivo JSON existe, abra-o e extraia as chaves e valores
with open(json_file_path, "r", encoding="utf-8") as json_file:
postos_de_venda = json.load(json_file)
# Crie uma nova lista não ordenada para armazenar os links
ul = soup.new_tag("ul", id="postos-de-venda")
for key, value in postos_de_venda.items():
li = soup.new_tag("li")
# Verifica se "@" está presente no valor
if "@" in value:
# Se "@" estiver presente, crie um link de e-mail (mailto)
link = soup.new_tag("a", href=f"mailto:{value}")
link.string = f"{key}: {value}" # Texto do link é a chave seguida de dois pontos e o valor
else:
# Se "@" não estiver presente, crie um link normal
link = soup.new_tag("a", href=value)
link.string = key # Texto do link é a chave
li.append(link)
ul.append(li)
# Encontre a tag "section" com ID "versão-impressa"
section_versao_impressa = main_tag.find("section", id="versão-impressa")
if section_versao_impressa:
# Adicione a lista não ordenada de links à seção "versão-impressa"
section_versao_impressa.append(ul)
# Copie o arquivo JSON para a pasta especificada em "pasta_livro_renderizado"
dest_file = os.path.join(pasta_livro_renderizado, "postos-de-venda.json")
shutil.copy(json_file_path, dest_file)
# Copiar a imagem og.jpg que está na pasta img e serve para usar no open graph
# Pasta onde o arquivo og.jpg está localizado
pasta_img = "img"
# Caminho completo para o arquivo og.jpg
caminho_original = os.path.join(pasta_img, "og.jpg")
# Verifica se o arquivo og.jpg existe na pasta img
if os.path.exists(caminho_original):
# Caminho completo para a pasta de destino na pasta livro_renderizado
caminho_destino = os.path.join(pasta_livro_renderizado, "img")
# Certifica-se de que a pasta de destino exista
os.makedirs(caminho_destino, exist_ok=True)
# Copia o arquivo og.jpg para a pasta de destino
shutil.copy(caminho_original, caminho_destino)
print("Arquivo og.jpg foi copiado com sucesso.")
else:
print("O arquivo og.jpg não foi encontrado na pasta img.")
# Coloca o conteudo dentro de uma div com id chamado de papel, substituindo o conteudo original da tag main pela div papel
# Crie uma div com id "papel"
div_papel = soup.new_tag('div', id='papel')
# Copie a tag main
main_content_copy = copy.copy(main_tag.contents)
# Limpe o conteúdo da tag <main>
main_tag.clear()
# Adicione a cópia do conteúdo à div "papel"
for item_copy in main_content_copy:
div_papel.append(item_copy)
# Acrescentar a div_papel na tag main
main_tag.append(div_papel)
# Salva o arquivo HTML modificado
with open(arquivo_html, "w", encoding="utf-8") as f:
f.write(str(soup))
# Nos livros antigos que já possuía referencias, o arquivo com as referencias será copiado para a pasta do livro renderizado.
origem = "ref_capitulos.json"
destino = os.path.join(pasta_livro_renderizado, "ref_capitulos.json")
# Copia o arquivo para a pasta de destino
shutil.copy(origem, destino)
@@ -0,0 +1,744 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" version="1.0" class="in-text" initialize="false" demote-non-dropping-particle="never" default-locale="pt-BR">
<info>
<!-- ESTE ESTILO FOI CONSTRUÍDO A PARTIR DO MODELO DA ABNT (com diversos ajustes, mas os créditos permanecem aos autores originais) -->
<title>Universidade Estadual de Alagoas - UNEAL [ABNT] (Portuguese - Brazil)</title>
<title-short>UNEAL-ABNT</title-short>
<id>http://www.zotero.org/styles/universidade-estadual-de-alagoas-abnt</id>
<link href="http://www.zotero.org/styles/universidade-estadual-de-alagoas-abnt" rel="self"/>
<link href="http://www.zotero.org/styles/associacao-brasileira-de-normas-tecnicas" rel="template"/>
<link href="https://www.abntcatalogo.com.br/norma.aspx?ID=408006" rel="documentation"/>
<author>
<name>Wellyngton Chaves Monteiro da Silva</name>
<email>[email protected]</email>
<uri>http://www.uneal.edu.br</uri>
</author>
<category citation-format="author-date"/>
<category field="generic-base"/>
<summary>De acordo com ABNT-NBR 10520.2002 e ABNT-NBR 6023.2018</summary>
<updated>2022-06-26T01:48:46+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="pt-BR">
<!--
UTILITÁRIOS (para serem inseridos no campo EXTRA do Zotero):
publisher-place: quando não existir espaço para LUGAR da publicação (ex.: publisher-place: Maceió OU QUANDO NECESSÁRIO, publisher-place: Maceió, AL)
-->
<terms>
<!--Abreviações dos meses do ano -->
<term name="month-01" form="short">jan.</term>
<term name="month-02" form="short">fev.</term>
<term name="month-03" form="short">mar.</term>
<term name="month-04" form="short">abr.</term>
<term name="month-05" form="short">maio</term>
<term name="month-06" form="short">jun.</term>
<term name="month-07" form="short">jul.</term>
<term name="month-08" form="short">ago.</term>
<term name="month-09" form="short">set.</term>
<term name="month-10" form="short">out.</term>
<term name="month-11" form="short">nov.</term>
<term name="month-12" form="short">dez.</term>
<!--Os termos abaixo serao utilizados quando houverem nomes de editores. Apos a citacao dos nomes, eles irao aparecer entre parenteses.-->
<term name="and">e</term>
<term name="editor" form="short">
<single>ed</single>
<multiple>eds</multiple>
</term>
<term name="editor" form="short">
<single>org</single>
<multiple>org</multiple>
</term>
<term name="container-author" form="short">
<single>ed</single>
<multiple>eds</multiple>
</term>
<term name="collection-editor" form="short">
<single>org</single>
<multiple>org</multiple>
</term>
</terms>
</locale>
<!--A macro 'container-contributor' mostra os nomes dos editores, SOBRENOME, INICIAIS PRENOMES, sendo as inicias separadas por ponto -->
<macro name="container-contributors">
<choose>
<if type="chapter">
<names variable="container-author" delimiter=", ">
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="always">
<name-part name="family" text-case="uppercase"/>
<name-part name="given" text-case="capitalize-first"/>
</name>
<label form="short" prefix=" (" suffix=".)"/>
<substitute>
<names variable="editor"/>
<names variable="collection-editor"/>
</substitute>
</names>
</if>
</choose>
</macro>
<!--A macro 'secondary-contributors' mostra os nomes dos organizadores, SOBRENOME, INICIAIS PRENOMES, sendo as inicias separadas por ponto -->
<macro name="secondary-contributors">
<choose>
<if type="chapter" match="none">
<names variable="editor" delimiter="; " prefix=" (" suffix=")">
<name initialize-with=". " delimiter=", "/>
<label form="short" prefix=", " text-case="capitalize-first" suffix="."/>
</names>
</if>
</choose>
</macro>
<!--A macro 'translator' mostra os nomes dos tradutores, conforme a NBR 6023, de 2018 -->
<macro name="translator">
<text value="Tradução "/>
<names variable="translator" delimiter=", ">
<name delimiter=", " sort-separator=" " delimiter-precedes-last="always">
<name-part name="given"/>
<name-part name="family" text-case="capitalize-first"/>
</name>
<et-al font-style="normal"/>
</names>
</macro>
<!--A macro 'author' mostra os nomes dos autores na bibliografia, SOBRENOME, INICIAIS PRENOMES, sendo as iniciais
separadas por ponto. Quando houver mais de três autores, somente o primeiro será exibido e no lugar dos outros
aparecera a expessão 'et al.'. Na regra da ABNT essa expressão deve aparecer em fonte normal -->
<macro name="author">
<names variable="author">
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="always">
<name-part name="family" text-case="uppercase"/>
<name-part name="given" text-case="capitalize-first"/>
</name>
<label form="short" prefix=" (" suffix=".)" text-case="uppercase"/>
<substitute>
<names variable="editor"/>
<text macro="title"/>
</substitute>
</names>
</macro>
<!--A macro 'author-short' mostra os nomes dos autores na citação (no meio do texto). Nela aparecera apenas o último nome
do autor. Na regra da ABNT o sobrenome deve aparecer com todas as letras em caixa alta -->
<macro name="author-short">
<names variable="author">
<name form="short" name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="never">
<name-part name="family" text-case="uppercase"/>
<name-part name="given" text-case="uppercase"/>
</name>
<substitute>
<names variable="editor"/>
<choose>
<if type="book">
<text variable="title" form="short"/>
</if>
<else>
<text variable="title" form="short" text-case="uppercase" quotes="false"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="director">
<names variable="author">
<name sort-separator=", " initialize-with=". " delimiter="; " delimiter-precedes-last="always">
<name-part name="given" text-case="capitalize-first"/>
<name-part name="family" text-case="capitalize-first"/>
</name>
</names>
</macro>
<!--A macro 'access' é utilizada em arquivos de páginas da web. Ela é responsável por exibir a URL do site pesquisado e a data do acesso, além do DOI -->
<macro name="access">
<text variable="ISSN" prefix=" ISSN: " suffix="."/>
<text variable="ISBN" prefix=" ISBN: " suffix="."/>
<text variable="DOI" prefix=" DOI: " suffix="."/>
<!-- <text variable="URL" prefix=" Disponível em: &lt;" suffix="&gt;."/> RETIREI AS ENTRADAS DAS URLs, CONFORME ABNT -->
<text variable="URL" prefix=" Disponível em: " suffix="."/>
<date variable="accessed" prefix=". Acesso em: " suffix=".">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=". " text-case="lowercase"/>
<date-part name="year"/>
</date>
</macro>
<!--A macro 'title' mostra o título principal do arquivo. Em todos os tipos ele aparecerá em negrito logo após os nomes dos autores,
exceto em arquivos do tipo 'artigo de jornal, artigo de revista, artigo de periódico', nesses arquivos eles irão aparecer em fonte normal -->
<macro name="title">
<choose>
<if type="chapter article-newspaper legislation article-magazine article-journal bill entry-encyclopedia paper-conference" match="any">
<text variable="title"/>
</if>
<else-if type="book thesis patent report" match="any">
<text variable="title" font-weight="bold"/>
</else-if>
<else-if type="dataset" match="any">
<text variable="title" suffix=". "/>
</else-if>
<else-if type="broadcast motion_picture" match="any">
<text variable="title" text-case="uppercase"/>
</else-if>
<else>
<text variable="title" font-weight="bold"/>
</else>
</choose>
<text value=""/>
</macro>
<!-- Titulo dos Anais-->
<macro name="container-title">
<choose>
<if type="paper-conference" match="any">
<text variable="container-title" text-case="uppercase"/>
<text variable="number" prefix=", " suffix=", "/>
<text macro="issued-year" prefix=" " suffix=", "/>
<text variable="publisher-place" suffix=". "/>
<text value="Anais" font-weight="bold"/>
<text value=" [...]. "/>
</if>
<else>
<text variable="container-title" font-weight="bold"/>
</else>
</choose>
</macro>
<!--A macro 'publisher' mostra o nome da editora responsável pela publicação-->
<macro name="publisher">
<choose>
<if match="any" variable="publisher-place publisher">
<choose>
<if variable="publisher-place">
<text variable="publisher-place"/>
</if>
<else-if type="entry-encyclopedia thesis" match="any"/>
<else-if type="paper-conference" match="any">
<text variable="publisher-place" suffix=". "/>
</else-if>
<else>
<text value="[s.l.] "/>
</else>
</choose>
<choose>
<if variable="publisher">
<text variable="publisher" prefix=": " suffix=","/>
<text macro="issued"/>
</if>
</choose>
</if>
<else>
<text value="[s.l.: s.n.]"/>
</else>
</choose>
</macro>
<!--A macro 'event' sera utilizada em arquivos do tipo Evento/Conferencia. Ela e responsavel por mostrar o nome da conferencia, que tera formatacao
em caixa alta. Utiliza-se antes do nome da conferencia a expressao "In". Segundo a regra da ABNT ela deve ser em fonte normal-->
<macro name="event">
<choose>
<if variable="event">
<choose>
<if variable="genre" match="none">
<text term="in" font-style="italic" text-case="capitalize-first" suffix=": "/>
<text variable="event" text-case="uppercase"/>
</if>
<else>
<group delimiter=" ">
<text variable="genre" text-case="capitalize-first"/>
<text term="presented at"/>
<text variable="event"/>
</group>
</else>
</choose>
</if>
<else-if type="paper-conference" match="any"/>
</choose>
</macro>
<!--A macro 'issued' e utilizada quando devemos mostrar a data completa exemplo: 03 mar. 2011.-->
<macro name="issued">
<choose>
<if variable="issued" match="any">
<group>
<date variable="issued">
<date-part name="year" prefix=" " suffix=""/>
<!-- RETIREI O PONTO DO suffix PARA FICAR 2017a, 2017b, COM PONTO FICA 2017. a., 2017. b. -->
</date>
</group>
</if>
<else-if type="patent" match="any">
<date form="numeric" variable="issued" suffix="."/>
</else-if>
<else>
<text value="[s.d.]"/>
</else>
</choose>
</macro>
<!--A macro 'issued-year' e utilizada quando desejamos que apareca apenas o ano-->
<macro name="issued-year">
<choose>
<if variable="issued" match="any">
<date variable="issued">
<date-part name="year"/>
</date>
</if>
<else-if type="paper-conference" match="all">
<date date-parts="year" form="numeric" variable="issued">
<date-part name="year"/>
</date>
</else-if>
<else>
<text value="[s.d.]"/>
</else>
</choose>
</macro>
<macro name="issued-legislation">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="short" suffix=". " text-case="lowercase"/>
<date-part name="year"/>
</date>
</macro>
<!--A macro 'edition' e responsavel por mostrar o numero da edicao.-->
<macro name="edition">
<choose>
<!--Se for capitulo de livro aparecera somente o numero-->
<if type="book chapter" match="any">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="numeric" suffix="."/>
<text term="edition" form="short" suffix="."/>
</group>
</if>
<else>
<!--Se for outro tipo de documento aparecera o numero e depois a descricao "ed."-->
<text variable="edition" suffix=" ed."/>
</else>
</choose>
</if>
</choose>
</macro>
<!--A macro 'locators' tem como funcao mostrar os dados complementares do arquivo (paginas, secao, volume, etc)-->
<macro name="locators">
<choose>
<!--Se for projeto de lei mostrara o dia, mes "forma curta", ano, secao "Sec." e pagina "p."-->
<if type="bill">
<group prefix=". " delimiter=", ">
<date variable="issued">
<date-part name="day"/>
<date-part prefix=" " name="month" form="short"/>
<date-part prefix=" " name="year"/>
</date>
<text macro="section"/>
<text variable="page" prefix="p. " suffix="."/>
</group>
</if>
<!--Se for artigos de jornal, revista, etc. Aparecera o volume "v.", edicao "n." e a pagina do artigo "p."-->
<else-if match="any" type="article-journal article-magazine article-newspaper">
<group delimiter=", ">
<group delimiter=", ">
<text variable="volume" prefix="v. "/>
<text variable="issue" prefix="n. "/>
</group>
<text variable="collection-title"/>
<text variable="page" prefix="p. "/>
</group>
</else-if>
<!-- Capítulo de livro -->
<!--Se for capitulo de livro aparecera o volume "v." e a pagina "p."-->
<else-if match="any" type="book chapter">
<group delimiter=", ">
<group>
<text variable="volume" prefix="v. " suffix=". "/>
<text variable="page" prefix="p. "/>
<!--Inseri este campo 'extra' caso queira colocar alguma observacao, como 'nome da coleção', 'nome da série' etc. -->
<!-- <text variable="note" prefix=". " suffix=""/> -->
<text macro="collection-title" prefix=". (" suffix=")."/>
<!-- AQUI INSERE A COLEÇÃO OU SÉRIE DA OBRA -->
</group>
</group>
</else-if>
</choose>
</macro>
<macro name="collection-title">
<text variable="collection-title"/>
<text variable="collection-number" prefix=" "/>
</macro>
<macro name="genre">
<text variable="genre"/>
</macro>
<macro name="section">
<choose>
<if match="any" variable="section issue">
<text variable="section"/>
<text variable="issue"/>
</if>
</choose>
</macro>
<macro name="citation-locator">
<group>
<label variable="locator" form="short"/>
<text variable="locator" prefix=" "/>
</group>
</macro>
<macro name="place">
<choose>
<if variable="publisher-place" match="any">
<text variable="publisher-place" suffix=", "/>
</if>
<else-if type="paper-conference" variable="publisher-place">
<text variable="publisher-place" suffix=". "/>
</else-if>
<else>
<text value="[S. l.]" font-style="italic" suffix=", "/>
</else>
</choose>
</macro>
<macro name="archive">
<group>
<text variable="archive" prefix=" "/>
</group>
</macro>
<!--Citacao-->
<!--et al. aparece a partir de 04 autores-->
<citation et-al-min="4" et-al-use-first="1" collapse="year" disambiguate-add-year-suffix="true">
<sort>
<!--Puxa o autor primeiro-->
<key macro="author"/>
<!--Depois o ano-->
<key variable="issued"/>
</sort>
<layout prefix="(" suffix=")" delimiter="; ">
<group>
<text suffix=", " macro="author-short"/>
<text macro="issued-year"/>
<text prefix=", " macro="citation-locator"/>
</group>
</layout>
</citation>
<bibliography hanging-indent="false" et-al-min="10" et-al-use-first="1" entry-spacing="1">
<sort>
<key macro="author"/>
<key variable="issued"/>
</sort>
<layout>
<choose>
<!--Projeto de lei-->
<if type="bill">
<group>
<!--autor-->
<text macro="author" suffix=". "/>
<!--Numero da lei-->
<text variable="number" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<!--Historico em negrito-->
<text variable="references" font-weight="bold" suffix=". "/>
<!-- ESTE PONTO VEM ANTES DO 'EXTRA' COMO LOCAL NAS LEIS -->
<!--Campo 'extra' caso queira colocar alguma observacao-->
<text variable="note"/>
<!--Dados complementares "secao, pagina"-->
<text macro="locators" suffix=". "/>
</group>
</if>
<!--Mapa-->
<else-if type="map">
<group>
<!--autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=", "/>
<!--data-->
<text macro="issued" suffix=". "/>
<!--Campo 'extra' caso queira colocar alguma observacao-->
<text variable="note" suffix=". "/>
</group>
</else-if>
<!--Livro-->
<else-if type="book">
<group>
<!--autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<!--Traducao INSERI DA ABNT (ver como funciona)-->
<text macro="translator" suffix=". "/>
<!--Edicao-->
<text macro="edition" suffix="., "/>
<!-- ADICIONEI A VÍRGULA PARA SEPARAR A EDIÇÃO DO LOCAL DE PUBLICAÇÃO -->
<!--Local, data, etc-->
<text macro="publisher" suffix=". "/>
<text variable="number-of-pages" suffix=" p. "/>
<!-- ADICIONA A QUANTIDADE DE PÁGINAS NA OBRA -->
<!-- Inseri este campo 'extra' caso queira colocar alguma observacao -->
<text variable="note" suffix=". "/>
<text macro="collection-title" prefix="(" suffix=")."/>
<!-- AQUI INSERE A COLEÇÃO OU SÉRIE DA OBRA -->
<!--Dados complementares "pagina, volume"-->
<!--<text macro="locators"/>-->
<!-- REMOVIDO PARA EVITAR DUPLICIDADE DE INFORMAÇÃO SOBRE A SÉRIE OU COLEÇÃO DA OBRA -->
<text macro="access"/>
</group>
</else-if>
<!--Conferencia-->
<else-if type="chapter">
<group>
<!--autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<!--INSERI DA ABNT (ver como funciona) -->
<text macro="secondary-contributors" suffix=". "/>
<!--In:-->
<text term="in" font-style="italic" text-case="capitalize-first" suffix=": "/>
<!--Nomes de editores-->
<text macro="container-contributors" suffix=". "/>
<!--Titulo da conferencia-->
<text macro="container-title" suffix=". "/>
<!--Traducao INSERI DA ABNT (ver como funciona) -->
<text macro="translator" suffix=". "/>
<!-- <text variable="collection-title" suffix=" "/> AQUI INSERIA A SÉRIE OU COLEÇÃO DENTRO DO TEXTO -->
<!--Edicao-->
<text macro="edition" suffix="., "/>
<!-- A VÍRGULA QUE SEPARA A EDIÇÃO DO LOCAL DA OBRA -->
<!--Local, data, etc-->
<text macro="publisher" suffix=". "/>
<!--Dados complementares "pagina, volume"-->
<text macro="locators" suffix=". "/>
<text macro="access"/>
</group>
</else-if>
<!--Artigo de revista, jornal, etc-->
<else-if type="article-newspaper article-magazine article-journal" match="any">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo do artigo-->
<text macro="title" suffix=". "/>
<!--Titulo da publicacao-->
<text macro="container-title" suffix=", "/>
<!--Titulo da serie-->
<text macro="collection-title" suffix=". "/>
<text macro="place"/>
<!--Edicao-->
<text macro="edition" suffix=", "/>
<!--Dados complementares "pagina, volume"-->
<text macro="locators" suffix=", "/>
<!--Data-->
<text macro="issued" suffix=". "/>
<text macro="access"/>
</group>
</else-if>
<!--Tese-->
<else-if type="thesis">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<text macro="issued-year" suffix=". "/>
<text variable="number-of-pages" suffix=" f. "/>
<!-- INSERINDO FOLHAS DE DISSERTAÇÕES E TESES -->
<!--Tipo-->
<text macro="genre" suffix=" - "/>
<!--Local, data, etc-->
<text variable="publisher" suffix=", "/>
<text macro="place"/>
<text macro="issued" suffix="."/>
<text macro="access"/>
</group>
</else-if>
<!-- Nao ha norma ABNT para manuscritos -->
<else-if type="manuscript">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<!--Edicao-->
<text macro="edition" suffix=". "/>
<text macro="place"/>
<!-- RETIREI O suffix=", " pois não aparece na publicação -->
<!--Data-->
<text macro="issued" suffix=". "/>
<!--URL, data do acesso-->
<text macro="access" suffix=". "/>
<!--Arquive-->
<text macro="archive" suffix=". "/>
</group>
</else-if>
<!--Pagina da WEB-->
<else-if type="webpage">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<text macro="genre" suffix=". "/>
<text macro="issued-year" suffix="."/>
<!--URL, data do acesso-->
<text macro="access" suffix=". "/>
</group>
</else-if>
<!--Relatorio-->
<else-if type="report">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title"/>
<!--Nomes de editores-->
<text macro="container-contributors"/>
<text macro="secondary-contributors"/>
<!--Titulo da publicacao-->
<text macro="container-title"/>
<text variable="collection-title" prefix=": "/>
<!--Dados complementares "pagina, volume"-->
<text macro="locators"/>
<!--Nome do evento, conferencia-->
<text macro="event"/>
<!--Local, data, etc-->
<text macro="publisher" prefix=". " suffix=". "/>
<!--URL, data do acesso-->
<text macro="access" suffix="."/>
</group>
</else-if>
<!--Texto para Discussao (Verbete de Dicionario)-->
<else-if type="entry-dictionary">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title"/>
<!--Nomes de editores-->
<text macro="container-contributors"/>
<text macro="secondary-contributors"/>
<!--Titulo da publicacao-->
<text macro="container-title"/>
<text variable="collection-title" prefix=": " suffix=". "/>
<!--Dados complementares "pagina, volume"-->
<text macro="locators"/>
<!--Nome do evento, conferencia-->
<text macro="event"/>
<!--Local, data, etc-->
<text macro="publisher" prefix=". " suffix=". "/>
<text macro="collection-title" prefix="(Texto para discussao, n. " suffix=")."/>
<!--URL, data do acesso-->
<text macro="access"/>
</group>
</else-if>
<!--Nota Tecnica (Verbete de Enciclopedia)-->
<else-if type="entry-encyclopedia">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix=". "/>
<text term="in" font-style="italic" text-case="capitalize-first" suffix=": "/>
<text macro="container-title" suffix="."/>
<!--Local-->
<text variable="publisher-place" prefix=". " suffix=": "/>
<!--Editor-->
<text variable="publisher"/>
<!--Data-->
<text macro="issued" prefix="," suffix=". "/>
</group>
</else-if>
<!--Publicacao em conferencia-->
<else-if type="paper-conference">
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title" suffix="."/>
<text term="in" font-style="italic" text-case="capitalize-first" prefix=" " suffix=": "/>
<!--Nomes de editores -->
<text macro="container-contributors" text-case="uppercase"/>
<text macro="secondary-contributors"/>
<!--Titulo da publicacao-->
<text macro="container-title"/>
<!--Dados complementares "pagina, volume"-->
<text macro="locators"/>
<group delimiter=". " prefix=". " suffix=". ">
<!--Nome do evento, conferencia-->
<text macro="event"/>
</group>
<text macro="publisher"/>
<text variable="page" prefix=" p. " suffix="."/>
<text macro="access"/>
</else-if>
<else-if type="legislation legal_case" match="any">
<group>
<!--Autor-->
<text macro="author" suffix=". "/>
<!--Titulo-->
<text macro="title"/>
<text variable="abstract" prefix=". " suffix=". "/>
<!--Titulo da publicacao-->
<text macro="container-title" suffix=", "/>
<text variable="publisher-place" suffix=", "/>
<text macro="issued-legislation" suffix=". "/>
<text macro="section" prefix="Seção " suffix=", "/>
<text variable="page" prefix="p. " suffix="."/>
<text macro="access"/>
</group>
</else-if>
<else-if type="patent" match="any">
<group>
<text macro="author" suffix=". "/>
<text macro="title" prefix=" "/>
<text variable="number" prefix=", " suffix=", "/>
<text macro="issued" suffix=". "/>
</group>
</else-if>
<else-if type="interview song speech" match="any">
<group>
<text macro="author" suffix=". "/>
<text macro="title" suffix=". "/>
<text macro="publisher"/>
<text variable="medium"/>
</group>
</else-if>
<else-if type="broadcast motion_picture" match="any">
<group>
<text macro="title"/>
<text value="Direção" text-case="capitalize-first" prefix=". " suffix=": "/>
<text macro="director" suffix=". "/>
<text macro="publisher"/>
<text variable="medium"/>
<text macro="access"/>
</group>
</else-if>
<else-if type="dataset" match="any">
<group>
<text macro="author"/>
<text macro="title" suffix=". "/>
<text variable="version" prefix=". "/>
<text macro="publisher"/>
<text variable="medium"/>
<text macro="access"/>
</group>
</else-if>
<else>
<!-- Inserindo referências de Documentos -->
<text macro="author" suffix=". "/>
<text macro="title" suffix=". "/>
<text macro="container-contributors"/>
<text macro="secondary-contributors"/>
<text macro="container-title"/>
<text variable="collection-title" prefix=": " suffix="."/>
<text macro="locators"/>
<group delimiter=". " prefix=". " suffix=". ">
<!--Nome do evento, conferencia-->
<text macro="event"/>
</group>
<!--Local-->
<text variable="publisher-place" suffix=" "/>
<!--Editor-->
<text variable="publisher" suffix=", "/>
<!-- Neste campo 'extra' podemos inserir o local da publicação do documento -->
<text variable="note" suffix=""/>
<!--Data-->
<text macro="issued" suffix=". "/>
<!-- REMOVI O prefix=", " DO ORIGINAL -->
<text variable="number-of-pages" suffix=" p. "/>
<!-- INSERINDO PÁGINAS DO DOCUMENTO -->
<text macro="section" prefix="(" suffix=") "/>
<!-- INSERINDO INFORMAÇÕES ADICIONAIS SOBRE O DOCUMENTO, ENTRE PARÊNTESES -->
<!--URL, data do acesso-->
<text macro="access"/>
<text variable="medium"/>
</else>
</choose>
</layout>
</bibliography>
</style>
Executable
+171
View File
@@ -0,0 +1,171 @@
# Em navbar -> logo-href e navbar -> logo precisa colocar a url da capa animada e da capa estática, respectivamente. Assim como em sidebar -> logo colocar url da capa estática
project:
type: book # não altere
output-dir: jean-jogos-brincadeiras # Escolha aqui a url do seu livro. O valor escolhido aqui resultará em algo como http://livro.online/url-do-seu-livro se essa url já não estiver sendo usada.
post-render:
- _extensions/moan-livro/preparacao-moan-ALTERADO.py # Não altere
- correcao.py
- correcao2.py
preview:
port: 4000 # não altere
browser: true # não altere
lightbox: auto # nao altere
include-after-body: # não altere
text: |
<script src="https://leitorweb.livro.online/leitor-web.min.js"></script>
<link rel="stylesheet" href="https://leitorweb.livro.online/css/configuracoesleitor.min.css" type="text/css">
lang: pt-BR # não altere
language:
toc-title-document: "Neste capítulo" # não altere
# number-sections precisa existir (seja true ou false) para o script que cria as referencias funcione direito
number-sections: true # não altere
crossref:
chapters: true # não altere
# É OBRIGATÓRIO informar se é ou não é um dicionário para as referências serem criadas corretamente
# TB é OBRIGATÓRIO colocar uma div com as classes .hidden e .um_capitulo em todos os capítulos que nao sao verbetes em um dicionário. Se nao for dicionário, nao há necessidade
controle-moan:
dicionario: false
# Metadados da Editora Moan. Será usado para gerar o identificador ark e para os metadados que ficarão online
# Informações como Título (title), subtítulo (subtitle), descrição (description), autor (author), data (date), editor (editor), editora (publisher), cidade (publisher-place), isbn da versao impressa (isbn) devem aparecer aqui e na entrada book abaixo.
moan-dados:
ark: 68745/eMdbp
título: "Jean: entre jogos e brincadeiras"
formato: Livro Digital (online)
organizadora: Diullye Miola
autor: Diullye Miola (organizadora e autora), Demitry Wallace dos Santos, Guilherme Bigilini, Gustavo Cosmo Rodrigues, Helena Sgarbi de Oliveira, Isabella de Morais Santos, João Pedro Miranda Fernandes, Lucas Pietruszynski, Mariana Martins Meyer, Mateus Possa Tonini, Murilo Pompeu Brandalize Nascimento
apontamento: https://livro.online/jean-jogos-brincadeiras # A editora moan depois altera isso
edição: 1
descrição: "Brincadeiras e jogos eletrônicos ou diversões off-line? Esse dilema é abordado por 10 crianças confrontadas ainda mais com esse assunto após a pandemia do coronavírus. Eles — e a professora Diullye — criaram a trama de um personagem fictício, o Jean, que incorpora todas as inquietações dos autores. Os jogos eletrônicos ajudaram na adaptação para as aulas on-line? Descubra a opinião desses autores infantis, mas já grandes nas realizações! Aproveite, também, para encontrar dicas de brincadeiras nesta obra e um jogo em Realidade Virtual (VR)."
editora: Editora Moan
local: Foz do Iguaçu - PR, Brasil
editor: Rafael Tavares Juliani
diagramador: Rafael Tavares Juliani
capista: Rafael Tavares Juliani
palavras-chave: Jogos, Brincadeiras, VR, Realidade Virtual, Literatura Infantojuvenil, Pandemia, Aulas on-line, Educação, Ensino
área: Literatura Infantojuvenil
cdd: 028.5.794
cdu: "82-9:37"
bisac: JUV000000
ano-publicação: 2022
data-publicação: 28/03/2022
idioma: Português do Brasil (pt-BR)
país: Brasil
faixa-etária: "8-11 anos"
classifcação-indicativa: Livre para todos os públicos
ark-versao-impressa: 68745/eMdbp.tm
isbn-versao-impressa: 9786599140488
direitos-autorais: © Os autores e a Editora Moan, 2022
licenca: Todos os direitos reservados
licenca-link: https://www.planalto.gov.br/ccivil_03/leis/l9610.htm
outros-créditos: "Capa (Raquete com modificações, modelo 3d de Katelin.A no Sketchfab, disponível em https://skfb.ly/6QTvS com licença CCBY disponível em https://creativecommons.org/licenses/by/4.0/ - Óculos VR do usuário Pixaline do Pixabay); Imagens internas com modificações (Pixabay: Ping pong e silhueta de professor de Clker-Free-Vector-Image; celular de iamwahid; joystickde IO-Images; silhueta mãe e filho de mohamed_hassan; óculos VR de Pixaline) e Sketchfab (Ampulheta de Antonio Gloria disponível em https://skfb.ly/6tG8X com licença CCBY disponível em https://creativecommons.org/licenses/by/4.0/)"
# Abaixo, altere somente o título do seu livro, o subtítulo (se houver, caso contrário, deixe em branco, ou seja, apague o que está ali), o nome do autor e a descrição.
book:
isbn: 978-65-99140-48-8
google-analytics: G-G6VT93GC1X
cookie-consent:
palette: light
policy-url: "https://livro.online/politica-de-cookies-br"
language: pt
prefs-text: Preferências de cookie
search:
type: textbox
favicon: img/favicon.png # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
open-graph:
image: img/og.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
twitter-card:
image: img/og.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
title: "Jean: entre jogos e brincadeiras"
subtitle: ""
description: "Brincadeiras e jogos eletrônicos ou diversões off-line? Esse dilema é abordado por 10 crianças confrontadas ainda mais com esse assunto após a pandemia do coronavírus. Eles — e a professora Diullye — criaram a trama de um personagem fictício, o Jean, que incorpora todas as inquietações dos autores. Os jogos eletrônicos ajudaram na adaptação para as aulas on-line? Descubra a opinião desses autores infantis, mas já grandes nas realizações! Aproveite, também, para encontrar dicas de brincadeiras nesta obra e um jogo em Realidade Virtual (VR)."
author:
- name: Diullye
- name: Demitry Wallace dos SantosG
- name: Guilherme Bigilini
- name: Gustavo Cosmo Rodrigues
- name: Helena Sgarbi de Oliveira
- name: Isabella de Morais Santos
- name: João Pedro Miranda Fernandes
- name: Lucas Pietruszynski
- name: Mariana Martins Meyer
- name: Mateus Possa Tonini
- name: Murilo Pompeu Brandalize Nascimento
compiler: Diullye Miola
#primeiro o mês, depois o dia e depois o ano
date: "03/28/2022"
editor: Rafael Tavares Juliani
publisher: Editora Moan
publisher-place: Foz do Iguaçu - PR, Brasil
page-navigation: true
reader-mode: true
sharing: [facebook, linkedin]
sidebar:
title: "As funções trigonométricas circulares e hiperbólicas"
logo: img/capa.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
tools:
- icon: card-image
text: Capa Animada
href: img/CapaAnim.webp # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
- icon: bi bi-git
text: Alterações e Versões
href: https://gitea.livro.online/editoramoan/jean-jogos-brincadeiras/commits/branch/main
- icon: envelope-open-heart
href: https://livro.online/doacao
text: Doar
- icon: printer-fill
href: index.html#versão-impressa
text: Versão Impressa
- icon: book-half
href: https://livro.online
text: Outros Livros
navbar:
logo: img/capa.jpg # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
logo-href: img/CapaAnim.webp # precisa ter esse nome e estar nessa pasta. Mas a Editora Moan vai gerar essa imagens para você, então não precisa alterar nada aqui.
comments:
hypothesis:
theme: clean
openSidebar: false
chapters:
- index.qmd
- autores.qmd
- apresentacao.qmd
- introducao.qmd
- geracao_alpha_versus_geracao_millennials.qmd
- aula_on_line_como_eu_nao_gosto_de_aula_on_line.qmd
- a_volta_das_aulas_presenciais.qmd
- rolima.qmd
citation: true
bibliography: referencias.bib
csl: _extensions/moan-livro/universidade-estadual-de-alagoas-abnt.csl
google-scholar: true
format:
moan-livro-html:
theme:
light:
- cosmo
- _extensions/moan-livro/custom.scss
- estilos.css
dark:
- superhero
- _extensions/moan-livro/custom.scss
- estilos.css
format-links: false
Executable
+3
View File
@@ -0,0 +1,3 @@
e-mail: "[[email protected]](mailto:[email protected])"
whatsapp: "[+55 (45) 9 3505-0721](https://api.whatsapp.com/send?phone=5545935050721)"
+34
View File
@@ -0,0 +1,34 @@
# Capítulo 3: a volta das aulas presenciais {.unnumbered .hidden}
```{=html}
<script src="scripts/pintarTela.js"></script>
<div id="conteudo-capitulo">
<h1 class="cap_titulo">Capítulo 2</h1>
<h1 id="titulo">A volta das aulas presenciais</h1>
<p class="unidade" id="3P1" title="3P1">Amanhã voltam as minhas aulas presenciais, confesso que estou muito animado para deixar o meu quarto/sala de aula e retornar à escola, rever meus amigos e os meus professores. Por mais que eu já conversasse com o Heitor pelo celular, o Luís não mexe muito no celular, então não tive muito contato com ele.</p><p class="unidade" id="3P2" title="3P2">Com a gincana que eu, a Júlia e nossos pais fizemos, eu percebi que eu me diverti bastante sem o celular, então agora que eu fui entender um pouco o Luís... Não precisamos do celular para nos divertirmos (se bem que ele exagera um pouco).</p><p class="unidade" id="3P3" title="3P3">Ontem o Heitor me mandou uma mensagem para eu ir na casa dele conversar, jogar e brincar. Eu aceitei e às quatro horas da tarde, eu estava lá. Nós jogamos e brincamos muito, fiquei feliz sabendo que ele também começou a soltar o celular um pouco, então resolvemos fazer um carrinho de rolimã. </p><p class="unidade" id="3P4" title="3P4">Como eu já tinha experiência no assunto, ensinei ele a fazer o carrinho. Mas, fiz errado novamente... E como descobri isso? Da pior maneira possível, quando fomos andar, o carrinho se despedaçou e nos ralamos inteiros. Aprendi outras lições: eu não tinha tanta experiência assim em carrinhos de rolimã e tomar banho quando se está ralado dói muito.</p><p class="unidade" id="3P5" title="3P5">Eu já ia me esquecendo, lembra que eu disse que minhas aulas voltarão? Então, vejo que tem um lado bom e um ruim. O lado bom é que vamos finalmente voltar à escola e aprender de verdade e o lado não tão bom assim, é que eu terei menos tempo para jogar o “Meia no espaço”. Diz a minha mãe que isso é ótimo para eu viver o mundo fora da tela do celular e do computador. </p><p class="unidade" id="3P6" title="3P6">— Você poderá brincar com seus amigos e aprender muitas coisas novas. Fazer os experimentos de Ciências que você tanto gosta presencialmente. A escola vai te fazer muito bem. Ela sempre faz.</p><p class="unidade" id="3P7" title="3P7">Parei para pensar e minha mãe estava certa (as mães sempre estão). Eu acho que depois de ter tido um ano inteiro de aula em casa acabei esquecendo da importância da escola. Além do mais, meu celular precisa descansar um pouco mesmo. E terá aula amanhã, ou seja, eu vou testar isso.</p><p style="text-align: center;" class="unidade" id="3P8" title="3P8"><em>___Depois da aula___</em></p><p class="unidade" id="3P9" title="3P9">Na aula, ou melhor, no parque, nós brincamos de barata no ar, os únicos que não foram pegos foi o Luís e eu. No final do parque o Heitor falou:</p><p class="unidade" id="3P10" title="3P10">— Nossa, como você é bom nessa brincadeira hein!?</p><p class="unidade" id="3P11" title="3P11">E eu respondi:</p><p class="unidade" id="3P12" title="3P12">— Obrigado, eu gostei tanto que nem senti falta do meu celular. </p><p class="unidade" id="3P13" title="3P13">E o Heitor surpreso respondeu:</p><p class="unidade" id="3P14" title="3P14">– O QUE? Aahh já entendi, é uma piada, né?</p><p class="unidade" id="3P15" title="3P15">E eu orgulhoso falei: </p><p class="unidade" id="3P16" title="3P16">— Não, não é uma piada! (será que eu exagerei?).</p><p class="unidade" id="3P17" title="3P17">O meu pai ao saber disso ficou feliz, afinal ele não gosta que eu jogue o dia inteiro e agora ele não para de falar:</p><p class="unidade" id="3P18" title="3P18">– Viu só, fazer aquela gincana foi muito bom para você.</p><p class="unidade" id="3P19" title="3P19">– Eu sei pai, é a quarta vez que você fala isso só hoje!</p><p class="unidade" id="3P20" title="3P20"> Eu estava no meu quarto jogando “Meia no espaço”, mas eu estava meio entediado, então eu ouvi na rua duas crianças brincando. Como ainda não estava tarde, pedi<sup><a href="#footnote-2" id="footnote-ref-2">[1]</a></sup> para minha mãe se eu podia ir também:</p><p class="unidade" id="3P21" title="3P21">– Oi mãe, você deixa eu ir brincar lá fora?</p><p class="unidade" id="3P22" title="3P22">– Claro, meu amor, só toma cuidado com os carros.</p><p class="unidade" id="3P23" title="3P23">Quando eu sai de casa, logo vi as crianças da rua brincando e logo perguntei se eu podia brincar com eles. </p><p class="unidade" id="3P24" title="3P24">— Oi, meu nome é Jean... Posso brincar?</p><p class="unidade" id="3P25" title="3P25">— Oi, claro! meu nome é Bruno.</p><p class="unidade" id="3P26" title="3P26">— Oi, meu nome é Roberto.</p><p class="unidade" id="3P27" title="3P27">Eles estavam brincando de pega-pega e o Roberto me disse a regra deles: </p><p class="unidade" id="3P28" title="3P28">— Jean para brincar tem uma regra: só pode ficar na calçada ou na grama (afinal, é perigoso brincar na rua).</p><p class="unidade" id="3P29" title="3P29">– Beleza parece fácil, Roberto.</p><p class="unidade" id="3P30" title="3P30">Comecemos a brincar e percebemLine truncated
<canvas class="unidade" id="3P43" width="230" height="400"><img srr="img/jean-online.png" alt="Desenho a m~ão do menino Jean fazendo o sinal de valeu com o polegar da mão esquerda. Aparece escrito 'é' duas vezes, um 'é' de cada lado do rosto, mas não em cima do desenho do Jean." /></canvas>
<p class="unidade" id="3P44" title="3P43">Qual parte da minha história você mais gostou?</p><p class="unidade" id="3P45" title="3P44">Qual nota você atribui para o livro? </p>
<p class="unidade" id="3P46" title="3P46">No próximo capítulo, você poderá andar de carrinho de rolimã em realidade virtual (VR)! </p>
<ol style="clear:both;"><li id="footnote-2"><p class="unidade" id="3P47" title="3P46"> No Paraná, muitas vezes o verbo “pedir” tem o mesmo significado que o verbo “perguntar”. <a href="#footnote-ref-2">↑</a></p></li></ol>
</div>
<script>
var el = document.getElementById('3P43');
var img_url ="img/jean-online.png";
var programa = new pintarTela(el, img_url);
</script>
```
+62
View File
@@ -0,0 +1,62 @@
# Apresentação {.unnumbered .hidden}
```{=html}
<script src="scripts/pintarTela.js"></script>
<div id="conteudo-capitulo">
```
::: {.grid .grid_titulo}
::: {.g-col-3}
::: {.fig_titulo}
![](img/phone-2655101_1280_pixabay_iamwahid.png "Desenho dois braços e um celular na mão esquerda. A mão direita faz como se estivesse passando conteúdo no celular.")
:::
:::
::: {.g-col-9}
# Apresentação {.unnumbered}
:::
:::
```{=html}
<p class="unidade" id="BP1" title="BP1"> Lembro-me de quando ganhei o meu primeiro celular, eu tinha 13 anos e ele não tinha acesso à internet. As músicas e fotos eram enviadas de um aparelho ao outro por meio de <em>bluetooth </em>(nome inglês dado a uma tecnologia de comunicação sem fio). Hoje, nem todas as crianças conhecem essa tecnologia.</p>
<p class="unidade" id="BP2" title="BP2">Há dez anos em sala de aula, percebo como as crianças estão, cada vez mais cedo, tendo acesso a esse e outros tipos de aparelhos eletrônicos, preferindo, muitas vezes, “brincarem” com e no celular do que com atividades ao ar livre e com pessoas ao seu entorno.</p>
<p class="unidade" id="BP3" title="BP3">Assim, este livro surge, a partir de discussões em sala de aula sobre o uso do celular, jogos eletrônicos e brincadeiras. As crianças (autoras e autores) desenvolveram a história a partir de estudos relacionados ao mesmo. Portanto, “qualquer semelhança com a realidade (não) é mera coincidência”.</p>
<p class="unidade" id="BP4" title="BP4">Possivelmente você se identificará com algum personagem da história, mas, muito além disso, esperamos que você aprecie a leitura, se divirta com as histórias de Jean (uma criança fictícia) e pratique alguma brincadeira com sua família. </p>
<canvas class="unidade" id="BP5" width="230" height="400"><img srr="img/jean-online.png" alt="Desenho a mão do menino Jean fazendo o sinal de valeu com o polegar da mão esquerda. Aparece escrito é duas vezes, um é de cada lado do rosto, mas não em cima do desenho do Jean." /></canvas>
<p class="unidade" id="BP6" title="BP6">Você também pode personalizar o seu livro, deixando sua opinião e colorindo os desenhos.</p>
<p class="unidade legenda" id="BP7" title="BP7" style="text-indent: 0px; font-size: 0.8em;"><span style="font-weight: bold; font-variant: small-caps;">Ilustrações </span>(desenhadas a mão): <br />
<a href="http://livro.online/autor/demitry-santos" targe="blank">Demitry Wallace dos Santos</a></p>
<p id="BP8" title="BP8" class="unidade" style="text-align: right; margin-top: 50px;"><a href="http://livro.online/autor/diullye-miola/" targe="blank"><img src="img/rabisco_Diullye.png" alt="Escrita Professora Mestra Diullye Miola"></a></p>
</div>
<script>
var js_el_um = document.getElementById('BP5');
var img_url ="img/jean-online.png";
var programa_dois_criado = new pintarTela(js_el_um, img_url);
</script>
```
+46
View File
@@ -0,0 +1,46 @@
# Capítulo 2: aula on-line, como eu não gosto de aula on-line {.unnumbered .hidden}
```{=html}
<script src="scripts/pintarTela.js"></script>
<div id="conteudo-capitulo">
<h1 class="cap_titulo">Capítulo 2</h1>
<h1 id="titulo">Aula on-line: <br /> como eu não gosto de aula on-line</h1>
<p class="unidade" id="2P1" title="2P1">Minha mãe diz que eu preciso estabelecer horários para jogar para não esquecer que eu sou um estudante do 5º ano. Ainda mais que a escola está literalmente dentro da minha casa.
<p class="unidade" id="2P2" title="2P2">Ano passado (2020), minhas aulas aconteceram on-line por causa da pandemia. Tivemos aula por videoconferência, então, o meu quarto era a minha sala de aula. Sinceramente, apesar de gostar de me comunicar pela <em>internet</em>, não me dei bem com esse tipo de aula, mas respeito quem gostou.
<p class="unidade" id="2P3" title="2P3">Eu não gostei, porque a professora me pegou comendo durante a aula.
<p class="unidade" id="2P4" title="2P4">– Estou em casa, mas não posso comer?
<p class="unidade" id="2P5" title="2P5">– Não Jean, precisamos respeitar os mesmos horários da escola.
<p class="unidade" id="2P6" title="2P6">– Eu acho isso um desrespeito com minha fome! Falei comigo nos meus pensamentos.
<p class="unidade" id="2P7" title="2P7">Como você já sabe, eu, Jean, não gosto de aula on-line. Gosto mais de ir para a escola, estudar lá. Não tenho muita concentração em casa, porque é espaço em que eu fico conectado com meus amigos e para jogar. Além disso, é muito melhor estar com a professora por perto.
<p class="unidade" id="2P8" title="2P8"> E que graça tem ficar em casa se não posso ficar “beliscando” alguma coisa? Ou ficar deitado na minha cama enquanto escuto a aula?
<p class="unidade" id="2P9" title="2P9"> Eu assisto as aulas pelo meu computador, mas ainda tenho meu celular e como não resisto aos meus jogos, ele fica conectado também. Mas, mesmo com a distância física da escola eu fiz novos amigos: o Luís e o Heitor.
<p class="unidade" id="2P10" title="2P10"> O Luís é muito inteligente e gosta de brincar de amarelinha. Sempre pede para a professora de Educação Física passar esses tipos de brincadeiras para fazermos em casa. Ele diz que é “anti-tecnologia”, acredita? Eu não aguentaria nem uma hora sem tecnologia.
<p class="unidade" id="2P11" title="2P11"> Não sei como nossa amizade começou, acho que foi por causa dele sempre querer ajudar os outros. Teve um dia que ele se ofereceu para ajudar o Heitor, que não estava indo muito bem nas aulas de matemática. Ele mandou um áudio no grupo da nossa sala:
<p class="unidade" id="2P12" title="2P12"> – Oi Heitor, eu sou o Luís, você quer ajuda com a tarefa de casa? Percebi que você não estava entendendo.
<p class="unidade" id="2P13" title="2P13"> Fiquei bem pensativo e ofereci ajuda também, já que eu estudava na escola desde bebê e conhecia a professora Lucélia.
<p class="unidade" id="2P14" title="2P14"> Durante as nossas conversas para estudarmos para matemática, o Heitor disse que gostava muito de jogos on-line, então, além das tarefas, começamos a jogar juntos também.
<p class="unidade" id="2P15" title="2P15"> Além disso, nós três, temos uma coisa em comum: Ninguém gosta de aula on-line.
<p class="unidade" id="2P16" title="2P16"> Eu contarei a você uma coisa que aconteceu comigo durante a aula. Eu desliguei a câmera (pelo menos eu achei que tivesse desligado) e, de repente, a professora Amélia, de inglês, falou:
<p class="unidade" id="2P17" title="2P17"> – <em>Didn’t you lunch today, Jean?</em> (Você não almoçou hoje, Jean?)
<p class="unidade" id="2P18" title="2P18"> Eu fiquei com muita vergonha, todos riram de mim. Mas eu superei.
<p class="unidade" id="2P19" title="2P19"> Teve um outro dia que eu estava na aula, mas não conseguia prestar atenção no que a professora falava, olhava as notificações no meu celular e nada de conseguir entender o conteúdo da aula. E bem nesse dia a professora pediu para eu explicar o exercício:
<p class="unidade" id="2P20" title="2P20"> – Jean, explique o que é para fazer na atividade 15, por favor.
<p class="unidade" id="2P21" title="2P21"> – Na quinze? Bem essa que eu não entendi, professora.
<p class="unidade" id="2P22" title="2P22">– Eu não acredito que você estava jogando de novo, senhor Jean!
<p class="unidade" id="2P23" title="2P23">A professora parecia bem brava, eu percebi que exagerei um pouco e acabei ficando de castigo. Aprendi a lição: não importa o ambiente, hora de estudar é hora de estudar!
<p class="unidade" id="2P24" title="2P24">Ano passado não foi fácil, mas meus pais sempre me ensinaram que tenho que ver o lado positivo de algo que não me agrada, isso faz a toda a diferença. Então eu fiz uma listinha:
<img style="margin: 30px auto; display: block; min-width: 260px;" class="unidade" id="2P25" title="2P25" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAJLCAYAAACR5y5VAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAO8mSURBVHhe7L0LvFVlet+/Jmn/TdsIguZStcYATjQ61SrgFB0TTARkrNGIAzpp4kQCgxon1jtIJhPwgpcZxzoKVBNnYgRHjMYIIjTYihBFtNrR0Y5grXVM06qgpk3v+7++z1m/zXNe1tpn73P2OWefs5/v5/Oetda73svzPu/9stf5VC0nC4IgCIKgq/iR4hoEQRAEQRcRA4AgCIIg6EJiABAEQRAEXUgMAIIgCIKgC4kBQBAEQRB0ITEACIIgCIIuJAYAQRAEQdCFtPU7AAT1qU99qnjqefbB/8iPlI835M67JRwZUeUmxbuTm//3//6fmR/90R81+//7f/9v/Z3e/+///b+zv/W3/pYZz//5P/+nbhQO4A9IF37+v//v/6uHL4hH8eL/f/2v/5X9nb/zd7K//bf/ttn7+JE51ZGPDyQbYeFW8eEG+b1RGiUfbr2cilsQJn5wgx8vn3fXLD6vgDAIH0P8xIGd8svH49ONOwxghw65Kl3SCXakQWGhY4WnvONZaUdH2KEPhb9nz55s3Lhxdj9Q3n777ezHf/zHs7/7d/9u9vf+3t+ry/I//+f/NBmJV3a6gvTm7ZplIH6HgqGWj/gw5C9Xyh6ozASNUX4B99QX1R/qFKBbn5+4wahOqb5jVHfRv8IJho9B+xBQWnDIaGU2z3ovu7KC4MOg0AiFlfpJ3firR+4Uhp6JT4WWe+x5T0EFnvU+hXf//b//d2vc6VhA4REGBf7HfuzHrCNoBH6oJEAHAZKDsHiPAey45wrcU9m4qsJVgZv/9t/+m8n8N3/zN/XKjD2y0nliGKz8/b//9ysbTNxjkE16BGSSXK2iMIXCJm2EKVl8fGm+4L8sfg1ycJ82QAqvkd6AMHCDewx68jCI+E//6T9lH374Yfbqq69mL7zwQrZr167s3Xffzd5//31zg86VRvyPHTs2+4mf+InskEMOyY4++miz/8xnPpP97M/+bPZTP/VT2T/4B//A3pdBeSM90nmabsVTpo++qNJjpzGQNA4G6vQ6CdoV9OQHnlX5+z/+x/+ot2Okg3agLD2kE3BLOBp0DzQfkEt5ytXXb9U75PH2ah+E6jmGOks4aju8v25mSAYAZJYKBca/G2hBqUKFhPDJbB+P4ueaxq93aQEhrI8//jj79//+32cvvvii2e3evTvbu3dv9sknn1ij/8EHH5gbBgFAWIRDpWAmOH78+Ozggw/OxowZY4MBOOyww7Ljjz8++/mf/3lr5NXpeyjIFGDCogBLRnXaVYUadz/84Q+z73//+/b8ve99L/uP//E/WieErP/1v/5Xk/uv//qv64MO/CCvBivIisw//dM/bQMB4HrkkUdmJ5xwgl3pvFJU+fqTv8igNArCaSYs/OFO/tMr71I9CfIY1JDQwChO7IBw8O/DoHN/5plnsueee86eX3rpJTOKU5C30hUNKu/RO4MBP3BMQYZjjz3WysikSZOyyZMnmxGUISHZQelJ5S0jldXrqxmaddcOUlmbYbDkQ9+SRx0keseuGb33heo98g80Dcha1onTRuzYsSP7t//232bvvfeetQ20a748Uudpvw466KDsiCOOsLrPALVqUNpfVM9IKzqULjWwaATumnEDisfX8W5kyD4FrIqSziQVPQXuo48+slmplom4qjPVrItGFKOCTEPKEisccMAB1sCWdaJqDEGVkrhVwMDLhj2dPZ38s88+a+Yv//IvrdOkw09R4+5ny6RZhhE1na2XQ+CXivSTP/mT2XHHHZf98i//sjXwhx56qL1n8CCQVfISVtrIMOt8+eWXs61bt2bbtm3LXn/9dZMbVOgBPyx108mjQ4VBZaDiszKAYUBTBQ3CgQcemE2YMCH73Oc+l332s5+1DgqQnXD7g9IHyKN0Cs2kKS/wH/7Df7DBzVtvvWX2yEynij+VE/IEeRjQ0IAx6ELX6FyNGPce5RUypI0EcfzFX/xFtmbNGuv8kcHDAGrixInZiSeemP3CL/yCxUXcCpMGjTSpXqBzyhb5RUMMP/jBDyytbCX4xpiwWRUQ/+Sf/JNs7ty52UknnWSDSCE/hI8epIsypPP+NIY+v0R/wkkZiEwphNWOcAT5qPKlcGmjyE/qs+woJ+QhdR8os//5P//n7K/+6q+sbcOtBtjUJ6CTJR+pW2Ig8qd6pJN/+umn7X7Dhg3W+SMjbVSzUJeQeerUqfZ87rnnZqecckq9zeov6BR5qRs+vfQLyA20v+iQ9pk6j27lR20lg2LaIuRBrz/zMz9Tn8AI8qpRnegGBjwAwLsyintlRBVk2CuvvGJXKgGjT6ABpaEjY1sRiYZdjSHLp2Q6mU/l+Yf/8B9aw8vsqZFM6hhpcLdv3273f/7nf55t2rTJRsMeCtG0adPsnqVaKiodIHGpEqvjozAziKFi0TGTVtJIujFAZ80SsQY6gsGEKhcV6/TTT7eGvgw6DfjTP/1TM5qJCuQDwvu5n/s56wCZuUtPDKBUEdA9nSeVCplpGLRqwD3Q2TLD9Z2SOPzww+1KZ3TyySdnv/RLv2TP5EEVvgyVgSw0UpSbN954w3SGaaacaHAIpCuFdFNGgEEMnHrqqdkv/uIv1htkDw04+v2X//JfZk899ZStngh0CjNmzMjOPvtsy6+00WkVygnl4/nnn7c0o4f/8l/+S/G2N+j485//fDZz5kybofmVGQ00lM/qvKqgPGqliMZXMPjQqpAPvwzFSd76+tcor7WqhfuqOqsBOOUC/ash14oVA9tGcYA6GvDy9VUWBe4IA3+pe/TGoJBBOPWEcqvBajNQZhigkodMBCiXbAVVgRyATF6eNC20uX/2Z39mg1YNMrXyB9QV2gitRmoAQhtLG4bemajR3jAh8mUfKP//9J/+Uyv7DHzT7U4vDzJLf1X5zMQF/VHuKf+UfVDb2SyUVfTIBEVtN+msKr9en5LXlw/puRlwC2kZAYUlN8o74uda5qfdNDUAoIIhFJUMIaUgkKAEI4EpVOrYgQqwefNmy0js6VBSKPTM4JkZMSqmIlMgNZsmTgohhY4GiYYCQ6OeFkQPgwI6JVUgOiUad0aGpItZ8uOPP27v/tW/+lf7yUaa6UApOMzM/9E/+kc2s4OBNu5AA0ucVM4tW7bYoIP9Y18xgUJMpfrN3/zNbPr06WaH/CtXrszuv/9+e/ayU7gZlf/qr/5qdswxx5gdHX87YKb6zjvv2KCNAROG0TiNQwoDI6Az/MIXvmCdI/ks6GjIY98ZMfCg8YR169ZZ+WHglK68UEaAASADPzryo446yvKcOChHgrJJGaK8UAaRmTiQm5WOFHRNY3bOOefYoEnl+Y/+6I+ye++9tz4YAvR63nnnZV/84hftmaVR32AQr+qH6oiuKVX2gK44U8AAhJmb+Df/5t/06qTpABkwom+gvDCYQQ4GbRqgUsY0M6XsUBd27txpDS/2dFrULT841SoKMy2MVq3UsNJ5sKIi3VNHSZNvMHlGHzIiHZAQP3pnwEnjz2occqkccCU/NQBgcIJMdDyaCVL+6EiRkTpPx4Y7D/6RSbr3cukq2dCh3MmPBi3I+dhjj2UPPfSQlStBR0r9BXRDeaV84pf8YEBHOpUXlH8/uKb9OeOMM6zuAINrvwKETCBZJZ90zirEk08+mf3BH/yBzfx92KSLOkPZJXzaybKBr4f6Ql5QhxgEA3WJgQ/gf9asWVYnaGtBgwnpClmlP5/vlEkGvH/yJ39ikzAGG2lbiB9NXCiP6FJtseoy5ZayQdp9/6BBCYNlBirUEbXngFzSp+QD7KU39Ule36SBcoThvS/vHt4D7tUuCN2ndUUyDAZNrwBIKSAvXKUMoBNTh/qv//W/Lmx7RsSCDKMTpVNiWeYf/+N/bPY805jQcBAuiUYRPgOQwRd2MpbOkj1YoEPimQ6KDoMKmc6sgQJDo05hoEGlwqXQUFB458yZYzNwvzzsZajK6EbgDwO+8AOy08AzEGBAANrDB2RWY4JfGmu/dIdOqXzz58/vtU8sFG8rSO9Kq5cZeyr1m2++mT3xxBM20IN/9+/+naUlhUHUBRdcYJUPdOKeiosfwmAV47XXXjN7Ly/5RnmhwaKTZaYOn/70p0023+E3AxWa8xzqTDdu3GhXZh2qqHQcxKUyhns1BMhz2mmnZZdeeqmlS0gnvvyCr8zevj/41QwazEcffdRmdzTMQgMkZPzyl79sKwNAPSWtNLBaLaIceV0jH4NI8lr53miwrfQw+KKDYtCBTsirFHW4QuGjV2Z6QNmn06ID6Gv2LD0rz8pgYkFZY+bHqhSzQQYrID2B6rZkkk7IT+7Txp127r777rN7yq4GwczamWwwkNTgAyijyKp4dE/4ylMGvH71QAN7dV60R2z5UM/RtwcZpVvCpTysXr06+xf/4l/0agu12nXhhRfaREGzYfyr7CqdSjs6JExf/zXwpF4w8GEApKV6OuXZs2fb/a//+q9b+SOMFMqU+gtW1iibvtOng6YcaSWTdo0VEtpodII8af5jh2wMxBg8ahDJ1UO+zJs3Lzv//PNtoOjD4V66lF71zvd7KbRltH0MUH06yHvkZRBI29GIMhl0bSdNDwBwJiWkgjCzZ6b2yCOP2BJtCsqisFIAqHQoWiPCwYIMoHOnAiCTlvbpZPxsycPI9ayzzrJ7GkwaMiE1cfWNhG8MmoUwfAYTRpluaaiBxoBBFZ1rOgsGdaI0Nr/9279dTwMo3P6Cf4yH9EvuNGyNwGm8WFFR58qSIw0J4O9XfuVX7J4rI3nLine truncated
<img style="margin: 30px auto; display: block; min-width: 260px;" class="unidade" id="2P26" title="2P26" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAf0AAADvCAYAAAD4pQ2sAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAHDWSURBVHhe7d0JnGXpWdfxM+ISlUWUTUE2uycwtoosot0ihERiT1AaiGNAZDISqpFAZiKMskwwkAEDQ7RbAZlRwQ4i0klgWNKtRFAJPShEEdOOONXghiIqm6K4X9/vqfpXv3Xq3up7q6unl/v8Pv32Ofc97/K8z7sv59Rds8ZQFEVRFMUdzy/bvhZFURRFcYdTnX5RFEVRrAnV6RdFURTFmlCdflEURVGsCdXpF0VRFMWaUJ1+URRFUawJh/LKniDuuuuu7V9bv/tgf9kvmz+2iLverXBiwiI3U3p3cfP//t//G807vMM7jPb/9//+351nef6///f/Hn75L//lo+n5P//n/+yYhAP+IF38/Mpf+St3wg/iSbz8/6//9b+GX/WrftXwK37Frxjt+/jJPNVRHx8im7C4TXzckL83SWPk47aXM3EHYfLDDT+9fL27ZenzCsIQPiN+cbBLfvXx9OnmjgE7OnRNuqITdtKQsOg44SXv/E7a6YgdfST8n/u5nxve9V3fdby/Xv7Vv/pXwzu+4zsOv/pX/+rh1/yaX7Mjy//8n/9zlFG8scsV0VtvtyzX4/fZ4NmWT3yM/HVV9pAyU+xP8gvu1ZfUH3UKdNvnJzdM6lTqO5O6S/8Jp7g5HPp7+tPCInOTwX7neezmZX4fhoISEtbUz9RNf+2Ju4SR3+JLQXXP3nOFE37n+RTP/vt//+9jg64zQcIThkL+nOc8Z2z894MfFQM6BUQOYXnOgJ17V7hXwVxTyRbBzX/7b/9tlPmXfumXdiowe7LqMBkDlF/7a3/twkaSe4Zs0SPIFLlWJWGGhC1twowsfXzTfOF/XvwZ2HA/bXQS3n56gzC44Z6hpx4Dh3/7b//t8LM/+7PD5cuXhx/+4R8erly5MvzkT/7k8J//838e3dB50sj/u7zLuwzv/u7vPvym3/Sbhg/+4A8e7X/bb/ttwwd8wAcM7/me7zn8xt/4G8fn81DepCc6n6Y78czTx7VYpMdbjetJ440gHd2thHaFnvrB5qL8/R//43/stGPSoR2Ylx7pBLfCyUD7evOBXMlT175+p96Rp7dP+xBSzxl1VjhpO3p/68oN7fRlUAoC0z+73sKxiBQM4cvgPp7E7zqNP8+mhUJY/+W//JfhX/yLfzH8o3/0j0a7H//xHx9+/ud/fviv//W/jg39z/zMz4xudPwQlnBUBDO+X//rf/3wbu/2bsM7v/M7jwMAvM/7vM/wIR/yIcM999wzNuzp6HsUXoVWWAptZExHvaggc/fv/t2/G55++unx99vf/vbhX//rfz12PGT9T//pP41y/+Iv/uLOQIMf8maAQlYyv9d7vdfY+cP16NGjw4d+6IeOVx3WlFS4g+QvGZLGIJxlwuKPu/ifXj2b6inIY6Tx0KgkTnYQDv99GDr07//+7x/+wT/4B+Pvf/yP//FoEmeQt9GVRtRzejcA6AeLU8hw7NixsYwcOXJk+PAP//DRBGUoRHYkPVN55zGVtdfXMizr7jCYyroMN0o++o486RTpnd0yer8Wqffkv940kHVex62N+KEf+qHhR37kR4Z//+///dg2aNf68qjOa79+w2/4DcP7v//7j3XfoHTRQPSgpJ5JKx1GlxlM7Ad3y7hB4unr+Lpxw7/Il8oxnTEmWoXsF37hF8bZZ5aAXNOBZnal4WRSeDWelk/xTu/0TmOjOq/jTAOIVERxp1Chl429Dl7H/gM/8AOj+amf+qmxo9TJT0mD3s+KpTnGyFkH28sR+FV53uM93mP4Hb/jdwwveMELxkb9vd/7vcfnBgyBrJFXWNOGxezyn/yTfzK89a1vHS5dujT883/+z0e5kYIOfixj69jpMGGoACq7FQDGIGYRGoFf9+t+3fCBH/iBw0d91EcNv/t3/+6xUwLZhXsQkj6QJ+kMmTErL/iX//JfjgOan/iJnxjtyawj5S/lRJ6QxyBGo2WgRdd0nobLfU/yigzThkEcP/iDPzh8y7d8y9jhk6HHoOm3/JbfMnzYh33Y8NEf/dFjXOJOmBoxaUq9oHNlS35pfPHMM8+MabVN0DfAwjb7D7/n9/ye4Y/8kT8yfORHfuQ4cAzxI3x6iC7mEZ0fpAHs8yscJJwp1yPTFGEdRjhBPqZ8JVxtlPxUn2OnnMhDdR/K7H/4D/9h+Omf/umxbeM2g2r1CTpW+ahuheuRf6pHHfvf/bt/d7y/cOHC2OGTURu1LOoSmX/X7/pd4+9P/uRPHn7v7/29O23WQaFT8qobfXr1C+SG9pcOtc/qPN3GT9pKA2FtEXno9f3e7/12Ji1BXu1XJ+50Dtzp85bMcR/lL0Im/eiP/uh4VfCNMqHR1LjJzFVE0ZinAbQ0KqNluArzm3/zbx4bW7Ok/WRKZ6iRfeqpp8b77/3e7x2+53u+Zxz19ig4x48fH+8tw6qcOj1xpeKms1OADVxUJp2xtEqjdDPQQVv+zeAmGECkQqlMv//3//6xcZ+HjgLf8R3fMZrMOAP5ILznPve5Y6dnhh49GTSl8NO9DlNFIrPGIKsD7qGDNZPtO6Lwvu/7vuNVB3TixInh+c9//vhbHiyiL0PzIIuGSbn5sR/7sVFnzDLlJANCSNcU6VZGYOCC3/f7ft/wMR/zMTuNcI9Gm37/8l/+y8Pf/tt/e1wlCXSKj/u4jxtOnTo15te0oVkV5UT5+If/8B+OaaaH//gf/+P2093Q8Yte9KLhhS984TgT61dgMrhIPqfDWoTymBUhDW4w4MjqTx/+PBKnvO3r3355ndUr7hfV2Qy6lQv6T+OdlSmD2f3iQDoX9PJdqywG7oTB39Q9vRkIGnirJ8ptBqjLoMwYlMpDg3/l0jbPIsgBMvXyTNOizf2u7/qucaCagWVW+KCuaCOy6phBhzZWG0bvJmfaG5OgvuxD+f+Df/APjmXfYHe6ldnLQ+bob1E+m6zQn3Kv/Cv7SNu5LMoqPZqUpO2WzkXlt9dn5O3LR/S8DNxiWkaQsOImeSd+13l+DpN9O32ViiAqFsGiFEQ43iOkgpTOHAr9W97yljHz2OtEpijoZupmQEa/Kq9CmFmzOBU8BU0jpHFgNOTTwtdjIKAjSqXREWnQjQCly2z4O7/zO8dnf+fv/J09skmzTlNhMQP/7b/9t48zOFxvgw6NqjhVyO/7vu8bBxr2g/vKCAVXRfrjf/yPD8973vNGO/J//dd//fDX/tpfG3/3sivQRt+f9EmfNPzW3/pbRzud/WFgRvpv/s2/GQdqBkmMUbcGYYrBEHSA991339ghyuegc5HHfQdksKHBxBvf+Max/BgsTVdYlBEY9Bns6bw/6IM+aMxzcShHQdlUhpQXZZDM4iC3FY0pdK0B+8RP/MRxoJTy/E3f9E3DX/krf2VnAAR6/cN/+A8Pf/SP/tHxt2XPvpEQb+pH6kiuUxbZg66cETDoMEMLf//v//1dHbNOzyCRvqG8GMCQw0Atg1JlLDNQZUddeNvb3jY2tux1VOpWPyDNaokZFZPVqTSmOgwrJ9G9OipNfSPpN33EhOkgRPz0bpCpwbfqRq6UA1f5mU7fgIRMOpvM+JQ/nScZ1XmdGXc9/JMpuu/lyjWy0WHcxU8GKuR88sknh2/91m8dy1XQeaq/oBvlVfnkV34YxEln8kL57wfU2p+TJ0+OdQcG1P1KD5kQWSNfdG614eLFi8M3fMM3jDP8PmzpUmeUXeFrJ+cNdnvUF3mhDhn4Ql0y2AH/f+AP/IGxTmhrkQFEdEXW6K/Pd2XSIPfbvu3bxomXAca0LeQnkxXlkS7TFqcuK7fKhrT3/UMGIgbIBifqSNpzkCv6jHxgH72lT+r1LQ3KEeN5X957PAf3aRdC7qd1JTIcNtec6UcRiFPXKAA6rnSif+/v/b1t262Rb5BJOk4dkSWX3/k7f+do77cGRGMhXAmV+F7pZOgLuMzUQdpThU7Ib52STkIlnM6goZBoyBUAjahKNkXjoMC++MUvHmfa/dJvL8OizN0P/hj0BR5k16jr/A0CkD15kDkNCL8a6H5Zjk5VuJe97GW79n1D4l2F6D1p7WVmryJvbm4O3/3d3z0O7vBP/+k/HdMyxcDpUz/1U8cKh5yUV1n5EYbVin/2z/7ZaN/LK9+UF42UjtWMHHffffcoW9/JL4NK7HxGOtC/9bf+1ng1u0jl1FmIK2WM+1R+8nzsx37s8Dmf8zljukJ00pdf9BW4tz8I/aqFRvLbv/3bx1mcxjhkUETGz/qszxpXAKCeSqtGNatCylGva/IZOMrr5Pt+A+ykx4BLp2SgQSfyako62ZDw6dWMDsq+jkqjf61ZcvScPJuHyYSyZoZn9cmszwAF0RNStyNTdCI/3U8bdO3cX/2rf3W8V3Yz8DU7N8EweMyAA8ooWRNP7oWfPDXI7VcJMphPh6U9sp2jntN3DxmjW+EqD0888cTwF//iX9zVFmZV66Uvfek4Ocisl/+U3aQzaadDYfb1P4NN9cJgx6Any/A64nvvvXe8//RP//Sx/AljijKV/sIKmrLZd/Q6ZeUoK5baNSsh2mg6Ic80/9mRzeDLgDEDR9ce+fKSl7xk+JRP+ZRxcNiH4z66jF7zrO/3pmjLtH0GpX065D15Dfy0HfsxT4ZcD4trdvoeJ+HTyM3gzcje9KY3jcuvUyhIAZXpKhrlZuR3o6B0HbpCT6Ys2+tY+llRjxHqH/pDf2i810hqvELU49o3DH0DsCzC6DNVGPN0q3GGBsBASoc6ne0iHacG5nM/93N30oCEe1D4Z3qkP3JLine truncated
</div>
```
Executable
+58
View File
@@ -0,0 +1,58 @@
# Sobre os autores {.unnumbered .hidden}
```{=html}
<div id="conteudo-capitulo">
```
::: {.grid}
::: {.g-col-3}
::: {.fig_titulo}
![](img/bat-25764_1280_pixabay_Clker-Free-Vector-Images.png "Desenho de duas raquetes (vermelha e azul) e uma bola de ping-pong")
:::
:::
::: {.g-col-9}
# Sobre os Autores {.unnumbered}
:::
:::
::: {.grid .destaque}
::: {.g-col-2}
![](img/teacher-309533_1280_pixabay_Clker-Free-Vector-ImagesBranco.png "Desenho de uma única cor (branca) de um professor")
:::
::: {.g-col-10}
```{=html}
<p id="AP1" title="AP1" class="unidade"><span class="versalete">Diullye Miola,</span> nasci em 06 de julho de 1995. Sou professora e apaixonada por crianças. Sobre minha infância, aproveitei muito e, embora eu não tivesse tanto contato com jogos eletrônicos, aprendo hoje com meus alunos.</p>
```
:::
:::
```{=html}
<p id="AP2" title="AP2" class="unidade"><span class="versalete">Demitry Wallace dos Santos,</span> nasci em 17 de novembro de 2009. Sou uma criança que adora desenhar e criar desenhos. Além disso, gosto muito de jogos eletrônicos de aventura e exploração.</p><p id="AP3" title="AP3" class="unidade"><span class="versalete">Guilherme Bigilini,</span> nasci em 31 de maio de 2010. Sou uma criança muito feliz, sempre sorridente e minha brincadeira favorita é <em>ping pong</em> (tênis de mesa), sempre brinco no intervalo das aulas <em>on-line</em>. </p><p id="AP4" title="AP4" class="unidade"><span class="versalete">Gustavo Cosmo Rodrigues,</span> nasci em 24 de julho de 2011. Sou uma criança com muitas ideias e estudioso. Gosto de pesquisar sobre países e desenhar suas bandeiras. Em relação aos jogos, gosto mais dos eletrônicos.</p><p id="AP5" title="AP5" class="unidade"><span class="versalete">Helena Sgarbi de Oliveira,</span> nasci em 19 de agosto de 2011. Sou uma criança feliz e divertida. Minha disciplina favorita é ciências e quando estou com meus amigos gosto de jogar futebol.</p><p id="AP6" title="AP6" class="unidade"><span class="versalete">Isabella de Morais Santos,</span> nasci em 18 de abril de 2011. Sou uma criança animada e engraçada. Gostei de participar da elaboração do livro e me identifiquei com os jogos eletrônicos, que gosto bastante.</p><p id="AP7" title="AP7" class="unidade"><span class="versalete">João Pedro Miranda Fernandes,</span> nasci em 27 de agosto de 2011. Sou uma criança tagarela e sou feliz assim. Quando estou com meus amigos gosto de brincar de pega-pega e, em casa, gosto de jogos eletrônicos. </p><p id="AP8" title="AP8" class="unidade"><span class="versalete">Lucas Pietruszynski de Sousa,</span> nasci em 16 de dezembro de 2010. Sou uma criança que gosta de brincar e de praticar esportes, sendo que futebol é o meu favorito. Também gosto de jogos eletrônicos.</p><p id="AP9" title="AP9" class="unidade"><span class="versalete">Mariana Martins Meyer,</span> nasci em 20 de setembro de 2011. Sou uma criança criativa e isso me ajudou na hora de escrever a história. Adorei essa experiência. Gosto de jogar futebol com meus amigos e, também, gosto de jogos eletrônicos.</p><p id="AP10" title="AP10" class="unidade"><span class="versalete">Mateus Possa Tonini,</span> nasci em 15 de agosto de 2011. Sou uma criança criativa e gosto muito de jogos eletrônicos e de passar tempo com meus amigos brincando. Tenho sonho de conhecer a neve.</p><p id="AP11" title="AP11" class="unidade"><span class="versalete">Murilo Pompeu Brandalize Nascimento,</span> nasci em 19 de maio de 2011. Sou uma criança apaixonada por esportes e, no recreio, sempre peço para a professora se podemos jogar futebol.</p>
</div>
```
Executable
+34
View File
@@ -0,0 +1,34 @@
import os
import shutil
import yaml
def copiar_pasta(origem, destino):
try:
shutil.copytree(origem, destino, dirs_exist_ok=True)
print(f'Conteúdos de "{origem}" copiados para "{destino}" com sucesso.')
except Exception as e:
print(f'Ocorreu um erro ao copiar os conteúdos de "{origem}" para "{destino}": {e}')
def main():
# Ler o arquivo _quarto.yml
with open('_quarto.yml', 'r') as yml_file:
config = yaml.load(yml_file, Loader=yaml.FullLoader)
# Verificar se as chaves necessárias estão presentes no arquivo
if 'project' in config and 'output-dir' in config['project']:
output_dir = config['project']['output-dir']
else:
print('Chaves ausentes no arquivo _quarto.yml. Certifique-se de que as chaves project e output-dir estão presentes.')
return
# Lista de pastas a serem copiadas
pastas_a_copiar = ['scripts', 'img', 'interativos']
# Copiar o conteúdo das pastas para o diretório de saída
for pasta in pastas_a_copiar:
origem = os.path.join(os.getcwd(), pasta)
destino = os.path.join(os.getcwd(), output_dir, pasta)
copiar_pasta(origem, destino)
if __name__ == "__main__":
main()
Executable
+37
View File
@@ -0,0 +1,37 @@
import os
import yaml
from bs4 import BeautifulSoup
def adicionar_div_correcao(html_path):
with open(html_path, 'r', encoding='utf-8') as file:
soup = BeautifulSoup(file, 'html.parser')
for div_tag in soup.find_all('div', class_='raw_html'):
code_tag = div_tag.find('code')
if code_tag:
codigo = code_tag.decode_contents()
nova_div = soup.new_tag('div', **{'class': 'correcao'})
nova_div.append(BeautifulSoup(codigo, 'html.parser'))
div_tag.replace_with(nova_div)
with open(html_path, 'w', encoding='utf-8') as file:
file.write(str(soup.prettify(formatter=None)))
def processar_htmls(diretorio):
for root, dirs, files in os.walk(diretorio):
for file_name in files:
if file_name.endswith('.html'):
html_path = os.path.join(root, file_name)
adicionar_div_correcao(html_path)
def obter_output_dir_from_yaml():
quarto_yaml_path = "_quarto.yml"
with open(quarto_yaml_path, 'r', encoding='utf-8') as file:
config = yaml.safe_load(file)
return config['project']['output-dir']
if __name__ == "__main__":
output_dir = obter_output_dir_from_yaml()
pasta_htmls = os.path.join(os.path.dirname(__file__), output_dir)
processar_htmls(pasta_htmls)
Executable
+172
View File
@@ -0,0 +1,172 @@
/*-- scss:defaults --*/
/* TODO: Customize html appearance by setting SCSS variables */
/* See https://quarto.org/docs/output-formats/html-themes.html#theme-options */
/*-- scss:rules --*/
/* TODO: Provide custom CSS rules */
/*-- scss:defaults --*/
/*-- scss:rules --*/
@font-face {
font-family: MouseMemoirs;
src: url(fonts/MouseMemoirs-Regular.ttf);
}
@font-face {
font-family: andika;
src: url(fonts/AndikaNewBasic-Regular.ttf);
}
#capa img {
width: 104%;
height: auto;
max-width: 767px;
margin-left: -15px;
}
#conteudo-capitulo {
font-family: Source Sans Pro, Arial, Helvetica, sans-serif;
}
#conteudo-capitulo .corpo_do_texto {
margin-top: 100px;
margin-bottom: 50px;
}
#conteudo-capitulo .versalete {
font-variant: small-caps;
font-weight: bold;
}
#conteudo-capitulo h1 {
font-family: MouseMemoirs, Arial, Helvetica, sans-serif;
font-size: 3em;
letter-spacing: 2px;
}
#conteudo-capitulo p {
font-family: Source Sans Pro, Arial, Helvetica, sans-serif;
line-height: 1.5;
font-size: 1.1em;
margin-bottom: 20px;
text-indent: 30px;
}
#conteudo-capitulo .legenda {
text-align: right;
}
#conteudo-capitulo .destaque {
background-color: #e7e7e7;
border-radius: 40px;
margin: 20px auto;
padding: 20px;
}
#conteudo-capitulo .destaque img {
text-align: center;
margin: 15px;
}
#conteudo-capitulo .caixa p, #conteudo-capitulo .destaque p {
margin-bottom: 0;
padding-right: 10px;
text-indent: 0px;
}
body.quarto-dark #conteudo-capitulo .destaque {
background-color: #333333;
}
.grid_titulo {
margin-bottom: 40px;
}
#conteudo-capitulo #AP2 {
margin-top: 35px;
}
h1.title {
display: none;
}
div.fig_titulo {
max-width: 100px;
margin: 35px auto -30px auto;
}
h1 {
color: #00bfff;
}
#conteudo-capitulo h1#titulo {
margin-bottom: 60px !important;
}
#conteudo-capitulo .cap_titulo {
color: #A1A3A4;
text-align: right;
font-family: Source Sans Pro, Arial, Helvetica, sans-serif;
font-size: 1.7rem;
letter-spacing: normal;
}
#silhueta {
width: 35%;
height: auto;
float: left;
max-width: 300px;
margin-bottom: 30px;
shape-outside: url(img/silhouette-3148600_1280_pixabay_mohamed_hassan.png);
shape-margin: 0.3em;
}
#ampulheta {
display: block;
margin: 40px auto;
}
@media only screen and (max-width: 630px) {
.grid [class*="g-col-"] {
width: 100%;
}
.grid {display: block;}
#conteudo-capitulo .destaque img {
max-width: 100px;
}
}
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+240
View File
@@ -0,0 +1,240 @@
# Capítulo 1: geração alpha versus geração millennials {.unnumbered .hidden}
```{=html}
<script src="scripts/pintarTela.js"></script>
<div id="conteudo-capitulo">
<h1 class="cap_titulo">Capítulo 1</h1>
<h1 id="titulo">Geração alpha <br /> versus <br/> geração millennials</h1>
<img id="silhueta" src="img/silhouette-3148600_1280_pixabay_mohamed_hassan.png" alt="Silhueta de uma mulher de costas no chão e pernas pro ar segurando uma criança com os joelhos e as mãos">
<p class="unidade" id="1P1" title="1P1"> Os meus pais são muito amigos dos pais da Júlia desde quando eram crianças. Então, nos finais de semana, sempre vamos um na casa do outro. A Júlia e eu temos a mesma idade, mas ela é dois meses mais velha que eu.</p>
<p class="unidade" id="1P2" title="1P2"> Nossas mães se conheceram quando crianças e ficaram muito amigas. De tão amigas, engravidaram quase na mesma época. A mãe da Júlia, a tia Letícia, descobriu primeiro o gênero do bebê. </p>
<img id="ampulheta" src="img/Ampulheta-de-Antonio-Gloria-sketchfab-user.png" alt="Ampulheta">
<p style="text-align: center; margin: 50px 0;" class="unidade" id="1P3" title="1P3"><em>___Abril de 2010___</em></p>
<p class="unidade" id="1P4" title="1P4">– É uma menina! Ela se chamará Júlia.</p>
<p class="unidade" id="1P5" title="1P5">Disse a tia Letícia para minha mãe. </p>
<p class="unidade" id="1P6" title="1P6">– Sério? Que legal! Eu estou ansiosa para saber o gênero do meu bebê.</p>
<p class="unidade" id="1P7" title="1P7">Respondeu minha mãe.</p>
<p class="unidade" id="1P8" title="1P8"> – Imagina se é uma menina também?! Elas serão melhores amigas, assim como nós.</p>
<p class="unidade" id="1P9" title="1P9">Dois meses depois, mamãe descobriu que eu era um menino. Correu contar para meu pai e depois para a tia Letícia.</p>
<p class="unidade" id="1P10" title="1P10">– Letícia, o bebê é menin...</p>
<p class="unidade" id="1P11" title="1P11">– Me conta, estou curiosa. </p>
<p class="unidade" id="1P12" title="1P12">– Será um lindo e admirável menino. </p>
<p class="unidade" id="1P13" title="1P13">Talvez minha mãe não tenha dito exatamente assim, mas como eu que estou contando essa história, foi como eu imaginei. Já que sou lindo mesmo!</p>
<p class="unidade" id="1P14" title="1P14">Então, tia Letícia logo disse:</p>
<p class="unidade" id="1P15" title="1P15">– Será incrível! Eles serão grandes amigos do mesmo jeito.</p>
<p style="text-align: center; margin: 50px 0;" class="unidade" id="1P16" title="1P16"><em>___Fevereiro de 2021___</em></p>
<p class="unidade" id="1P17" title="1P17">A tia Letícia acertou em cheio. Eu e a Júlia somos muito amigos e jogamos on-line todos os dias. Nosso jogo favorito é “Meia no espaço”; é um jogo de ação e sobrevivência em vários mundos; completamos missões e podemos ajudar as pessoas do jogo construindo casas.</p>
<p class="unidade" id="1P18" title="1P18">Nossos pais não são muito a favor de jogarmos todos os dias. Acham que ficaremos “viciados” em tecnologia e não prestaremos atenção na vida de verdade. Final de semana passado, no almoço de domingo na minha casa, meu pai e o pai da Júlia estavam conversando sobre o que eles poderiam fazer para diminuir o tempo “das crianças na tela”.</p>
<p class="unidade" id="1P19" title="1P19">Meu pai começou a lembrar de sua época de criança, quando construía carrinhos de rolimã e saía pelas ruas do bairro com seus amigos. Foi quando ele disse:</p>
<p class="unidade" id="1P20" title="1P20">– Que tal propormos uma gincana para eles?</p>
<p class="unidade" id="1P21" title="1P21">– Ótima ideia!</p>
<p class="unidade" id="1P22" title="1P22">Então, meu pai chamou a gente até a sala para sugerir a ideia. </p>
<p class="unidade" id="1P23" title="1P23">– Filho, percebemos que vocês dois estão muito conectados com outros mundos, então tivemos uma ideia de fazer uma gincana para vocês terem contato com as brincadeiras antigas.</p>
<p class="unidade" id="1P24" title="1P24">O pai da Júlia complementou:</p>
<p class="unidade" id="1P25" title="1P25">– Vai ter carrinho de rolimã, queimada e pula corda. Será vocês dois contra nós dois. Filhos contra pais. </p>
<p class="unidade" id="1P26" title="1P26">A Júlia e eu conversamos e dissemos juntos:</p>
<p class="unidade" id="1P27" title="1P27">– Aceitamos se vocês jogarem um jogo on-line contra a gente.</p>
<p class="unidade" id="1P28" title="1P28">Nossos pais toparam. Fiquei bem convencido da nossa vitória, então sussurrei para a Júlia:</p>
<p class="unidade" id="1P29" title="1P29">– Essa já é nossa!</p>
<p class="unidade" id="1P30" title="1P30">Começamos a pesquisar como fazer um carrinho de rolimã. No começo parecia difícil, mas depois ficou mais fácil. Em uma semana fizemos nosso carrinho e fomos para uma rua do bairro onde não tinha movimento.</p>
<p class="unidade" id="1P31" title="1P31">Nos preparamos para a corrida, a Júlia estava em um carrinho e o pai dela em outro. Mas, para aumentar a velocidade na hora da largada, eu empurrei o carrinho da Júlia e meu pai, da dupla adversária. Nossas mães deram a largada.</p>
<canvas class="unidade" id="1P32" width="450" height="388" title="1P32"><img class="substituta_1" src="img/carrinho-rolima.png" alt="Desenho a mão de dois carrinhos de rolimã com seus motoristas e duas pessoas empurrando cada um deles rua a baixo"></canvas>
```
::: {.callout-note}
## VR
Diversão em realidade virtual (VR)
![](img/virtual-2055227_1280_pixabay_Pixaline_m.png "Desenho de um óculos de realidade virtual")
Ande de carrinho de rolimã você também! Acesse: <http://livro.online/jean-jogos-brincadeiras/rolima.html>
E aí, vai conseguir desviar dos cones?!
:::
```{=html}
<p class="unidade" id="1P33" title="1P33">No meio da corrida, percebemos que nosso carrinho não estava tão bom assim. Soltou uma roda e fomos para o chão. Nossos pais venceram a corrida.</p>
<p class="unidade" id="1P34" title="1P34">Fomos para o segundo desafio: queimada.</p>
<canvas id="1P35" class="unidade" width="450" height="315" title="1P35"><img class="substituta_1" src="img/queimada.png" alt="Desenho a mão de quatro pessoas jogando queimada"></canvas>
<p class="unidade" id="1P36" title="1P36">O time <em>alpha</em> iniciou o jogo, mas eu fui queimado primeiro. Conseguimos reagir e queimamos os pais. Fomos campeões nesse desafio.</p>
<p class="unidade" id="1P37" title="1P37">Competição empatada, fomos ao terceiro desafio: quem conseguia pular por mais tempo sem errar ou atingir cinco minutos</p>
<p class="unidade" id="1P38" title="1P38">— Júlia, essa será de boa. Nossos pais já estão enferrujados. Eu disse para minha amiga. Mal sabia eu que seria difícil.</p>
<p class="unidade" id="1P39" title="1P39">As duas duplas pularam até completarem cinco minutos. Eu fiquei exausto. Pulamos tanto que fizemos o terceiro desafio pulando (brincadeirinha).</p>
<p class="unidade" id="1P40" title="1P40">Chegou a hora do desempate: o jogo on-line.</p>
<p class="unidade" id="1P41" title="1P41">A Júlia e eu escolhemos o jogo “Meia no espaço”, que já estávamos mais que acostumados. O objetivo era completar a missão antes da outra dupla. </p>
<p class="unidade" id="1P42" title="1P42">Você já imagina quem ganhou? Espero que você tenha acreditado em nós, geração <em>alpha</em>, os invencíveis.</p>
<p class="unidade" id="1P43" title="1P43">Mas, sinto em te dizer... Os adultos tiveram sorte em apertar aleatoriamente os botões e terminaram a missão TRINTA segundos antes da gente...</p>
<p class="unidade" id="1P44" title="1P44">Ficamos tristes? Que nada! Os adultos gostaram tanto do jogo que pararam de implicar com a gente por estarmos conectados. Pelo menos, por enquanto...</p>
<img class="unidade" id="1P45" title="1P45" style="width: 90%; max-width: 510px; min-width: 240px; margin: 30px auto; display: block;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAf0AAADvCAYAAAD4pQ2sAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAIMdSURBVHhe7Z0JYGzfXdfPE5eqLIJsCrImr/CMiiyiExFKCyV5CAFqLIikfykTpNC8Ck9Z8sdCAxQelQkCkgeCKSKSthCWN6NUUCkJClXExie+GXBDEZVNUQSX6/mcme/kN2fuTOZOJtub3+f9z3/uPfcsv/M7+3JvbhWR4DiO4zjOU89v6v06juM4jvOU452+4ziO48wJ3uk7juM4zpzgnb7jOI7jzAne6TuO4zjOnOCdvuM4juPMCTN5ZY8gbt261bvr3ttgf9NvKh9byJ11SzgyYpSbHOtObv7f//t/ybzVW71Vsv+///f/9p/p+f/+3/87/Obf/JuTsfyf//N/+kbhAP6AdOHnt/7W39oPXxCP4sX/b/zGb4Tf9tt+W/gtv+W3JHsbPzLnOrLxgWQjLNwqPtwgvzVKo+TDrZVTcQvCxA9u8GPls+4mxeYVEAbhY4ifOLBTftl4bLpxhwHs0CG/Spd0gh1pUFjoWOEp77hX2tERduhD4f/SL/1SePu3f/t0fV7+zb/5N+Gt3/qtw2//7b89/I7f8Tv6svz6r/96kpF4ZadfkN6s3aScx+9lcNnyER+G/OWXsgcqM854lF/ANfVF9Yc6BejW5iduMKpTqu8Y1V30r3Ccq2Hm7+nnhYXMVQZzr+eyK8t8GwYFRSis3E/uxv5a5E5h6J74VFC5xp7nFE7gXs9zePY//+f/TA06nQkoPMKgkD/nOc9Jjf848EPFADoFkByExXMMYMc1v8A1FYxfVbJR4OZ//I//kWT+tV/7tX4Fxh5Z6TAxDFB+5+/8nSMbSdxjkE16BGSSXFVRmEJhkzbClCw2vjxf8F8WvwY2uM8bHYU3Tm9AGLjBPQY9WRg4/Pt//+/DL/7iL4aTk5Pw4z/+46HT6YSf/dmfDf/1v/7X5AadK434f7u3e7vwTu/0TuH3/t7fG97//d8/2f+BP/AHwnu/93uHd3mXdwm/5/f8nvS8DMob6ZHO83QrnjJ9nMUoPV43zpPGi0Ad3XWCdgU92cHmqPz9X//rf/XbMdJBO1CWHtIJuCUcDbTPmw/IpTzl19Zv1TvksfZqH4TqOYY6SzhqO6y/eeVCO30ySAUBY5+dt3CMQgWD8MlgG4/i5zePX8/yQkFY/+2//bfwr/7Vvwr/5J/8k2T30z/90+GXf/mXw3//7/89NfS/8Au/kNzQ8QNhEQ4VgRnfO7zDO4R3fMd3DG/7tm+bBgDw7u/+7uEDPuADwp07d1LDro7eQuGl0BIWhVYyqqMeVZBx9x/+w38Ijx8/Tvdvectbwr/9t/82dTzI+l/+y39Jcv/qr/5qf6CBH+TVAAVZkfld3/VdU+cP/C4uLoYP/MAPTL90WDmqcNPkLzIojYJwJgkLf7iT//yXZ7meBHkMajxoVBQndkA4+Ldh0KH/8A//cPhH/+gfpft/+k//aTKKU5C30hWNKM/ROwMAO1jMQYalpaVURhYWFsIHf/AHJyMoQ0Kyg9KTy1tGLqvV1yRM6m4W5LJOwkXJh74ljzpF9I7dJHo/C9V75D9vGpC1rOOmjfixH/ux8BM/8RPhP/7H/5jaBto1Wx6p87Rfv/t3/+7wXu/1XqnuMygdNRCdFtUz0ooOpUsNJsaBu0ncgOKxdXzeuPAv8qly5DNGRUsh+5Vf+ZU0+9QSEL/qQDW7ouHEqPDSeLJ8Cm/zNm+TGtWyjlMNIKgiErcKFVjZsKeDp2P/kR/5kWR+7ud+LnWUdPI5atDtrJg0yzBypoO1cgj8Unne+Z3fOfyhP/SHwgte8ILUqL/bu71bes6AQSCr5CWsvGFhdvnP/tk/C29605vC0dFR+Jf/8l8muUEFHfDDMjYdOzpUGFQAKjsrABgGMaOgEfhdv+t3hfd5n/cJH/ZhHxb+6B/9o6lTAmQn3GlQ+gB5lE6hGTPlBf71v/7XaUDzMz/zM8kemelI8adyQp4gD4MYGi0GWuganavh4tqivEKGvGEgjh/90R8N3/Ed35E6fGSwMGh63/d93/BBH/RB4cM//MNTXMStMGnESJPqBTqnbJFfNL7w5MmTlFa2CWwDTNjM/sUf+2N/LPzpP/2nw4d+6IemgaOQH8JHD9JFGdL5NA2gzS8xTTg555Eph7BmEY4gH1W+FC5tFPlJfZYd5YQ8pO4DZfY//af/FH7+538+tW241aCa+gR0rOQjdUucR/5cj3Tsf//v//103Ww2U4ePjLRRk0JdQuY/8kf+SLr/pE/6pPDH//gf77dZ04JOkZe6YdNLv4DcQPuLDmmfqfPoVn7UVjIQpi1CHvT6nu/5nv1JiyCvxtWJp52pO328KXO4lvJHQSb95E/+ZPql4DPKBBpNGjcys4ooNOZqAFkaJaPJcCrM7/t9vy81tsySxsmkzpBG9vj4OF3/4A/+YPiBH/iBNOq1UHBqtVq6ZhmWykmnR1yquOrsKMAMXKhMdMaklTSSbgzQQbP8q8GNYAChCkVl+qiP+qjUuJdBRwHf8z3fk4xmnAL5gPCe+9znpk6PGbr0xKBJhR/d02FSkZCZxkCrA1wDHSwzWdsRifd4j/dIv3RAy8vL4fnPf366Jw9GYctQGchCw0S5+amf+qmkM8wk5UQDQiBdOaSbMgIMXOBP/Ik/ET7iIz6i3whbaLTR7zd90zeFv/t3/25aJRHoFD76oz86rK2tpfzKG5qqUE4oH//4H//jlGb08J//83/uPR0EHd+9eze88IUvTDMxuwKjwYXyWR3WKCiPWhGiwRUMOLT6Y8MvQ3GSt7b+jctrrV7hflSd1aCbcoH+1XhrZYrB7Lg4QJ0LWPnOKosCd4SBv9w9emMgyMCbekK51QB1EigzDErJQwb/lEu2eUaBHIBMVp48LbS53/d935cGqhpYaoUPqCu0EVp11KCDNpY2DL0zOaO9YRJkyz5Q/v/kn/yTqewz2M23Mq08yCz9jcpnJivoj3JP+afsg9rOSaGsokcmJWq7Seeo8mv1KXlt+ZCeJwG3kJcRUFhyo7wjfn7L/MySsZ0+lQpBqFgIJqWAhMO7hKQgqTMHCv0b3/jGlHnY04nkUNCZqTMDYvRL5aUQatZMnBQ8ChqNEI0DhoY8L3wWBgJ0RKo0dEQ06IwASRez4e/93u9Nz/7e3/t7Q7KRZjpNCgsz8D/4B/9gmsHBeRt0oFElTirkD/3QD6WBBvvBtjICBZeK9Of+3J8Lz3ve85Id8n/jN35j+Bt/42+keys7BZrR9yd+4ieG3//7f3+yo7OfBcxI/92/+3dpoMYgCcOomwYhh8EQ0AGur6+nDpF8FnQu5LHtgBhs0GDC61//+lR+GCzlKyyUEWDQx2CPzvv93u/9Up4TB+VIUDYpQ5QXyiAyEwdys6KRg65pwD7hEz4hDZRUnr/t274tfPM3f3N/AATo9U/9qT8V/syf+TPpnmVP20gQr+qH6oh+c0bZA7rijACDDmZo4h/+w3840DHT6TFIRN9AeWEAgxwM1DQopYxpBkrZoS68+c1vTo0t9nRU1C07INVqCTMqjFan1JjSYbByIt1TR0mTbSS5Rx8yIh+EED96Z5BJg8+qG3KpHPBLfqrTZ0CCTHQ2mvFR/ug8kZE6T2eGOwv+kUm6t3LpV7KhQ7mTHw1UkPPw8DB853d+ZypXgs6T+gvohvJK+cQv+cEgjnQqLyj/dkBN+7OyspLqDjCgtis9yASSVfJJ56w2tFqt8C3f8i1phm/DJl3UGcou4dNOlg12LdQX8oI6xMAXqEsMdgD/H/MxH5PqBG0taAAhXSGr9GfznTLJIPe7vuu70sSLAUbeFuJHkxXKI7pUW6y6TLmlbJB22z9oIMIAmcEJdUTtOSCX9Cn5AHvpTX2S1TdpoBxheG7Lu4XngHu1C0LXeV2RDLPmzJm+FAFyyq8UAHRc6kT/wT/4Bz3b7shXkEl0nHRELLn84T/8h5M99zQgNBaES0JJvFU6MtgCTmbSQbKnCnRC3NMp0UlQCfMZNFBIaMgpADSiVLIcGgcK7Ite9KI007ZLv1aGUZk7DvxhwBZ4QHYadTp/BgGgPXlAZjUg+KWBtsty6JQK99KXvnRg31co3ipI70qrlRl7KnK73Q7f//3fnwZ38M//+T9Paclh4PQpn/IpqcKBTspTWfFDGKxW/It/8S+SvZWXfKO80EjRsTIjh9u3byfZbCc/CVRizmeoA/07f+fvpF9mF6qcdBbEpTKGe1V+5PnIj/zI8Nmf/dkpXUI6seUXbAW29tNgVy1oJL/7u787zeJojIUGRcj4mZ/5mWkFAKinpJVGVatClCOra+Rj4EheK9/HDbCVHgZcdEoMNNAJeZWjTlYofPTKjA4o+3RUNPpnzZKlZ+VZGUwmKGvM8Fh9YtbHAAWkJ1DdlkzSCfnJdd6g08799b/+19M1ZVcDX2bnTDAYPGrAAZRRZFU8uiZ85SmDXLtKoMG8OizaI7ZzqOfo24KM0i3hUh4ePnwY/upf/asDbaFWtV7ykpekyYFmvfhX2VU6lXZ0SJi2/muwSb1gsMOgR8vwdMSrq6vp+tM+7dNS+SOMHMqU+gtW0CibtqOnU6YcacWSdo2VENpodII8ef5jh2wMvhgwauDIr4V8efGLXxw++ZM/OQ0ObThcS5fSq57Zfi+Htoy2j0GpTQd5j7wM/Gg7xlEmg35nxZmdPo+V8DxyZvDMyN7whjek5dccFEQBJdOpaChXI7+LAqXToVPokUnL9nQsdlZkYYT6cR/3cemaRLine truncated
<p class="unidade" id="1P46" title="1P46">Deixamos algumas sugestões para você se divertir com sua família e seus amigos.</p>
<h2><em>Ping pong</em> ou tênis de mesa</h2>
<canvas id="1P47" class="unidade" width="429" height="298" title="1P47"><img class="substituta_2" src="img/ping-pong.png" alt="Desenho a mão de duas raquetes de ping pong e uma bola"></canvas>
<p class="unidade" id="1P48" title="1P48">Para jogar, você precisa de duas raquetes, uma bolinha, uma mesa com rede e duas pessoas. Neste jogo, cada pessoa fica com uma raquete e se posiciona em uma ponta da mesa. O jogo inicia com um jogador arremessando a bola para cima e depois golpeando-a com a raquete em direção do adversário. É necessário que a bola bata uma vez no seu lado da mesa e outra vez do lado adversário. Quando a bola não bate na mesa ou bate mais de uma vez o ponto é para o adversário.</p>
<h2>Passa anel</h2>
<canvas id="1P49" class="unidade" width="433" height="388" title="1P49"><img class="substituta_3" src="img/anel.png" alt="Desenho a mão de um anel"></canvas>
<p class="unidade" id="1P50" title="1P50"> Para esta brincadeira não há limite de número máximo de participantes, mas é interessante que a quantidade ultrapasse quatro pessoas. Uma pessoa será responsável por passar o anel entre os participantes e outra ficará escondida enquanto os outros estão passando o anel. Por fim, a pessoa que estava escondida tenta adivinhar em qual mão está o anel.</p>
<h2>Peteca</h2>
<canvas id="1P51" class="unidade" width="370" height="300" title="1P51"><img class="substituta_4" src="img/peteca.png" alt="Desenho a mão de uma peteca"></canvas>
<p class="unidade" id="1P52" title="1P52"> Para esta brincadeira precisa de, no mínimo, duas pessoas e uma peteca. O primeiro participante inicia arremessando a peteca em direção ao adversário que tenta rebater. O objetivo é manter a peteca no ar, sem deixá-la cair.</p>
<p class="unidade" id="1P53" title="1P53">Dica para confeccionar uma peteca simples e em sua casa: Você pode utilizar sacola plástica, jornal e barbante.</p>
<p class="unidade" id="1P54" title="1P54">Primeiro corte as alças da sacola e as laterais para abri-la. Amasse folhas de jornal para formar uma bola e depois encape a bola com a sacola. Utilize o barbante para amarrar a sacola para que o jornal não caia.</p>
<div style="margin: 30px auto; display: block; width: 40px;">* * *</div>
</div>
<script>
var el_1 = document.getElementById('1P32');
var img_url ="img/carrinho-rolima.png";
var programa_1 = new pintarTela(el_1, img_url);
var c_1 = el_1.nextElementSibling;
var vw = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
c_1.style.marginLeft = 'auto';
c_1.style.marginRight = 'auto';
c_1.style.display = 'block'
var el_2 = document.getElementById('1P47');
var img_url_2 ="img/ping-pong.png";
var programa_2 = new pintarTela(el_2, img_url_2);
var c_2 = el_2.nextElementSibling;
var el_3 = document.getElementById('1P49');
var img_url_3 ="img/anel.png";
var programa_3 = new pintarTela(el_3, img_url_3);
var c_3 = el_3.nextElementSibling;
var el_4 = document.getElementById('1P51');
var img_url_4 ="img/peteca.png";
var programa_4 = new pintarTela(el_4, img_url_4);
var c_4 = el_4.nextElementSibling;
var el_5 = document.getElementById('1P35');
var img_url_5 ="img/queimada.png";
var programa_5 = new pintarTela(el_5, img_url_5);
var c_5 = el_5.nextElementSibling;
c_2.style.marginLeft = 'auto';
c_2.style.marginRight = 'auto';
c_2.style.display = 'block';
c_3.style.marginLeft = 'auto';
c_3.style.marginRight = 'auto';
c_3.style.display = 'block';
c_4.style.marginLeft = 'auto';
c_4.style.marginRight = 'auto';
c_4.style.display = 'block';
c_5.style.marginLeft = 'auto';
c_5.style.marginRight = 'auto';
c_5.style.display = 'block'
if ( vw < 500){
let el_1_w = vw - 50;
let el_1_h = (388/450)*el_1_w;
el_1.width = el_1_w;
el_1.height = el_1_h;
c_1.style.width = el_1_w+'px';
programa_1(el_1_w, el_1_h);
let el_2_w = vw - 50;
let el_2_h = (298/429)*el_2_w;
el_2.width = el_2_w;
el_2.height = el_2_h;
c_2.style.width = el_2_w+'px';
programa_2(el_2_w, el_2_h);
let el_3_w = vw - 50;
let el_3_h = (388/433)*el_3_w;
el_3.width = el_3_w;
el_3.height = el_3_h;
c_3.style.width = el_3_w+'px';
programa_3(el_3_w, el_3_h);
let el_4_w = vw - 50;
let el_4_h = (300/370)*el_4_w;
el_4.width = el_4_w;
el_4.height = el_4_h;
c_4.style.width = el_4_w+'px';
programa_4(el_4_w, el_4_h);
let el_5_w = vw - 50;
let el_5_h = (315/450)*el_4_w;
el_5.width = el_5_w;
el_5.height = el_5_h;
c_5.style.width = el_5_w+'px';
programa_5(el_5_w, el_5_h);
}
</script>
```
Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 839 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 378 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Executable
+85
View File
@@ -0,0 +1,85 @@
```{=html}
<style>
h1.title {display: block;}
</style>
```
![]({{< meta book.navbar.logo-href >}})
# Metadados {.unnumbered style="text-align:left;"}
Este livro é uma publicação da [**{{< meta moan-dados.editora >}}**](https://editora.livro.online), {{< meta moan-dados.local >}}. Seu identificador é **ark:{{< meta moan-dados.ark >}}**. A versão física (impressa) deste livro possui **ark:{{< meta moan-dados.ark-versao-impressa >}}** e **isbn:{{< meta moan-dados.isbn-versao-impressa >}}**.
![](img/logomoan.png){fig-alt="Logo da Editora Moan. Um triângulo representando uma câmera, um retângulo representando um livro, a escrita Editora Moan. Tudo branco em um fundo escuro. E o 'R' de marca registrada em azul"}
Para saber o que é e como usar um identificador ARK, acesse: [https://n2t.net/ark:68745/eMT4d/posts/ark_o_que_e](https://n2t.net/ark:68745/eMT4d/posts/ark_o_que_e).
Confira, abaixo, os metadados completos deste livro, conforme registro ARK. Você pode escolher a versão JSON ou YAML.
::: {.panel-tabset}
## JSON
```{=html}
<object id="metadados_livro_json" style="width: 100%; height:500px;" data="https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json" type="text/json"></object>
<p>Caso não esteja visualizando, acesse: <a href="https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json">https://ark.livro.online/json/ark_dp_68745_b_eMdbp.json</a></p>
```
## YAML
```{=html}
<object id="metadados_livro_yml" style="width: 100%; height:500px;" data="https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml" type="text/yaml"></object>
<p>Caso não esteja visualizando, acesse: <a href="https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml">https://ark.livro.online/yaml/ark_dp_68745_b_eMdbp.yml</a></p>
```
:::
## Como Citar
BibTeX:
::: {#como-citar-bibtex}
```
@book{miola_d_2022,
editor = {Miola, Diullye},
title = {Jean: entre jogos e brincadeiras},
year = {2022},
publisher = {Editora Moan},
address = {Foz do Iguaçu},
url = {https://livro.online/ark:68745/eMdbp},
urldate = {A data que vc acessou no padrão yyyy-mm-dd},
}
```
:::
Para atribuição, cite este trabalho como:
::: {#como-citar-atribuicao}
Miola, D. (org). **Jean: entre jogos e brincadeiras**. Foz do Iguaçu: Editora Moan, 2022. Disponível em: https://livro.online/ark:68745/eMdbp. Acesso em: dd mmm(3 primeiras letras). yyyy.
:::
## Versão Impressa
Compre a versão impressa e ajude a manter este projeto com livros gratuitos *online*. Mantenha o conhecimento livre!
Assim que o livro físico estiver disponível para venda, ele aparecerá aqui[^1].
[^1]: Se algum link de compra estiver quebrado, por favor, nos avise no e-mail {{< var e-mail >}} ou pelo whatsapp {{< var whatsapp >}}.
## Direitos Autorais
{{< meta moan-dados.direitos-autorais >}}
[{{< meta moan-dados.licenca >}}]({{< meta moan-dados.licenca-link >}})
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
!function(e){function t(i){if(s[i])return s[i].exports;var n=s[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t){function s(e,t){var s;for(e.length=0,s=0;s<t.length;s++)e[s]=t[s]}if("undefined"==typeof AFRAME)throw new Error("Component attempted to register before AFRAME was available.");var i={childList:!0,attributes:!0,subtree:!0};AFRAME.registerComponent("aabb-collider",{schema:{collideNonVisible:{default:!1},debug:{default:!1},enabled:{default:!0},interval:{default:80},objects:{default:""}},init:function(){this.centerDifferenceVec3=new THREE.Vector3,this.clearedIntersectedEls=[],this.closestIntersectedEl=null,this.boundingBox=new THREE.Box3,this.boxCenter=new THREE.Vector3,this.boxHelper=new THREE.BoxHelper,this.boxMax=new THREE.Vector3,this.boxMin=new THREE.Vector3,this.hitClosestClearEventDetail={},this.hitClosestEventDetail={},this.intersectedEls=[],this.objectEls=[],this.newIntersectedEls=[],this.prevCheckTime=void 0,this.previousIntersectedEls=[],this.setDirty=this.setDirty.bind(this),this.observer=new MutationObserver(this.setDirty),this.dirty=!0,this.hitStartEventDetail={intersectedEls:this.newIntersectedEls}},play:function(){this.observer.observe(this.el.sceneEl,i),this.el.sceneEl.addEventListener("object3dset",this.setDirty),this.el.sceneEl.addEventListener("object3dremove",this.setDirty)},remove:function(){this.observer.disconnect(),this.el.sceneEl.removeEventListener("object3dset",this.setDirty),this.el.sceneEl.removeEventListener("object3dremove",this.setDirty)},tick:function(e){var t,i,n,r,o=this.boundingBox,l=this.centerDifferenceVec3,h=this.clearedIntersectedEls,c=this.intersectedEls,a=this.el,b=this.newIntersectedEls,d=this.objectEls,E=this.prevCheckTime,x=this.previousIntersectedEls;if(this.data.enabled&&!(E&&e-E<this.data.interval)){for(this.prevCheckTime=e,this.dirty&&this.refreshObjects(),o.setFromObject(a.object3D),this.boxMin.copy(o.min),this.boxMax.copy(o.max),o.getCenter(this.boxCenter),this.data.debug&&(this.boxHelper.setFromObject(a.object3D),this.boxHelper.parent||a.sceneEl.object3D.add(this.boxHelper)),s(x,c),c.length=0,r=0;r<d.length;r++)d[r]!==this.el&&(this.data.collideNonVisible||d[r].getAttribute("visible")?this.isIntersecting(d[r])&&c.push(d[r]):this.data.debug&&(t=d[r].object3D.boxHelper,t&&(a.sceneEl.object3D.remove(t),d[r].object3D.boxHelper=null)));for(b.length=0,r=0;r<c.length;r++)x.indexOf(c[r])===-1&&b.push(c[r]);for(h.length=0,r=0;r<x.length;r++)c.indexOf(x[r])===-1&&(x[r].hasAttribute("aabb-collider")||x[r].emit("hitend", e),h.push(x[r]));for(r=0;r<b.length;r++)b[r]!==this.el&&(b[r].hasAttribute("aabb-collider")||b[r].emit("hitstart", a));for(r=0;r<c.length;r++)c[r]!==this.el&&(l.copy(c[r].object3D.boundingBoxCenter).sub(this.boxCenter),(void 0===i||l.length()<i)&&(i=l.length(),n=c[r]));!c.length&&this.closestIntersectedEl?(this.hitClosestClearEventDetail.el=this.closestIntersectedEl,this.closestIntersectedEl.emit("hitclosestclear"),this.closestIntersectedEl=null,a.emit("hitclosestclear",this.hitClosestClearEventDetail)):n!==this.closestIntersectedEl&&(this.closestIntersectedEl&&(this.hitClosestClearEventDetail.el=this.closestIntersectedEl,this.closestIntersectedEl.emit("hitclosestclear",this.hitClosestClearEventDetail, e)),n&&(n.emit("hitclosest"),this.closestIntersectedEl=n,this.hitClosestEventDetail.el=n,a.emit("hitclosest",this.hitClosestEventDetail, e))),h.length&&a.emit("hitend"),b.length&&a.emit("hitstart",this.hitStartEventDetail, a)}},isIntersecting:function(){var e=new THREE.Box3;return function(t){var s,i;return e.setFromObject(t.object3D),this.data.debug&&(t.object3D.boxHelper||(t.object3D.boxHelper=new THREE.BoxHelper(t.object3D,new THREE.Color(Math.random(),Math.random(),Math.random())),t.sceneEl.object3D.add(t.object3D.boxHelper)),t.object3D.boxHelper.setFromObject(t.object3D)),s=e.min,i=e.max,t.object3D.boundingBoxCenter=t.object3D.boundingBoxCenter||new THREE.Vector3,e.getCenter(t.object3D.boundingBoxCenter),this.boxMin.x<=i.x&&this.boxMax.x>=s.x&&this.boxMin.y<=i.y&&this.boxMax.y>=s.y&&this.boxMin.z<=i.z&&this.boxMax.z>=s.z}}(),setDirty:function(){this.dirty=!0},refreshObjects:function(){var e=this.data;this.objectEls=e.objects?this.el.sceneEl.querySelectorAll(e.objects):this.el.sceneEl.children,this.dirty=!1}})}]);
+422
View File
@@ -0,0 +1,422 @@
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.AFRAME = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
(function (process){
var _Group=function(){this._tweens={},this._tweensAddedDuringUpdate={}};_Group.prototype={getAll:function(){return Object.keys(this._tweens).map(function(t){return this._tweens[t]}.bind(this))},removeAll:function(){this._tweens={}},add:function(t){this._tweens[t.getId()]=t,this._tweensAddedDuringUpdate[t.getId()]=t},remove:function(t){delete this._tweens[t.getId()],delete this._tweensAddedDuringUpdate[t.getId()]},update:function(t,n){var e=Object.keys(this._tweens);if(0===e.length)return!1;for(t=void 0!==t?t:TWEEN.now();e.length>0;){this._tweensAddedDuringUpdate={};for(var i=0;i<e.length;i++)!1===this._tweens[e[i]].update(t)&&(this._tweens[e[i]]._isPlaying=!1,n||delete this._tweens[e[i]]);e=Object.keys(this._tweensAddedDuringUpdate)}return!0}};var TWEEN=new _Group;TWEEN.Group=_Group,TWEEN._nextId=0,TWEEN.nextId=function(){return TWEEN._nextId++},"undefined"==typeof window&&"undefined"!=typeof process?TWEEN.now=function(){var t=process.hrtime();return 1e3*t[0]+t[1]/1e6}:"undefined"!=typeof window&&void 0!==window.performance&&void 0!==window.performance.now?TWEEN.now=window.performance.now.bind(window.performance):void 0!==Date.now?TWEEN.now=Date.now:TWEEN.now=function(){return(new Date).getTime()},TWEEN.Tween=function(t,n){this._object=t,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._repeat=0,this._repeatDelayTime=void 0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=null,this._easingFunction=TWEEN.Easing.Linear.None,this._interpolationFunction=TWEEN.Interpolation.Linear,this._chainedTweens=[],this._onStartCallback=null,this._onStartCallbackFired=!1,this._onUpdateCallback=null,this._onCompleteCallback=null,this._onStopCallback=null,this._group=n||TWEEN,this._id=TWEEN.nextId()},TWEEN.Tween.prototype={getId:function(){return this._id},isPlaying:function(){return this._isPlaying},to:function(t,n){return this._valuesEnd=t,void 0!==n&&(this._duration=n),this},start:function(t){this._group.add(this),this._isPlaying=!0,this._onStartCallbackFired=!1,this._startTime=void 0!==t?t:TWEEN.now(),this._startTime+=this._delayTime;for(var n in this._valuesEnd){if(this._valuesEnd[n]instanceof Array){if(0===this._valuesEnd[n].length)continue;this._valuesEnd[n]=[this._object[n]].concat(this._valuesEnd[n])}void 0!==this._object[n]&&(this._valuesStart[n]=this._object[n],this._valuesStart[n]instanceof Array==!1&&(this._valuesStart[n]*=1),this._valuesStartRepeat[n]=this._valuesStart[n]||0)}return this},stop:function(){return this._isPlaying?(this._group.remove(this),this._isPlaying=!1,null!==this._onStopCallback&&this._onStopCallback.call(this._object,this._object),this.stopChainedTweens(),this):this},end:function(){return this.update(this._startTime+this._duration),this},stopChainedTweens:function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop()},delay:function(t){return this._delayTime=t,this},repeat:function(t){return this._repeat=t,this},repeatDelay:function(t){return this._repeatDelayTime=t,this},yoyo:function(t){return this._yoyo=t,this},easing:function(t){return this._easingFunction=t,this},interpolation:function(t){return this._interpolationFunction=t,this},chain:function(){return this._chainedTweens=arguments,this},onStart:function(t){return this._onStartCallback=t,this},onUpdate:function(t){return this._onUpdateCallback=t,this},onComplete:function(t){return this._onCompleteCallback=t,this},onStop:function(t){return this._onStopCallback=t,this},update:function(t){var n,e,i;if(t<this._startTime)return!0;!1===this._onStartCallbackFired&&(null!==this._onStartCallback&&this._onStartCallback.call(this._object,this._object),this._onStartCallbackFired=!0),e=(t-this._startTime)/this._duration,e=e>1?1:e,i=this._easingFunction(e);for(n in this._valuesEnd)if(void 0!==this._valuesStart[n]){var r=this._valuesStart[n]||0,a=this._valuesEnd[n];a instanceof Array?this._object[n]=this._interpolationFunction(a,i):("string"==typeof a&&(a="+"===a.charAt(0)||"-"===a.charAt(0)?r+parseFloat(a):parseFloat(a)),"number"==typeof a&&(this._object[n]=r+(a-r)*i))}if(null!==this._onUpdateCallback&&this._onUpdateCallback.call(this._object,i),1===e){if(this._repeat>0){isFinite(this._repeat)&&this._repeat--;for(n in this._valuesStartRepeat){if("string"==typeof this._valuesEnd[n]&&(this._valuesStartRepeat[n]=this._valuesStartRepeat[n]+parseFloat(this._valuesEnd[n])),this._yoyo){var s=this._valuesStartRepeat[n];this._valuesStartRepeat[n]=this._valuesEnd[n],this._valuesEnd[n]=s}this._valuesStart[n]=this._valuesStartRepeat[n]}return this._yoyo&&(this._reversed=!this._reversed),void 0!==this._repeatDelayTime?this._startTime=t+this._repeatDelayTime:this._startTime=t+this._delayTime,!0}null!==this._onCompleteCallback&&this._onCompleteCallback.call(this._object,this._object);for(var o=0,u=this._chainedTweens.length;o<u;o++)this._chainedTweens[o].start(this._startTime+this._duration);return!1}return!0}},TWEEN.Easing={Linear:{None:function(t){return t}Line truncated
}).call(this,_dereq_('_process'))
},{"_process":6}],2:[function(_dereq_,module,exports){
function anArray(r){return r.BYTES_PER_ELEMENT&&"[object ArrayBuffer]"===str.call(r.buffer)||Array.isArray(r)}var str=Object.prototype.toString;module.exports=anArray;
},{}],3:[function(_dereq_,module,exports){
module.exports=function(e,n){return"number"==typeof e?e:"number"==typeof n?n:0};
},{}],4:[function(_dereq_,module,exports){
"use strict";function placeHoldersCount(o){var r=o.length;if(r%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===o[r-2]?2:"="===o[r-1]?1:0}function byteLength(o){return 3*o.length/4-placeHoldersCount(o)}function toByteArray(o){var r,e,t,u,n,p=o.length;u=placeHoldersCount(o),n=new Arr(3*p/4-u),e=u>0?p-4:p;var a=0;for(r=0;r<e;r+=4)t=revLookup[o.charCodeAt(r)]<<18|revLookup[o.charCodeAt(r+1)]<<12|revLookup[o.charCodeAt(r+2)]<<6|revLookup[o.charCodeAt(r+3)],n[a++]=t>>16&255,n[a++]=t>>8&255,n[a++]=255&t;return 2===u?(t=revLookup[o.charCodeAt(r)]<<2|revLookup[o.charCodeAt(r+1)]>>4,n[a++]=255&t):1===u&&(t=revLookup[o.charCodeAt(r)]<<10|revLookup[o.charCodeAt(r+1)]<<4|revLookup[o.charCodeAt(r+2)]>>2,n[a++]=t>>8&255,n[a++]=255&t),n}function tripletToBase64(o){return lookup[o>>18&63]+lookup[o>>12&63]+lookup[o>>6&63]+lookup[63&o]}function encodeChunk(o,r,e){for(var t,u=[],n=r;n<e;n+=3)t=(o[n]<<16)+(o[n+1]<<8)+o[n+2],u.push(tripletToBase64(t));return u.join("")}function fromByteArray(o){for(var r,e=o.length,t=e%3,u="",n=[],p=0,a=e-t;p<a;p+=16383)n.push(encodeChunk(o,p,p+16383>a?a:p+16383));return 1===t?(r=o[e-1],u+=lookup[r>>2],u+=lookup[r<<4&63],u+="=="):2===t&&(r=(o[e-2]<<8)+o[e-1],u+=lookup[r>>10],u+=lookup[r>>4&63],u+=lookup[r<<2&63],u+="="),n.push(u),n.join("")}exports.byteLength=byteLength,exports.toByteArray=toByteArray,exports.fromByteArray=fromByteArray;for(var lookup=[],revLookup=[],Arr="undefined"!=typeof Uint8Array?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;
},{}],5:[function(_dereq_,module,exports){
"use strict";module.exports={createLink:function(e,t){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("link");n.href=e,n.rel="stylesheet";for(var d in t)if(t.hasOwnProperty(d)){var r=t[d];n.setAttribute("data-"+d,r)}a.appendChild(n)},createStyle:function(e,t){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css";for(var d in t)if(t.hasOwnProperty(d)){var r=t[d];n.setAttribute("data-"+d,r)}n.sheet?(n.innerHTML=e,n.sheet.cssText=e,a.appendChild(n)):n.styleSheet?(a.appendChild(n),n.styleSheet.cssText=e):(n.appendChild(document.createTextNode(e)),a.appendChild(n))}};
},{}],6:[function(_dereq_,module,exports){
function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch(t){try{return cachedSetTimeout.call(null,e,0)}catch(t){return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch(t){try{return cachedClearTimeout.call(null,e)}catch(t){return cachedClearTimeout.call(this,e)}}}function cleanUpNextTick(){draining&&currentQueue&&(draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue.length;t;){for(currentQueue=queue,queue=[];++queueIndex<t;)currentQueue&&currentQueue[queueIndex].run();queueIndex=-1,t=queue.length}currentQueue=null,draining=!1,runClearTimeout(e)}}function Item(e,t){this.fun=e,this.array=t}function noop(){}var process=module.exports={},cachedSetTimeout,cachedClearTimeout;!function(){try{cachedSetTimeout="function"==typeof setTimeout?setTimeout:defaultSetTimout}catch(e){cachedSetTimeout=defaultSetTimout}try{cachedClearTimeout="function"==typeof clearTimeout?clearTimeout:defaultClearTimeout}catch(e){cachedClearTimeout=defaultClearTimeout}}();var queue=[],draining=!1,currentQueue,queueIndex=-1;process.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];queue.push(new Item(e,t)),1!==queue.length||draining||runTimeout(drainQueue)},Item.prototype.run=function(){this.fun.apply(null,this.array)},process.title="browser",process.browser=!0,process.env={},process.argv=[],process.version="",process.versions={},process.on=noop,process.addListener=noop,process.once=noop,process.off=noop,process.removeListener=noop,process.removeAllListeners=noop,process.emit=noop,process.prependListener=noop,process.prependOnceListener=noop,process.listeners=function(e){return[]},process.binding=function(e){throw new Error("process.binding is not supported")},process.cwd=function(){return"/"},process.chdir=function(e){throw new Error("process.chdir is not supported")},process.umask=function(){return 0};
},{}],7:[function(_dereq_,module,exports){
var Buffer=_dereq_("buffer").Buffer;module.exports=function(f,e){if(Buffer.isBuffer(f)&&Buffer.isBuffer(e)){if("function"==typeof f.equals)return f.equals(e);if(f.length!==e.length)return!1;for(var r=0;r<f.length;r++)if(f[r]!==e[r])return!1;return!0}};
},{"buffer":8}],8:[function(_dereq_,module,exports){
(function (global){
"use strict";function typedArraySupport(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===t.foo()&&"function"==typeof t.subarray&&0===t.subarray(1,1).byteLength}catch(t){return!1}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(t,e){if(kMaxLength()<e)throw new RangeError("Invalid typed array length");return Buffer.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e),t.__proto__=Buffer.prototype):(null===t&&(t=new Buffer(e)),t.length=e),t}function Buffer(t,e,r){if(!(Buffer.TYPED_ARRAY_SUPPORT||this instanceof Buffer))return new Buffer(t,e,r);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return allocUnsafe(this,t)}return from(this,t,e,r)}function from(t,e,r,n){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?fromArrayBuffer(t,e,r,n):"string"==typeof e?fromString(t,e,r):fromObject(t,e)}function assertSize(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function alloc(t,e,r,n){return assertSize(e),e<=0?createBuffer(t,e):void 0!==r?"string"==typeof n?createBuffer(t,e).fill(r,n):createBuffer(t,e).fill(r):createBuffer(t,e)}function allocUnsafe(t,e){if(assertSize(e),t=createBuffer(t,e<0?0:0|checked(e)),!Buffer.TYPED_ARRAY_SUPPORT)for(var r=0;r<e;++r)t[r]=0;return t}function fromString(t,e,r){if("string"==typeof r&&""!==r||(r="utf8"),!Buffer.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|byteLength(e,r);t=createBuffer(t,n);var f=t.write(e,r);return f!==n&&(t=t.slice(0,f)),t}function fromArrayLike(t,e){var r=e.length<0?0:0|checked(e.length);t=createBuffer(t,r);for(var n=0;n<r;n+=1)t[n]=255&e[n];return t}function fromArrayBuffer(t,e,r,n){if(e.byteLength,r<0||e.byteLength<r)throw new RangeError("'offset' is out of bounds");if(e.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return e=void 0===r&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,r):new Uint8Array(e,r,n),Buffer.TYPED_ARRAY_SUPPORT?(t=e,t.__proto__=Buffer.prototype):t=fromArrayLike(t,e),t}function fromObject(t,e){if(Buffer.isBuffer(e)){var r=0|checked(e.length);return t=createBuffer(t,r),0===t.length?t:(e.copy(t,0,0,r),t)}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||isnan(e.length)?createBuffer(t,0):fromArrayLike(t,e);if("Buffer"===e.type&&isArray(e.data))return fromArrayLike(t,e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function checked(t){if(t>=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|t}function SlowBuffer(t){return+t!=t&&(t=0),Buffer.alloc(+t)}function byteLength(t,e){if(Buffer.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return utf8ToBytes(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return base64ToBytes(t).length;default:if(n)return utf8ToBytes(t).length;e=(""+e).toLowerCase(),n=!0}}function slowToString(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,e>>>=0,r<=e)return"";for(t||(t="utf8");;)switch(t){case"hex":return hexSlice(this,e,r);case"utf8":case"utf-8":return utf8Slice(this,e,r);case"ascii":return asciiSlice(this,e,r);case"latin1":case"binary":return latin1Slice(this,e,r);case"base64":return base64Slice(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function swap(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function bidirectionalIndexOf(t,e,r,n,f){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=f?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(f)return-1;r=t.length-1}else if(r<0){if(!f)return-1;r=0}if("string"==typeof e&&(e=Buffer.from(e,n)),Buffer.isBuffer(e))return 0===e.length?-1:arrayIndexOf(t,e,r,n,f);if("number"==typeof e)return e&=255,Buffer.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?f?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):arrayIndexOf(t,[e],r,n,f);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(t,eLine truncated
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"base64-js":4,"ieee754":18,"isarray":9}],9:[function(_dereq_,module,exports){
var toString={}.toString;module.exports=Array.isArray||function(r){return"[object Array]"==toString.call(r)};
},{}],10:[function(_dereq_,module,exports){
function useColors(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function formatArgs(){var o=arguments,e=this.useColors;if(o[0]=(e?"%c":"")+this.namespace+(e?" %c":" ")+o[0]+(e?"%c ":" "),!e)return o;var r="color: "+this.color;o=[o[0],r,"color: inherit"].concat(Array.prototype.slice.call(o,1));var t=0,s=0;return o[0].replace(/%[a-z%]/g,function(o){"%%"!==o&&(t++,"%c"===o&&(s=t))}),o.splice(s,0,r),o}function log(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(o){try{null==o?exports.storage.removeItem("debug"):exports.storage.debug=o}catch(o){}}function load(){var o;try{o=exports.storage.debug}catch(o){}return o}function localstorage(){try{return window.localStorage}catch(o){}}exports=module.exports=_dereq_("./debug"),exports.log=log,exports.formatArgs=formatArgs,exports.save=save,exports.load=load,exports.useColors=useColors,exports.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:localstorage(),exports.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],exports.formatters.j=function(o){return JSON.stringify(o)},exports.enable(load());
},{"./debug":11}],11:[function(_dereq_,module,exports){
function selectColor(){return exports.colors[prevColor++%exports.colors.length]}function debug(e){function r(){}function o(){var e=o;null==e.useColors&&(e.useColors=exports.useColors()),null==e.color&&e.useColors&&(e.color=selectColor());var r=Array.prototype.slice.call(arguments);r[0]=exports.coerce(r[0]),"string"!=typeof r[0]&&(r=["%o"].concat(r));var s=0;r[0]=r[0].replace(/%([a-z%])/g,function(o,t){if("%%"===o)return o;s++;var n=exports.formatters[t];if("function"==typeof n){var l=r[s];o=n.call(e,l),r.splice(s,1),s--}return o}),"function"==typeof exports.formatArgs&&(r=exports.formatArgs.apply(e,r)),(o.log||exports.log||console.log.bind(console)).apply(e,r)}r.enabled=!1,o.enabled=!0;var s=exports.enabled(e)?o:r;return s.namespace=e,s}function enable(e){exports.save(e);for(var r=(e||"").split(/[\s,]+/),o=r.length,s=0;s<o;s++)r[s]&&(e=r[s].replace(/\*/g,".*?"),"-"===e[0]?exports.skips.push(new RegExp("^"+e.substr(1)+"$")):exports.names.push(new RegExp("^"+e+"$")))}function disable(){exports.enable("")}function enabled(e){var r,o;for(r=0,o=exports.skips.length;r<o;r++)if(exports.skips[r].test(e))return!1;for(r=0,o=exports.names.length;r<o;r++)if(exports.names[r].test(e))return!0;return!1}function coerce(e){return e instanceof Error?e.stack||e.message:e}exports=module.exports=debug,exports.coerce=coerce,exports.disable=disable,exports.enable=enable,exports.enabled=enabled,exports.names=[],exports.skips=[],exports.formatters={};var prevColor=0;
},{}],12:[function(_dereq_,module,exports){
"use strict";function toObject(r){if(null===r||void 0===r)throw new TypeError("Sources cannot be null or undefined");return Object(r)}function assignKey(r,e,n){var t=e[n];if(void 0!==t&&null!==t){if(hasOwnProperty.call(r,n)&&(void 0===r[n]||null===r[n]))throw new TypeError("Cannot convert undefined or null to object ("+n+")");hasOwnProperty.call(r,n)&&isObj(t)?r[n]=assign(Object(r[n]),e[n]):r[n]=t}}function assign(r,e){if(r===e)return r;e=Object(e);for(var n in e)hasOwnProperty.call(e,n)&&assignKey(r,e,n);if(Object.getOwnPropertySymbols)for(var t=Object.getOwnPropertySymbols(e),o=0;o<t.length;o++)propIsEnumerable.call(e,t[o])&&assignKey(r,e,t[o]);return r}var isObj=_dereq_("is-obj"),hasOwnProperty=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;module.exports=function(r){r=toObject(r);for(var e=1;e<arguments.length;e++)assign(r,arguments[e]);return r};
},{"is-obj":22}],13:[function(_dereq_,module,exports){
!function(t,r,n,a){"use strict";function l(e,t){for(var r=0,n=e.length;r<n;r++)m(e[r],t)}function i(e){for(var t,r=0,n=e.length;r<n;r++)t=e[r],y(t,H[u(t)])}function o(e){return function(t){ae(t)&&(m(t,e),l(t.querySelectorAll(x),e))}}function u(e){var t=oe.call(e,"is"),r=e.nodeName.toUpperCase(),n=G.call(U,t?k+t.toUpperCase():_+r);return t&&-1<n&&!c(r,t)?-1:n}function c(e,t){return-1<x.indexOf(e+'[is="'+t+'"]')}function s(e){var t=e.currentTarget,r=e.attrChange,n=e.attrName,a=e.target;me&&(!a||a===t)&&t.attributeChangedCallback&&"style"!==n&&e.prevValue!==e.newValue&&t.attributeChangedCallback(n,r===e[F]?null:e.prevValue,r===e[I]?null:e.newValue)}function d(e){var t=o(e);return function(e){g.push(t,e.target)}}function f(e){be&&(be=!1,e.currentTarget.removeEventListener(P,f)),l((e.target||r).querySelectorAll(x),e.detail===T?T:L),ne&&p()}function h(e,t){var r=this;ue.call(r,e,t),C.call(r,{target:r})}function v(e,t){ee(e,t),O?O.observe(e,de):(pe&&(e.setAttribute=h,e[w]=E(e),e.addEventListener(R,C)),e.addEventListener(D,s)),e.createdCallback&&me&&(e.created=!0,e.createdCallback(),e.created=!1)}function p(){for(var e,t=0,r=le.length;t<r;t++)e=le[t],Z.contains(e)||(r--,le.splice(t--,1),m(e,T))}function b(e){throw new Error("A "+e+" type is already registered")}function m(e,t){var r,n=u(e);-1<n&&(N(e,H[n]),n=0,t!==L||e[L]?t===T&&!e[T]&&(e[L]=!1,e[T]=!0,n=1):(e[T]=!1,e[L]=!0,n=1,ne&&G.call(le,e)<0&&le.push(e)),n&&(r=e[t+"Callback"])&&r.call(e))}if(!(a in r)){var g,C,A,E,O,N,y,w="__"+a+(1e5*Math.random()>>0),L="attached",T="detached",M="extends",F="ADDITION",V="MODIFICATION",I="REMOVAL",D="DOMAttrModified",P="DOMContentLoaded",R="DOMSubtreeModified",_="<",k="=",q=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)+$/,S=["ANNOTATION-XML","COLOR-PROFILE","FONT-FACE","FONT-FACE-SRC","FONT-FACE-URI","FONT-FACE-FORMAT","FONT-FACE-NAME","MISSING-GLYPH"],U=[],H=[],x="",Z=r.documentElement,G=U.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},j=n.prototype,z=j.hasOwnProperty,K=j.isPrototypeOf,W=n.defineProperty,X=n.getOwnPropertyDescriptor,Y=n.getOwnPropertyNames,$=n.getPrototypeOf,B=n.setPrototypeOf,J=!!n.__proto__,Q=n.create||function e(t){return t?(e.prototype=t,new e):this},ee=B||(J?function(e,t){return e.__proto__=t,e}:Y&&X?function(){function e(e,t){for(var r,n=Y(t),a=0,l=n.length;a<l;a++)r=n[a],z.call(e,r)||W(e,r,X(t,r))}return function(t,r){do{e(t,r)}while((r=$(r))&&!K.call(r,t));return t}}():function(e,t){for(var r in t)e[r]=t[r];return e}),te=t.MutationObserver||t.WebKitMutationObserver,re=(t.HTMLElement||t.Element||t.Node).prototype,ne=!K.call(re,Z),ae=ne?function(e){return 1===e.nodeType}:function(e){return K.call(re,e)},le=ne&&[],ie=re.cloneNode,oe=re.getAttribute,ue=re.setAttribute,ce=re.removeAttribute,se=r.createElement,de=te&&{attributes:!0,characterData:!0,attributeOldValue:!0},fe=te||function(e){pe=!1,Z.removeEventListener(D,fe)},he=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.msRequestAnimationFrame||function(e){setTimeout(e,10)},ve=!1,pe=!0,be=!0,me=!0;B||J?(N=function(e,t){K.call(t,e)||v(e,t)},y=v):(N=function(e,t){e[w]||(e[w]=n(!0),v(e,t))},y=N),ne?(pe=!1,function(){var t=X(re,"addEventListener"),r=t.value,n=function(e){var t=new CustomEvent(D,{bubbles:!0});t.attrName=e,t.prevValue=oe.call(this,e),t.newValue=null,t[I]=t.attrChange=2,ce.call(this,e),this.dispatchEvent(t)},a=function(t,r){var n=this.hasAttribute(t),a=n&&oe.call(this,t);e=new CustomEvent(D,{bubbles:!0}),ue.call(this,t,r),e.attrName=t,e.prevValue=n?a:null,e.newValue=r,n?e[V]=e.attrChange=1:e[F]=e.attrChange=0,this.dispatchEvent(e)},l=function(e){var t,r=e.currentTarget,n=r[w],a=e.propertyName;n.hasOwnProperty(a)&&(n=n[a],t=new CustomEvent(D,{bubbles:!0}),t.attrName=n.name,t.prevValue=n.value||null,t.newValue=n.value=r[a]||null,null==t.prevValue?t[F]=t.attrChange=0:t[V]=t.attrChange=1,r.dispatchEvent(t))};t.value=function(e,t,i){e===D&&this.attributeChangedCallback&&this.setAttribute!==a&&(this[w]={className:{name:"class",value:this.className}},this.setAttribute=a,this.removeAttribute=n,r.call(this,"propertychange",l)),r.call(this,e,t,i)},W(re,"addEventListener",t)}()):te||(Z.addEventListener(D,fe),Z.setAttribute(w,1),Z.removeAttribute(w),pe&&(C=function(e){var t,r,n,a=this;if(a===e.target){t=a[w],a[w]=r=E(a);for(n in r){if(!(n in t))return A(0,a,n,t[n],r[n],F);if(r[n]!==t[n])return A(1,a,n,t[n],r[n],V)}for(n in t)if(!(n in r))return A(2,a,n,t[n],r[n],I)}},A=function(e,t,r,n,a,l){var i={attrChange:e,currentTarget:t,attrName:r,prevValue:n,newValue:a};i[l]=e,s(i)},E=function(e){for(var t,r,n={},a=e.attributes,l=0,i=a.length;l<i;l++)t=a[l],"setAttribute"!==(r=t.name)&&(n[r]=t.value);return n})),r[a]=function(e,t){if(n=e.toUpperCase(),ve||(ve=!0,te?(O=function(e,t){function r(e,t){for(var r=0,n=e.length;r<n;t(e[r++]));}return new te(function(n){for(var a,l,i,o=0,u=n.length;o<u;o++)a=n[o],"childList"===a.type?(r(a.addedNodes,e),r(a.removedNodes,t)):(l=a.target,me&&l.attributeChangedCallback&&"style"!==aLine truncated
},{}],14:[function(_dereq_,module,exports){
module.exports=function(r){switch(r){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}};
},{}],15:[function(_dereq_,module,exports){
function flattenVertexData(e,t,r){if(!e)throw new TypeError("must specify data as first parameter");if(r=0|+(r||0),Array.isArray(e)&&Array.isArray(e[0])){var a=e[0].length,n=e.length*a;t&&"string"!=typeof t||(t=new(dtype(t||"float32"))(n+r));var o=t.length-r;if(n!==o)throw new Error("source length "+n+" ("+a+"x"+e.length+") does not match destination length "+o);for(var s=0,f=r;s<e.length;s++)for(var l=0;l<a;l++)t[f++]=e[s][l]}else if(t&&"string"!=typeof t)t.set(e,r);else{var i=dtype(t||"float32");0===r?t=new i(e):(t=new i(e.length+r),t.set(e,r))}return t}var dtype=_dereq_("dtype");module.exports=flattenVertexData;
},{"dtype":14}],16:[function(_dereq_,module,exports){
function forEach(r,t,o){if(!isFunction(t))throw new TypeError("iterator must be a function");arguments.length<3&&(o=this),"[object Array]"===toString.call(r)?forEachArray(r,t,o):"string"==typeof r?forEachString(r,t,o):forEachObject(r,t,o)}function forEachArray(r,t,o){for(var n=0,a=r.length;n<a;n++)hasOwnProperty.call(r,n)&&t.call(o,r[n],n,r)}function forEachString(r,t,o){for(var n=0,a=r.length;n<a;n++)t.call(o,r.charAt(n),n,r)}function forEachObject(r,t,o){for(var n in r)hasOwnProperty.call(r,n)&&t.call(o,r[n],n,r)}var isFunction=_dereq_("is-function");module.exports=forEach;var toString=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty;
},{"is-function":21}],17:[function(_dereq_,module,exports){
(function (global){
var win;win="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},module.exports=win;
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{}],18:[function(_dereq_,module,exports){
exports.read=function(a,o,t,r,h){var M,p,w=8*h-r-1,f=(1<<w)-1,e=f>>1,i=-7,N=t?h-1:0,n=t?-1:1,s=a[o+N];for(N+=n,M=s&(1<<-i)-1,s>>=-i,i+=w;i>0;M=256*M+a[o+N],N+=n,i-=8);for(p=M&(1<<-i)-1,M>>=-i,i+=r;i>0;p=256*p+a[o+N],N+=n,i-=8);if(0===M)M=1-e;else{if(M===f)return p?NaN:1/0*(s?-1:1);p+=Math.pow(2,r),M-=e}return(s?-1:1)*p*Math.pow(2,M-r)},exports.write=function(a,o,t,r,h,M){var p,w,f,e=8*M-h-1,i=(1<<e)-1,N=i>>1,n=23===h?Math.pow(2,-24)-Math.pow(2,-77):0,s=r?0:M-1,u=r?1:-1,l=o<0||0===o&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(w=isNaN(o)?1:0,p=i):(p=Math.floor(Math.log(o)/Math.LN2),o*(f=Math.pow(2,-p))<1&&(p--,f*=2),o+=p+N>=1?n/f:n*Math.pow(2,1-N),o*f>=2&&(p++,f/=2),p+N>=i?(w=0,p=i):p+N>=1?(w=(o*f-1)*Math.pow(2,h),p+=N):(w=o*Math.pow(2,N-1)*Math.pow(2,h),p=0));h>=8;a[t+s]=255&w,s+=u,w/=256,h-=8);for(p=p<<h|w,e+=h;e>0;a[t+s]=255&p,s+=u,p/=256,e-=8);a[t+s-u]|=128*l};
},{}],19:[function(_dereq_,module,exports){
"function"==typeof Object.create?module.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(t,e){t.super_=e;var o=function(){};o.prototype=e.prototype,t.prototype=new o,t.prototype.constructor=t};
},{}],20:[function(_dereq_,module,exports){
function isBuffer(f){return!!f.constructor&&"function"==typeof f.constructor.isBuffer&&f.constructor.isBuffer(f)}function isSlowBuffer(f){return"function"==typeof f.readFloatLE&&"function"==typeof f.slice&&isBuffer(f.slice(0,0))}module.exports=function(f){return null!=f&&(isBuffer(f)||isSlowBuffer(f)||!!f._isBuffer)};
},{}],21:[function(_dereq_,module,exports){
function isFunction(o){var t=toString.call(o);return"[object Function]"===t||"function"==typeof o&&"[object RegExp]"!==t||"undefined"!=typeof window&&(o===window.setTimeout||o===window.alert||o===window.confirm||o===window.prompt)}module.exports=isFunction;var toString=Object.prototype.toString;
},{}],22:[function(_dereq_,module,exports){
"use strict";module.exports=function(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)};
},{}],23:[function(_dereq_,module,exports){
function TextLayout(t){this.glyphs=[],this._measure=this.computeMetrics.bind(this),this.update(t)}function addGetter(t){Object.defineProperty(TextLayout.prototype,t,{get:wrapper(t),configurable:!0})}function wrapper(t){return new Function(["return function "+t+"() {"," return this._"+t,"}"].join("\n"))()}function getGlyphById(t,e){if(!t.chars||0===t.chars.length)return null;var r=findChar(t.chars,e);return r>=0?t.chars[r]:null}function getXHeight(t){for(var e=0;e<X_HEIGHTS.length;e++){var r=X_HEIGHTS[e].charCodeAt(0),n=findChar(t.chars,r);if(n>=0)return t.chars[n].height}return 0}function getMGlyph(t){for(var e=0;e<M_WIDTHS.length;e++){var r=M_WIDTHS[e].charCodeAt(0),n=findChar(t.chars,r);if(n>=0)return t.chars[n]}return 0}function getCapHeight(t){for(var e=0;e<CAP_HEIGHTS.length;e++){var r=CAP_HEIGHTS[e].charCodeAt(0),n=findChar(t.chars,r);if(n>=0)return t.chars[n].height}return 0}function getKerning(t,e,r){if(!t.kernings||0===t.kernings.length)return 0;for(var n=t.kernings,i=0;i<n.length;i++){var a=n[i];if(a.first===e&&a.second===r)return a.amount}return 0}function getAlignType(t){return"center"===t?ALIGN_CENTER:"right"===t?ALIGN_RIGHT:ALIGN_LEFT}function findChar(t,e,r){r=r||0;for(var n=r;n<t.length;n++)if(t[n].id===e)return n;return-1}var wordWrap=_dereq_("word-wrapper"),xtend=_dereq_("xtend"),number=_dereq_("as-number"),X_HEIGHTS=["x","e","a","o","n","s","r","c","u","m","v","w","z"],M_WIDTHS=["m","w"],CAP_HEIGHTS=["H","I","N","E","F","K","L","T","U","V","W","X","Y","Z"],TAB_ID="\t".charCodeAt(0),SPACE_ID=" ".charCodeAt(0),ALIGN_LEFT=0,ALIGN_CENTER=1,ALIGN_RIGHT=2;module.exports=function(t){return new TextLayout(t)},TextLayout.prototype.update=function(t){if(t=xtend({measure:this._measure},t),this._opt=t,this._opt.tabSize=number(this._opt.tabSize,4),!t.font)throw new Error("must provide a valid bitmap font");var e=this.glyphs,r=t.text||"",n=t.font;this._setupSpaceGlyphs(n);var i=wordWrap.lines(r,t),a=t.width||0;e.length=0;var h=i.reduce(function(t,e){return Math.max(t,e.width,a)},0),o=0,s=0,c=number(t.lineHeight,n.common.lineHeight),u=n.common.base,l=c-u,p=t.letterSpacing||0,f=c*i.length-l,d=getAlignType(this._opt.align);s-=f,this._width=h,this._height=f,this._descender=c-u,this._baseline=u,this._xHeight=getXHeight(n),this._capHeight=getCapHeight(n),this._lineHeight=c,this._ascender=c-l-this._xHeight;var g=this;i.forEach(function(t,i){for(var a,u=t.start,l=t.end,f=t.width,_=u;_<l;_++){var y=r.charCodeAt(_),G=g.getGlyph(n,y);if(G){a&&(o+=getKerning(n,a.id,G.id));var T=o;d===ALIGN_CENTER?T+=(h-f)/2:d===ALIGN_RIGHT&&(T+=h-f),e.push({position:[T,s],data:G,index:_,line:i}),o+=G.xadvance+p,a=G}}s+=c,o=0}),this._linesTotal=i.length},TextLayout.prototype._setupSpaceGlyphs=function(t){if(this._fallbackSpaceGlyph=null,this._fallbackTabGlyph=null,t.chars&&0!==t.chars.length){var e=getGlyphById(t,SPACE_ID)||getMGlyph(t)||t.chars[0],r=this._opt.tabSize*e.xadvance;this._fallbackSpaceGlyph=e,this._fallbackTabGlyph=xtend(e,{x:0,y:0,xadvance:r,id:TAB_ID,xoffset:0,yoffset:0,width:0,height:0})}},TextLayout.prototype.getGlyph=function(t,e){var r=getGlyphById(t,e);return r||(e===TAB_ID?this._fallbackTabGlyph:e===SPACE_ID?this._fallbackSpaceGlyph:null)},TextLayout.prototype.computeMetrics=function(t,e,r,n){var i,a,h=this._opt.letterSpacing||0,o=this._opt.font,s=0,c=0,u=0;if(!o.chars||0===o.chars.length)return{start:e,end:e,width:0};r=Math.min(t.length,r);for(var l=e;l<r;l++){var p=t.charCodeAt(l),i=this.getGlyph(o,p);if(i){i.xoffset;s+=a?getKerning(o,a.id,i.id):0;var f=s+i.xadvance+h,d=s+i.width;if(d>=n||f>=n)break;s=f,c=d,a=i}u++}return a&&(c+=a.xoffset),{start:e,end:e+u,width:c}},["width","height","descender","ascender","xHeight","baseline","capHeight","lineHeight"].forEach(addGetter);
},{"as-number":3,"word-wrapper":47,"xtend":50}],24:[function(_dereq_,module,exports){
(function (Buffer){
function isArrayBuffer(r){return"[object ArrayBuffer]"===Object.prototype.toString.call(r)}function getBinaryOpts(r){if(xml2)return xtend(r,{responseType:"arraybuffer"});if(void 0===self.XMLHttpRequest)throw new Error("your browser does not support XHR loading");var e=new self.XMLHttpRequest;return e.overrideMimeType("text/plain; charset=x-user-defined"),xtend({xhr:e},r)}var xhr=_dereq_("xhr"),noop=function(){},parseASCII=_dereq_("parse-bmfont-ascii"),parseXML=_dereq_("parse-bmfont-xml"),readBinary=_dereq_("parse-bmfont-binary"),isBinaryFormat=_dereq_("./lib/is-binary"),xtend=_dereq_("xtend"),xml2=function(){return self.XMLHttpRequest&&"withCredentials"in new XMLHttpRequest}();module.exports=function(r,e){e="function"==typeof e?e:noop,"string"==typeof r?r={uri:r}:r||(r={}),r.binary&&(r=getBinaryOpts(r)),xhr(r,function(t,n,i){if(t)return e(t);if(!/^2/.test(n.statusCode))return e(new Error("http status code: "+n.statusCode));if(!i)return e(new Error("no body result"));var o=!1;if(isArrayBuffer(i)){var a=new Uint8Array(i);i=new Buffer(a,"binary")}isBinaryFormat(i)&&(o=!0,"string"==typeof i&&(i=new Buffer(i,"binary"))),o||(Buffer.isBuffer(i)&&(i=i.toString(r.encoding)),i=i.trim());var s;try{var u=n.headers["content-type"];s=o?readBinary(i):/json/.test(u)||"{"===i.charAt(0)?JSON.parse(i):/xml/.test(u)||"<"===i.charAt(0)?parseXML(i):parseASCII(i)}catch(r){e(new Error("error parsing font "+r.message)),e=noop}e(null,s)})};
}).call(this,_dereq_("buffer").Buffer)
},{"./lib/is-binary":25,"buffer":8,"parse-bmfont-ascii":27,"parse-bmfont-binary":28,"parse-bmfont-xml":29,"xhr":48,"xtend":50}],25:[function(_dereq_,module,exports){
(function (Buffer){
var equal=_dereq_("buffer-equal"),HEADER=new Buffer([66,77,70,3]);module.exports=function(e){return"string"==typeof e?"BMF"===e.substring(0,3):e.length>4&&equal(e.slice(0,4),HEADER)};
}).call(this,_dereq_("buffer").Buffer)
},{"buffer":8,"buffer-equal":7}],26:[function(_dereq_,module,exports){
"use strict";function toObject(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function shouldUseNative(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var r={},t=0;t<10;t++)r["_"+String.fromCharCode(t)]=t;if("0123456789"!==Object.getOwnPropertyNames(r).map(function(e){return r[e]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(e){n[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}var getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;module.exports=shouldUseNative()?Object.assign:function(e,r){for(var t,n,o=toObject(e),a=1;a<arguments.length;a++){t=Object(arguments[a]);for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);if(getOwnPropertySymbols){n=getOwnPropertySymbols(t);for(var c=0;c<n.length;c++)propIsEnumerable.call(t,n[c])&&(o[n[c]]=t[n[c]])}}return o};
},{}],27:[function(_dereq_,module,exports){
function splitLine(e,r){if(!(e=e.replace(/\t+/g," ").trim()))return null;var t=e.indexOf(" ");if(-1===t)throw new Error("no named row at line "+r);var a=e.substring(0,t);e=e.substring(t+1),e=e.replace(/letter=[\'\"]\S+[\'\"]/gi,""),e=e.split("="),e=e.map(function(e){return e.trim().match(/(".*?"|[^"\s]+)+(?=\s*|\s*$)/g)});for(var n=[],i=0;i<e.length;i++){var s=e[i];0===i?n.push({key:s[0],data:""}):i===e.length-1?n[n.length-1].data=parseData(s[0]):(n[n.length-1].data=parseData(s[0]),n.push({key:s[1],data:""}))}var o={key:a,data:{}};return n.forEach(function(e){o.data[e.key]=e.data}),o}function parseData(e){return e&&0!==e.length?0===e.indexOf('"')||0===e.indexOf("'")?e.substring(1,e.length-1):-1!==e.indexOf(",")?parseIntList(e):parseInt(e,10):""}function parseIntList(e){return e.split(",").map(function(e){return parseInt(e,10)})}module.exports=function(e){if(!e)throw new Error("no data provided");e=e.toString().trim();var r={pages:[],chars:[],kernings:[]},t=e.split(/\r\n?|\n/g);if(0===t.length)throw new Error("no data in BMFont file");for(var a=0;a<t.length;a++){var n=splitLine(t[a],a);if(n)if("page"===n.key){if("number"!=typeof n.data.id)throw new Error("malformed file at line "+a+" -- needs page id=N");if("string"!=typeof n.data.file)throw new Error("malformed file at line "+a+' -- needs page file="path"');r.pages[n.data.id]=n.data.file}else"chars"===n.key||"kernings"===n.key||("char"===n.key?r.chars.push(n.data):"kerning"===n.key?r.kernings.push(n.data):r[n.key]=n.data)}return r};
},{}],28:[function(_dereq_,module,exports){
function readBlock(r,e,n){if(n>e.length-1)return 0;var a=e.readUInt8(n++),t=e.readInt32LE(n);switch(n+=4,a){case 1:r.info=readInfo(e,n);break;case 2:r.common=readCommon(e,n);break;case 3:r.pages=readPages(e,n,t);break;case 4:r.chars=readChars(e,n,t);break;case 5:r.kernings=readKernings(e,n,t)}return 5+t}function readInfo(r,e){var n={};n.size=r.readInt16LE(e);var a=r.readUInt8(e+2);return n.smooth=a>>7&1,n.unicode=a>>6&1,n.italic=a>>5&1,n.bold=a>>4&1,a>>3&1&&(n.fixedHeight=1),n.charset=r.readUInt8(e+3)||"",n.stretchH=r.readUInt16LE(e+4),n.aa=r.readUInt8(e+6),n.padding=[r.readInt8(e+7),r.readInt8(e+8),r.readInt8(e+9),r.readInt8(e+10)],n.spacing=[r.readInt8(e+11),r.readInt8(e+12)],n.outline=r.readUInt8(e+13),n.face=readStringNT(r,e+14),n}function readCommon(r,e){var n={};n.lineHeight=r.readUInt16LE(e),n.base=r.readUInt16LE(e+2),n.scaleW=r.readUInt16LE(e+4),n.scaleH=r.readUInt16LE(e+6),n.pages=r.readUInt16LE(e+8);r.readUInt8(e+10);return n.packed=0,n.alphaChnl=r.readUInt8(e+11),n.redChnl=r.readUInt8(e+12),n.greenChnl=r.readUInt8(e+13),n.blueChnl=r.readUInt8(e+14),n}function readPages(r,e,n){for(var a=[],t=readNameNT(r,e),d=t.length+1,o=n/d,i=0;i<o;i++)a[i]=r.slice(e,e+t.length).toString("utf8"),e+=d;return a}function readChars(r,e,n){for(var a=[],t=n/20,d=0;d<t;d++){var o={},i=20*d;o.id=r.readUInt32LE(e+0+i),o.x=r.readUInt16LE(e+4+i),o.y=r.readUInt16LE(e+6+i),o.width=r.readUInt16LE(e+8+i),o.height=r.readUInt16LE(e+10+i),o.xoffset=r.readInt16LE(e+12+i),o.yoffset=r.readInt16LE(e+14+i),o.xadvance=r.readInt16LE(e+16+i),o.page=r.readUInt8(e+18+i),o.chnl=r.readUInt8(e+19+i),a[d]=o}return a}function readKernings(r,e,n){for(var a=[],t=n/10,d=0;d<t;d++){var o={},i=10*d;o.first=r.readUInt32LE(e+0+i),o.second=r.readUInt32LE(e+4+i),o.amount=r.readInt16LE(e+8+i),a[d]=o}return a}function readNameNT(r,e){for(var n=e;n<r.length&&0!==r[n];n++);return r.slice(e,n)}function readStringNT(r,e){return readNameNT(r,e).toString("utf8")}var HEADER=[66,77,70];module.exports=function(r){if(r.length<6)throw new Error("invalid buffer length for BMFont");if(!HEADER.every(function(e,n){return r.readUInt8(n)===e}))throw new Error("BMFont missing BMF byte header");var e=3;if(r.readUInt8(e++)>3)throw new Error("Only supports BMFont Binary v3 (BMFont App v1.10)");for(var n={kernings:[],chars:[]},a=0;a<5;a++)e+=readBlock(n,r,e);return n};
},{}],29:[function(_dereq_,module,exports){
function getAttribs(e){return getAttribList(e).reduce(function(e,t){return e[mapName(t.nodeName)]=t.nodeValue,e},{})}function getAttribList(e){for(var t=[],r=0;r<e.attributes.length;r++)t.push(e.attributes[r]);return t}function mapName(e){return NAME_MAP[e.toLowerCase()]||e}var parseAttributes=_dereq_("./parse-attribs"),parseFromString=_dereq_("xml-parse-from-string"),NAME_MAP={scaleh:"scaleH",scalew:"scaleW",stretchh:"stretchH",lineheight:"lineHeight",alphachnl:"alphaChnl",redchnl:"redChnl",greenchnl:"greenChnl",bluechnl:"blueChnl"};module.exports=function(e){e=e.toString();var t=parseFromString(e),r={pages:[],chars:[],kernings:[]};["info","common"].forEach(function(e){var a=t.getElementsByTagName(e)[0];a&&(r[e]=parseAttributes(getAttribs(a)))});var a=t.getElementsByTagName("pages")[0];if(!a)throw new Error("malformed file -- no <pages> element");for(var n=a.getElementsByTagName("page"),i=0;i<n.length;i++){var s=n[i],g=parseInt(s.getAttribute("id"),10),l=s.getAttribute("file");if(isNaN(g))throw new Error('malformed file -- page "id" attribute is NaN');if(!l)throw new Error('malformed file -- needs page "file" attribute');r.pages[parseInt(g,10)]=l}return["chars","kernings"].forEach(function(e){var a=t.getElementsByTagName(e)[0];if(a)for(var n=e.substring(0,e.length-1),i=a.getElementsByTagName(n),s=0;s<i.length;s++){var g=i[s];r[e].push(parseAttributes(getAttribs(g)))}}),r};
},{"./parse-attribs":30,"xml-parse-from-string":49}],30:[function(_dereq_,module,exports){
function parseIntList(t){return t.split(",").map(function(t){return parseInt(t,10)})}var GLYPH_DESIGNER_ERROR="chasrset";module.exports=function(t){GLYPH_DESIGNER_ERROR in t&&(t.charset=t[GLYPH_DESIGNER_ERROR],delete t[GLYPH_DESIGNER_ERROR]);for(var n in t)"face"!==n&&"charset"!==n&&(t[n]="padding"===n||"spacing"===n?parseIntList(t[n]):parseInt(t[n],10));return t};
},{}],31:[function(_dereq_,module,exports){
var trim=_dereq_("trim"),forEach=_dereq_("for-each"),isArray=function(r){return"[object Array]"===Object.prototype.toString.call(r)};module.exports=function(r){if(!r)return{};var t={};return forEach(trim(r).split("\n"),function(r){var i=r.indexOf(":"),e=trim(r.slice(0,i)).toLowerCase(),o=trim(r.slice(i+1));void 0===t[e]?t[e]=o:isArray(t[e])?t[e].push(o):t[e]=[t[e],o]}),t};
},{"for-each":16,"trim":45}],32:[function(_dereq_,module,exports){
(function (global){
var performance=global.performance||{},present=function(){for(var e=["now","webkitNow","msNow","mozNow","oNow"];e.length;){var n=e.shift();if(n in performance)return performance[n].bind(performance)}var r=Date.now||function(){return(new Date).getTime()},o=(performance.timing||{}).navigationStart||r();return function(){return r()-o}}();present.performanceNow=performance.now,present.noConflict=function(){performance.now=present.performanceNow},present.conflict=function(){performance.now=present},present.conflict(),module.exports=present;
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{}],33:[function(_dereq_,module,exports){
!function(t){function e(t,e){return function(){t.apply(e,arguments)}}function n(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],f(t,e(r,this),e(i,this))}function o(t){var e=this;if(null===this._state)return void this._deferreds.push(t);l(function(){var n=e._state?t.onFulfilled:t.onRejected;if(null===n)return void(e._state?t.resolve:t.reject)(e._value);var o;try{o=n(e._value)}catch(e){return void t.reject(e)}t.resolve(o)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void f(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,u.call(this)}catch(t){i.call(this,t)}}function i(t){this._state=!1,this._value=t,u.call(this)}function u(){for(var t=0,e=this._deferreds.length;t<e;t++)o.call(this,this._deferreds[t]);this._deferreds=null}function c(t,e,n,o){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.resolve=n,this.reject=o}function f(t,e,n){var o=!1;try{t(function(t){o||(o=!0,e(t))},function(t){o||(o=!0,n(t))})}catch(t){if(o)return;o=!0,n(t)}}var s=setTimeout,l="function"==typeof setImmediate&&setImmediate||function(t){s(t,1)},h=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};n.prototype.catch=function(t){return this.then(null,t)},n.prototype.then=function(t,e){var r=this;return new n(function(n,i){o.call(r,new c(t,e,n,i))})},n.all=function(){var t=Array.prototype.slice.call(1===arguments.length&&h(arguments[0])?arguments[0]:arguments);return new n(function(e,n){function o(i,u){try{if(u&&("object"==typeof u||"function"==typeof u)){var c=u.then;if("function"==typeof c)return void c.call(u,function(t){o(i,t)},n)}t[i]=u,0==--r&&e(t)}catch(t){n(t)}}if(0===t.length)return e([]);for(var r=t.length,i=0;i<t.length;i++)o(i,t[i])})},n.resolve=function(t){return t&&"object"==typeof t&&t.constructor===n?t:new n(function(e){e(t)})},n.reject=function(t){return new n(function(e,n){n(t)})},n.race=function(t){return new n(function(e,n){for(var o=0,r=t.length;o<r;o++)t[o].then(e,n)})},n._setImmediateFn=function(t){l=t},"undefined"!=typeof module&&module.exports?module.exports=n:t.Promise||(t.Promise=n)}(this);
},{}],34:[function(_dereq_,module,exports){
var dtype=_dereq_("dtype"),anArray=_dereq_("an-array"),isBuffer=_dereq_("is-buffer"),CW=[0,2,3],CCW=[2,1,3];module.exports=function(r,e){r&&(anArray(r)||isBuffer(r))||(e=r||{},r=null),e="number"==typeof e?{count:e}:e||{};for(var t="string"==typeof e.type?e.type:"uint16",u="number"==typeof e.count?e.count:1,n=e.start||0,a=!1!==e.clockwise?CW:CCW,f=a[0],o=a[1],y=a[2],i=6*u,p=r||new(dtype(t))(i),s=0,c=0;s<i;s+=6,c+=4){var C=s+n;p[C+0]=c+0,p[C+1]=c+1,p[C+2]=c+2,p[C+3]=c+f,p[C+4]=c+o,p[C+5]=c+y}return p};
},{"an-array":2,"dtype":14,"is-buffer":20}],35:[function(_dereq_,module,exports){
function parse(r,e){e=e||{};var n=e.preserveNumbers,t=function(r){return r.trim()},i={};return getKeyValueChunks(r).map(t).filter(Boolean).forEach(function(r){var e=r.indexOf(":"),t=r.substr(0,e).trim(),u=r.substr(e+1).trim();n&&isNumeric(u)&&(u=Number(u)),i[t]=u}),i}function isNumeric(r){return!isNaN(parseFloat(r))&&isFinite(r)}function getKeyValueChunks(r){for(var e,n=[],t=0,i=/url\([^\)]+$/,u="";t<r.length;)e=r.indexOf(";",t),-1===e&&(e=r.length),u+=r.substring(t,e),i.test(u)?(u+=";",t=e+1):(n.push(u),u="",t=e+1);return n}function stringify(r){return Object.keys(r).map(function(e){return e+":"+r[e]}).join(";")}function normalize(r,e){return stringify(parse(r,e))}module.exports.parse=parse,module.exports.stringify=stringify,module.exports.normalize=normalize;
},{}],36:[function(_dereq_,module,exports){
function TextGeometry(e){Base.call(this),"string"==typeof e&&(e={text:e}),this._opt=assign({},e),e&&this.update(e)}var createLayout=_dereq_("layout-bmfont-text"),inherits=_dereq_("inherits"),createIndices=_dereq_("quad-indices"),buffer=_dereq_("three-buffer-vertex-data"),assign=_dereq_("object-assign"),vertices=_dereq_("./lib/vertices"),utils=_dereq_("./lib/utils"),Base=THREE.BufferGeometry;module.exports=function(e){return new TextGeometry(e)},inherits(TextGeometry,Base),TextGeometry.prototype.update=function(e){if("string"==typeof e&&(e={text:e}),e=assign({},this._opt,e),!e.font)throw new TypeError("must specify a { font } in options");this.layout=createLayout(e);var t=!1!==e.flipY,i=e.font,r=i.common.scaleW,o=i.common.scaleH,s=this.layout.glyphs.filter(function(e){var t=e.data;return t.width*t.height>0});this.visibleGlyphs=s;var n=vertices.positions(s),u=vertices.uvs(s,r,o,t),a=createIndices({clockwise:!0,type:"uint16",count:s.length});if(buffer.index(this,a,1,"uint16"),buffer.attr(this,"position",n,2),buffer.attr(this,"uv",u,2),!e.multipage&&"page"in this.attributes)this.removeAttribute("page");else if(e.multipage){var h=vertices.pages(s);buffer.attr(this,"page",h,1)}},TextGeometry.prototype.computeBoundingSphere=function(){null===this.boundingSphere&&(this.boundingSphere=new THREE.Sphere);var e=this.attributes.position.array,t=this.attributes.position.itemSize;if(!e||!t||e.length<2)return this.boundingSphere.radius=0,void this.boundingSphere.center.set(0,0,0);utils.computeSphere(e,this.boundingSphere),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.')},TextGeometry.prototype.computeBoundingBox=function(){null===this.boundingBox&&(this.boundingBox=new THREE.Box3);var e=this.boundingBox,t=this.attributes.position.array,i=this.attributes.position.itemSize;if(!t||!i||t.length<2)return void e.makeEmpty();utils.computeBox(t,e)};
},{"./lib/utils":37,"./lib/vertices":38,"inherits":19,"layout-bmfont-text":23,"object-assign":26,"quad-indices":34,"three-buffer-vertex-data":39}],37:[function(_dereq_,module,exports){
function bounds(x){var m=x.length/itemSize;box.min[0]=x[0],box.min[1]=x[1],box.max[0]=x[0],box.max[1]=x[1];for(var o=0;o<m;o++){var i=x[o*itemSize+0],a=x[o*itemSize+1];box.min[0]=Math.min(i,box.min[0]),box.min[1]=Math.min(a,box.min[1]),box.max[0]=Math.max(i,box.max[0]),box.max[1]=Math.max(a,box.max[1])}}var itemSize=2,box={min:[0,0],max:[0,0]};module.exports.computeBox=function(x,m){bounds(x),m.min.set(box.min[0],box.min[1],0),m.max.set(box.max[0],box.max[1],0)},module.exports.computeSphere=function(x,m){bounds(x);var o=box.min[0],i=box.min[1],a=box.max[0],n=box.max[1],b=a-o,e=n-i,t=Math.sqrt(b*b+e*e);m.center.set(o+b/2,i+e/2,0),m.radius=t/2};
},{}],38:[function(_dereq_,module,exports){
module.exports.pages=function(t){var o=new Float32Array(4*t.length*1),n=0;return t.forEach(function(t){var r=t.data.page||0;o[n++]=r,o[n++]=r,o[n++]=r,o[n++]=r}),o},module.exports.uvs=function(t,o,n,r){var a=new Float32Array(4*t.length*2),e=0;return t.forEach(function(t){var i=t.data,f=i.x+i.width,u=i.y+i.height,h=i.x/o,s=i.y/n,c=f/o,l=u/n;r&&(s=(n-i.y)/n,l=(n-u)/n),a[e++]=h,a[e++]=s,a[e++]=h,a[e++]=l,a[e++]=c,a[e++]=l,a[e++]=c,a[e++]=s}),a},module.exports.positions=function(t){var o=new Float32Array(4*t.length*2),n=0;return t.forEach(function(t){var r=t.data,a=t.position[0]+r.xoffset,e=t.position[1]+r.yoffset,i=r.width,f=r.height;o[n++]=a,o[n++]=e,o[n++]=a,o[n++]=e+f,o[n++]=a+i,o[n++]=e+f,o[n++]=a+i,o[n++]=e}),o};
},{}],39:[function(_dereq_,module,exports){
function setIndex(e,t,r,n){"number"!=typeof r&&(r=1),"string"!=typeof n&&(n="uint16");var i=!e.index&&"function"!=typeof e.setIndex,a=i?e.getAttribute("index"):e.index,u=updateAttribute(a,t,r,n);u&&(i?e.addAttribute("index",u):e.index=u)}function setAttribute(e,t,r,n,i){if("number"!=typeof n&&(n=3),"string"!=typeof i&&(i="float32"),Array.isArray(r)&&Array.isArray(r[0])&&r[0].length!==n)throw new Error("Nested vertex array has unexpected size; expected "+n+" but found "+r[0].length);var a=e.getAttribute(t),u=updateAttribute(a,r,n,i);u&&e.addAttribute(t,u)}function updateAttribute(e,t,r,n){if(t=t||[],!e||rebuildAttribute(e,t,r)){t=flatten(t,n);var i=e&&"function"!=typeof e.setArray;return e&&!i||(i&&!warned&&(warned=!0,console.warn(["A WebGL buffer is being updated with a new size or itemSize, ","however this version of ThreeJS only supports fixed-size buffers.","\nThe old buffer may still be kept in memory.\n","To avoid memory leaks, it is recommended that you dispose ","your geometries and create new ones, or update to ThreeJS r82 or newer.\n","See here for discussion:\n","https://github.com/mrdoob/three.js/pull/9631"].join(""))),e=new THREE.BufferAttribute(t,r)),e.itemSize=r,e.needsUpdate=!0,"function"==typeof e.setArray&&e.setArray(t),e}return flatten(t,e.array),e.needsUpdate=!0,null}function rebuildAttribute(e,t,r){if(e.itemSize!==r)return!0;if(!e.array)return!0;var n=e.array.length;return Array.isArray(t)&&Array.isArray(t[0])?n!==t.length*r:n!==t.length}var flatten=_dereq_("flatten-vertex-data"),warned=!1;module.exports.attr=setAttribute,module.exports.index=setIndex;
},{"flatten-vertex-data":15}],40:[function(_dereq_,module,exports){
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.THREE={})}(this,function(t){"use strict";function e(){}function i(t,e){this.x=t||0,this.y=e||0}function r(){this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.")}function n(t,e,i,r){this._x=t||0,this._y=e||0,this._z=i||0,this._w=void 0!==r?r:1}function a(t,e,i){this.x=t||0,this.y=e||0,this.z=i||0}function o(){this.elements=[1,0,0,0,1,0,0,0,1],arguments.length>0&&console.error("THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.")}function s(t,e,r,n,a,c,h,l,u,p){Object.defineProperty(this,"id",{value:uc++}),this.uuid=lc.generateUUID(),this.name="",this.image=void 0!==t?t:s.DEFAULT_IMAGE,this.mipmaps=[],this.mapping=void 0!==e?e:s.DEFAULT_MAPPING,this.wrapS=void 0!==r?r:$o,this.wrapT=void 0!==n?n:$o,this.magFilter=void 0!==a?a:ns,this.minFilter=void 0!==c?c:os,this.anisotropy=void 0!==u?u:1,this.format=void 0!==h?h:_s,this.type=void 0!==l?l:ss,this.offset=new i(0,0),this.repeat=new i(1,1),this.center=new i(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new o,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=void 0!==p?p:ec,this.version=0,this.onUpdate=null}function c(t,e,i,r){this.x=t||0,this.y=e||0,this.z=i||0,this.w=void 0!==r?r:1}function h(t,e,i){this.uuid=lc.generateUUID(),this.width=t,this.height=e,this.scissor=new c(0,0,t,e),this.scissorTest=!1,this.viewport=new c(0,0,t,e),i=i||{},void 0===i.minFilter&&(i.minFilter=ns),this.texture=new s(void 0,void 0,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0===i.stencilBuffer||i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null}function l(t,e,i){h.call(this,t,e,i),this.activeCubeFace=0,this.activeMipMapLevel=0}function u(t,e,i,r,n,a,o,c,h,l,u,p){s.call(this,null,a,o,c,h,l,r,n,u,p),this.image={data:t,width:e,height:i},this.magFilter=void 0!==h?h:es,this.minFilter=void 0!==l?l:es,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}function p(t,e,i,r,n,a,o,c,h,l){t=void 0!==t?t:[],e=void 0!==e?e:Wo,s.call(this,t,e,i,r,n,a,o,c,h,l),this.flipY=!1}function d(){this.seq=[],this.map={}}function f(t,e,i){var r=t[0];if(r<=0||r>0)return t;var n=e*i,a=fc[n];if(void 0===a&&(a=new Float32Array(n),fc[n]=a),0!==e){r.toArray(a,0);for(var o=1,s=0;o!==e;++o)s+=i,t[o].toArray(a,s)}return a}function m(t,e){var i=mc[e];void 0===i&&(i=new Int32Array(e),mc[e]=i);for(var r=0;r!==e;++r)i[r]=t.allocTextureUnit();return i}function v(t,e){t.uniform1f(this.addr,e)}function g(t,e){t.uniform1i(this.addr,e)}function y(t,e){void 0===e.x?t.uniform2fv(this.addr,e):t.uniform2f(this.addr,e.x,e.y)}function x(t,e){void 0!==e.x?t.uniform3f(this.addr,e.x,e.y,e.z):void 0!==e.r?t.uniform3f(this.addr,e.r,e.g,e.b):t.uniform3fv(this.addr,e)}function b(t,e){void 0===e.x?t.uniform4fv(this.addr,e):t.uniform4f(this.addr,e.x,e.y,e.z,e.w)}function _(t,e){t.uniformMatrix2fv(this.addr,!1,e.elements||e)}function w(t,e){void 0===e.elements?t.uniformMatrix3fv(this.addr,!1,e):(gc.set(e.elements),t.uniformMatrix3fv(this.addr,!1,gc))}function M(t,e){void 0===e.elements?t.uniformMatrix4fv(this.addr,!1,e):(vc.set(e.elements),t.uniformMatrix4fv(this.addr,!1,vc))}function E(t,e,i){var r=i.allocTextureUnit();t.uniform1i(this.addr,r),i.setTexture2D(e||pc,r)}function T(t,e,i){var r=i.allocTextureUnit();t.uniform1i(this.addr,r),i.setTextureCube(e||dc,r)}function S(t,e){t.uniform2iv(this.addr,e)}function A(t,e){t.uniform3iv(this.addr,e)}function L(t,e){t.uniform4iv(this.addr,e)}function R(t){switch(t){case 5126:return v;case 35664:return y;case 35665:return x;case 35666:return b;case 35674:return _;case 35675:return w;case 35676:return M;case 35678:case 36198:return E;case 35680:return T;case 5124:case 35670:return g;case 35667:case 35671:return S;case 35668:case 35672:return A;case 35669:case 35673:return L}}function C(t,e){t.uniform1fv(this.addr,e)}function P(t,e){t.uniform1iv(this.addr,e)}function I(t,e){t.uniform2fv(this.addr,f(e,this.size,2))}function O(t,e){t.uniform3fv(this.addr,f(e,this.size,3))}function N(t,e){t.uniform4fv(this.addr,f(e,this.size,4))}function U(t,e){t.uniformMatrix2fv(this.addr,!1,f(e,this.size,4))}function D(t,e){t.uniformMatrix3fv(this.addr,!1,f(e,this.size,9))}function B(t,e){t.uniformMatrix4fv(this.addr,!1,f(e,this.size,16))}function F(t,e,i){var r=e.length,n=m(i,r);t.uniform1iv(this.addr,n);for(var a=0;a!==r;++a)i.setTexture2D(e[a]||pc,n[a])}function z(t,e,i){var r=e.length,n=m(i,r);t.uniform1iv(this.addr,n);for(var a=0;a!==r;++a)i.setTextureCube(e[a]||dc,n[a])}function G(t){switch(t){case 5126:return C;case 35664:return I;case 35665:return O;case 35666:return N;case 35674:return U;case 35675:return D;case 35676:return BLine truncated
!1===t.getShaderParameter(r,t.COMPILE_STATUS)&&console.error("THREE.WebGLShader: Shader couldn't compile."),""!==t.getShaderInfoLog(r)&&console.warn("THREE.WebGLShader: gl.getShaderInfoLog()",e===t.VERTEX_SHADER?"vertex":"fragment",t.getShaderInfoLog(r),Xt(i)),r}function Yt(t){switch(t){case ec:return["Linear","( value )"];case ic:return["sRGB","( value )"];case nc:return["RGBE","( value )"];case ac:return["RGBM","( value, 7.0 )"];case oc:return["RGBM","( value, 16.0 )"];case sc:return["RGBD","( value, 256.0 )"];case rc:return["Gamma","( value, float( GAMMA_FACTOR ) )"];default:throw new Error("unsupported encoding: "+t)}}function Zt(t,e){var i=Yt(e);return"vec4 "+t+"( vec4 value ) { return "+i[0]+"ToLinear"+i[1]+"; }"}function Jt(t,e){var i=Yt(e);return"vec4 "+t+"( vec4 value ) { return LinearTo"+i[0]+i[1]+"; }"}function Qt(t,e){var i;switch(e){case Ho:i="Linear";break;case Vo:i="Reinhard";break;case ko:i="Uncharted2";break;case jo:i="OptimizedCineon";break;default:throw new Error("unsupported toneMapping: "+e)}return"vec3 "+t+"( vec3 color ) { return "+i+"ToneMapping( color ); }"}function Kt(t,e,i){return t=t||{},[t.derivatives||e.envMapCubeUV||e.bumpMap||e.normalMap||e.flatShading?"#extension GL_OES_standard_derivatives : enable":"",(t.fragDepth||e.logarithmicDepthBuffer)&&i.get("EXT_frag_depth")?"#extension GL_EXT_frag_depth : enable":"",t.drawBuffers&&i.get("WEBGL_draw_buffers")?"#extension GL_EXT_draw_buffers : require":"",(t.shaderTextureLOD||e.envMap)&&i.get("EXT_shader_texture_lod")?"#extension GL_EXT_shader_texture_lod : enable":""].filter(ee).join("\n")}function $t(t){var e=[];for(var i in t){var r=t[i];!1!==r&&e.push("#define "+i+" "+r)}return e.join("\n")}function te(t,e){for(var i={},r=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES),n=0;n<r;n++){var a=t.getActiveAttrib(e,n),o=a.name;i[o]=t.getAttribLocation(e,o)}return i}function ee(t){return""!==t}function ie(t,e){return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights)}function re(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}function ne(t){function e(t,e){var i=wc[e];if(void 0===i)throw new Error("Can not resolve #include <"+e+">");return ne(i)}var i=/^[ \t]*#include +<([\w\d.]+)>/gm;return t.replace(i,e)}function ae(t){function e(t,e,i,r){for(var n="",a=parseInt(e);a<parseInt(i);a++)n+=r.replace(/\[ i \]/g,"[ "+a+" ]");return n}var i=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g;return t.replace(i,e)}function oe(t,e,i,r,n,a){var o=t.context,s=r.defines,c=n.vertexShader,h=n.fragmentShader,l="SHADOWMAP_TYPE_BASIC";a.shadowMapType===Ka?l="SHADOWMAP_TYPE_PCF":a.shadowMapType===$a&&(l="SHADOWMAP_TYPE_PCF_SOFT");var u="ENVMAP_TYPE_CUBE",p="ENVMAP_MODE_REFLECTION",d="ENVMAP_BLENDING_MULTIPLY";if(a.envMap){switch(r.envMap.mapping){case Wo:case Xo:u="ENVMAP_TYPE_CUBE";break;case Jo:case Qo:u="ENVMAP_TYPE_CUBE_UV";break;case qo:case Yo:u="ENVMAP_TYPE_EQUIREC";break;case Zo:u="ENVMAP_TYPE_SPHERE"}switch(r.envMap.mapping){case Xo:case Yo:p="ENVMAP_MODE_REFRACTION"}switch(r.combine){case Bo:d="ENVMAP_BLENDING_MULTIPLY";break;case Fo:d="ENVMAP_BLENDING_MIX";break;case zo:d="ENVMAP_BLENDING_ADD"}}var f,m,v=t.gammaFactor>0?t.gammaFactor:1,g=Kt(r.extensions,a,e),y=$t(s),x=o.createProgram();r.isRawShaderMaterial?(f=[y].filter(ee).join("\n"),f.length>0&&(f+="\n"),m=[g,y].filter(ee).join("\n"),m.length>0&&(m+="\n")):(f=["precision "+a.precision+" float;","precision "+a.precision+" int;","#define SHADER_NAME "+n.name,y,a.supportsVertexTextures?"#define VERTEX_TEXTURES":"","#define GAMMA_FACTOR "+v,"#define MAX_BONES "+a.maxBones,a.useFog&&a.fog?"#define USE_FOG":"",a.useFog&&a.fogExp?"#define FOG_EXP2":"",a.map?"#define USE_MAP":"",a.envMap?"#define USE_ENVMAP":"",a.envMap?"#define "+p:"",a.lightMap?"#define USE_LIGHTMAP":"",a.aoMap?"#define USE_AOMAP":"",a.emissiveMap?"#define USE_EMISSIVEMAP":"",a.bumpMap?"#define USE_BUMPMAP":"",a.normalMap?"#define USE_NORMALMAP":"",a.displacementMap&&a.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",a.specularMap?"#define USE_SPECULARMAP":"",a.roughnessMap?"#define USE_ROUGHNESSMAP":"",a.metalnessMap?"#define USE_METALNESSMAP":"",a.alphaMap?"#define USE_ALPHAMAP":"",a.vertexColors?"#define USE_COLOR":"",a.flatShading?"#define FLAT_SHADED":"",a.skinning?"#define USE_SKINNING":"",a.useVertexTexture?"#define BONE_TEXTURE":"",a.morphTargets?"#define USE_MORPHTARGETS":"",a.morphNormals&&!1===a.flatShading?"#define USE_MORPHNORMALS":"",a.doubleSided?"#define DOUBLE_SIDED":"",a.flipSided?"#define FLIP_SIDED":"",a.shadowMapEnabled?"#define USE_SHADOWMAP":"",a.shadowMapEnabled?"#define "+l:"",a.sizeAttenuation?"#define USE_SIZEATTENUATION":"",a.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",a.logaritLine truncated
;s!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",s,"instead."),o=s);var c=!0===i.logarithmicDepthBuffer,h=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),l=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),u=t.getParameter(t.MAX_TEXTURE_SIZE),p=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),d=t.getParameter(t.MAX_VERTEX_ATTRIBS),f=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),m=t.getParameter(t.MAX_VARYING_VECTORS),v=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),g=l>0,y=!!e.get("OES_texture_float");return{getMaxAnisotropy:r,getMaxPrecision:n,precision:o,logarithmicDepthBuffer:c,maxTextures:h,maxVertexTextures:l,maxTextureSize:u,maxCubemapSize:p,maxAttributes:d,maxVertexUniforms:f,maxVaryings:m,maxFragmentUniforms:v,vertexTextures:g,floatFragmentTextures:y,floatVertexTextures:g&&y}}function pe(t,e,i,r){ct.call(this),this.type="PerspectiveCamera",this.fov=void 0!==t?t:50,this.zoom=1,this.near=void 0!==i?i:.1,this.far=void 0!==r?r:2e3,this.focus=10,this.aspect=void 0!==e?e:1,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}function de(t){pe.call(this),this.cameras=t||[]}function fe(t){function e(){if(null!==o&&o.isPresenting){var e=o.getEyeParameters("left"),r=e.renderWidth,n=e.renderHeight;x=t.getPixelRatio(),y=t.getSize(),t.setDrawingBufferSize(2*r,n,1)}else i.enabled&&t.setDrawingBufferSize(y.width,y.height,x)}var i=this,o=null,s=null,h=null,l=new r,u=new r;"undefined"!=typeof window&&"VRFrameData"in window&&(s=new window.VRFrameData);var p=new r,d=new n,f=new a,m=new pe;m.bounds=new c(0,0,.5,1),m.layers.enable(1);var v=new pe;v.bounds=new c(.5,0,.5,1),v.layers.enable(2);var g=new de([m,v]);g.layers.enable(1),g.layers.enable(2);var y,x;"undefined"!=typeof window&&window.addEventListener("vrdisplaypresentchange",e,!1),this.enabled=!1,this.userHeight=1.6,this.getDevice=function(){return o},this.setDevice=function(t){void 0!==t&&(o=t)},this.setPoseTarget=function(t){void 0!==t&&(h=t)},this.getCamera=function(t){if(null===o)return t;o.depthNear=t.near,o.depthFar=t.far,o.getFrameData(s);var e=o.stageParameters;e?l.fromArray(e.sittingToStandingTransform):l.makeTranslation(0,i.userHeight,0);var r=s.pose,n=null!==h?h:t;if(n.matrix.copy(l),n.matrix.decompose(n.position,n.quaternion,n.scale),null!==r.orientation&&(d.fromArray(r.orientation),n.quaternion.multiply(d)),null!==r.position&&(d.setFromRotationMatrix(l),f.fromArray(r.position),f.applyQuaternion(d),n.position.add(f)),n.updateMatrixWorld(),!1===o.isPresenting)return t;m.near=t.near,v.near=t.near,m.far=t.far,v.far=t.far,g.matrixWorld.copy(t.matrixWorld),g.matrixWorldInverse.copy(t.matrixWorldInverse),m.matrixWorldInverse.fromArray(s.leftViewMatrix),v.matrixWorldInverse.fromArray(s.rightViewMatrix),u.getInverse(l),m.matrixWorldInverse.multiply(u),v.matrixWorldInverse.multiply(u);var a=n.parent;null!==a&&(p.getInverse(a.matrixWorld),m.matrixWorldInverse.multiply(p),v.matrixWorldInverse.multiply(p)),m.matrixWorld.getInverse(m.matrixWorldInverse),v.matrixWorld.getInverse(v.matrixWorldInverse),m.projectionMatrix.fromArray(s.leftProjectionMatrix),v.projectionMatrix.fromArray(s.rightProjectionMatrix),g.projectionMatrix.copy(m.projectionMatrix);var c=o.getLayers();if(c.length){var y=c[0];null!==y.leftBounds&&4===y.leftBounds.length&&m.bounds.fromArray(y.leftBounds),null!==y.rightBounds&&4===y.rightBounds.length&&v.bounds.fromArray(y.rightBounds)}return g},this.getStandingMatrix=function(){return l},this.submitFrame=function(){o&&o.isPresenting&&o.submitFrame()},this.dispose=function(){"undefined"!=typeof window&&window.removeEventListener("vrdisplaypresentchange",e)}}function me(t){var e={};return{get:function(i){if(void 0!==e[i])return e[i];var r;switch(i){case"WEBGL_depth_texture":r=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;case"WEBGL_compressed_texture_etc1":r=t.getExtension("WEBGL_compressed_texture_etc1");break;default:r=t.getExtension(i)}return null===r&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),e[i]=r,r}}}function ve(){function t(){l.value!==r&&(l.value=r,l.needsUpdate=n>0),i.numPlanes=n,i.numIntersection=0}function e(t,e,r,n){var a=null!==t?t.length:0,o=null;if(0!==a){if(o=l.value,!0!==n||null===o){var s=r+4*a,u=e.matrixWorldInverse;h.getNormalMatrix(u),(null===o||o.length<s)&&(o=new Float32Array(s));for(var p=0,d=r;p!==a;++p,d+=4)c.copy(t[p]).applyMatrix4(Line truncated
;break;case tc:v.setMode(At.TRIANGLE_FAN)}else if(a.isLine){var S=n.linewidth;void 0===S&&(S=1),Pt.setLineWidth(S*i()),a.isLineSegments?v.setMode(At.LINES):a.isLineLoop?v.setMode(At.LINE_LOOP):v.setMode(At.LINE_STRIP)}else a.isPoints&&v.setMode(At.POINTS);r&&r.isInstancedBufferGeometry?r.maxInstancedCount>0&&v.renderInstances(r,w,T):v.render(w,T)}},this.compile=function(t,e){Q=Xt.get(t,e),Q.init(),t.traverse(function(t){t.isLight&&(Q.pushLight(t),t.castShadow&&Q.pushShadow(t))}),Q.setupLights(e),t.traverse(function(e){if(e.material)if(Array.isArray(e.material))for(var i=0;i<e.material.length;i++)w(e.material[i],t.fog,e);else w(e.material,t.fog,e)})};var ee=!1,ie=null;this.animate=function(t){ie=t,null!==ie?m():v()},this.render=function(t,e,i,r){if(!e||!e.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!$){ot="",at=-1,st=null,!0===t.autoUpdate&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),$t.enabled&&(e=$t.getCamera(e)),Q=Xt.get(t,e),Q.init(),t.onBeforeRender(K,t,e,i),Mt.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),xt.setFromMatrix(Mt),wt=this.localClippingEnabled,_t=bt.init(this.clippingPlanes,wt,e),J=Gt.get(t,e),J.init(),x(t,e,K.sortObjects),!0===K.sortObjects&&J.sort(),_t&&bt.beginShadows();var n=Q.state.shadowsArray;te.render(n,t,e),Q.setupLights(e),_t&&bt.endShadows(),this.info.autoReset&&this.info.reset(),void 0===i&&(i=null),this.setRenderTarget(i),qt.render(J,t,e,r);var a=J.opaque,o=J.transparent;if(t.overrideMaterial){var s=t.overrideMaterial;a.length&&b(a,t,e,s),o.length&&b(o,t,e,s)}else a.length&&b(a,t,e),o.length&&b(o,t,e);var c=Q.state.spritesArray;Qt.render(c,t,e),i&&Ot.updateRenderTargetMipmap(i),Pt.buffers.depth.setTest(!0),Pt.buffers.depth.setMask(!0),Pt.buffers.color.setMask(!0),Pt.setPolygonOffset(!1),t.onAfterRender(K,t,e),$t.enabled&&$t.submitFrame(),J=null,Q=null}},this.allocTextureUnit=F,this.setTexture2D=function(){var t=!1;return function(e,i){e&&e.isWebGLRenderTarget&&(t||(console.warn("THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead."),t=!0),e=e.texture),Ot.setTexture2D(e,i)}}(),this.setTexture=function(){var t=!1;return function(e,i){t||(console.warn("THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead."),t=!0),Ot.setTexture2D(e,i)}}(),this.setTextureCube=function(){var t=!1;return function(e,i){e&&e.isWebGLRenderTargetCube&&(t||(console.warn("THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead."),t=!0),e=e.texture),e&&e.isCubeTexture||Array.isArray(e.image)&&6===e.image.length?Ot.setTextureCube(e,i):Ot.setTextureCubeDynamic(e,i)}}(),this.getRenderTarget=function(){return tt},this.setRenderTarget=function(t){tt=t,t&&void 0===It.get(t).__webglFramebuffer&&Ot.setupRenderTarget(t);var e=null,i=!1;if(t){var r=It.get(t).__webglFramebuffer;t.isWebGLRenderTargetCube?(e=r[t.activeCubeFace],i=!0):e=r,ht.copy(t.viewport),lt.copy(t.scissor),ut=t.scissorTest}else ht.copy(vt).multiplyScalar(mt),lt.copy(gt).multiplyScalar(mt),ut=yt;if(et!==e&&(At.bindFramebuffer(At.FRAMEBUFFER,e),et=e),Pt.viewport(ht),Pt.scissor(lt),Pt.setScissorTest(ut),i){var n=It.get(t.texture);At.framebufferTexture2D(At.FRAMEBUFFER,At.COLOR_ATTACHMENT0,At.TEXTURE_CUBE_MAP_POSITIVE_X+t.activeCubeFace,n.__webglTexture,t.activeMipMapLevel)}},this.readRenderTargetPixels=function(t,e,i,r,n,a){if(!t||!t.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");var o=It.get(t).__webglFramebuffer;if(o){var s=!1;o!==et&&(At.bindFramebuffer(At.FRAMEBUFFER,o),s=!0);try{var c=t.texture,h=c.format,l=c.type;if(h!==_s&&Kt.convert(h)!==At.getParameter(At.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");if(!(l===ss||Kt.convert(l)===At.getParameter(At.IMPLEMENTATION_COLOR_READ_TYPE)||l===ds&&(Rt.get("OES_texture_float")||Rt.get("WEBGL_color_buffer_float"))||l===fs&&Rt.get("EXT_color_buffer_half_float")))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");At.checkFramebufferStatus(At.FRAMEBUFFER)===At.FRAMEBUFFER_COMPLETE?e>=0&&e<=t.width-r&&i>=0&&i<=t.height-n&&At.readPixels(e,i,r,n,Kt.convert(h),Kt.convert(l),a):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.")}finally{s&&At.bindFramebuffer(At.FRAMEBUFFER,et)}}},this.copyFramebufferToTexture=function(t,e,i){var r=e.image.width,n=e.image.height,a=Kt.convert(e.format);this.setTexture2D(e,0),At.copyTexImage2D(At.TEXTURE_2D,i||0,a,t.x,t.y,r,n,0)}}function Me(t,e){this.name="",this.color=new q(t),this.density=void 0!==e?e:25e-5}function Ee(t,e,i){this.name="",this.color=new q(t),this.near=void 0!==e?e:Line truncated
this.lights=!0,this.transparent=!0,this.setValues(t)}function nr(t){Ct.call(this,t),this.type="RawShaderMaterial"}function ar(t){J.call(this),this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new q(16777215),this.roughness=.5,this.metalness=.5,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new q(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new i(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function or(t){ar.call(this),this.defines={PHYSICAL:""},this.type="MeshPhysicalMaterial",this.reflectivity=.5,this.clearCoat=0,this.clearCoatRoughness=0,this.setValues(t)}function sr(t){J.call(this),this.type="MeshPhongMaterial",this.color=new q(16777215),this.specular=new q(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new q(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new i(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Bo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function cr(t){sr.call(this),this.defines={TOON:""},this.type="MeshToonMaterial",this.gradientMap=null,this.setValues(t)}function hr(t){J.call(this),this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalScale=new i(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function lr(t){J.call(this),this.type="MeshLambertMaterial",this.color=new q(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new q(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Bo,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.skinning=!1,this.morphTargets=!1,this.morphNormals=!1,this.setValues(t)}function ur(t){Ie.call(this),this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}function pr(t,e,i){var r=this,n=!1,a=0,o=0,s=void 0;this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.itemStart=function(t){o++,!1===n&&void 0!==r.onStart&&r.onStart(t,a,o),n=!0},this.itemEnd=function(t){a++,void 0!==r.onProgress&&r.onProgress(t,a,o),a===o&&(n=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(t){void 0!==r.onError&&r.onError(t)},this.resolveURL=function(t){return s?s(t):t},this.setURLModifier=function(t){return s=t,this}}function dr(t){this.manager=void 0!==t?t:Uc}function fr(t){this.manager=void 0!==t?t:Uc,this._parser=null}function mr(t){this.manager=void 0!==t?t:Uc,this._parser=null}function vr(t){this.manager=void 0!==t?t:Uc}function gr(t){this.manager=void 0!==t?t:Uc}function yr(t){this.manager=void 0!==t?t:Uc}function xr(){this.type="Curve",this.arcLengthDivisions=200}function br(t,e,i,r,n,a,o,s){xr.call(this),this.type="EllipseCurve",this.aX=t||0,this.aY=e||0,this.xRadius=i||1,this.yRadius=r||1,this.aStartAngle=n||0,this.aEndAngle=a||2*Math.PI,this.aClockwise=o||!1,this.aRotation=s||0}function _r(t,e,i,r,n,a){br.call(this,t,e,i,i,r,n,a),this.type="ArcCurve"}function wr(){function t(t,a,o,s){e=t,i=o,r=-3*t+3*a-2*o-s,n=2*t-2*a+o+s}var e=0,i=0,r=0,n=0;return{initCatmullRom:function(e,i,r,n,a){t(i,r,a*(r-e),a*(n-i))},initNonuniformCatmullRom:function(e,i,r,n,a,o,s){var c=(i-e)/a-(r-e)/(a+o)+(r-i)/o,h=(r-i)/o-(n-i)/(o+s)+(n-r)/s;c*=o,h*=o,t(i,r,c,h)},calc:function(t){var a=t*t;return e+i*t+r*a+n*(a*t)}}}function Mr(t,e,i,r){xr.call(this),this.type="CatmullRomCurve3",this.points=t||[],this.closed=e||!1,this.curveType=i||"centripetal",this.tension=r||.5}function Er(t,e,i,r,n){var a=.5*(r-e),o=.5*(n-i),s=t*t;return(2*i-2*r+a+o)*(t*s)+(-3*i+3*r-2*a-o)*s+a*t+i}function Tr(t,e){var i=1-t;return i*i*e}function Sr(t,e){return 2*(1-t)*t*e}function Ar(t,e){return t*t*e}function Lr(t,e,i,r){return Tr(t,e)+Sr(t,i)+Ar(t,r)}function Rr(t,e){var i=1-t;return i*i*i*e}function Cr(t,e){var i=1-t;return 3*i*i*t*e}function Pr(t,e){return 3*(1-tLine truncated
Object.assign(i.prototype,{isVector2:!0,set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},applyMatrix3:function(t){var e=this.x,i=this.y,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6],this.y=r[1]*e+r[4]*i+r[7],this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t=new i,e=new i;return function(i,r){return t.set(i,i),e.set(r,r),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length()||1)},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},manhattanDistanceTo:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromBufferAttribute:function(t,e,i){return void 0!==i&&console.warn("THREE.Vector2: offset has been removed from .fromBufferAttribute()."),this.x=t.getX(e),this.y=t.getY(e),this},rotateAround:function(t,e){var i=Math.cos(e),r=Math.sin(e),n=this.x-t.x,a=this.y-t.y;return this.x=n*i-a*r+t.x,this.y=n*r+a*i+t.y,this}}),Object.assign(r.prototype,{isMatrix4:!0,set:function(t,e,i,r,n,a,o,s,c,h,l,u,p,d,f,m){var v=this.elements;return v[0]=t,v[4]=e,v[8]=i,v[12]=r,v[1]=n,v[5]=a,v[9]=o,v[13]=s,v[2]=c,v[6]=h,v[10]=l,v[14]=u,v[3]=p,v[7]=d,v[11]=f,v[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new r).fromArray(this.elements)},copy:function(t){var e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this},copyPosition:function(t){var e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t=new a;reLine truncated
this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setW:function(t){return this.w=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error("index is out of range: "+t)}return this},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z,this.w)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=void 0!==t.w?t.w:1,this},add:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this},sub:function(t,e){return void 0!==e?(console.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this},multiplyScalar:function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},applyMatrix4:function(t){var e=this.x,i=this.y,r=this.z,n=this.w,a=t.elements;return this.x=a[0]*e+a[4]*i+a[8]*r+a[12]*n,this.y=a[1]*e+a[5]*i+a[9]*r+a[13]*n,this.z=a[2]*e+a[6]*i+a[10]*r+a[14]*n,this.w=a[3]*e+a[7]*i+a[11]*r+a[15]*n,this},divideScalar:function(t){return this.multiplyScalar(1/t)},setAxisAngleFromQuaternion:function(t){this.w=2*Math.acos(t.w);var e=Math.sqrt(1-t.w*t.w);return e<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this},setAxisAngleFromRotationMatrix:function(t){var e,i,r,n,a=t.elements,o=a[0],s=a[4],c=a[8],h=a[1],l=a[5],u=a[9],p=a[2],d=a[6],f=a[10];if(Math.abs(s-h)<.01&&Math.abs(c-p)<.01&&Math.abs(u-d)<.01){if(Math.abs(s+h)<.1&&Math.abs(c+p)<.1&&Math.abs(u+d)<.1&&Math.abs(o+l+f-3)<.1)return this.set(1,0,0,0),this;e=Math.PI;var m=(o+1)/2,v=(l+1)/2,g=(f+1)/2,y=(s+h)/4,x=(c+p)/4,b=(u+d)/4;return m>v&&m>g?m<.01?(i=0,r=.707106781,n=.707106781):(i=Math.sqrt(m),r=y/i,n=x/i):v>g?v<.01?(i=.707106781,r=0,n=.707106781):(r=Math.sqrt(v),i=y/r,n=b/r):g<.01?(i=.707106781,r=.707106781,n=0):(n=Math.sqrt(g),i=x/n,r=b/n),this.set(i,r,n,e),this}var _=Math.sqrt((d-u)*(d-u)+(c-p)*(c-p)+(h-s)*(h-s));return Math.abs(_)<.001&&(_=1),this.x=(d-u)/_,this.y=(c-p)/_,this.z=(h-s)/_,this.w=Math.acos((o+l+f-1)/2),this},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this.w=Math.max(t.w,Math.min(e.w,this.w)),this},clampScalar:function(){var t,e;return function(i,r){return void 0===t&&(t=new c,e=new c),t.set(i,i,i,i),e.set(r,r,r,r),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(t,Math.min(e,i)))},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},manhattanLength:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length()||1)},setLength:function(t){return this.normalize().multiplyScalar(t)},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this},lerpVectors:function(t,e,i){return this.subVectorsLine truncated
cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n#define cubeUV_textureSize (1024.0)\nint getFaceFromDirection(vec3 direction) {\n\tvec3 absDirection = abs(direction);\n\tint face = -1;\n\tif( absDirection.x > absDirection.z ) {\n\t\tif(absDirection.x > absDirection.y )\n\t\t\tface = direction.x > 0.0 ? 0 : 3;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\telse {\n\t\tif(absDirection.z > absDirection.y )\n\t\t\tface = direction.z > 0.0 ? 2 : 5;\n\t\telse\n\t\t\tface = direction.y > 0.0 ? 1 : 4;\n\t}\n\treturn face;\n}\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\n\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\n\tfloat dxRoughness = dFdx(roughness);\n\tfloat dyRoughness = dFdy(roughness);\n\tvec3 dx = dFdx( vec * scale * dxRoughness );\n\tvec3 dy = dFdy( vec * scale * dyRoughness );\n\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\n\td = clamp(d, 1.0, cubeUV_rangeClamp);\n\tfloat mipLevel = 0.5 * log2(d);\n\treturn vec2(floor(mipLevel), fract(mipLevel));\n}\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\n\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\n\tfloat a = 16.0 * cubeUV_rcpTextureSize;\n\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\n\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\n\tfloat powScale = exp2_packed.x * exp2_packed.y;\n\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\n\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\n\tbool bRes = mipLevel == 0.0;\n\tscale = bRes && (scale < a) ? a : scale;\n\tvec3 r;\n\tvec2 offset;\n\tint face = getFaceFromDirection(direction);\n\tfloat rcpPowScale = 1.0 / powScale;\n\tif( face == 0) {\n\t\tr = vec3(direction.x, -direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 1) {\n\t\tr = vec3(direction.y, direction.x, direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 2) {\n\t\tr = vec3(direction.z, direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\n\t}\n\telse if( face == 3) {\n\t\tr = vec3(direction.x, direction.z, direction.y);\n\t\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse if( face == 4) {\n\t\tr = vec3(direction.y, direction.x, -direction.z);\n\t\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\telse {\n\t\tr = vec3(direction.z, -direction.x, direction.y);\n\t\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\n\t\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\n\t}\n\tr = normalize(r);\n\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\n\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\n\tvec2 base = offset + vec2( texelOffset );\n\treturn base + s * ( scale - 2.0 * texelOffset );\n}\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\n\tfloat roughnessVal = roughness* cubeUV_maxLods3;\n\tfloat r1 = floor(roughnessVal);\n\tfloat r2 = r1 + 1.0;\n\tfloat t = fract(roughnessVal);\n\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\n\tfloat s = mipInfo.y;\n\tfloat level0 = mipInfo.x;\n\tfloat level1 = level0 + 1.0;\n\tlevel1 = level1 > 5.0 ? 5.0 : level1;\n\tlevel0 += min( floor( s + 0.5 ), 5.0 );\n\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\n\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\n\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\n\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\n\tvec4 result = mix(color10, color20, t);\n\treturn vec4(result.rgb, 1.0);\n}\n#endif\n",defaultnormal_vertex:"vec3 transformedNormal = normalMatrix * objectNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif\n",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\n#endif\n",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif\n",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAPLine truncated
lights_template:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = normalize( vViewPosition );\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\n\t\t#ifdef USE_SHADOWMAP\n\t\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\t#ifdef USE_LIGHTMAP\n\t\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\n\t\t#ifndef PHYSICALLY_CORRECT_LIGHTS\n\t\t\tlightMapIrradiance *= PI;\n\t\t#endif\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\n\t\t}\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\n\t#endif\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\n\t#ifndef STANDARD\n\t\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\n\t#else\n\t\tvec3 clearCoatRadiance = vec3( 0.0 );\n\t#endif\n\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\n#endif\n",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#ifdef USE_LOGDEPTHBUF\n\tuniform float logDepthBufFC;\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n#endif\n",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t#endif\n\tuniform float logDepthBufFC;\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t#else\n\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\tgl_Position.z *= gl_Position.w;\n\t#endif\n#endif\n",map_fragment:"#ifdef USE_MAP\n\tvec4 texelColor = texture2D( map, vUv );\n\ttexelColor = mapTexelToLinear( texelColor );\n\tdiffuseColor *= texelColor;\n#endif\n",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n",map_particle_fragment:"#ifdef USE_MAP\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n\tvec4 mapTexel = texture2D( map, uv );\n\tdiffuseColor *= mapTexelToLinear( mapTexel );\n#endif\n",map_particle_pars_fragment:"#ifdef USE_MAP\n\tuniform mat3 uvTransform;\n\tuniform sampLine truncated
meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_ENVMAP\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}\n",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}\n",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}\n",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clLine truncated
equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}}),Object.assign(it.prototype,{set:function(t,e,i,r,n,a){var o=this.planes;return o[0].copy(t),o[1].copy(e),o[2].copy(i),o[3].copy(r),o[4].copy(n),o[5].copy(a),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,i=0;i<6;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements,r=i[0],n=i[1],a=i[2],o=i[3],s=i[4],c=i[5],h=i[6],l=i[7],u=i[8],p=i[9],d=i[10],f=i[11],m=i[12],v=i[13],g=i[14],y=i[15];return e[0].setComponents(o-r,l-s,f-u,y-m).normalize(),e[1].setComponents(o+r,l+s,f+u,y+m).normalize(),e[2].setComponents(o+n,l+c,f+p,y+v).normalize(),e[3].setComponents(o-n,l-c,f-p,y-v).normalize(),e[4].setComponents(o-a,l-h,f-d,y-g).normalize(),e[5].setComponents(o+a,l+h,f+d,y+g).normalize(),this},intersectsObject:function(){var t=new tt;return function(e){var i=e.geometry;return null===i.boundingSphere&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new tt;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){for(var e=this.planes,i=t.center,r=-t.radius,n=0;n<6;n++){if(e[n].distanceToPoint(i)<r)return!1}return!0},intersectsBox:function(){var t=new a,e=new a;return function(i){for(var r=this.planes,n=0;n<6;n++){var a=r[n];t.x=a.normal.x>0?i.min.x:i.max.x,e.x=a.normal.x>0?i.max.x:i.min.x,t.y=a.normal.y>0?i.min.y:i.max.y,e.y=a.normal.y>0?i.max.y:i.min.y,t.z=a.normal.z>0?i.min.z:i.max.z,e.z=a.normal.z>0?i.max.z:i.min.z;var o=a.distanceToPoint(t),s=a.distanceToPoint(e);if(o<0&&s<0)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}}),at.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"],at.DefaultOrder="XYZ",Object.defineProperties(at.prototype,{x:{get:function(){return this._x},set:function(t){this._x=t,this.onChangeCallback()}},y:{get:function(){return this._y},set:function(t){this._y=t,this.onChangeCallback()}},z:{get:function(){return this._z},set:function(t){this._z=t,this.onChangeCallback()}},order:{get:function(){return this._order},set:function(t){this._order=t,this.onChangeCallback()}}}),Object.assign(at.prototype,{isEuler:!0,set:function(t,e,i,r){return this._x=t,this._y=e,this._z=i,this._order=r||this._order,this.onChangeCallback(),this},clone:function(){return new this.constructor(this._x,this._y,this._z,this._order)},copy:function(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this.onChangeCallback(),this},setFromRotationMatrix:function(t,e,i){var r=lc.clamp,n=t.elements,a=n[0],o=n[4],s=n[8],c=n[1],h=n[5],l=n[9],u=n[2],p=n[6],d=n[10];return e=e||this._order,"XYZ"===e?(this._y=Math.asin(r(s,-1,1)),Math.abs(s)<.99999?(this._x=Math.atan2(-l,d),this._z=Math.atan2(-o,a)):(this._x=Math.atan2(p,h),this._z=0)):"YXZ"===e?(this._x=Math.asin(-r(l,-1,1)),Math.abs(l)<.99999?(this._y=Math.atan2(s,d),this._z=Math.atan2(c,h)):(this._y=Math.atan2(-u,a),this._z=0)):"ZXY"===e?(this._x=Math.asin(r(p,-1,1)),Math.abs(p)<.99999?(this._y=Math.atan2(-u,d),this._z=Math.atan2(-o,h)):(this._y=0,this._z=Math.atan2(c,a))):"ZYX"===e?(this._y=Math.asin(-r(u,-1,1)),Math.abs(u)<.99999?(this._x=Math.atan2(p,d),this._z=Math.atan2(c,a)):(this._x=0,this._z=Math.atan2(-o,h))):"YZX"===e?(this._z=Math.asin(r(c,-1,1)),Math.abs(c)<.99999?(this._x=Math.atan2(-l,h),this._y=Math.atan2(-u,a)):(this._x=0,this._y=Math.atan2(s,d))):"XZY"===e?(this._z=Math.asin(-r(o,-1,1)),Math.abs(o)<.99999?(this._x=Math.atan2(p,h),this._y=Math.atan2(s,a)):(this._x=Math.atan2(-l,d),this._y=0)):console.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+e),this._order=e,!1!==i&&this.onChangeCallback(),this},setFromQuaternion:function(){var t=new r;return function(e,i,r){return t.makeRotationFromQuaternion(e),this.setFromRotationMatrix(t,i,r)}}(),setFromVector3:function(t,e){return this.set(t.x,t.y,t.z,e||this._order)},reorder:function(){var t=new n;return function(e){return t.setFromEuler(this),this.setFromQuaternion(t,e)}}(),equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._order===this._order},fromArray:function(t){return this._x=t[0],this._y=t[1],this._z=t[2],void 0!==t[3]&&(this._order=t[3]),this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t},toVector3:function(t){return t?t.set(this._x,this._y,this._z):new a(this._x,this._y,this._z)},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}}),Object.assign(ot.prototype,{set:function(t){this.mask=1<<t|0},enable:function(t){this.mask|=1<<t|0},toggle:function(t){this.mask^=1<<t|0},disable:function(t){this.mask&=~(1<<t|0)},test:function(t){return 0!=(this.mask&t.mask)}});vLine truncated
;Et.prototype=Object.assign(Object.create(e.prototype),{constructor:Et,isBufferGeometry:!0,getIndex:function(){return this.index},setIndex:function(t){Array.isArray(t)?this.index=new(Mt(t)>65535?xt:gt)(t,1):this.index=t},addAttribute:function(t,e){return e&&e.isBufferAttribute||e&&e.isInterleavedBufferAttribute?"index"===t?(console.warn("THREE.BufferGeometry.addAttribute: Use .setIndex() for index attribute."),void this.setIndex(e)):(this.attributes[t]=e,this):(console.warn("THREE.BufferGeometry: .addAttribute() now expects ( name, attribute )."),void this.addAttribute(t,new pt(arguments[1],arguments[2])))},getAttribute:function(t){return this.attributes[t]},removeAttribute:function(t){return delete this.attributes[t],this},addGroup:function(t,e,i){this.groups.push({start:t,count:e,materialIndex:void 0!==i?i:0})},clearGroups:function(){this.groups=[]},setDrawRange:function(t,e){this.drawRange.start=t,this.drawRange.count=e},applyMatrix:function(t){var e=this.attributes.position;void 0!==e&&(t.applyToBufferAttribute(e),e.needsUpdate=!0);var i=this.attributes.normal;if(void 0!==i){(new o).getNormalMatrix(t).applyToBufferAttribute(i),i.needsUpdate=!0}return null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this},rotateX:function(){var t=new r;return function(e){return t.makeRotationX(e),this.applyMatrix(t),this}}(),rotateY:function(){var t=new r;return function(e){return t.makeRotationY(e),this.applyMatrix(t),this}}(),rotateZ:function(){var t=new r;return function(e){return t.makeRotationZ(e),this.applyMatrix(t),this}}(),translate:function(){var t=new r;return function(e,i,r){return t.makeTranslation(e,i,r),this.applyMatrix(t),this}}(),scale:function(){var t=new r;return function(e,i,r){return t.makeScale(e,i,r),this.applyMatrix(t),this}}(),lookAt:function(){var t=new st;return function(e){t.lookAt(e),t.updateMatrix(),this.applyMatrix(t.matrix)}}(),center:function(){this.computeBoundingBox();var t=this.boundingBox.getCenter().negate();return this.translate(t.x,t.y,t.z),t},setFromObject:function(t){var e=t.geometry;if(t.isPoints||t.isLine){var i=new bt(3*e.vertices.length,3),r=new bt(3*e.colors.length,3);if(this.addAttribute("position",i.copyVector3sArray(e.vertices)),this.addAttribute("color",r.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){var n=new bt(e.lineDistances.length,1);this.addAttribute("lineDistance",n.copyArray(e.lineDistances))}null!==e.boundingSphere&&(this.boundingSphere=e.boundingSphere.clone()),null!==e.boundingBox&&(this.boundingBox=e.boundingBox.clone())}else t.isMesh&&e&&e.isGeometry&&this.fromGeometry(e);return this},setFromPoints:function(t){for(var e=[],i=0,r=t.length;i<r;i++){var n=t[i];e.push(n.x,n.y,n.z||0)}return this.addAttribute("position",new bt(e,3)),this},updateFromObject:function(t){var e=t.geometry;if(t.isMesh){var i=e.__directGeometry;if(!0===e.elementsNeedUpdate&&(i=void 0,e.elementsNeedUpdate=!1),void 0===i)return this.fromGeometry(e);i.verticesNeedUpdate=e.verticesNeedUpdate,i.normalsNeedUpdate=e.normalsNeedUpdate,i.colorsNeedUpdate=e.colorsNeedUpdate,i.uvsNeedUpdate=e.uvsNeedUpdate,i.groupsNeedUpdate=e.groupsNeedUpdate,e.verticesNeedUpdate=!1,e.normalsNeedUpdate=!1,e.colorsNeedUpdate=!1,e.uvsNeedUpdate=!1,e.groupsNeedUpdate=!1,e=i}var r;return!0===e.verticesNeedUpdate&&(r=this.attributes.position,void 0!==r&&(r.copyVector3sArray(e.vertices),r.needsUpdate=!0),e.verticesNeedUpdate=!1),!0===e.normalsNeedUpdate&&(r=this.attributes.normal,void 0!==r&&(r.copyVector3sArray(e.normals),r.needsUpdate=!0),e.normalsNeedUpdate=!1),!0===e.colorsNeedUpdate&&(r=this.attributes.color,void 0!==r&&(r.copyColorsArray(e.colors),r.needsUpdate=!0),e.colorsNeedUpdate=!1),e.uvsNeedUpdate&&(r=this.attributes.uv,void 0!==r&&(r.copyVector2sArray(e.uvs),r.needsUpdate=!0),e.uvsNeedUpdate=!1),e.lineDistancesNeedUpdate&&(r=this.attributes.lineDistance,void 0!==r&&(r.copyArray(e.lineDistances),r.needsUpdate=!0),e.lineDistancesNeedUpdate=!1),e.groupsNeedUpdate&&(e.computeGroups(t.geometry),this.groups=e.groups,e.groupsNeedUpdate=!1),this},fromGeometry:function(t){return t.__directGeometry=(new wt).fromGeometry(t),this.fromDirectGeometry(t.__directGeometry)},fromDirectGeometry:function(t){var e=new Float32Array(3*t.vertices.length);if(this.addAttribute("position",new pt(e,3).copyVector3sArray(t.vertices)),t.normals.length>0){var i=new Float32Array(3*t.normals.length);this.addAttribute("normal",new pt(i,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var r=new Float32Array(3*t.colors.length);this.addAttribute("color",new pt(r,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var n=new Float32Array(2*t.uvs.length);this.addAttribute("uv",new pt(n,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var a=new Float32Array(2*t.uvs2.length);this.addAttribute("uv2",new pt(a,2).copyVector2sArray(t.uvs2))}if(t.indices.length>0){var o=Mt(t.indices)>65535?Uint32Array:Uint16Array,s=new o(3*t.indices.length);this.setInLine truncated
;var l=new a,u=new a,p=new a,d=new a,f=this&&this.isLineSegments?2:1;if(c.isBufferGeometry){var m=c.index,v=c.attributes,g=v.position.array;if(null!==m)for(var y=m.array,x=0,b=y.length-1;x<b;x+=f){var _=y[x],w=y[x+1];l.fromArray(g,3*_),u.fromArray(g,3*w);var M=e.distanceSqToSegment(l,u,d,p);if(!(M>s)){d.applyMatrix4(this.matrixWorld);var E=r.ray.origin.distanceTo(d);E<r.near||E>r.far||n.push({distance:E,point:p.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}else for(var x=0,b=g.length/3-1;x<b;x+=f){l.fromArray(g,3*x),u.fromArray(g,3*x+3);var M=e.distanceSqToSegment(l,u,d,p);if(!(M>s)){d.applyMatrix4(this.matrixWorld);var E=r.ray.origin.distanceTo(d);E<r.near||E>r.far||n.push({distance:E,point:p.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}}else if(c.isGeometry)for(var T=c.vertices,S=T.length,x=0;x<S-1;x+=f){var M=e.distanceSqToSegment(T[x],T[x+1],d,p);if(!(M>s)){d.applyMatrix4(this.matrixWorld);var E=r.ray.origin.distanceTo(d);E<r.near||E>r.far||n.push({distance:E,point:p.clone().applyMatrix4(this.matrixWorld),index:x,face:null,faceIndex:null,object:this})}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Ne.prototype=Object.assign(Object.create(Oe.prototype),{constructor:Ne,isLineSegments:!0,computeLineDistances:function(){var t=new a,e=new a;return function(){var i=this.geometry;if(i.isBufferGeometry)if(null===i.index){for(var r=i.attributes.position,n=[],a=0,o=r.count;a<o;a+=2)t.fromBufferAttribute(r,a),e.fromBufferAttribute(r,a+1),n[a]=0===a?0:n[a-1],n[a+1]=n[a]+t.distanceTo(e);i.addAttribute("lineDistance",new THREE.Float32BufferAttribute(n,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");else if(i.isGeometry)for(var s=i.vertices,n=i.lineDistances,a=0,o=s.length;a<o;a+=2)t.copy(s[a]),e.copy(s[a+1]),n[a]=0===a?0:n[a-1],n[a+1]=n[a]+t.distanceTo(e);return this}}()}),Ue.prototype=Object.assign(Object.create(Oe.prototype),{constructor:Ue,isLineLoop:!0}),De.prototype=Object.create(J.prototype),De.prototype.constructor=De,De.prototype.isPointsMaterial=!0,De.prototype.copy=function(t){return J.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this},Be.prototype=Object.assign(Object.create(st.prototype),{constructor:Be,isPoints:!0,raycast:function(){var t=new r,e=new Pt,i=new tt;return function(r,n){function o(t,i){var a=e.distanceSqToPoint(t);if(a<p){var o=e.closestPointToPoint(t);o.applyMatrix4(h);var c=r.ray.origin.distanceTo(o);if(c<r.near||c>r.far)return;n.push({distance:c,distanceToRay:Math.sqrt(a),point:o.clone(),index:i,face:null,object:s})}}var s=this,c=this.geometry,h=this.matrixWorld,l=r.params.Points.threshold;if(null===c.boundingSphere&&c.computeBoundingSphere(),i.copy(c.boundingSphere),i.applyMatrix4(h),i.radius+=l,!1!==r.ray.intersectsSphere(i)){t.getInverse(h),e.copy(r.ray).applyMatrix4(t);var u=l/((this.scale.x+this.scale.y+this.scale.z)/3),p=u*u,d=new a;if(c.isBufferGeometry){var f=c.index,m=c.attributes,v=m.position.array;if(null!==f)for(var g=f.array,y=0,x=g.length;y<x;y++){var b=g[y];d.fromArray(v,3*b),o(d,b)}else for(var y=0,_=v.length/3;y<_;y++)d.fromArray(v,3*y),o(d,y)}else for(var w=c.vertices,y=0,_=w.length;y<_;y++)o(w[y],y)}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),Fe.prototype=Object.assign(Object.create(st.prototype),{constructor:Fe,isGroup:!0}),ze.prototype=Object.assign(Object.create(s.prototype),{constructor:ze,isVideoTexture:!0,update:function(){var t=this.image;t.readyState>=t.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}),Ge.prototype=Object.create(s.prototype),Ge.prototype.constructor=Ge,Ge.prototype.isCompressedTexture=!0,He.prototype=Object.create(s.prototype),He.prototype.constructor=He,He.prototype.isDepthTexture=!0,Ve.prototype=Object.create(Et.prototype),Ve.prototype.constructor=Ve,ke.prototype=Object.create(ut.prototype),ke.prototype.constructor=ke,je.prototype=Object.create(Et.prototype),je.prototype.constructor=je,We.prototype=Object.create(ut.prototype),We.prototype.constructor=We,Xe.prototype=Object.create(Et.prototype),Xe.prototype.constructor=Xe,qe.prototype=Object.create(ut.prototype),qe.prototype.constructor=qe,Ye.prototype=Object.create(Xe.prototype),Ye.prototype.constructor=Ye,Ze.prototype=Object.create(ut.prototype),Ze.prototype.constructor=Ze,Je.prototype=Object.create(Xe.prototype),Je.prototype.constructor=Je,Qe.prototype=Object.create(ut.prototype),Qe.prototype.constructor=Qe,Ke.prototype=Object.create(Xe.prototype),Ke.prototype.constructor=Ke,$e.prototype=Object.create(ut.prototype),$e.prototype.constructor=$e,ti.prototype=Object.create(Xe.prototype),ti.prototype.constructor=ti,ei.prototype=Object.create(ut.prototype),ei.prototype.constructor=ei,ii.prototype=Object.create(Et.prototype),ii.prototype.constructor=ii,ri.prototype=ObjectLine truncated
Ur.prototype.fromJSON=function(t){return xr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this},Dr.prototype=Object.create(xr.prototype),Dr.prototype.constructor=Dr,Dr.prototype.isLineCurve=!0,Dr.prototype.getPoint=function(t,e){var r=e||new i;return 1===t?r.copy(this.v2):(r.copy(this.v2).sub(this.v1),r.multiplyScalar(t).add(this.v1)),r},Dr.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},Dr.prototype.getTangent=function(){return this.v2.clone().sub(this.v1).normalize()},Dr.prototype.copy=function(t){return xr.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Dr.prototype.toJSON=function(){var t=xr.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Dr.prototype.fromJSON=function(t){return xr.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},Br.prototype=Object.create(xr.prototype),Br.prototype.constructor=Br,Br.prototype.isLineCurve3=!0,Br.prototype.getPoint=function(t,e){var i=e||new a;return 1===t?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i},Br.prototype.getPointAt=function(t,e){return this.getPoint(t,e)},Br.prototype.copy=function(t){return xr.prototype.copy.call(this,t),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Br.prototype.toJSON=function(){var t=xr.prototype.toJSON.call(this);return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Br.prototype.fromJSON=function(t){return xr.prototype.fromJSON.call(this,t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},Fr.prototype=Object.create(xr.prototype),Fr.prototype.constructor=Fr,Fr.prototype.isQuadraticBezierCurve=!0,Fr.prototype.getPoint=function(t,e){var r=e||new i,n=this.v0,a=this.v1,o=this.v2;return r.set(Lr(t,n.x,a.x,o.x),Lr(t,n.y,a.y,o.y)),r},Fr.prototype.copy=function(t){return xr.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},Fr.prototype.toJSON=function(){var t=xr.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},Fr.prototype.fromJSON=function(t){return xr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},zr.prototype=Object.create(xr.prototype),zr.prototype.constructor=zr,zr.prototype.isQuadraticBezierCurve3=!0,zr.prototype.getPoint=function(t,e){var i=e||new a,r=this.v0,n=this.v1,o=this.v2;return i.set(Lr(t,r.x,n.x,o.x),Lr(t,r.y,n.y,o.y),Lr(t,r.z,n.z,o.z)),i},zr.prototype.copy=function(t){return xr.prototype.copy.call(this,t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this},zr.prototype.toJSON=function(){var t=xr.prototype.toJSON.call(this);return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t},zr.prototype.fromJSON=function(t){return xr.prototype.fromJSON.call(this,t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this},Gr.prototype=Object.create(xr.prototype),Gr.prototype.constructor=Gr,Gr.prototype.isSplineCurve=!0,Gr.prototype.getPoint=function(t,e){var r=e||new i,n=this.points,a=(n.length-1)*t,o=Math.floor(a),s=a-o,c=n[0===o?o:o-1],h=n[o],l=n[o>n.length-2?n.length-1:o+1],u=n[o>n.length-3?n.length-1:o+2];return r.set(Er(s,c.x,h.x,l.x,u.x),Er(s,c.y,h.y,l.y,u.y)),r},Gr.prototype.copy=function(t){xr.prototype.copy.call(this,t),this.points=[];for(var e=0,i=t.points.length;e<i;e++){var r=t.points[e];this.points.push(r.clone())}return this},Gr.prototype.toJSON=function(){var t=xr.prototype.toJSON.call(this);t.points=[];for(var e=0,i=this.points.length;e<i;e++){var r=this.points[e];t.points.push(r.toArray())}return t},Gr.prototype.fromJSON=function(t){xr.prototype.fromJSON.call(this,t),this.points=[];for(var e=0,r=t.points.length;e<r;e++){var n=t.points[e];this.points.push((new i).fromArray(n))}return this};var Hc=Object.freeze({ArcCurve:_r,CatmullRomCurve3:Mr,CubicBezierCurve:Nr,CubicBezierCurve3:Ur,EllipseCurve:br,LineCurve:Dr,LineCurve3:Br,QuadraticBezierCurve:Fr,QuadraticBezierCurve3:zr,SplineCurve:Gr});Hr.prototype=Object.assign(Object.create(xr.prototype),{constructor:Hr,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new Dr(e,t))},getPoint:function(t){for(var e=t*this.getLength(),i=this.getCurveLengths(),r=0;r<i.length;){if(i[r]>=e){var n=i[r]-e,a=this.curves[r],o=a.getLength(),s=0===o?0:1-n/o;return a.getPointAt(s)}r++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0,r=this.curves.length;i<r;i++)e+=this.curves[i].getLength(),t.push(e);return this.cacheLengths=t,t},getSpacedPoints:function(t){void 0===t&&(t=40);Line truncated
;return 1===e.length?"./":(e.pop(),e.join("/")+"/")}};Object.assign(gn.prototype,{load:function(t,e,i,r){var n=this,a=this.texturePath&&"string"==typeof this.texturePath?this.texturePath:jc.extractUrlBase(t),o=new dr(this.manager);o.setWithCredentials(this.withCredentials),o.load(t,function(i){var r=JSON.parse(i),o=r.metadata;if(void 0!==o){var s=o.type;if(void 0!==s){if("object"===s.toLowerCase())return void console.error("THREE.JSONLoader: "+t+" should be loaded with THREE.ObjectLoader instead.");if("scene"===s.toLowerCase())return void console.error("THREE.JSONLoader: "+t+" should be loaded with THREE.SceneLoader instead.")}}var c=n.parse(r,a);e(c.geometry,c.materials)},i,r)},setTexturePath:function(t){this.texturePath=t},parse:function(){function t(t,e){function r(t,e){return t&1<<e}var n,o,s,c,h,l,u,p,d,f,m,v,g,y,x,b,_,w,M,E,T,S,A,L,R,C,P,I=t.faces,O=t.vertices,N=t.normals,U=t.colors,D=t.scale,B=0;if(void 0!==t.uvs){for(n=0;n<t.uvs.length;n++)t.uvs[n].length&&B++;for(n=0;n<B;n++)e.faceVertexUvs[n]=[]}for(c=0,h=O.length;c<h;)w=new a,w.x=O[c++]*D,w.y=O[c++]*D,w.z=O[c++]*D,e.vertices.push(w);for(c=0,h=I.length;c<h;)if(f=I[c++],m=r(f,0),v=r(f,1),g=r(f,3),y=r(f,4),x=r(f,5),b=r(f,6),_=r(f,7),m){if(E=new lt,E.a=I[c],E.b=I[c+1],E.c=I[c+3],T=new lt,T.a=I[c+1],T.b=I[c+2],T.c=I[c+3],c+=4,v&&(d=I[c++],E.materialIndex=d,T.materialIndex=d),s=e.faces.length,g)for(n=0;n<B;n++)for(L=t.uvs[n],e.faceVertexUvs[n][s]=[],e.faceVertexUvs[n][s+1]=[],o=0;o<4;o++)p=I[c++],C=L[2*p],P=L[2*p+1],R=new i(C,P),2!==o&&e.faceVertexUvs[n][s].push(R),0!==o&&e.faceVertexUvs[n][s+1].push(R);if(y&&(u=3*I[c++],E.normal.set(N[u++],N[u++],N[u]),T.normal.copy(E.normal)),x)for(n=0;n<4;n++)u=3*I[c++],A=new a(N[u++],N[u++],N[u]),2!==n&&E.vertexNormals.push(A),0!==n&&T.vertexNormals.push(A);if(b&&(l=I[c++],S=U[l],E.color.setHex(S),T.color.setHex(S)),_)for(n=0;n<4;n++)l=I[c++],S=U[l],2!==n&&E.vertexColors.push(new q(S)),0!==n&&T.vertexColors.push(new q(S));e.faces.push(E),e.faces.push(T)}else{if(M=new lt,M.a=I[c++],M.b=I[c++],M.c=I[c++],v&&(d=I[c++],M.materialIndex=d),s=e.faces.length,g)for(n=0;n<B;n++)for(L=t.uvs[n],e.faceVertexUvs[n][s]=[],o=0;o<3;o++)p=I[c++],C=L[2*p],P=L[2*p+1],R=new i(C,P),e.faceVertexUvs[n][s].push(R);if(y&&(u=3*I[c++],M.normal.set(N[u++],N[u++],N[u])),x)for(n=0;n<3;n++)u=3*I[c++],A=new a(N[u++],N[u++],N[u]),M.vertexNormals.push(A);if(b&&(l=I[c++],M.color.setHex(U[l])),_)for(n=0;n<3;n++)l=I[c++],M.vertexColors.push(new q(U[l]));e.faces.push(M)}}function e(t,e){var i=void 0!==t.influencesPerVertex?t.influencesPerVertex:2;if(t.skinWeights)for(var r=0,n=t.skinWeights.length;r<n;r+=i){var a=t.skinWeights[r],o=i>1?t.skinWeights[r+1]:0,s=i>2?t.skinWeights[r+2]:0,h=i>3?t.skinWeights[r+3]:0;e.skinWeights.push(new c(a,o,s,h))}if(t.skinIndices)for(var r=0,n=t.skinIndices.length;r<n;r+=i){var l=t.skinIndices[r],u=i>1?t.skinIndices[r+1]:0,p=i>2?t.skinIndices[r+2]:0,d=i>3?t.skinIndices[r+3]:0;e.skinIndices.push(new c(l,u,p,d))}e.bones=t.bones,e.bones&&e.bones.length>0&&(e.skinWeights.length!==e.skinIndices.length||e.skinIndices.length!==e.vertices.length)&&console.warn("When skinning, number of vertices ("+e.vertices.length+"), skinIndices ("+e.skinIndices.length+"), and skinWeights ("+e.skinWeights.length+") should match.")}function r(t,e){var i=t.scale;if(void 0!==t.morphTargets)for(var r=0,n=t.morphTargets.length;r<n;r++){e.morphTargets[r]={},e.morphTargets[r].name=t.morphTargets[r].name,e.morphTargets[r].vertices=[];for(var o=e.morphTargets[r].vertices,s=t.morphTargets[r].vertices,c=0,h=s.length;c<h;c+=3){var l=new a;l.x=s[c]*i,l.y=s[c+1]*i,l.z=s[c+2]*i,o.push(l)}}if(void 0!==t.morphColors&&t.morphColors.length>0){console.warn('THREE.JSONLoader: "morphColors" no longer supported. Using them as face colors.');for(var u=e.faces,p=t.morphColors[0].colors,r=0,n=u.length;r<n;r++)u[r].color.fromArray(p,3*r)}}function n(t,e){var i=[],r=[];void 0!==t.animation&&r.push(t.animation),void 0!==t.animations&&(t.animations.length?r=r.concat(t.animations):r.push(t.animations));for(var n=0;n<r.length;n++){var a=dn.parseAnimation(r[n],e.bones);a&&i.push(a)}if(e.morphTargets){var o=dn.CreateClipsFromMorphTargetSequences(e.morphTargets,10);i=i.concat(o)}i.length>0&&(e.animations=i)}return function(i,a){void 0!==i.data&&(i=i.data),void 0!==i.scale?i.scale=1/i.scale:i.scale=1;var o=new ut;return t(i,o),e(i,o),r(i,o),n(i,o),o.computeFaceNormals(),o.computeBoundingSphere(),void 0===i.materials||0===i.materials.length?{geometry:o}:{geometry:o,materials:vn.prototype.initMaterials(i.materials,a,this.crossOrigin)}}}()}),Object.assign(yn.prototype,{load:function(t,e,i,r){""===this.texturePath&&(this.texturePath=t.substring(0,t.lastIndexOf("/")+1));var n=this;new dr(n.manager).load(t,function(i){var a=null;try{a=JSON.parse(i)}catch(e){return void 0!==r&&r(e),void console.error("THREE:ObjectLoader: Can't parse "+t+".",e.message)}var o=a.metadata;if(void 0===o||void 0===o.type||"geometry"===o.type.toLowerCase())return void console.error("THREE.ObjectLoader: Can't lLine truncated
this.nCachedObjects_=e},uncache:function(){for(var t=this._objects,e=t.length,i=this.nCachedObjects_,r=this._indicesByUUID,n=this._bindings,a=n.length,o=0,s=arguments.length;o!==s;++o){var c=arguments[o],h=c.uuid,l=r[h];if(void 0!==l)if(delete r[h],l<i){var u=--i,p=t[u],d=--e,f=t[d];r[p.uuid]=l,t[l]=p,r[f.uuid]=u,t[u]=f,t.pop();for(var m=0,v=a;m!==v;++m){var g=n[m],y=g[u],x=g[d];g[l]=y,g[u]=x,g.pop()}}else{var d=--e,f=t[d];r[f.uuid]=l,t[l]=f,t.pop();for(var m=0,v=a;m!==v;++m){var g=n[m];g[l]=g[d],g.pop()}}}this.nCachedObjects_=i},subscribe_:function(t,e){var i=this._bindingsIndicesByPath,r=i[t],n=this._bindings;if(void 0!==r)return n[r];var a=this._paths,o=this._parsedPaths,s=this._objects,c=s.length,h=this.nCachedObjects_,l=new Array(c);r=n.length,i[t]=r,a.push(t),o.push(e),n.push(l);for(var u=h,p=s.length;u!==p;++u){var d=s[u];l[u]=new Nn(d,t,e)}return l},unsubscribe_:function(t){var e=this._bindingsIndicesByPath,i=e[t];if(void 0!==i){var r=this._paths,n=this._parsedPaths,a=this._bindings,o=a.length-1,s=a[o];e[t[o]]=i,a[i]=s,a.pop(),n[i]=n[o],n.pop(),r[i]=r[o],r.pop()}}}),Object.assign(Dn.prototype,{play:function(){return this._mixer._activateAction(this),this},stop:function(){return this._mixer._deactivateAction(this),this.reset()},reset:function(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()},isRunning:function(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)},isScheduled:function(){return this._mixer._isActiveAction(this)},startAt:function(t){return this._startTime=t,this},setLoop:function(t,e){return this.loop=t,this.repetitions=e,this},setEffectiveWeight:function(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()},getEffectiveWeight:function(){return this._effectiveWeight},fadeIn:function(t){return this._scheduleFading(t,0,1)},fadeOut:function(t){return this._scheduleFading(t,1,0)},crossFadeFrom:function(t,e,i){if(t.fadeOut(e),this.fadeIn(e),i){var r=this._clip.duration,n=t._clip.duration,a=n/r,o=r/n;t.warp(1,a,e),this.warp(o,1,e)}return this},crossFadeTo:function(t,e,i){return t.crossFadeFrom(this,e,i)},stopFading:function(){var t=this._weightInterpolant;return null!==t&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},setEffectiveTimeScale:function(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()},getEffectiveTimeScale:function(){return this._effectiveTimeScale},setDuration:function(t){return this.timeScale=this._clip.duration/t,this.stopWarping()},syncWith:function(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()},halt:function(t){return this.warp(this._effectiveTimeScale,0,t)},warp:function(t,e,i){var r=this._mixer,n=r.time,a=this._timeScaleInterpolant,o=this.timeScale;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);var s=a.parameterPositions,c=a.sampleValues;return s[0]=n,s[1]=n+i,c[0]=t/o,c[1]=e/o,this},stopWarping:function(){var t=this._timeScaleInterpolant;return null!==t&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this},getMixer:function(){return this._mixer},getClip:function(){return this._clip},getRoot:function(){return this._localRoot||this._mixer._root},_update:function(t,e,i,r){if(!this.enabled)return void this._updateWeight(t);var n=this._startTime;if(null!==n){var a=(t-n)*i;if(a<0||0===i)return;this._startTime=null,e=i*a}e*=this._updateTimeScale(t);var o=this._updateTime(e),s=this._updateWeight(t);if(s>0)for(var c=this._interpolants,h=this._propertyBindings,l=0,u=c.length;l!==u;++l)c[l].evaluate(o),h[l].accumulate(r,s)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var i=this._weightInterpolant;if(null!==i){var r=i.evaluate(t)[0];e*=r,t>i.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var i=this._timeScaleInterpolant;if(null!==i){e*=i.evaluate(t)[0],t>i.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t;if(0===t)return e;var i=this._clip.duration,r=this.loop,n=this._loopCount;if(2200===r){-1===n&&(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=i)e=i;else{if(!(e<0))break t;e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:"finished",action:this,direction:t<0?-1:1})}}else{var a=2202===r;if(-1===n&&(t>=0?(n=0,this._setEndings(!0,0===this.repetitions,a)):this._setEndings(0===this.repetitions,!0,a)),e>=i||e<0){var o=Math.floor(e/i);e-=i*o,n+=Math.abs(o);var s=this.repetitions-n;if(s<0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?i:0,this._mixer.dispatchEvent({type:"finished",action:this,direction:t>0?1:-1});else{if(0===s){var c=t<0;this._setEndings(c,!c,a)}eLine truncated
return console.warn("THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion()."),this.makeRotationFromQuaternion(t)},multiplyToArray:function(){console.warn("THREE.Matrix4: .multiplyToArray() has been removed.")},multiplyVector3:function(t){return console.warn("THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector4:function(t){return console.warn("THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},multiplyVector3Array:function(){console.error("THREE.Matrix4: .multiplyVector3Array() has been removed.")},rotateAxis:function(t){console.warn("THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead."),t.transformDirection(this)},crossVector:function(t){return console.warn("THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead."),t.applyMatrix4(this)},translate:function(){console.error("THREE.Matrix4: .translate() has been removed.")},rotateX:function(){console.error("THREE.Matrix4: .rotateX() has been removed.")},rotateY:function(){console.error("THREE.Matrix4: .rotateY() has been removed.")},rotateZ:function(){console.error("THREE.Matrix4: .rotateZ() has been removed.")},rotateByAxis:function(){console.error("THREE.Matrix4: .rotateByAxis() has been removed.")},applyToBuffer:function(t){return console.warn("THREE.Matrix4: .applyToBuffer() has been removed. Use matrix.applyToBufferAttribute( attribute ) instead."),this.applyToBufferAttribute(t)},applyToVector3Array:function(){console.error("THREE.Matrix4: .applyToVector3Array() has been removed.")},makeFrustum:function(t,e,i,r,n,a){return console.warn("THREE.Matrix4: .makeFrustum() has been removed. Use .makePerspective( left, right, top, bottom, near, far ) instead."),this.makePerspective(t,e,r,i,n,a)}}),et.prototype.isIntersectionLine=function(t){return console.warn("THREE.Plane: .isIntersectionLine() has been renamed to .intersectsLine()."),this.intersectsLine(t)},n.prototype.multiplyVector3=function(t){return console.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."),t.applyQuaternion(this)},Object.assign(Pt.prototype,{isIntersectionBox:function(t){return console.warn("THREE.Ray: .isIntersectionBox() has been renamed to .intersectsBox()."),this.intersectsBox(t)},isIntersectionPlane:function(t){return console.warn("THREE.Ray: .isIntersectionPlane() has been renamed to .intersectsPlane()."),this.intersectsPlane(t)},isIntersectionSphere:function(t){return console.warn("THREE.Ray: .isIntersectionSphere() has been renamed to .intersectsSphere()."),this.intersectsSphere(t)}}),Object.assign(kr.prototype,{extractAllPoints:function(t){return console.warn("THREE.Shape: .extractAllPoints() has been removed. Use .extractPoints() instead."),this.extractPoints(t)},extrude:function(t){return console.warn("THREE.Shape: .extrude() has been removed. Use ExtrudeGeometry() instead."),new Bi(this,t)},makeGeometry:function(t){return console.warn("THREE.Shape: .makeGeometry() has been removed. Use ShapeGeometry() instead."),new qi(this,t)}}),Object.assign(i.prototype,{fromAttribute:function(t,e,i){return console.warn("THREE.Vector2: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},distanceToManhattan:function(t){return console.warn("THREE.Vector2: .distanceToManhattan() has been renamed to .manhattanDistanceTo()."),this.manhattanDistanceTo(t)},lengthManhattan:function(){return console.warn("THREE.Vector2: .lengthManhattan() has been renamed to .manhattanLength()."),this.manhattanLength()}}),Object.assign(a.prototype,{setEulerFromRotationMatrix:function(){console.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")},setEulerFromQuaternion:function(){console.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(t){return console.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition()."),this.setFromMatrixPosition(t)},getScaleFromMatrix:function(t){return console.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale()."),this.setFromMatrixScale(t)},getColumnFromMatrix:function(t,e){return console.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn()."),this.setFromMatrixColumn(e,t)},applyProjection:function(t){return console.warn("THREE.Vector3: .applyProjection() has been removed. Use .applyMatrix4( m ) instead."),this.applyMatrix4(t)},fromAttribute:function(t,e,i){return console.warn("THREE.Vector3: .fromAttribute() has been renamed to .fromBufferAttribute()."),this.fromBufferAttribute(t,e,i)},distanceToManhattan:function(t){return console.warn("THREE.Vector3: .distanceToMLine truncated
},{}],41:[function(_dereq_,module,exports){
THREE.ColladaLoader=function(e){this.manager=void 0!==e?e:THREE.DefaultLoadingManager},THREE.ColladaLoader.prototype={constructor:THREE.ColladaLoader,crossOrigin:"Anonymous",load:function(e,t,r,a){var n=this,i=void 0===n.path?THREE.LoaderUtils.extractUrlBase(e):n.path;new THREE.FileLoader(n.manager).load(e,function(e){t(n.parse(e,i))},r,a)},setPath:function(e){this.path=e},options:{set convertUpAxis(e){console.warn("THREE.ColladaLoader: options.convertUpAxis() has been removed. Up axis is converted automatically.")}},setCrossOrigin:function(e){this.crossOrigin=e},parse:function(e,t){function r(e,t){for(var r=[],a=e.childNodes,n=0,i=a.length;n<i;n++){var s=a[n];s.nodeName===t&&r.push(s)}return r}function a(e){if(0===e.length)return[];for(var t=e.trim().split(/\s+/),r=new Array(t.length),a=0,n=t.length;a<n;a++)r[a]=t[a];return r}function n(e){if(0===e.length)return[];for(var t=e.trim().split(/\s+/),r=new Array(t.length),a=0,n=t.length;a<n;a++)r[a]=parseFloat(t[a]);return r}function i(e){if(0===e.length)return[];for(var t=e.trim().split(/\s+/),r=new Array(t.length),a=0,n=t.length;a<n;a++)r[a]=parseInt(t[a]);return r}function s(e){return e.substring(1)}function o(){return"three_default_"+ct++}function c(e){return 0===Object.keys(e).length}function l(e){return void 0!==e?parseFloat(e.getAttribute("meter")):1}function d(e){return void 0!==e?e.textContent:"Y_UP"}function u(e,t,a,n){var i=r(e,t)[0];if(void 0!==i)for(var s=r(i,a),o=0;o<s.length;o++)n(s[o])}function f(e,t){for(var r in e){e[r].build=t(e[r])}}function h(e,t){return void 0!==e.build?e.build:(e.build=t(e),e.build)}function m(e){for(var t={sources:{},samplers:{},channels:{}},r=0,a=e.childNodes.length;r<a;r++){var n=e.childNodes[r];if(1===n.nodeType){var i;switch(n.nodeName){case"source":i=n.getAttribute("id"),t.sources[i]=ve(n);break;case"sampler":i=n.getAttribute("id"),t.samplers[i]=p(n);break;case"channel":i=n.getAttribute("target"),t.channels[i]=v(n);break;default:console.log(n)}}}lt.animations[e.getAttribute("id")]=t}function p(e){for(var t={inputs:{}},r=0,a=e.childNodes.length;r<a;r++){var n=e.childNodes[r];if(1===n.nodeType)switch(n.nodeName){case"input":var i=s(n.getAttribute("source")),o=n.getAttribute("semantic");t.inputs[o]=i}}return t}function v(e){var t={},r=e.getAttribute("target"),a=r.split("/"),n=a.shift(),i=a.shift(),o=-1!==i.indexOf("("),c=-1!==i.indexOf(".");if(c)a=i.split("."),i=a.shift(),t.member=a.shift();else if(o){var l=i.split("(");i=l.shift();for(var d=0;d<l.length;d++)l[d]=parseInt(l[d].replace(/\)/,""));t.indices=l}return t.id=n,t.sid=i,t.arraySyntax=o,t.memberSyntax=c,t.sampler=s(e.getAttribute("source")),t}function g(e){var t=[],r=e.channels,a=e.samplers,n=e.sources;for(var i in r)if(r.hasOwnProperty(i)){var s=r[i],o=a[s.sampler],c=o.inputs.INPUT,l=o.inputs.OUTPUT,d=n[c],u=n[l],f=y(s,d,u);N(f,t)}return t}function b(e){return h(lt.animations[e],g)}function y(e,t,r){var a,n,i,s,o,c,l=lt.nodes[e.id],d=Ge(l.id),u=l.transforms[e.sid],f=l.matrix.clone().transpose(),h={};switch(u){case"matrix":for(i=0,s=t.array.length;i<s;i++)if(a=t.array[i],n=i*r.stride,void 0===h[a]&&(h[a]={}),!0===e.arraySyntax){var m=r.array[n],p=e.indices[0]+4*e.indices[1];h[a][p]=m}else for(o=0,c=r.stride;o<c;o++)h[a][o]=r.array[n+o];break;case"translate":case"rotate":case"scale":console.warn('THREE.ColladaLoader: Animation transform type "%s" not yet implemented.',u)}var v=E(h,f);return{name:d.uuid,keyframes:v}}function E(e,t){function r(e,t){return e.time-t.time}var a=[];for(var n in e)a.push({time:parseFloat(n),value:e[n]});a.sort(r);for(var i=0;i<16;i++)T(a,i,t.elements[i]);return a}function N(e,t){for(var r=e.keyframes,a=e.name,n=[],i=[],s=[],o=[],c=0,l=r.length;c<l;c++){var d=r[c],u=d.time,f=d.value;$e.fromArray(f).transpose(),$e.decompose(Ze,Ye,Qe),n.push(u),i.push(Ze.x,Ze.y,Ze.z),s.push(Ye.x,Ye.y,Ye.z,Ye.w),o.push(Qe.x,Qe.y,Qe.z)}return i.length>0&&t.push(new THREE.VectorKeyframeTrack(a+".position",n,i)),s.length>0&&t.push(new THREE.QuaternionKeyframeTrack(a+".quaternion",n,s)),o.length>0&&t.push(new THREE.VectorKeyframeTrack(a+".scale",n,o)),t}function T(e,t,r){var a,n,i,s=!0;for(n=0,i=e.length;n<i;n++)a=e[n],void 0===a.value[t]?a.value[t]=null:s=!1;if(!0===s)for(n=0,i=e.length;n<i;n++)a=e[n],a.value[t]=r;else w(e,t)}function w(e,t){for(var r,a,n=0,i=e.length;n<i;n++){var s=e[n];if(null===s.value[t]){if(r=x(e,n,t),a=k(e,n,t),null===r){s.value[t]=a.value[t];continue}if(null===a){s.value[t]=r.value[t];continue}A(s,r,a,t)}}}function x(e,t,r){for(;t>=0;){var a=e[t];if(null!==a.value[r])return a;t--}return null}function k(e,t,r){for(;t<e.length;){var a=e[t];if(null!==a.value[r])return a;t++}return null}function A(e,t,r,a){if(r.time-t.time==0)return void(e.value[a]=t.value[a]);e.value[a]=(e.time-t.time)*(r.value[a]-t.value[a])/(r.time-t.time)+t.value[a]}function R(e){for(var t={name:e.getAttribute("id")||"default",start:parseFloat(e.getAttribute("start")||0),end:parseFloat(e.getAttribute("end")||0),animations:[]},r=0,a=e.childNodes.length;r<a;r++){var n=e.Line truncated
;var dt=function(e){return Xe(s(r(e,"instance_visual_scene")[0].getAttribute("url")))}(r(rt,"scene")[0]);return"Z_UP"===nt.upAxis&&(dt.rotation.x=-Math.PI/2),dt.scale.multiplyScalar(nt.unit),console.timeEnd("THREE.ColladaLoader"),{animations:st,kinematics:ot,library:lt,scene:dt}}};
},{}],42:[function(_dereq_,module,exports){
THREE.GLTFLoader=function(){function e(e){this.manager=void 0!==e?e:THREE.DefaultLoadingManager}function t(){var e={};return{get:function(t){return e[t]},add:function(t,a){e[t]=a},remove:function(t){delete e[t]},removeAll:function(){e={}}}}function a(e){this.name=E.KHR_LIGHTS,this.lights={};var t=e.extensions&&e.extensions[E.KHR_LIGHTS]||{},a=t.lights||{};for(var r in a){var s,n=a[r],i=(new THREE.Color).fromArray(n.color);switch(n.type){case"directional":s=new THREE.DirectionalLight(i),s.position.set(0,0,1);break;case"point":s=new THREE.PointLight(i);break;case"spot":s=new THREE.SpotLight(i),s.position.set(0,0,1);break;case"ambient":s=new THREE.AmbientLight(i)}s&&(void 0!==n.constantAttenuation&&(s.intensity=n.constantAttenuation),void 0!==n.linearAttenuation&&(s.distance=1/n.linearAttenuation),void 0!==n.quadraticAttenuation&&(s.decay=n.quadraticAttenuation),void 0!==n.fallOffAngle&&(s.angle=n.fallOffAngle),void 0!==n.fallOffExponent&&console.warn("THREE.GLTFLoader:: light.fallOffExponent not currently supported."),s.name=n.name||"light_"+r,this.lights[r]=s)}}function r(e){this.name=E.KHR_BINARY_GLTF,this.content=null,this.body=null;var t=new DataView(e,0,h);if(this.header={magic:THREE.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==m)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected. Use LegacyGLTFLoader instead.");for(var a=new DataView(e,h),r=0;r<a.byteLength;){var s=a.getUint32(r,!0);r+=4;var n=a.getUint32(r,!0);if(r+=4,n===f.JSON){var i=new Uint8Array(e,h+r,s);this.content=THREE.LoaderUtils.decodeText(i)}else if(n===f.BIN){var o=h+r;this.body=e.slice(o,o+s)}r+=s}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}function s(){return{name:E.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return THREE.ShaderMaterial},extendParams:function(e,t,a){var r=t.extensions[this.name],s=THREE.ShaderLib.standard,n=THREE.UniformsUtils.clone(s.uniforms),i=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),o=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),l=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),p=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),u=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb;","material.specularRoughness = clamp( 1.0 - glossinessFactor, 0.04, 1.0 );","material.specularColor = specularFactor.rgb;"].join("\n"),c=s.fragmentShader.replace("#include <specularmap_fragment>","").replace("uniform float roughness;","uniform vec3 specular;").replace("uniform float metalness;","uniform float glossiness;").replace("#include <roughnessmap_pars_fragment>",i).replace("#include <metalnessmap_pars_fragment>",o).replace("#include <roughnessmap_fragment>",l).replace("#include <metalnessmap_fragment>",p).replace("#include <lights_physical_fragment>",u);delete n.roughness,delete n.metalness,delete n.roughnessMap,delete n.metalnessMap,n.specular={value:(new THREE.Color).setHex(1118481)},n.glossiness={value:.5},n.specularMap={value:null},n.glossinessMap={value:null},e.vertexShader=s.vertexShader,e.fragmentShader=c,e.uniforms=n,e.defines={STANDARD:""},e.color=new THREE.Color(1,1,1),e.opacity=1;var d=[];if(Array.isArray(r.diffuseFactor)){var E=r.diffuseFactor;e.color.fromArray(E),e.opacity=E[3]}if(void 0!==r.diffuseTexture&&d.push(a.assignTexture(e,"map",r.diffuseTexture.index)),e.emissive=new THREE.Color(0,0,0),e.glossiness=void 0!==r.glossinessFactor?r.glossinessFactor:1,e.specular=new THREE.Color(1,1,1),Array.isArray(r.specularFactor)&&e.specular.fromArray(r.specularFactor),void 0!==r.specularGlossinessTexture){var m=r.specularGlossinessTexture.index;d.push(a.assignTexture(e,"glossinessMap",m)),d.push(a.assignTexture(e,"specularMap",m))}return Promise.all(d)},createMaterial:function(e){var t=new THREE.ShaderMaterial({defines:e.defines,vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,fog:!0,lights:!0,opacity:e.opacity,transparent:e.transparent}Line truncated
},{}],43:[function(_dereq_,module,exports){
THREE.MTLLoader=function(t){this.manager=void 0!==t?t:THREE.DefaultLoadingManager},THREE.MTLLoader.prototype={constructor:THREE.MTLLoader,load:function(t,a,e,r){var s=this,i=new THREE.FileLoader(this.manager);i.setPath(this.path),i.load(t,function(t){a(s.parse(t))},e,r)},setPath:function(t){this.path=t},setTexturePath:function(t){this.texturePath=t},setBaseUrl:function(t){console.warn("THREE.MTLLoader: .setBaseUrl() is deprecated. Use .setTexturePath( path ) for texture path or .setPath( path ) for general base path instead."),this.setTexturePath(t)},setCrossOrigin:function(t){this.crossOrigin=t},setMaterialOptions:function(t){this.materialOptions=t},parse:function(t){for(var a=t.split("\n"),e={},r=/\s+/,s={},i=0;i<a.length;i++){var o=a[i];if(o=o.trim(),0!==o.length&&"#"!==o.charAt(0)){var n=o.indexOf(" "),p=n>=0?o.substring(0,n):o;p=p.toLowerCase();var h=n>=0?o.substring(n+1):"";if(h=h.trim(),"newmtl"===p)e={name:h},s[h]=e;else if(e)if("ka"===p||"kd"===p||"ks"===p){var l=h.split(r,3);e[p]=[parseFloat(l[0]),parseFloat(l[1]),parseFloat(l[2])]}else e[p]=h}}var c=new THREE.MTLLoader.MaterialCreator(this.texturePath||this.path,this.materialOptions);return c.setCrossOrigin(this.crossOrigin),c.setManager(this.manager),c.setMaterials(s),c}},THREE.MTLLoader.MaterialCreator=function(t,a){this.baseUrl=t||"",this.options=a,this.materialsInfo={},this.materials={},this.materialsArray=[],this.nameLookup={},this.side=this.options&&this.options.side?this.options.side:THREE.FrontSide,this.wrap=this.options&&this.options.wrap?this.options.wrap:THREE.RepeatWrapping},THREE.MTLLoader.MaterialCreator.prototype={constructor:THREE.MTLLoader.MaterialCreator,crossOrigin:"Anonymous",setCrossOrigin:function(t){this.crossOrigin=t},setManager:function(t){this.manager=t},setMaterials:function(t){this.materialsInfo=this.convert(t),this.materials={},this.materialsArray=[],this.nameLookup={}},convert:function(t){if(!this.options)return t;var a={};for(var e in t){var r=t[e],s={};a[e]=s;for(var i in r){var o=!0,n=r[i],p=i.toLowerCase();switch(p){case"kd":case"ka":case"ks":this.options&&this.options.normalizeRGB&&(n=[n[0]/255,n[1]/255,n[2]/255]),this.options&&this.options.ignoreZeroRGBs&&0===n[0]&&0===n[1]&&0===n[2]&&(o=!1)}o&&(s[p]=n)}}return a},preload:function(){for(var t in this.materialsInfo)this.create(t)},getIndex:function(t){return this.nameLookup[t]},getAsArray:function(){var t=0;for(var a in this.materialsInfo)this.materialsArray[t]=this.create(a),this.nameLookup[a]=t,t++;return this.materialsArray},create:function(t){return void 0===this.materials[t]&&this.createMaterial_(t),this.materials[t]},createMaterial_:function(t){function a(t,a){return"string"!=typeof a||""===a?"":/^https?:\/\//i.test(a)?a:t+a}function e(t,e){if(!i[t]){var s=r.getTextureParams(e,i),o=r.loadTexture(a(r.baseUrl,s.url));o.repeat.copy(s.scale),o.offset.copy(s.offset),o.wrapS=r.wrap,o.wrapT=r.wrap,i[t]=o}}var r=this,s=this.materialsInfo[t],i={name:t,side:this.side};for(var o in s){var n,p=s[o];if(""!==p)switch(o.toLowerCase()){case"kd":i.color=(new THREE.Color).fromArray(p);break;case"ks":i.specular=(new THREE.Color).fromArray(p);break;case"map_kd":e("map",p);break;case"map_ks":e("specularMap",p);break;case"norm":e("normalMap",p);break;case"map_bump":case"bump":e("bumpMap",p);break;case"ns":i.shininess=parseFloat(p);break;case"d":n=parseFloat(p),n<1&&(i.opacity=n,i.transparent=!0);break;case"tr":n=parseFloat(p),this.options&&this.options.invertTrProperty&&(n=1-n),n<1&&(i.opacity=n,i.transparent=!0)}}return this.materials[t]=new THREE.MeshPhongMaterial(i),this.materials[t]},getTextureParams:function(t,a){var e,r={scale:new THREE.Vector2(1,1),offset:new THREE.Vector2(0,0)},s=t.split(/\s+/);return e=s.indexOf("-bm"),e>=0&&(a.bumpScale=parseFloat(s[e+1]),s.splice(e,2)),e=s.indexOf("-s"),e>=0&&(r.scale.set(parseFloat(s[e+1]),parseFloat(s[e+2])),s.splice(e,4)),e=s.indexOf("-o"),e>=0&&(r.offset.set(parseFloat(s[e+1]),parseFloat(s[e+2])),s.splice(e,4)),r.url=s.join(" ").trim(),r},loadTexture:function(t,a,e,r,s){var i,o=THREE.Loader.Handlers.get(t),n=void 0!==this.manager?this.manager:THREE.DefaultLoadingManager;return null===o&&(o=new THREE.TextureLoader(n)),o.setCrossOrigin&&o.setCrossOrigin(this.crossOrigin),i=o.load(t,e,r,s),void 0!==a&&(i.mapping=a),i}};
},{}],44:[function(_dereq_,module,exports){
THREE.OBJLoader=function(){function t(){var t={objects:[],object:{},vertices:[],normals:[],colors:[],uvs:[],materialLibraries:[],startObject:function(t,e){if(this.object&&!1===this.object.fromDeclaration)return this.object.name=t,void(this.object.fromDeclaration=!1!==e);var r=this.object&&"function"==typeof this.object.currentMaterial?this.object.currentMaterial():void 0;if(this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0),this.object={name:t||"",fromDeclaration:!1!==e,geometry:{vertices:[],normals:[],colors:[],uvs:[]},materials:[],smooth:!0,startMaterial:function(t,e){var r=this._finalize(!1);r&&(r.inherited||r.groupCount<=0)&&this.materials.splice(r.index,1);var i={index:this.materials.length,name:t||"",mtllib:Array.isArray(e)&&e.length>0?e[e.length-1]:"",smooth:void 0!==r?r.smooth:this.smooth,groupStart:void 0!==r?r.groupEnd:0,groupEnd:-1,groupCount:-1,inherited:!1,clone:function(t){var e={index:"number"==typeof t?t:this.index,name:this.name,mtllib:this.mtllib,smooth:this.smooth,groupStart:0,groupEnd:-1,groupCount:-1,inherited:!1};return e.clone=this.clone.bind(e),e}};return this.materials.push(i),i},currentMaterial:function(){if(this.materials.length>0)return this.materials[this.materials.length-1]},_finalize:function(t){var e=this.currentMaterial();if(e&&-1===e.groupEnd&&(e.groupEnd=this.geometry.vertices.length/3,e.groupCount=e.groupEnd-e.groupStart,e.inherited=!1),t&&this.materials.length>1)for(var r=this.materials.length-1;r>=0;r--)this.materials[r].groupCount<=0&&this.materials.splice(r,1);return t&&0===this.materials.length&&this.materials.push({name:"",smooth:this.smooth}),e}},r&&r.name&&"function"==typeof r.clone){var i=r.clone(0);i.inherited=!0,this.object.materials.push(i)}this.objects.push(this.object)},finalize:function(){this.object&&"function"==typeof this.object._finalize&&this.object._finalize(!0)},parseVertexIndex:function(t,e){var r=parseInt(t,10);return 3*(r>=0?r-1:r+e/3)},parseNormalIndex:function(t,e){var r=parseInt(t,10);return 3*(r>=0?r-1:r+e/3)},parseUVIndex:function(t,e){var r=parseInt(t,10);return 2*(r>=0?r-1:r+e/2)},addVertex:function(t,e,r){var i=this.vertices,s=this.object.geometry.vertices;s.push(i[t+0],i[t+1],i[t+2]),s.push(i[e+0],i[e+1],i[e+2]),s.push(i[r+0],i[r+1],i[r+2])},addVertexPoint:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])},addVertexLine:function(t){var e=this.vertices;this.object.geometry.vertices.push(e[t+0],e[t+1],e[t+2])},addNormal:function(t,e,r){var i=this.normals,s=this.object.geometry.normals;s.push(i[t+0],i[t+1],i[t+2]),s.push(i[e+0],i[e+1],i[e+2]),s.push(i[r+0],i[r+1],i[r+2])},addColor:function(t,e,r){var i=this.colors,s=this.object.geometry.colors;s.push(i[t+0],i[t+1],i[t+2]),s.push(i[e+0],i[e+1],i[e+2]),s.push(i[r+0],i[r+1],i[r+2])},addUV:function(t,e,r){var i=this.uvs,s=this.object.geometry.uvs;s.push(i[t+0],i[t+1]),s.push(i[e+0],i[e+1]),s.push(i[r+0],i[r+1])},addUVLine:function(t){var e=this.uvs;this.object.geometry.uvs.push(e[t+0],e[t+1])},addFace:function(t,e,r,i,s,a,n,o,h){var l=this.vertices.length,u=this.parseVertexIndex(t,l),c=this.parseVertexIndex(e,l),p=this.parseVertexIndex(r,l);if(this.addVertex(u,c,p),void 0!==i){var m=this.uvs.length;u=this.parseUVIndex(i,m),c=this.parseUVIndex(s,m),p=this.parseUVIndex(a,m),this.addUV(u,c,p)}if(void 0!==n){var f=this.normals.length;u=this.parseNormalIndex(n,f),c=n===o?u:this.parseNormalIndex(o,f),p=n===h?u:this.parseNormalIndex(h,f),this.addNormal(u,c,p)}this.colors.length>0&&this.addColor(u,c,p)},addPointGeometry:function(t){this.object.geometry.type="Points";for(var e=this.vertices.length,r=0,i=t.length;r<i;r++)this.addVertexPoint(this.parseVertexIndex(t[r],e))},addLineGeometry:function(t,e){this.object.geometry.type="Line";for(var r=this.vertices.length,i=this.uvs.length,s=0,a=t.length;s<a;s++)this.addVertexLine(this.parseVertexIndex(t[s],r));for(var n=0,a=e.length;n<a;n++)this.addUVLine(this.parseUVIndex(e[n],i))}};return t.startObject("",!1),t}function e(t){this.manager=void 0!==t?t:THREE.DefaultLoadingManager,this.materials=null}var r=/^[og]\s*(.+)?/,i=/^mtllib /,s=/^usemtl /;return e.prototype={constructor:e,load:function(t,e,r,i){var s=this,a=new THREE.FileLoader(s.manager);a.setPath(this.path),a.load(t,function(t){e(s.parse(t))},r,i)},setPath:function(t){this.path=t},setMaterials:function(t){return this.materials=t,this},parse:function(e){console.time("OBJLoader");var a=new t;-1!==e.indexOf("\r\n")&&(e=e.replace(/\r\n/g,"\n")),-1!==e.indexOf("\\\n")&&(e=e.replace(/\\\n/g,""));for(var n=e.split("\n"),o="",h="",l=[],u="function"==typeof"".trimLeft,c=0,p=n.length;c<p;c++)if(o=n[c],o=u?o.trimLeft():o.trim(),0!==o.length&&"#"!==(h=o.charAt(0)))if("v"===h){var m=o.split(/\s+/);switch(m[0]){case"v":a.vertices.push(parseFloat(m[1]),parseFloat(m[2]),parseFloat(m[3])),8===m.length&&a.colors.push(parseFloat(m[4]),parseFloat(m[5]),parseFloat(m[6]));break;case"vn":a.normals.push(parseFloat(m[1]),parseFloat(m[2]),parseFloat(m[3]));brLine truncated
},{}],45:[function(_dereq_,module,exports){
function trim(r){return r.replace(/^\s*|\s*$/g,"")}exports=module.exports=trim,exports.left=function(r){return r.replace(/^\s*/,"")},exports.right=function(r){return r.replace(/\s*$/,"")};
},{}],46:[function(_dereq_,module,exports){
(function (global){
!function(e,M){"object"==typeof exports&&"undefined"!=typeof module?module.exports=M():"function"==typeof define&&define.amd?define(M):e.WebVRPolyfill=M()}(this,function(){"use strict";function e(e){this.config=s(s({},D),e),this.polyfillDisplays=[],this.enabled=!1,this.hasNative="getVRDisplays"in navigator,this.native={},this.native.getVRDisplays=navigator.getVRDisplays,this.native.VRFrameData=window.VRFrameData,this.native.VRDisplay=window.VRDisplay,(!this.hasNative||this.config.PROVIDE_MOBILE_VRDISPLAY&&t())&&(this.enable(),this.getVRDisplays().then(function(e){e&&e[0]&&e[0].fireVRDisplayConnect_&&e[0].fireVRDisplayConnect_()}))}var M="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i=function(e){return Promise.race?Promise.race(e):new Promise(function(M,i){for(var t=0;t<e.length;t++)e[t].then(M,i)})},t=function(){return/Android/i.test(navigator.userAgent)||/iPhone|iPad|iPod/i.test(navigator.userAgent)},A=function(e,M){for(var i=0,t=e.length;i<t;i++)M[i]=e[i]},s=function(e,M){for(var i in M)M.hasOwnProperty(i)&&(e[i]=M[i]);return e},r=function(e,M){return M={exports:{}},e(M,M.exports),M.exports}(function(e,i){!function(i,t){e.exports=function(){function e(e,M,i){if(!M)return void i(e);for(var t=[],A=null,s=0;s<M.length;++s){var r=M[s];switch(r){case e.TEXTURE_BINDING_2D:case e.TEXTURE_BINDING_CUBE_MAP:var N=M[++s];if(N<e.TEXTURE0||N>e.TEXTURE31){console.error("TEXTURE_BINDING_2D or TEXTURE_BINDING_CUBE_MAP must be followed by a valid texture unit"),t.push(null,null);break}A||(A=e.getParameter(e.ACTIVE_TEXTURE)),e.activeTexture(N),t.push(e.getParameter(r),null);break;case e.ACTIVE_TEXTURE:A=e.getParameter(e.ACTIVE_TEXTURE),t.push(null);break;default:t.push(e.getParameter(r))}}i(e);for(var s=0;s<M.length;++s){var r=M[s],D=t[s];switch(r){case e.ACTIVE_TEXTURE:break;case e.ARRAY_BUFFER_BINDING:e.bindBuffer(e.ARRAY_BUFFER,D);break;case e.COLOR_CLEAR_VALUE:e.clearColor(D[0],D[1],D[2],D[3]);break;case e.COLOR_WRITEMASK:e.colorMask(D[0],D[1],D[2],D[3]);break;case e.CURRENT_PROGRAM:e.useProgram(D);break;case e.ELEMENT_ARRAY_BUFFER_BINDING:e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,D);break;case e.FRAMEBUFFER_BINDING:e.bindFramebuffer(e.FRAMEBUFFER,D);break;case e.RENDERBUFFER_BINDING:e.bindRenderbuffer(e.RENDERBUFFER,D);break;case e.TEXTURE_BINDING_2D:var N=M[++s];if(N<e.TEXTURE0||N>e.TEXTURE31)break;e.activeTexture(N),e.bindTexture(e.TEXTURE_2D,D);break;case e.TEXTURE_BINDING_CUBE_MAP:var N=M[++s];if(N<e.TEXTURE0||N>e.TEXTURE31)break;e.activeTexture(N),e.bindTexture(e.TEXTURE_CUBE_MAP,D);break;case e.VIEWPORT:e.viewport(D[0],D[1],D[2],D[3]);break;case e.BLEND:case e.CULL_FACE:case e.DEPTH_TEST:case e.SCISSOR_TEST:case e.STENCIL_TEST:D?e.enable(r):e.disable(r);break;default:console.log("No GL restore behavior for 0x"+r.toString(16))}A&&e.activeTexture(A)}}function i(e,M,i,t){this.gl=e,this.cardboardUI=M,this.bufferScale=i,this.dirtySubmitFrameBindings=t,this.ctxAttribs=e.getContextAttributes(),this.meshWidth=20,this.meshHeight=20,this.bufferWidth=e.drawingBufferWidth,this.bufferHeight=e.drawingBufferHeight,this.realBindFramebuffer=e.bindFramebuffer,this.realEnable=e.enable,this.realDisable=e.disable,this.realColorMask=e.colorMask,this.realClearColor=e.clearColor,this.realViewport=e.viewport,O()||(this.realCanvasWidth=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"width"),this.realCanvasHeight=Object.getOwnPropertyDescriptor(e.canvas.__proto__,"height")),this.isPatched=!1,this.lastBoundFramebuffer=null,this.cullFace=!1,this.depthTest=!1,this.blend=!1,this.scissorTest=!1,this.stencilTest=!1,this.viewport=[0,0,0,0],this.colorMask=[!0,!0,!0,!0],this.clearColor=[0,0,0,0],this.attribs={position:0,texCoord:1},this.program=v(e,K,q,this.attribs),this.uniforms=b(e,this.program),this.viewportOffsetScale=new Float32Array(8),this.setTextureBounds(),this.vertexBuffer=e.createBuffer(),this.indexBuffer=e.createBuffer(),this.indexCount=0,this.renderTarget=e.createTexture(),this.framebuffer=e.createFramebuffer(),this.depthStencilBuffer=null,this.depthBuffer=null,this.stencilBuffer=null,this.ctxAttribs.depth&&this.ctxAttribs.stencil?this.depthStencilBuffer=e.createRenderbuffer():this.ctxAttribs.depth?this.depthBuffer=e.createRenderbuffer():this.ctxAttribs.stencil&&(this.stencilBuffer=e.createRenderbuffer()),this.patch(),this.onResize()}function t(e){this.gl=e,this.attribs={position:0},this.program=v(e,$,ee,this.attribs),this.uniforms=b(e,this.program),this.vertexBuffer=e.createBuffer(),this.gearOffset=0,this.gearVertexCount=0,this.arrowOffset=0,this.arrowVertexCount=0,this.projMat=new Float32Array(16),this.listener=null,this.onResize()}function A(e){this.coefficients=e}function s(e){this.width=e.width||m(),this.height=e.height||k(),this.widthMeters=e.widthMeters,this.heightMeters=e.heightMeters,this.bevelMeters=e.bevelMeters}function r(e){this.viewer=ne.CardboardV2,this.updateDeviceParams(e),this.distortion=new A(this.viewer.distortionCoefficients)}function N(e){this.id=e.id,this.laLine truncated
e.uniformMatrix4fv(this.uniforms.projectionMat,!1,this.projMat),e.drawArrays(e.TRIANGLE_STRIP,0,4),e.drawArrays(e.TRIANGLE_STRIP,this.gearOffset,this.gearVertexCount),e.drawArrays(e.TRIANGLE_STRIP,this.arrowOffset,this.arrowVertexCount)},A.prototype.distortInverse=function(e){for(var M=0,i=1,t=e-this.distort(M);Math.abs(i-M)>1e-4;){var A=e-this.distort(i),s=i-A*((i-M)/(A-t));M=i,i=s,t=A}return i},A.prototype.distort=function(e){for(var M=e*e,i=0,t=0;t<this.coefficients.length;t++)i=M*(i+this.coefficients[t]);return(i+1)*e};var te=Math.PI/180,Ae=180/Math.PI,se=function(e,M,i){this.x=e||0,this.y=M||0,this.z=i||0};se.prototype={constructor:se,set:function(e,M,i){return this.x=e,this.y=M,this.z=i,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},normalize:function(){var e=this.length();if(0!==e){var M=1/e;this.multiplyScalar(M)}else this.x=0,this.y=0,this.z=0;return this},multiplyScalar:function(e){this.x*=e,this.y*=e,this.z*=e},applyQuaternion:function(e){var M=this.x,i=this.y,t=this.z,A=e.x,s=e.y,r=e.z,N=e.w,D=N*M+s*t-r*i,n=N*i+r*M-A*t,u=N*t+A*i-s*M,a=-A*M-s*i-r*t;return this.x=D*N+a*-A+n*-r-u*-s,this.y=n*N+a*-s+u*-A-D*-r,this.z=u*N+a*-r+D*-s-n*-A,this},dot:function(e){return this.x*e.x+this.y*e.y+this.z*e.z},crossVectors:function(e,M){var i=e.x,t=e.y,A=e.z,s=M.x,r=M.y,N=M.z;return this.x=t*N-A*r,this.y=A*s-i*N,this.z=i*r-t*s,this}};var re=function(e,M,i,t){this.x=e||0,this.y=M||0,this.z=i||0,this.w=void 0!==t?t:1};re.prototype={constructor:re,set:function(e,M,i,t){return this.x=e,this.y=M,this.z=i,this.w=t,this},copy:function(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w,this},setFromEulerXYZ:function(e,M,i){var t=Math.cos(e/2),A=Math.cos(M/2),s=Math.cos(i/2),r=Math.sin(e/2),N=Math.sin(M/2),D=Math.sin(i/2);return this.x=r*A*s+t*N*D,this.y=t*N*s-r*A*D,this.z=t*A*D+r*N*s,this.w=t*A*s-r*N*D,this},setFromEulerYXZ:function(e,M,i){var t=Math.cos(e/2),A=Math.cos(M/2),s=Math.cos(i/2),r=Math.sin(e/2),N=Math.sin(M/2),D=Math.sin(i/2);return this.x=r*A*s+t*N*D,this.y=t*N*s-r*A*D,this.z=t*A*D-r*N*s,this.w=t*A*s+r*N*D,this},setFromAxisAngle:function(e,M){var i=M/2,t=Math.sin(i);return this.x=e.x*t,this.y=e.y*t,this.z=e.z*t,this.w=Math.cos(i),this},multiply:function(e){return this.multiplyQuaternions(this,e)},multiplyQuaternions:function(e,M){var i=e.x,t=e.y,A=e.z,s=e.w,r=M.x,N=M.y,D=M.z,n=M.w;return this.x=i*n+s*r+t*D-A*N,this.y=t*n+s*N+A*r-i*D,this.z=A*n+s*D+i*N-t*r,this.w=s*n-i*r-t*N-A*D,this},inverse:function(){return this.x*=-1,this.y*=-1,this.z*=-1,this.normalize(),this},normalize:function(){var e=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);return 0===e?(this.x=0,this.y=0,this.z=0,this.w=1):(e=1/e,this.x=this.x*e,this.y=this.y*e,this.z=this.z*e,this.w=this.w*e),this},slerp:function(e,M){if(0===M)return this;if(1===M)return this.copy(e);var i=this.x,t=this.y,A=this.z,s=this.w,r=s*e.w+i*e.x+t*e.y+A*e.z;if(r<0?(this.w=-e.w,this.x=-e.x,this.y=-e.y,this.z=-e.z,r=-r):this.copy(e),r>=1)return this.w=s,this.x=i,this.y=t,this.z=A,this;var N=Math.acos(r),D=Math.sqrt(1-r*r);if(Math.abs(D)<.001)return this.w=.5*(s+this.w),this.x=.5*(i+this.x),this.y=.5*(t+this.y),this.z=.5*(A+this.z),this;var n=Math.sin((1-M)*N)/D,u=Math.sin(M*N)/D;return this.w=s*n+this.w*u,this.x=i*n+this.x*u,this.y=t*n+this.y*u,this.z=A*n+this.z*u,this},setFromUnitVectors:function(){var e,M;return function(i,t){return void 0===e&&(e=new se),M=i.dot(t)+1,M<1e-6?(M=0,Math.abs(i.x)>Math.abs(i.z)?e.set(-i.y,i.x,0):e.set(0,-i.z,i.y)):e.crossVectors(i,t),this.x=e.x,this.y=e.y,this.z=e.z,this.w=M,this.normalize(),this}}()};var Ne=new s({widthMeters:.11,heightMeters:.062,bevelMeters:.004}),De=new s({widthMeters:.1038,heightMeters:.0584,bevelMeters:.004}),ne={CardboardV1:new N({id:"CardboardV1",label:"Cardboard I/O 2014",fov:40,interLensDistance:.06,baselineLensDistance:.035,screenLensDistance:.042,distortionCoefficients:[.441,.156],inverseCoefficients:[-.4410035,.42756155,-.4804439,.5460139,-.58821183,.5733938,-.48303202,.33299083,-.17573841,.0651772,-.01488963,.001559834]}),CardboardV2:new N({id:"CardboardV2",label:"Cardboard I/O 2015",fov:60,interLensDistance:.064,baselineLensDistance:.035,screenLensDistance:.039,distortionCoefficients:[.34,.55],inverseCoefficients:[-.33836704,-.18162185,.862655,-1.2462051,1.0560602,-.58208317,.21609078,-.05444823,.009177956,-.0009904169,6183535e-11,-16981803e-13]})};r.prototype.updateDeviceParams=function(e){this.device=this.determineDevice_(e)||this.device},r.prototype.getDevice=function(){return this.device},r.prototype.setViewer=function(e){this.viewer=e,this.distortion=new A(this.viewer.distortionCoefficients)},r.prototype.determineDevice_=function(e){if(!e)return O()?(console.warn("Using fallback iOS device measurements."),De):(console.warn("Using fallback Android device measurements."),Ne);var M=.0254/e.xdpi,i=.0254/e.ydpi;return new s({widthMeters:M*m(),heightMeters:i*k(),bevelMeters:.001*e.bevelLine truncated
this.icon=z("image/svg+xml","PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE5OHB4IiBoZWlnaHQ9IjI0MHB4IiB2aWV3Qm94PSIwIDAgMTk4IDI0MCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWxuczpza2V0Y2g9Imh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaC9ucyI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDMuMy4zICgxMjA4MSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+dHJhbnNpdGlvbjwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPgogICAgICAgIDxnIGlkPSJ0cmFuc2l0aW9uIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIj4KICAgICAgICAgICAgPGcgaWQ9IkltcG9ydGVkLUxheWVycy1Db3B5LTQtKy1JbXBvcnRlZC1MYXllcnMtQ29weS0rLUltcG9ydGVkLUxheWVycy1Db3B5LTItQ29weSIgc2tldGNoOnR5cGU9Ik1TTGF5ZXJHcm91cCI+CiAgICAgICAgICAgICAgICA8ZyBpZD0iSW1wb3J0ZWQtTGF5ZXJzLUNvcHktNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC4wMDAwMDAsIDEwNy4wMDAwMDApIiBza2V0Y2g6dHlwZT0iTVNTaGFwZUdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMTQ5LjYyNSwyLjUyNyBDMTQ5LjYyNSwyLjUyNyAxNTUuODA1LDYuMDk2IDE1Ni4zNjIsNi40MTggTDE1Ni4zNjIsNy4zMDQgQzE1Ni4zNjIsNy40ODEgMTU2LjM3NSw3LjY2NCAxNTYuNCw3Ljg1MyBDMTU2LjQxLDcuOTM0IDE1Ni40Miw4LjAxNSAxNTYuNDI3LDguMDk1IEMxNTYuNTY3LDkuNTEgMTU3LjQwMSwxMS4wOTMgMTU4LjUzMiwxMi4wOTQgTDE2NC4yNTIsMTcuMTU2IEwxNjQuMzMzLDE3LjA2NiBDMTY0LjMzMywxNy4wNjYgMTY4LjcxNSwxNC41MzYgMTY5LjU2OCwxNC4wNDIgQzE3MS4wMjUsMTQuODgzIDE5NS41MzgsMjkuMDM1IDE5NS41MzgsMjkuMDM1IEwxOTUuNTM4LDgzLjAzNiBDMTk1LjUzOCw4My44MDcgMTk1LjE1Miw4NC4yNTMgMTk0LjU5LDg0LjI1MyBDMTk0LjM1Nyw4NC4yNTMgMTk0LjA5NSw4NC4xNzcgMTkzLjgxOCw4NC4wMTcgTDE2OS44NTEsNzAuMTc5IEwxNjkuODM3LDcwLjIwMyBMMTQyLjUxNSw4NS45NzggTDE0MS42NjUsODQuNjU1IEMxMzYuOTM0LDgzLjEyNiAxMzEuOTE3LDgxLjkxNSAxMjYuNzE0LDgxLjA0NSBDMTI2LjcwOSw4MS4wNiAxMjYuNzA3LDgxLjA2OSAxMjYuNzA3LDgxLjA2OSBMMTIxLjY0LDk4LjAzIEwxMTMuNzQ5LDEwMi41ODYgTDExMy43MTIsMTAyLjUyMyBMMTEzLjcxMiwxMzAuMTEzIEMxMTMuNzEyLDEzMC44ODUgMTEzLjMyNiwxMzEuMzMgMTEyLjc2NCwxMzEuMzMgQzExMi41MzIsMTMxLjMzIDExMi4yNjksMTMxLjI1NCAxMTEuOTkyLDEzMS4wOTQgTDY5LjUxOSwxMDYuNTcyIEM2OC41NjksMTA2LjAyMyA2Ny43OTksMTA0LjY5NSA2Ny43OTksMTAzLjYwNSBMNjcuNzk5LDEwMi41NyBMNjcuNzc4LDEwMi42MTcgQzY3LjI3LDEwMi4zOTMgNjYuNjQ4LDEwMi4yNDkgNjUuOTYyLDEwMi4yMTggQzY1Ljg3NSwxMDIuMjE0IDY1Ljc4OCwxMDIuMjEyIDY1LjcwMSwxMDIuMjEyIEM2NS42MDYsMTAyLjIxMiA2NS41MTEsMTAyLjIxNSA2NS40MTYsMTAyLjIxOSBDNjUuMTk1LDEwMi4yMjkgNjQuOTc0LDEwMi4yMzUgNjQuNzU0LDEwMi4yMzUgQzY0LjMzMSwxMDIuMjM1IDYzLjkxMSwxMDIuMjE2IDYzLjQ5OCwxMDIuMTc4IEM2MS44NDMsMTAyLjAyNSA2MC4yOTgsMTAxLjU3OCA1OS4wOTQsMTAwLjg4MiBMMTIuNTE4LDczLjk5MiBMMTIuNTIzLDc0LjAwNCBMMi4yNDUsNTUuMjU0IEMxLjI0NCw1My40MjcgMi4wMDQsNTEuMDM4IDMuOTQzLDQ5LjkxOCBMNTkuOTU0LDE3LjU3MyBDNjAuNjI2LDE3LjE4NSA2MS4zNSwxNy4wMDEgNjIuMDUzLDE3LjAwMSBDNjMuMzc5LDE3LjAwMSA2NC42MjUsMTcuNjYgNjUuMjgsMTguODU0IEw2NS4yODUsMTguODUxIEw2NS41MTIsMTkuMjY0IEw2NS41MDYsMTkuMjY4IEM2NS45MDksMjAuMDAzIDY2LjQwNSwyMC42OCA2Ni45ODMsMjEuMjg2IEw2Ny4yNiwyMS41NTYgQzY5LjE3NCwyMy40MDYgNzEuNzI4LDI0LjM1NyA3NC4zNzMsMjQuMzU3IEM3Ni4zMjIsMjQuMzU3IDc4LjMyMSwyMy44NCA4MC4xNDgsMjIuNzg1IEM4MC4xNjEsMjIuNzg1IDg3LjQ2NywxOC41NjYgODcuNDY3LDE4LjU2NiBDODguMTM5LDE4LjE3OCA4OC44NjMsMTcuOTk0IDg5LjU2NiwxNy45OTQgQzkwLjg5MiwxNy45OTQgOTIuMTM4LDE4LjY1MiA5Mi43OTIsMTkuODQ3IEw5Ni4wNDIsMjUuNzc1IEw5Ni4wNjQsMjUuNzU3IEwxMDIuODQ5LDI5LjY3NCBMMTAyLjc0NCwyOS40OTIgTDE0OS42MjUsMi41MjcgTTE0OS42MjUsMC44OTIgQzE0OS4zNDMsMC44OTIgMTQ5LjA2MiwwLjk2NSAxNDguODEsMS4xMSBMMTAyLjY0MSwyNy42NjYgTDk3LjIzMSwyNC41NDIgTDk0LjIyNiwxOS4wNjEgQzkzLjMxMywxNy4zOTQgOTEuNTI3LDE2LjM1OSA4OS41NjYsMTYuMzU4IEM4OC41NTUsMTYuMzU4IDg3LjU0NiwxNi42MzIgODYuNjQ5LDE3LjE1IEM4My44NzgsMTguNzUgNzkuNjg3LDIxLjE2OSA3OS4zNzQsMjEuMzQ1IEM3OS4zNTksMjEuMzUzIDc5LjM0NSwyMS4zNjEgNzkuMzMsMjEuMzY5IEM3Ny43OTgsMjIuMjU0IDc2LjA4NCwyMi43MjIgNzQuMzczLDIyLjcyMiBDNzIuMDgxLDIyLjcyMiA2OS45NTksMjEuODkgNjguMzk3LDIwLjM4IEw2OC4xNDUsMjAuMTM1IEM2Ny43MDYsMTkuNjcyIDY3LjMyMywxOS4xNTYgNjcuMDA2LDE4LjYwMSBDNjYuOTg4LDE4LjU1OSA2Ni45NjgsMTguNTE5IDY2Ljk0NiwxOC40NzkgTDY2LjcxOSwxOC4wNjUgQzY2LjY5LDE4LjAxMiA2Ni42NTgsMTcuOTYgNjYuNjI0LDE3LjkxMSBDNjUuNjg2LDE2LjMzNyA2My45NTEsMTUuMzY2IDYyLjA1MywxNS4zNjYgQzYxLjA0MiwxNS4zNjYgNjAuMDMzLDE1LjY0IDU5LjEzNiwxNi4xNTggTDMuMTI1LDQ4LjUwMiBDMC40MjYsNTAuMDYxIC0wLjYxMyw1My40NDIgMC44MTEsNTYuMDQgTDExLjA4OSw3NC43OSBDMTEuMjY2LDc1LjExMyAxMS41MzcsNzUuMzUzIDExLjg1LDc1LjQ5NCBMNTguMjc2LDEwMi4yOTggQzU5LjY3OSwxMDMuMTA4IDYxLjQzMywxMDMuNjMgNjMuMzQ4LDEwMy44MDYgQzYzLjgxMiwxMDMuODQ4IDY0LjI4NSwxMDMuODcgNjQuNzU0LDEwMy44NyBDNjUsMTAzLjg3IDY1LjI0OSwxMDMuODY0IDY1LjQ5NCwxMDMuODUyIEM2NS41NjMsMTAzLjg0OSA2NS42MzIsMTAzLjg0NyA2NS43MDEsMTAzLjg0NyBDNjUuNzY0LDEwMy44NDcgNjUuODI4LDEwMy44NDkgNjUuODksMTAzLjg1MiBDNjUuOTg2LDEwMy44NTYgNjYuMDgsMTAzLjg2MyA2Ni4xNzMsMTAzLjg3NCBDNjYuMjgyLDEwNS40NjcgNjcuMzMyLDEwNy4xOTcgNjguNzAyLDEwNy45ODggTDExMS4xNzQsMTMyLjUxIEMxMTEuNjk4LDEzMi44MTIgMTEyLjIzMiwxMzIuOTY1IDExMi43NjQsMTMyLjk2NSBDMTE0LjI2MSwxMzIuOTY1IDExNS4zNDcsMTMxLjc2NSAxMTUuMzQ3LDEzMC4xMTMgTDExNS4zNDcsMTAzLjU1MSBMMTIyLjQ1OCw5OSLine truncated
};var Te="CardboardV1",ce="WEBVR_CARDBOARD_VIEWER";I.prototype.show=function(e){this.root=e,e.appendChild(this.dialog),this.dialog.querySelector("#"+this.selectedKey).checked=!0,this.dialog.style.display="block"},I.prototype.hide=function(){this.root&&this.root.contains(this.dialog)&&this.root.removeChild(this.dialog),this.dialog.style.display="none"},I.prototype.getCurrentViewer=function(){return r.Viewers[this.selectedKey]},I.prototype.getSelectedKey_=function(){var e=this.dialog.querySelector("input[name=field]:checked");return e?e.id:null},I.prototype.onChange=function(e){this.onChangeCallbacks_.push(e)},I.prototype.fireOnChange_=function(e){for(var M=0;M<this.onChangeCallbacks_.length;M++)this.onChangeCallbacks_[M](e)},I.prototype.onSave_=function(){if(this.selectedKey=this.getSelectedKey_(),!this.selectedKey||!r.Viewers[this.selectedKey])return void console.error("ViewerSelector.onSave_: this should never happen!");this.fireOnChange_(r.Viewers[this.selectedKey]);try{localStorage.setItem(ce,this.selectedKey)}catch(e){console.error("Failed to save viewer profile: %s",e)}this.hide()},I.prototype.createDialog_=function(e){var M=document.createElement("div");M.classList.add("webvr-polyfill-viewer-selector"),M.style.display="none";var i=document.createElement("div"),t=i.style;t.position="fixed",t.left=0,t.top=0,t.width="100%",t.height="100%",t.background="rgba(0, 0, 0, 0.3)",i.addEventListener("click",this.hide.bind(this));var A=document.createElement("div"),t=A.style;t.boxSizing="border-box",t.position="fixed",t.top="24px",t.left="50%",t.marginLeft="-140px",t.width="280px",t.padding="24px",t.overflow="hidden",t.background="#fafafa",t.fontFamily="'Roboto', sans-serif",t.boxShadow="0px 5px 20px #666",A.appendChild(this.createH1_("Select your viewer"));for(var s in e)A.appendChild(this.createChoice_(s,e[s].label));return A.appendChild(this.createButton_("Save",this.onSave_.bind(this))),M.appendChild(i),M.appendChild(A),M},I.prototype.createH1_=function(e){var M=document.createElement("h1"),i=M.style;return i.color="black",i.fontSize="20px",i.fontWeight="bold",i.marginTop=0,i.marginBottom="24px",M.innerHTML=e,M},I.prototype.createChoice_=function(e,M){var i=document.createElement("div");i.style.marginTop="8px",i.style.color="black";var t=document.createElement("input");t.style.fontSize="30px",t.setAttribute("id",e),t.setAttribute("type","radio"),t.setAttribute("value",e),t.setAttribute("name","field");var A=document.createElement("label");return A.style.marginLeft="4px",A.setAttribute("for",e),A.innerHTML=M,i.appendChild(t),i.appendChild(A),i},I.prototype.createButton_=function(e,M){var i=document.createElement("button");i.innerHTML=e;var t=i.style;return t.float="right",t.textTransform="uppercase",t.color="#1094f7",t.fontSize="14px",t.letterSpacing=0,t.border=0,t.background="none",t.marginTop="16px",i.addEventListener("click",M),i};var Ee=("undefined"!=typeof window?window:void 0!==M||"undefined"!=typeof self&&self,function(e,M){return M={exports:{}},e(M,M.exports),M.exports}(function(e,M){!function(M,i){e.exports=i()}(0,function(){return function(e){function M(t){if(i[t])return i[t].exports;var A=i[t]={i:t,l:!1,exports:{}};return e[t].call(A.exports,A,A.exports,M),A.l=!0,A.exports}var i={};return M.m=e,M.c=i,M.d=function(e,i,t){M.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:t})},M.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return M.d(i,"a",i),i},M.o=function(e,M){return Object.prototype.hasOwnProperty.call(e,M)},M.p="",M(M.s=0)}([function(e,M,i){function t(e,M){if(!(e instanceof M))throw new TypeError("Cannot call a class as a function")}var A=function(){function e(e,M){for(var i=0;i<M.length;i++){var t=M[i];t.enumerable=t.enumerable||!1,t.configurable=!0,"value"in t&&(t.writable=!0),Object.defineProperty(e,t.key,t)}}return function(M,i,t){return i&&e(M.prototype,i),t&&e(M,t),M}}(),s=i(1),r="undefined"!=typeof navigator&&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,N=function(){function e(){t(this,e),r?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",s),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return A(e,[{key:"enable",value:function(){r?(this.disable(),this.noSleepTimer=window.setInterval(function(){window.location.href="/",window.setTimeout(window.stop,0)},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){r?this.noSleepTimer&&(window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),e}();e.exports=N},function(e,M,i){e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGFLine truncated
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{}],47:[function(_dereq_,module,exports){
function idxOf(e,n,r,t){var i=e.indexOf(n,r);return-1===i||i>t?t:i}function isWhitespace(e){return whitespace.test(e)}function pre(e,n,r,t,i){for(var a=[],o=r,s=r;s<t&&s<n.length;s++){var h=n.charAt(s),u=newline.test(h);if(u||s===t-1){var f=u?s:s+1,p=e(n,o,f,i);a.push(p),o=s+1}}return a}function greedy(e,n,r,t,i,a){var o=[],s=i;for("nowrap"===a&&(s=Number.MAX_VALUE);r<t&&r<n.length;){for(var h=idxOf(n,newlineChar,r,t);r<h&&isWhitespace(n.charAt(r));)r++;var u=e(n,r,h,s),f=r+(u.end-u.start),p=f+newlineChar.length;if(f<h){for(;f>r&&!isWhitespace(n.charAt(f));)f--;if(f===r)p>r+newlineChar.length&&p--,f=p;else for(p=f;f>r&&isWhitespace(n.charAt(f-newlineChar.length));)f--}if(f>=r){var c=e(n,r,f,s);o.push(c)}r=p}return o}function monospace(e,n,r,t){return{start:n,end:n+Math.min(t,r-n)}}var newline=/\n/,newlineChar="\n",whitespace=/\s/;module.exports=function(e,n){return module.exports.lines(e,n).map(function(n){return e.substring(n.start,n.end)}).join("\n")},module.exports.lines=function(e,n){if(n=n||{},0===n.width&&"nowrap"!==n.mode)return[];e=e||"";var r="number"==typeof n.width?n.width:Number.MAX_VALUE,t=Math.max(0,n.start||0),i="number"==typeof n.end?n.end:e.length,a=n.mode,o=n.measure||monospace;return"pre"===a?pre(o,e,t,i,r):greedy(o,e,t,i,r,a)};
},{}],48:[function(_dereq_,module,exports){
"use strict";function forEachArray(e,t){for(var r=0;r<e.length;r++)t(e[r])}function isEmpty(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function initParams(e,t,r){var n=e;return isFunction(t)?(r=t,"string"==typeof e&&(n={uri:e})):n=xtend(t,{uri:e}),n.callback=r,n}function createXHR(e,t,r){return t=initParams(e,t,r),_createXHR(t)}function _createXHR(e){function t(){4===i.readyState&&setTimeout(o,0)}function r(){var e=void 0;if(e=i.response?i.response:i.responseText||getXml(i),X)try{e=JSON.parse(e)}catch(e){}return e}function n(e){return clearTimeout(d),e instanceof Error||(e=new Error(""+(e||"Unknown XMLHttpRequest Error"))),e.statusCode=0,a(e,h)}function o(){if(!c){var t;clearTimeout(d),t=e.useXDR&&void 0===i.status?200:1223===i.status?204:i.status;var n=h,o=null;return 0!==t?(n={body:r(),statusCode:t,method:l,headers:{},url:p,rawRequest:i},i.getAllResponseHeaders&&(n.headers=parseHeaders(i.getAllResponseHeaders()))):o=new Error("Internal XMLHttpRequest Error"),a(o,n,n.body)}}if(void 0===e.callback)throw new Error("callback argument missing");var s=!1,a=function(t,r,n){s||(s=!0,e.callback(t,r,n))},i=e.xhr||null;i||(i=e.cors||e.useXDR?new createXHR.XDomainRequest:new createXHR.XMLHttpRequest);var u,c,d,p=i.url=e.uri||e.url,l=i.method=e.method||"GET",f=e.body||e.data,m=i.headers=e.headers||{},R=!!e.sync,X=!1,h={body:void 0,headers:{},statusCode:0,method:l,url:p,rawRequest:i};if("json"in e&&!1!==e.json&&(X=!0,m.accept||m.Accept||(m.Accept="application/json"),"GET"!==l&&"HEAD"!==l&&(m["content-type"]||m["Content-Type"]||(m["Content-Type"]="application/json"),f=JSON.stringify(!0===e.json?f:e.json))),i.onreadystatechange=t,i.onload=o,i.onerror=n,i.onprogress=function(){},i.onabort=function(){c=!0},i.ontimeout=n,i.open(l,p,!R,e.username,e.password),R||(i.withCredentials=!!e.withCredentials),!R&&e.timeout>0&&(d=setTimeout(function(){if(!c){c=!0,i.abort("timeout");var e=new Error("XMLHttpRequest timeout");e.code="ETIMEDOUT",n(e)}},e.timeout)),i.setRequestHeader)for(u in m)m.hasOwnProperty(u)&&i.setRequestHeader(u,m[u]);else if(e.headers&&!isEmpty(e.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in e&&(i.responseType=e.responseType),"beforeSend"in e&&"function"==typeof e.beforeSend&&e.beforeSend(i),i.send(f||null),i}function getXml(e){try{if("document"===e.responseType)return e.responseXML;var t=e.responseXML&&"parsererror"===e.responseXML.documentElement.nodeName;if(""===e.responseType&&!t)return e.responseXML}catch(e){}return null}function noop(){}var window=_dereq_("global/window"),isFunction=_dereq_("is-function"),parseHeaders=_dereq_("parse-headers"),xtend=_dereq_("xtend");module.exports=createXHR,createXHR.XMLHttpRequest=window.XMLHttpRequest||noop,createXHR.XDomainRequest="withCredentials"in new createXHR.XMLHttpRequest?createXHR.XMLHttpRequest:window.XDomainRequest,forEachArray(["get","put","post","patch","head","delete"],function(e){createXHR["delete"===e?"del":e]=function(t,r,n){return r=initParams(t,r,n),r.method=e.toUpperCase(),_createXHR(r)}});
},{"global/window":17,"is-function":21,"parse-headers":31,"xtend":50}],49:[function(_dereq_,module,exports){
module.exports=function(){return void 0!==self.DOMParser?function(e){return(new self.DOMParser).parseFromString(e,"application/xml")}:void 0!==self.ActiveXObject&&new self.ActiveXObject("Microsoft.XMLDOM")?function(e){var n=new self.ActiveXObject("Microsoft.XMLDOM");return n.async="false",n.loadXML(e),n}:function(e){var n=document.createElement("div");return n.innerHTML=e,n}}();
},{}],50:[function(_dereq_,module,exports){
function extend(){for(var r={},e=0;e<arguments.length;e++){var t=arguments[e];for(var n in t)hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty;
},{}],51:[function(_dereq_,module,exports){
module.exports={"name":"aframe","version":"0.8.2","description":"A web framework for building virtual reality experiences.","homepage":"https://aframe.io/","main":"dist/aframe-master.js","scripts":{"browserify":"browserify src/index.js -s 'AFRAME' -p browserify-derequire","build":"shx mkdir -p build/ && npm run browserify -- --debug -t [envify --INSPECTOR_VERSION dev] -o build/aframe.js","codecov":"codecov","dev":"npm run build && cross-env INSPECTOR_VERSION=dev node ./scripts/budo -t envify","dist":"node scripts/updateVersionLog.js && npm run dist:min && npm run dist:max","dist:max":"npm run browserify -s -- --debug | exorcist dist/aframe-v0.8.2.js.map > dist/aframe-v0.8.2.js","dist:min":"npm run browserify -s -- --debug -p [minifyify --map aframe-v0.8.2.min.js.map --output dist/aframe-v0.8.2.min.js.map] -o dist/aframe-v0.8.2.min.js","docs":"markserv --dir docs --port 9001","preghpages":"node ./scripts/preghpages.js","ghpages":"ghpages -p gh-pages/","lint":"semistandard -v | snazzy","lint:fix":"semistandard --fix","precommit":"npm run lint","prepush":"node scripts/testOnlyCheck.js","prerelease":"node scripts/release.js 0.7.1 0.8.0","start":"npm run dev","test":"karma start ./tests/karma.conf.js","test:docs":"node scripts/docsLint.js","test:firefox":"npm test -- --browsers Firefox","test:chrome":"npm test -- --browsers Chrome","test:node":"mocha --ui tdd tests/node"},"repository":"aframevr/aframe","license":"MIT","dependencies":{"@tweenjs/tween.js":"^16.8.0","browserify-css":"^0.8.2","debug":"ngokevin/debug#noTimestamp","deep-assign":"^2.0.0","document-register-element":"dmarcos/document-register-element#8ccc532b7","envify":"^3.4.1","load-bmfont":"^1.2.3","object-assign":"^4.0.1","present":"0.0.6","promise-polyfill":"^3.1.0","style-attr":"^1.0.2","three":"github:supermedium/three.js#r90fixMTLLoader","three-bmfont-text":"^2.1.0","webvr-polyfill":"^0.10.5"},"devDependencies":{"browserify":"^13.1.0","browserify-derequire":"^0.9.4","browserify-istanbul":"^2.0.0","budo":"^9.2.0","chai":"^3.5.0","chai-shallow-deep-equal":"^1.4.0","chalk":"^1.1.3","codecov":"^1.0.1","cross-env":"^5.0.1","exorcist":"^0.4.0","ghpages":"0.0.8","git-rev":"^0.2.1","glob":"^7.1.1","husky":"^0.11.7","istanbul":"^0.4.5","jsdom":"^9.11.0","karma":"1.4.1","karma-browserify":"^5.1.0","karma-chai-shallow-deep-equal":"0.0.4","karma-chrome-launcher":"^2.0.0","karma-coverage":"^1.1.1","karma-env-preprocessor":"^0.1.1","karma-firefox-launcher":"^1.0.0","karma-mocha":"^1.1.1","karma-mocha-reporter":"^2.1.0","karma-sinon-chai":"1.2.4","lolex":"^1.5.1","markserv":"github:sukima/markserv#feature/fix-broken-websoketio-link","minifyify":"^7.3.3","mocha":"^3.0.2","mozilla-download":"^1.1.1","replace-in-file":"^2.5.3","semistandard":"^9.0.0","shelljs":"^0.7.7","shx":"^0.2.2","sinon":"^1.17.5","sinon-chai":"2.8.0","snazzy":"^5.0.0","too-wordy":"ngokevin/too-wordy","uglifyjs":"^2.4.10","write-good":"^0.9.1"},"link":true,"browserify":{"transform":["browserify-css","envify"]},"semistandard":{"ignore":["build/**","dist/**","examples/**/shaders/*.js","**/vendor/**"]},"keywords":["3d","aframe","cardboard","components","oculus","three","three.js","rift","vive","vr","web-components","webvr"],"browserify-css":{"minify":true},"engines":{"node":">= 4.6.0","npm":"^2.15.9"}}
},{}],52:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three");module.exports.Component=registerComponent("camera",{schema:{active:{default:!0},far:{default:1e4},fov:{default:80,min:0},near:{default:.005,min:0},spectator:{default:!1},zoom:{default:1,min:0}},init:function(){var e,t=this.el;e=this.camera=new THREE.PerspectiveCamera,t.setObject3D("camera",e)},update:function(e){var t=this.data,a=this.camera;a.aspect=t.aspect||window.innerWidth/window.innerHeight,a.far=t.far,a.fov=t.fov,a.near=t.near,a.zoom=t.zoom,a.updateProjectionMatrix(),this.updateActiveCamera(e),this.updateSpectatorCamera(e)},updateActiveCamera:function(e){var t=this.data,a=this.el,r=this.system;e&&e.active===t.active||t.spectator||(t.active&&r.activeCameraEl!==a?r.setActiveCamera(a):t.active||r.activeCameraEl!==a||r.disableActiveCamera())},updateSpectatorCamera:function(e){var t=this.data,a=this.el,r=this.system;e&&e.spectator===t.spectator||(t.spectator&&r.spectatorCameraEl!==a?r.setSpectatorCamera(a):t.spectator||r.spectatorCameraEl!==a||r.disableSpectatorCamera())},remove:function(){this.el.removeObject3D("camera")}});
},{"../core/component":102,"../lib/three":150}],53:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three");module.exports.Component=registerComponent("collada-model",{schema:{type:"asset"},init:function(){this.model=null,this.loader=new THREE.ColladaLoader,this.loader.options.convertUpAxis=!0},update:function(){var e=this,o=this.el,t=this.data;t&&(this.remove(),this.loader.load(t,function(t){e.model=t.scene,o.setObject3D("mesh",e.model),o.emit("model-loaded",{format:"collada",model:e.model})}))},remove:function(){this.model&&this.el.removeObject3D("mesh")}});
},{"../core/component":102,"../lib/three":150}],54:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,utils=_dereq_("../utils/"),bind=utils.bind,EVENTS={CLICK:"click",FUSING:"fusing",MOUSEENTER:"mouseenter",MOUSEDOWN:"mousedown",MOUSELEAVE:"mouseleave",MOUSEUP:"mouseup"},STATES={FUSING:"cursor-fusing",HOVERING:"cursor-hovering",HOVERED:"cursor-hovered"},CANVAS_EVENTS={DOWN:["mousedown","touchstart"],UP:["mouseup","touchend"]};module.exports.Component=registerComponent("cursor",{dependencies:["raycaster"],schema:{downEvents:{default:[]},fuse:{default:utils.device.isMobile()},fuseTimeout:{default:1500,min:0},upEvents:{default:[]},rayOrigin:{default:"entity",oneOf:["mouse","entity"]}},init:function(){var e=this;this.fuseTimeout=void 0,this.cursorDownEl=null,this.intersectedEl=null,this.canvasBounds=document.body.getBoundingClientRect(),this.updateCanvasBounds=utils.debounce(function(){e.canvasBounds=e.el.sceneEl.canvas.getBoundingClientRect()},1e3),this.eventDetail={},this.intersectedEventDetail={cursorEl:this.el},this.onCursorDown=bind(this.onCursorDown,this),this.onCursorUp=bind(this.onCursorUp,this),this.onIntersection=bind(this.onIntersection,this),this.onIntersectionCleared=bind(this.onIntersectionCleared,this),this.onMouseMove=bind(this.onMouseMove,this)},update:function(e){this.data.rayOrigin!==e.rayOrigin&&this.updateMouseEventListeners()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},remove:function(){var e=this.el;e.removeState(STATES.HOVERING),e.removeState(STATES.FUSING),clearTimeout(this.fuseTimeout),this.intersectedEl&&this.intersectedEl.removeState(STATES.HOVERED),this.removeEventListeners()},addEventListeners:function(){function e(){t=s.sceneEl.canvas,n.downEvents.length||n.upEvents.length||(CANVAS_EVENTS.DOWN.forEach(function(e){t.addEventListener(e,i.onCursorDown)}),CANVAS_EVENTS.UP.forEach(function(e){t.addEventListener(e,i.onCursorUp)}))}var t,n=this.data,s=this.el,i=this;t=s.sceneEl.canvas,t?e():s.sceneEl.addEventListener("render-target-loaded",e),n.downEvents.forEach(function(e){s.addEventListener(e,i.onCursorDown)}),n.upEvents.forEach(function(e){s.addEventListener(e,i.onCursorUp)}),s.addEventListener("raycaster-intersection",this.onIntersection),s.addEventListener("raycaster-intersection-cleared",this.onIntersectionCleared),window.addEventListener("resize",this.updateCanvasBounds)},removeEventListeners:function(){var e,t=this.data,n=this.el,s=this;e=n.sceneEl.canvas,!e||t.downEvents.length||t.upEvents.length||(CANVAS_EVENTS.DOWN.forEach(function(t){e.removeEventListener(t,s.onCursorDown)}),CANVAS_EVENTS.UP.forEach(function(t){e.removeEventListener(t,s.onCursorUp)})),t.downEvents.forEach(function(e){n.removeEventListener(e,s.onCursorDown)}),t.upEvents.forEach(function(e){n.removeEventListener(e,s.onCursorUp)}),n.removeEventListener("raycaster-intersection",this.onIntersection),n.removeEventListener("raycaster-intersection-cleared",this.onIntersectionCleared),e.removeEventListener("mousemove",this.onMouseMove),e.removeEventListener("touchstart",this.onMouseMove),e.removeEventListener("touchmove",this.onMouseMove),e.removeEventListener("resize",this.updateCanvasBounds)},updateMouseEventListeners:function(){var e,t=this.el;e=t.sceneEl.canvas,e.removeEventListener("mousemove",this.onMouseMove),e.removeEventListener("touchmove",this.onMouseMove),t.setAttribute("raycaster","useWorldCoordinates",!1),"mouse"===this.data.rayOrigin&&(e.addEventListener("mousemove",this.onMouseMove,!1),e.addEventListener("touchmove",this.onMouseMove,!1),t.setAttribute("raycaster","useWorldCoordinates",!0),this.updateCanvasBounds())},onMouseMove:function(){var e=new THREE.Vector3,t=new THREE.Vector2,n=new THREE.Vector3,s={origin:n,direction:e};return function(i){var o,r,a,c=this.canvasBounds,u=this.el.sceneEl.camera;u.parent.updateMatrixWorld(),r="touchmove"===i.type||"touchstart"===i.type?i.touches.item(0):i,o=r.clientX-c.left,a=r.clientY-c.top,t.x=o/c.width*2-1,t.y=-a/c.height*2+1,n.setFromMatrixPosition(u.matrixWorld),e.set(t.x,t.y,.5).unproject(u).sub(n).normalize(),this.el.setAttribute("raycaster",s),"touchmove"===i.type&&i.preventDefault()}}(),onCursorDown:function(e){"mouse"===this.data.rayOrigin&&"touchstart"===e.type&&(this.onMouseMove(e),this.el.components.raycaster.checkIntersections(),e.preventDefault()),this.twoWayEmit(EVENTS.MOUSEDOWN),this.cursorDownEl=this.intersectedEl},onCursorUp:function(e){this.twoWayEmit(EVENTS.MOUSEUP),this.cursorDownEl&&this.cursorDownEl!==this.intersectedEl&&(this.intersectedEventDetail.intersection=null,this.cursorDownEl.emit(EVENTS.MOUSEUP,this.intersectedEventDetail)),!this.data.fuse&&this.intersectedEl&&this.cursorDownEl===this.intersectedEl&&this.twoWayEmit(EVENTS.CLICK),this.cursorDownEl=null,"touchend"===e.type&&e.preventDefault()},onIntersection:function(e){var t,n,s,i,o=this.el;n=e.detail.els[0]===o?1:0,i=e.detail.intersections[n],(s=e.detail.els[n])&&this.intersectedEl!==s&&(this.intersectedEl&&(t=this.el.components.raycaster.getIntersection(this.intersectLine truncated
},{"../core/component":102,"../utils/":172}],55:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,bind=_dereq_("../utils/bind"),checkControllerPresentAndSetup=_dereq_("../utils/tracked-controls").checkControllerPresentAndSetup,trackedControlsUtils=_dereq_("../utils/tracked-controls"),emitIfAxesChanged=trackedControlsUtils.emitIfAxesChanged,onButtonEvent=trackedControlsUtils.onButtonEvent,DAYDREAM_CONTROLLER_MODEL_BASE_URL="https://cdn.aframe.io/controllers/google/",DAYDREAM_CONTROLLER_MODEL_OBJ_URL=DAYDREAM_CONTROLLER_MODEL_BASE_URL+"vr_controller_daydream.obj",DAYDREAM_CONTROLLER_MODEL_OBJ_MTL=DAYDREAM_CONTROLLER_MODEL_BASE_URL+"vr_controller_daydream.mtl",GAMEPAD_ID_PREFIX="Daydream Controller";module.exports.Component=registerComponent("daydream-controls",{schema:{hand:{default:""},buttonColor:{type:"color",default:"#000000"},buttonTouchedColor:{type:"color",default:"#777777"},buttonHighlightColor:{type:"color",default:"#FFFFFF"},model:{default:!0},orientationOffset:{type:"vec3"},armModel:{default:!0}},mapping:{axes:{trackpad:[0,1]},buttons:["trackpad","menu","system"]},bindMethods:function(){this.onModelLoaded=bind(this.onModelLoaded,this),this.onControllersUpdate=bind(this.onControllersUpdate,this),this.checkIfControllerPresent=bind(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=bind(this.removeControllersUpdateListener,this),this.onAxisMoved=bind(this.onAxisMoved,this)},init:function(){var t=this;this.animationActive="pointing",this.onButtonChanged=bind(this.onButtonChanged,this),this.onButtonDown=function(e){onButtonEvent(e.detail.id,"down",t)},this.onButtonUp=function(e){onButtonEvent(e.detail.id,"up",t)},this.onButtonTouchStart=function(e){onButtonEvent(e.detail.id,"touchstart",t)},this.onButtonTouchEnd=function(e){onButtonEvent(e.detail.id,"touchend",t)},this.onAxisMoved=bind(this.onAxisMoved,this),this.controllerPresent=!1,this.lastControllerCheck=0,this.bindMethods(),this.checkControllerPresentAndSetup=checkControllerPresentAndSetup,this.emitIfAxesChanged=emitIfAxesChanged},addEventListeners:function(){var t=this.el;t.addEventListener("buttonchanged",this.onButtonChanged),t.addEventListener("buttondown",this.onButtonDown),t.addEventListener("buttonup",this.onButtonUp),t.addEventListener("touchstart",this.onButtonTouchStart),t.addEventListener("touchend",this.onButtonTouchEnd),t.addEventListener("model-loaded",this.onModelLoaded),t.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var t=this.el;t.removeEventListener("buttonchanged",this.onButtonChanged),t.removeEventListener("buttondown",this.onButtonDown),t.removeEventListener("buttonup",this.onButtonUp),t.removeEventListener("touchstart",this.onButtonTouchStart),t.removeEventListener("touchend",this.onButtonTouchEnd),t.removeEventListener("model-loaded",this.onModelLoaded),t.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){this.checkControllerPresentAndSetup(this,GAMEPAD_ID_PREFIX,{hand:this.data.hand})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var t=this.el,e=this.data;t.setAttribute("tracked-controls",{armModel:e.armModel,hand:e.hand,idPrefix:GAMEPAD_ID_PREFIX,orientationOffset:e.orientationOffset}),this.data.model&&this.el.setAttribute("obj-model",{obj:DAYDREAM_CONTROLLER_MODEL_OBJ_URL,mtl:DAYDREAM_CONTROLLER_MODEL_OBJ_MTL})},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelLoaded:function(t){var e,o=t.detail.model;this.data.model&&(e=this.buttonMeshes={},e.menu=o.getObjectByName("AppButton_AppButton_Cylinder.004"),e.system=o.getObjectByName("HomeButton_HomeButton_Cylinder.005"),e.trackpad=o.getObjectByName("TouchPad_TouchPad_Cylinder.003"),o.position.set(0,0,-.04))},onAxisMoved:function(t){this.emitIfAxesChanged(this,this.mapping.axes,t)},onButtonChanged:function(t){var e=this.mapping.buttons[t.detail.id];e&&this.el.emit(e+"changed",t.detail.state)},updateModel:function(t,e){this.data.model&&this.updateButtonModel(t,e)},updateButtonModel:function(t,e){var o=this.buttonMeshes;if(o&&o[t]){var n;switch(e){case"down":n=this.data.buttonHighlightColor;break;case"touchstart":n=this.data.buttonTouchedColor;break;default:n=this.data.buttonColor}o[t].material.color.set(n)}}});
},{"../core/component":102,"../utils/bind":166,"../utils/tracked-controls":178}],56:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,bind=_dereq_("../utils/bind"),trackedControlsUtils=_dereq_("../utils/tracked-controls"),checkControllerPresentAndSetup=trackedControlsUtils.checkControllerPresentAndSetup,emitIfAxesChanged=trackedControlsUtils.emitIfAxesChanged,onButtonEvent=trackedControlsUtils.onButtonEvent,GEARVR_CONTROLLER_MODEL_BASE_URL="https://cdn.aframe.io/controllers/samsung/",GEARVR_CONTROLLER_MODEL_OBJ_URL=GEARVR_CONTROLLER_MODEL_BASE_URL+"gear_vr_controller.obj",GEARVR_CONTROLLER_MODEL_OBJ_MTL=GEARVR_CONTROLLER_MODEL_BASE_URL+"gear_vr_controller.mtl",GAMEPAD_ID_PREFIX="Gear VR|GearVR|Oculus Go";module.exports.Component=registerComponent("gearvr-controls",{schema:{hand:{default:""},buttonColor:{type:"color",default:"#000000"},buttonTouchedColor:{type:"color",default:"#777777"},buttonHighlightColor:{type:"color",default:"#FFFFFF"},model:{default:!0},orientationOffset:{type:"vec3"},armModel:{default:!0}},mapping:{axes:{trackpad:[0,1]},buttons:["trackpad","trigger"]},bindMethods:function(){this.onModelLoaded=bind(this.onModelLoaded,this),this.onControllersUpdate=bind(this.onControllersUpdate,this),this.checkIfControllerPresent=bind(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=bind(this.removeControllersUpdateListener,this),this.onAxisMoved=bind(this.onAxisMoved,this)},init:function(){var t=this;this.animationActive="pointing",this.onButtonChanged=bind(this.onButtonChanged,this),this.onButtonDown=function(e){onButtonEvent(e.detail.id,"down",t)},this.onButtonUp=function(e){onButtonEvent(e.detail.id,"up",t)},this.onButtonTouchStart=function(e){onButtonEvent(e.detail.id,"touchstart",t)},this.onButtonTouchEnd=function(e){onButtonEvent(e.detail.id,"touchend",t)},this.onAxisMoved=bind(this.onAxisMoved,this),this.controllerPresent=!1,this.lastControllerCheck=0,this.bindMethods(),this.checkControllerPresentAndSetup=checkControllerPresentAndSetup,this.emitIfAxesChanged=emitIfAxesChanged},addEventListeners:function(){var t=this.el;t.addEventListener("buttonchanged",this.onButtonChanged),t.addEventListener("buttondown",this.onButtonDown),t.addEventListener("buttonup",this.onButtonUp),t.addEventListener("touchstart",this.onButtonTouchStart),t.addEventListener("touchend",this.onButtonTouchEnd),t.addEventListener("model-loaded",this.onModelLoaded),t.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0,this.addControllersUpdateListener()},removeEventListeners:function(){var t=this.el;t.removeEventListener("buttonchanged",this.onButtonChanged),t.removeEventListener("buttondown",this.onButtonDown),t.removeEventListener("buttonup",this.onButtonUp),t.removeEventListener("touchstart",this.onButtonTouchStart),t.removeEventListener("touchend",this.onButtonTouchEnd),t.removeEventListener("model-loaded",this.onModelLoaded),t.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1,this.removeControllersUpdateListener()},checkIfControllerPresent:function(){this.checkControllerPresentAndSetup(this,GAMEPAD_ID_PREFIX,this.data.hand?{hand:this.data.hand}:{})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},injectTrackedControls:function(){var t=this.el,e=this.data;t.setAttribute("tracked-controls",{armModel:e.armModel,idPrefix:GAMEPAD_ID_PREFIX,orientationOffset:e.orientationOffset}),this.data.model&&this.el.setAttribute("obj-model",{obj:GEARVR_CONTROLLER_MODEL_OBJ_URL,mtl:GEARVR_CONTROLLER_MODEL_OBJ_MTL})},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelLoaded:function(t){var e,n=t.detail.model;this.data.model&&(e=this.buttonMeshes={},e.trigger=n.children[2],e.trackpad=n.children[1])},onButtonChanged:function(t){var e=this.mapping.buttons[t.detail.id];e&&this.el.emit(e+"changed",t.detail.state)},onAxisMoved:function(t){this.emitIfAxesChanged(this,this.mapping.axes,t)},updateModel:function(t,e){this.data.model&&this.updateButtonModel(t,e)},updateButtonModel:function(t,e){var n=this.buttonMeshes;if(n&&n[t]){var o;switch(e){case"down":o=this.data.buttonHighlightColor;break;case"touchstart":o=this.data.buttonTouchedColor;break;default:o=this.data.buttonColor}n[t].material.color.set(o)}}});
},{"../core/component":102,"../utils/bind":166,"../utils/tracked-controls":178}],57:[function(_dereq_,module,exports){
var geometries=_dereq_("../core/geometry").geometries,geometryNames=_dereq_("../core/geometry").geometryNames,registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),dummyGeometry=new THREE.Geometry;module.exports.Component=registerComponent("geometry",{schema:{buffer:{default:!0},primitive:{default:"box",oneOf:geometryNames},skipCache:{default:!1}},init:function(){this.geometry=null},update:function(e){var t,r=this.data,m=this.el,o=this.system;this.geometry&&(o.unuseGeometry(e),this.geometry=null),this.geometry=o.getOrCreateGeometry(r),t=m.getObject3D("mesh"),t?t.geometry=this.geometry:(t=new THREE.Mesh,t.geometry=this.geometry,m.setObject3D("mesh",t))},remove:function(){this.system.unuseGeometry(this.data),this.el.getObject3D("mesh").geometry=dummyGeometry,this.geometry=null},updateSchema:function(e){var t=e.primitive,r=this.data&&this.data.primitive,m=geometries[t]&&geometries[t].schema;if(!m)throw new Error("Unknown geometry schema `"+t+"`");r&&r===t||this.extendSchema(m)}});
},{"../core/component":102,"../core/geometry":103,"../lib/three":150}],58:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),warn=utils.debug("components:gltf-model:warn");module.exports.Component=registerComponent("gltf-model",{schema:{type:"model"},init:function(){this.model=null,this.loader=new THREE.GLTFLoader},update:function(){var e=this,o=this.el,t=this.data;t&&(this.remove(),this.loader.load(t,function(t){e.model=t.scene||t.scenes[0],e.model.animations=t.animations,o.setObject3D("mesh",e.model),o.emit("model-loaded",{format:"gltf",model:e.model})},void 0,function(e){var i=e&&e.message?e.message:"Failed to load glTF model";warn(i),o.emit("model-error",{format:"gltf",src:t})}))},remove:function(){this.model&&this.el.removeObject3D("mesh")}});
},{"../core/component":102,"../lib/three":150,"../utils/":172}],59:[function(_dereq_,module,exports){
function getGestureEventName(t,e){var n;if(t)return n=EVENTS[t],"grip"===n?n+(e?"close":"open"):"point"===n||"thumb"===n?n+(e?"up":"down"):"pointing"===n||"pistol"===n?n+(e?"start":"end"):void 0}function isViveController(t){var e=t&&t.controller&&t.controller.id;return e&&0===e.indexOf("OpenVR ")}var registerComponent=_dereq_("../core/component").registerComponent,MODEL_URLS={left:"https://cdn.aframe.io/controllers/oculus-hands/v2/leftHand.json",right:"https://cdn.aframe.io/controllers/oculus-hands/v2/rightHand.json"},ANIMATIONS={open:"Open",point:"Point",pointThumb:"Point + Thumb",fist:"Fist",hold:"Hold",thumbUp:"Thumb Up"},EVENTS={};EVENTS[ANIMATIONS.fist]="grip",EVENTS[ANIMATIONS.thumbUp]="pistol",EVENTS[ANIMATIONS.point]="pointing",EVENTS[ANIMATIONS.thumb]="thumb",module.exports.Component=registerComponent("hand-controls",{schema:{default:"left"},init:function(){var t=this,e=this.el;this.gesture=ANIMATIONS.open,this.pressedButtons={},this.touchedButtons={},this.loader=new THREE.ObjectLoader,this.loader.setCrossOrigin("anonymous"),this.onGripDown=function(){t.handleButton("grip","down")},this.onGripUp=function(){t.handleButton("grip","up")},this.onTrackpadDown=function(){t.handleButton("trackpad","down")},this.onTrackpadUp=function(){t.handleButton("trackpad","up")},this.onTrackpadTouchStart=function(){t.handleButton("trackpad","touchstart")},this.onTrackpadTouchEnd=function(){t.handleButton("trackpad","touchend")},this.onTriggerDown=function(){t.handleButton("trigger","down")},this.onTriggerUp=function(){t.handleButton("trigger","up")},this.onTriggerTouchStart=function(){t.handleButton("trigger","touchstart")},this.onTriggerTouchEnd=function(){t.handleButton("trigger","touchend")},this.onGripTouchStart=function(){t.handleButton("grip","touchstart")},this.onGripTouchEnd=function(){t.handleButton("grip","touchend")},this.onThumbstickDown=function(){t.handleButton("thumbstick","down")},this.onThumbstickUp=function(){t.handleButton("thumbstick","up")},this.onAorXTouchStart=function(){t.handleButton("AorX","touchstart")},this.onAorXTouchEnd=function(){t.handleButton("AorX","touchend")},this.onBorYTouchStart=function(){t.handleButton("BorY","touchstart")},this.onBorYTouchEnd=function(){t.handleButton("BorY","touchend")},this.onSurfaceTouchStart=function(){t.handleButton("surface","touchstart")},this.onSurfaceTouchEnd=function(){t.handleButton("surface","touchend")},this.onControllerConnected=function(){t.setModelVisibility(!0)},this.onControllerDisconnected=function(){t.setModelVisibility(!1)},e.addEventListener("controllerconnected",this.onControllerConnected),e.addEventListener("controllerdisconnected",this.onControllerDisconnected)},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},tick:function(t,e){var n=this.el.getObject3D("mesh");n&&n.mixer&&n.mixer.update(e/1e3)},addEventListeners:function(){var t=this.el;t.addEventListener("gripdown",this.onGripDown),t.addEventListener("gripup",this.onGripUp),t.addEventListener("trackpaddown",this.onTrackpadDown),t.addEventListener("trackpadup",this.onTrackpadUp),t.addEventListener("trackpadtouchstart",this.onTrackpadTouchStart),t.addEventListener("trackpadtouchend",this.onTrackpadTouchEnd),t.addEventListener("triggerdown",this.onTriggerDown),t.addEventListener("triggerup",this.onTriggerUp),t.addEventListener("triggertouchstart",this.onTriggerTouchStart),t.addEventListener("triggertouchend",this.onTriggerTouchEnd),t.addEventListener("griptouchstart",this.onGripTouchStart),t.addEventListener("griptouchend",this.onGripTouchEnd),t.addEventListener("thumbstickdown",this.onThumbstickDown),t.addEventListener("thumbstickup",this.onThumbstickUp),t.addEventListener("abuttontouchstart",this.onAorXTouchStart),t.addEventListener("abuttontouchend",this.onAorXTouchEnd),t.addEventListener("bbuttontouchstart",this.onBorYTouchStart),t.addEventListener("bbuttontouchend",this.onBorYTouchEnd),t.addEventListener("xbuttontouchstart",this.onAorXTouchStart),t.addEventListener("xbuttontouchend",this.onAorXTouchEnd),t.addEventListener("ybuttontouchstart",this.onBorYTouchStart),t.addEventListener("ybuttontouchend",this.onBorYTouchEnd),t.addEventListener("surfacetouchstart",this.onSurfaceTouchStart),t.addEventListener("surfacetouchend",this.onSurfaceTouchEnd)},removeEventListeners:function(){var t=this.el;t.removeEventListener("gripdown",this.onGripDown),t.removeEventListener("gripup",this.onGripUp),t.removeEventListener("trackpaddown",this.onTrackpadDown),t.removeEventListener("trackpadup",this.onTrackpadUp),t.removeEventListener("trackpadtouchstart",this.onTrackpadTouchStart),t.removeEventListener("trackpadtouchend",this.onTrackpadTouchEnd),t.removeEventListener("triggerdown",this.onTriggerDown),t.removeEventListener("triggerup",this.onTriggerUp),t.removeEventListener("triggertouchstart",this.onTriggerTouchStart),t.removeEventListener("triggertouchend",this.onTriggerTouchEnd),t.removeEventListener("griptouchstart",this.onGripTouchStart),t.removeEventListLine truncated
},{"../core/component":102}],60:[function(_dereq_,module,exports){
_dereq_("./camera"),_dereq_("./collada-model"),_dereq_("./cursor"),_dereq_("./daydream-controls"),_dereq_("./gearvr-controls"),_dereq_("./geometry"),_dereq_("./gltf-model"),_dereq_("./hand-controls"),_dereq_("./laser-controls"),_dereq_("./light"),_dereq_("./line"),_dereq_("./link"),_dereq_("./look-controls"),_dereq_("./material"),_dereq_("./obj-model"),_dereq_("./oculus-touch-controls"),_dereq_("./position"),_dereq_("./raycaster"),_dereq_("./rotation"),_dereq_("./scale"),_dereq_("./shadow"),_dereq_("./sound"),_dereq_("./text"),_dereq_("./tracked-controls"),_dereq_("./visible"),_dereq_("./vive-controls"),_dereq_("./wasd-controls"),_dereq_("./windows-motion-controls"),_dereq_("./scene/background"),_dereq_("./scene/debug"),_dereq_("./scene/embedded"),_dereq_("./scene/inspector"),_dereq_("./scene/fog"),_dereq_("./scene/keyboard-shortcuts"),_dereq_("./scene/pool"),_dereq_("./scene/renderer"),_dereq_("./scene/screenshot"),_dereq_("./scene/stats"),_dereq_("./scene/vr-mode-ui");
},{"./camera":52,"./collada-model":53,"./cursor":54,"./daydream-controls":55,"./gearvr-controls":56,"./geometry":57,"./gltf-model":58,"./hand-controls":59,"./laser-controls":61,"./light":62,"./line":63,"./link":64,"./look-controls":65,"./material":66,"./obj-model":67,"./oculus-touch-controls":68,"./position":69,"./raycaster":70,"./rotation":71,"./scale":72,"./scene/background":73,"./scene/debug":74,"./scene/embedded":75,"./scene/fog":76,"./scene/inspector":77,"./scene/keyboard-shortcuts":78,"./scene/pool":79,"./scene/renderer":80,"./scene/screenshot":81,"./scene/stats":82,"./scene/vr-mode-ui":83,"./shadow":84,"./sound":85,"./text":86,"./tracked-controls":87,"./visible":88,"./vive-controls":89,"./wasd-controls":90,"./windows-motion-controls":91}],61:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,utils=_dereq_("../utils/");registerComponent("laser-controls",{schema:{hand:{default:"right"}},init:function(){function t(t){var r=e[t.detail.name];if(r){var n=utils.extend({showLine:!0},r.raycaster||{});t.detail.rayOrigin&&(n.origin=t.detail.rayOrigin.origin,n.direction=t.detail.rayOrigin.direction,n.showLine=!0),t.detail.rayOrigin||!i.modelReady?o.setAttribute("raycaster",n):o.setAttribute("raycaster","showLine",!0),o.setAttribute("cursor",utils.extend({fuse:!1},r.cursor))}}function r(){o.setAttribute("raycaster","showLine",!1)}var e=this.config,n=this.data,o=this.el,i=this;o.setAttribute("daydream-controls",{hand:n.hand}),o.setAttribute("gearvr-controls",{hand:n.hand}),o.setAttribute("oculus-touch-controls",{hand:n.hand}),o.setAttribute("vive-controls",{hand:n.hand}),o.setAttribute("windows-motion-controls",{hand:n.hand}),o.addEventListener("controllerconnected",t),o.addEventListener("controllerdisconnected",r),o.addEventListener("controllermodelready",function(r){t(r),i.modelReady=!0})},config:{"daydream-controls":{cursor:{downEvents:["trackpaddown"],upEvents:["trackpadup"]}},"gearvr-controls":{cursor:{downEvents:["trackpaddown","triggerdown"],upEvents:["trackpadup","triggerup"]},raycaster:{origin:{x:0,y:5e-4,z:0}}},"oculus-touch-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]},raycaster:{origin:{x:0,y:0,z:0}}},"vive-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]}},"windows-motion-controls":{cursor:{downEvents:["triggerdown"],upEvents:["triggerup"]},raycaster:{showLine:!1}}}});
},{"../core/component":102,"../utils/":172}],62:[function(_dereq_,module,exports){
var bind=_dereq_("../utils/bind"),diff=_dereq_("../utils").diff,debug=_dereq_("../utils/debug"),registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad,warn=debug("components:light:warn");module.exports.Component=registerComponent("light",{schema:{angle:{default:60,if:{type:["spot"]}},color:{type:"color"},groundColor:{type:"color",if:{type:["hemisphere"]}},decay:{default:1,if:{type:["point","spot"]}},distance:{default:0,min:0,if:{type:["point","spot"]}},intensity:{default:1,min:0,if:{type:["ambient","directional","hemisphere","point","spot"]}},penumbra:{default:0,min:0,max:1,if:{type:["spot"]}},type:{default:"directional",oneOf:["ambient","directional","hemisphere","point","spot"]},target:{type:"selector",if:{type:["spot","directional"]}},castShadow:{default:!1,if:{type:["point","spot","directional"]}},shadowBias:{default:0,if:{castShadow:!0}},shadowCameraFar:{default:500,if:{castShadow:!0}},shadowCameraFov:{default:90,if:{castShadow:!0}},shadowCameraNear:{default:.5,if:{castShadow:!0}},shadowCameraTop:{default:5,if:{castShadow:!0}},shadowCameraRight:{default:5,if:{castShadow:!0}},shadowCameraBottom:{default:-5,if:{castShadow:!0}},shadowCameraLeft:{default:-5,if:{castShadow:!0}},shadowCameraVisible:{default:!1,if:{castShadow:!0}},shadowMapHeight:{default:512,if:{castShadow:!0}},shadowMapWidth:{default:512,if:{castShadow:!0}}},init:function(){var e=this.el;this.light=null,this.defaultTarget=null,this.system.registerLight(e)},update:function(e){var a=this.data,t=diff(a,e),o=this.light,i=this;if(o&&!("type"in t)){var r=!1;return void Object.keys(t).forEach(function(e){var t=a[e];switch(e){case"color":o.color.set(t);break;case"groundColor":o.groundColor.set(t);break;case"angle":o.angle=degToRad(t);break;case"target":null===t?"spot"!==a.type&&"directional"!==a.type||(o.target=i.defaultTarget):t.hasLoaded?i.onSetTarget(t,o):t.addEventListener("loaded",bind(i.onSetTarget,i,t,o));break;case"castShadow":case"shadowBias":case"shadowCameraFar":case"shadowCameraFov":case"shadowCameraNear":case"shadowCameraTop":case"shadowCameraRight":case"shadowCameraBottom":case"shadowCameraLeft":case"shadowCameraVisible":case"shadowMapHeight":case"shadowMapWidth":r||(i.updateShadow(),r=!0);break;default:o[e]=t}})}this.setLight(this.data),this.updateShadow()},setLight:function(e){var a=this.el,t=this.getLight(e);t&&(this.light&&a.removeObject3D("light"),this.light=t,this.light.el=a,a.setObject3D("light",this.light),"spot"!==e.type&&"directional"!==e.type&&"hemisphere"!==e.type||a.getObject3D("light").translateY(-1),"spot"===e.type&&(a.setObject3D("light-target",this.defaultTarget),a.getObject3D("light-target").position.set(0,0,-1)))},updateShadow:function(){var e=this.el,a=this.data,t=this.light;t.castShadow=a.castShadow;var o=e.getObject3D("cameraHelper");if(a.shadowCameraVisible&&!o?e.setObject3D("cameraHelper",new THREE.CameraHelper(t.shadow.camera)):!a.shadowCameraVisible&&o&&e.removeObject3D("cameraHelper"),!a.castShadow)return t;t.shadow.bias=a.shadowBias,t.shadow.mapSize.height=a.shadowMapHeight,t.shadow.mapSize.width=a.shadowMapWidth,t.shadow.camera.near=a.shadowCameraNear,t.shadow.camera.far=a.shadowCameraFar,t.shadow.camera instanceof THREE.OrthographicCamera?(t.shadow.camera.top=a.shadowCameraTop,t.shadow.camera.right=a.shadowCameraRight,t.shadow.camera.bottom=a.shadowCameraBottom,t.shadow.camera.left=a.shadowCameraLeft):t.shadow.camera.fov=a.shadowCameraFov,t.shadow.camera.updateProjectionMatrix(),o&&o.update()},getLight:function(e){var a=e.angle,t=new THREE.Color(e.color).getHex(),o=e.decay,i=e.distance,r=new THREE.Color(e.groundColor).getHex(),s=e.intensity,d=e.type,h=e.target,n=null;switch(d.toLowerCase()){case"ambient":return new THREE.AmbientLight(t,s);case"directional":return n=new THREE.DirectionalLight(t,s),this.defaultTarget=n.target,h&&(h.hasLoaded?this.onSetTarget(h,n):h.addEventListener("loaded",bind(this.onSetTarget,this,h,n))),n;case"hemisphere":return new THREE.HemisphereLight(t,r,s);case"point":return new THREE.PointLight(t,s,i,o);case"spot":return n=new THREE.SpotLight(t,s,i,degToRad(a),e.penumbra,o),this.defaultTarget=n.target,h&&(h.hasLoaded?this.onSetTarget(h,n):h.addEventListener("loaded",bind(this.onSetTarget,this,h,n))),n;default:warn("%s is not a valid light type. Choose from ambient, directional, hemisphere, point, spot.",d)}},onSetTarget:function(e,a){a.target=e.object3D},remove:function(){var e=this.el;e.removeObject3D("light"),e.getObject3D("cameraHelper")&&e.removeObject3D("cameraHelper")}});
},{"../core/component":102,"../lib/three":150,"../utils":172,"../utils/bind":166,"../utils/debug":168}],63:[function(_dereq_,module,exports){
function isEqualVec3(t,e){return!(!t||!e)&&(t.x===e.x&&t.y===e.y&&t.z===e.z)}var registerComponent=_dereq_("../core/component").registerComponent;module.exports.Component=registerComponent("line",{schema:{start:{type:"vec3",default:{x:0,y:0,z:0}},end:{type:"vec3",default:{x:0,y:0,z:0}},color:{type:"color",default:"#74BEC1"},opacity:{type:"number",default:1},visible:{default:!0}},multiple:!0,init:function(){var t,e,i=this.data;e=this.material=new THREE.LineBasicMaterial({color:i.color,opacity:i.opacity,transparent:i.opacity<1,visible:i.visible}),t=this.geometry=new THREE.BufferGeometry,t.addAttribute("position",new THREE.BufferAttribute(new Float32Array(6),3)),this.line=new THREE.Line(t,e),this.el.setObject3D(this.attrName,this.line)},update:function(t){var e=this.data,i=this.geometry,r=!1,a=this.material,o=i.attributes.position.array;isEqualVec3(e.start,t.start)||(o[0]=e.start.x,o[1]=e.start.y,o[2]=e.start.z,r=!0),isEqualVec3(e.end,t.end)||(o[3]=e.end.x,o[4]=e.end.y,o[5]=e.end.z,r=!0),r&&(i.attributes.position.needsUpdate=!0,i.computeBoundingSphere()),a.color.setStyle(e.color),a.opacity=e.opacity,a.transparent=e.opacity<1,a.visible=e.visible},remove:function(){this.el.removeObject3D("line",this.line)}});
},{"../core/component":102}],64:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,registerShader=_dereq_("../core/shader").registerShader,THREE=_dereq_("../lib/three");module.exports.Component=registerComponent("link",{schema:{backgroundColor:{default:"red",type:"color"},borderColor:{default:"white",type:"color"},highlighted:{default:!1},highlightedColor:{default:"#24CAFF",type:"color"},href:{default:""},image:{type:"asset"},on:{default:"click"},peekMode:{default:!1},title:{default:""},titleColor:{default:"white",type:"color"},visualAspectEnabled:{default:!0}},init:function(){this.navigate=this.navigate.bind(this),this.previousQuaternion=void 0,this.quaternionClone=new THREE.Quaternion,this.hiddenEls=[],this.initVisualAspect()},update:function(e){var t,i,r=this.data,o=this.el;t=r.highlighted?r.highlightedColor:r.backgroundColor,i=r.highlighted?r.highlightedColor:r.borderColor,o.setAttribute("material","backgroundColor",t),o.setAttribute("material","strokeColor",i),r.on!==e.on&&this.updateEventListener(),r.visualAspectEnabled&&void 0!==e.peekMode&&r.peekMode!==e.peekMode&&this.updatePeekMode(),r.image&&e.image!==r.image&&o.setAttribute("material","pano","string"==typeof r.image?r.image:r.image.src)},updatePeekMode:function(){var e=this.el,t=this.sphereEl;this.data.peekMode?(this.hideAll(),e.getObject3D("mesh").visible=!1,t.setAttribute("visible",!0)):(this.showAll(),e.getObject3D("mesh").visible=!0,t.setAttribute("visible",!1))},play:function(){this.updateEventListener()},pause:function(){this.removeEventListener()},updateEventListener:function(){var e=this.el;e.isPlaying&&(this.removeEventListener(),e.addEventListener(this.data.on,this.navigate))},removeEventListener:function(){var e=this.data.on;e&&this.el.removeEventListener(e,this.navigate)},initVisualAspect:function(){var e,t,i,r=this.el;this.data.visualAspectEnabled&&(i=this.textEl=this.textEl||document.createElement("a-entity"),t=this.sphereEl=this.sphereEl||document.createElement("a-entity"),e=this.semiSphereEl=this.semiSphereEl||document.createElement("a-entity"),r.setAttribute("geometry",{primitive:"circle",radius:1,segments:64}),r.setAttribute("material",{shader:"portal",pano:this.data.image,side:"double"}),i.setAttribute("text",{color:this.data.titleColor,align:"center",font:"kelsonsans",value:this.data.title||this.data.href,width:4}),i.setAttribute("position","0 1.5 0"),r.appendChild(i),e.setAttribute("geometry",{primitive:"sphere",radius:1,phiStart:0,segmentsWidth:64,segmentsHeight:64,phiLength:180,thetaStart:0,thetaLength:360}),e.setAttribute("material",{shader:"portal",borderEnabled:0,pano:this.data.image,side:"back"}),e.setAttribute("rotation","0 180 0"),e.setAttribute("position","0 0 0"),e.setAttribute("visible",!1),r.appendChild(e),t.setAttribute("geometry",{primitive:"sphere",radius:10,segmentsWidth:64,segmentsHeight:64}),t.setAttribute("material",{shader:"portal",borderEnabled:0,pano:this.data.image,side:"back"}),t.setAttribute("visible",!1),r.appendChild(t))},navigate:function(){window.location=this.data.href},tick:function(){var e=new THREE.Vector3,t=new THREE.Vector3,i=new THREE.Quaternion,r=new THREE.Vector3;return function(){var o,a,n=this.el,s=n.object3D,l=n.sceneEl.camera,d=this.textEl;if(this.data.visualAspectEnabled)if(s.updateMatrixWorld(),l.parent.updateMatrixWorld(),l.updateMatrixWorld(),s.matrix.decompose(t,i,r),t.setFromMatrixPosition(s.matrixWorld),e.setFromMatrixPosition(l.matrixWorld),(a=t.distanceTo(e))>20)this.previousQuaternion||(this.quaternionClone.copy(i),this.previousQuaternion=this.quaternionClone),s.lookAt(e);else{if(o=this.calculateCameraPortalOrientation(),a<.5){if(!0===this.semiSphereEl.getAttribute("visible"))return;d.setAttribute("text","width",1.5),o<=0?(d.setAttribute("position","0 0 0.75"),d.setAttribute("rotation","0 180 0"),this.semiSphereEl.setAttribute("rotation","0 0 0")):(d.setAttribute("position","0 0 -0.75"),d.setAttribute("rotation","0 0 0"),this.semiSphereEl.setAttribute("rotation","0 180 0")),n.getObject3D("mesh").visible=!1,this.semiSphereEl.setAttribute("visible",!0),this.peekCameraPortalOrientation=o}else o<=0?d.setAttribute("rotation","0 180 0"):d.setAttribute("rotation","0 0 0"),d.setAttribute("text","width",5),d.setAttribute("position","0 1.5 0"),n.getObject3D("mesh").visible=!0,this.semiSphereEl.setAttribute("visible",!1),this.peekCameraPortalOrientation=void 0;this.previousQuaternion&&(s.quaternion.copy(this.previousQuaternion),this.previousQuaternion=void 0)}}}(),hideAll:function(){var e=this.el,t=this.hiddenEls,i=this;t.length>0||e.sceneEl.object3D.traverse(function(r){r&&r.el&&r.el.hasAttribute("link-controls")||r.el&&r!==e.sceneEl.object3D&&r.el!==e&&r.el!==i.sphereEl&&r.el!==e.sceneEl.cameraEl&&!1!==r.el.getAttribute("visible")&&r.el!==i.textEl&&r.el!==i.semiSphereEl&&(r.el.setAttribute("visible",!1),t.push(r.el))})},showAll:function(){this.hiddenEls.forEach(function(e){e.setAttribute("visible",!0)}),this.hiddenEls=[]},calculateCameraPortalOrientation:function(){var e=new THREE.Matrix4,t=new Line truncated
},{"../core/component":102,"../core/shader":111,"../lib/three":150}],65:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),bind=utils.bind,PolyfillControls=_dereq_("../utils").device.PolyfillControls,GRABBING_CLASS="a-grabbing",PI_2=Math.PI/2,checkHasPositionalTracking=utils.device.checkHasPositionalTracking;module.exports.Component=registerComponent("look-controls",{dependencies:["position","rotation"],schema:{enabled:{default:!0},hmdEnabled:{default:!0},pointerLockEnabled:{default:!1},reverseMouseDrag:{default:!1},touchEnabled:{default:!0}},init:function(){this.previousHMDPosition=new THREE.Vector3,this.hmdQuaternion=new THREE.Quaternion,this.hmdEuler=new THREE.Euler,this.position=new THREE.Vector3,this.savedRotation=new THREE.Vector3,this.savedPosition=new THREE.Vector3,this.polyfillObject=new THREE.Object3D,this.polyfillControls=new PolyfillControls(this.polyfillObject),this.rotation={},this.deltaRotation={},this.savedPose=null,this.pointerLocked=!1,this.setupMouseControls(),this.bindMethods(),this.savedPose={position:new THREE.Vector3,rotation:new THREE.Euler},this.el.sceneEl.is("vr-mode")&&this.onEnterVR()},update:function(t){var e=this.data;e.enabled!==t.enabled&&this.updateGrabCursor(e.enabled),!t||e.hmdEnabled||t.hmdEnabled||(this.pitchObject.rotation.set(0,0,0),this.yawObject.rotation.set(0,0,0)),t&&!e.pointerLockEnabled!==t.pointerLockEnabled&&(this.removeEventListeners(),this.addEventListeners(),this.pointerLocked&&document.exitPointerLock())},tick:function(t){this.data.enabled&&this.updateOrientation()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},remove:function(){this.removeEventListeners()},bindMethods:function(){this.onMouseDown=bind(this.onMouseDown,this),this.onMouseMove=bind(this.onMouseMove,this),this.onMouseUp=bind(this.onMouseUp,this),this.onTouchStart=bind(this.onTouchStart,this),this.onTouchMove=bind(this.onTouchMove,this),this.onTouchEnd=bind(this.onTouchEnd,this),this.onEnterVR=bind(this.onEnterVR,this),this.onExitVR=bind(this.onExitVR,this),this.onPointerLockChange=bind(this.onPointerLockChange,this),this.onPointerLockError=bind(this.onPointerLockError,this)},setupMouseControls:function(){this.mouseDown=!1,this.pitchObject=new THREE.Object3D,this.yawObject=new THREE.Object3D,this.yawObject.position.y=10,this.yawObject.add(this.pitchObject)},addEventListeners:function(){var t=this.el.sceneEl,e=t.canvas;if(!e)return void t.addEventListener("render-target-loaded",bind(this.addEventListeners,this));e.addEventListener("mousedown",this.onMouseDown,!1),window.addEventListener("mousemove",this.onMouseMove,!1),window.addEventListener("mouseup",this.onMouseUp,!1),e.addEventListener("touchstart",this.onTouchStart),window.addEventListener("touchmove",this.onTouchMove),window.addEventListener("touchend",this.onTouchEnd),t.addEventListener("enter-vr",this.onEnterVR),t.addEventListener("exit-vr",this.onExitVR),this.data.pointerLockEnabled&&(document.addEventListener("pointerlockchange",this.onPointerLockChange,!1),document.addEventListener("mozpointerlockchange",this.onPointerLockChange,!1),document.addEventListener("pointerlockerror",this.onPointerLockError,!1))},removeEventListeners:function(){var t=this.el.sceneEl,e=t&&t.canvas;e&&(e.removeEventListener("mousedown",this.onMouseDown),window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("mouseup",this.onMouseUp),e.removeEventListener("touchstart",this.onTouchStart),window.removeEventListener("touchmove",this.onTouchMove),window.removeEventListener("touchend",this.onTouchEnd),t.removeEventListener("enter-vr",this.onEnterVR),t.removeEventListener("exit-vr",this.onExitVR),document.removeEventListener("pointerlockchange",this.onPointerLockChange,!1),document.removeEventListener("mozpointerlockchange",this.onPointerLockChange,!1),document.removeEventListener("pointerlockerror",this.onPointerLockError,!1))},updateOrientation:function(){var t=this.el,e=this.hmdEuler,o=this.pitchObject,n=this.yawObject,i=this.el.sceneEl;i.is("vr-mode")&&i.checkHeadsetConnected()||(this.polyfillControls.update(),e.setFromQuaternion(this.polyfillObject.quaternion,"YXZ"),t.object3D.rotation.x=e.x+o.rotation.x,t.object3D.rotation.y=e.y+n.rotation.y,t.object3D.rotation.z=0)},onMouseMove:function(t){var e,o,n,i=this.pitchObject,s=this.previousMouseEvent,r=this.yawObject;this.data.enabled&&(this.mouseDown||this.pointerLocked)&&(this.pointerLocked?(o=t.movementX||t.mozMovementX||0,n=t.movementY||t.mozMovementY||0):(o=t.screenX-s.screenX,n=t.screenY-s.screenY),this.previousMouseEvent=t,e=this.data.reverseMouseDrag?1:-1,r.rotation.y+=.002*o*e,i.rotation.x+=.002*n*e,i.rotation.x=Math.max(-PI_2,Math.min(PI_2,i.rotation.x)))},onMouseDown:function(t){if(this.data.enabled&&0===t.button){var e=this.el.sceneEl,o=e&&e.canvas;this.mouseDown=!0,this.previousMouseEvent=t,document.body.classList.add(GRABBING_CLASS),this.data.pointerLockEnabled&&!this.pointerLocked&&(o.requestPointerLock?o.requestPointerLock():o.mLine truncated
},{"../core/component":102,"../lib/three":150,"../utils":172,"../utils/":172}],66:[function(_dereq_,module,exports){
function parseSide(e){switch(e){case"back":return THREE.BackSide;case"double":return THREE.DoubleSide;default:return THREE.FrontSide}}function parseVertexColors(e){switch(e){case"face":return THREE.FaceColors;case"vertex":return THREE.VertexColors;default:return THREE.NoColors}}function disposeMaterial(e,t){e.dispose(),t.unregisterMaterial(e)}var utils=_dereq_("../utils/"),component=_dereq_("../core/component"),THREE=_dereq_("../lib/three"),shader=_dereq_("../core/shader"),error=utils.debug("components:material:error"),registerComponent=component.registerComponent,shaders=shader.shaders,shaderNames=shader.shaderNames;module.exports.Component=registerComponent("material",{schema:{alphaTest:{default:0,min:0,max:1},depthTest:{default:!0},depthWrite:{default:!0},flatShading:{default:!1},npot:{default:!1},offset:{type:"vec2",default:{x:0,y:0}},opacity:{default:1,min:0,max:1},repeat:{type:"vec2",default:{x:1,y:1}},shader:{default:"standard",oneOf:shaderNames},side:{default:"front",oneOf:["front","back","double"]},transparent:{default:!1},vertexColors:{type:"string",default:"none",oneOf:["face","vertex"]},visible:{default:!0}},init:function(){this.material=null},update:function(e){var t=this.data;this.shader&&t.shader===e.shader||this.updateShader(t.shader),this.shader.update(this.data),this.updateMaterial(e)},updateSchema:function(e){var t=e.shader,a=this.data&&this.data.shader,r=t||a,s=shaders[r]&&shaders[r].schema;s||error("Unknown shader schema "+r),a&&t===a||(this.extendSchema(s),this.updateBehavior())},updateBehavior:function(){var e=this.schema,t=this,a=this.el.sceneEl,r={},s=function(e,a){Object.keys(r).forEach(function(t){r[t]=e}),t.shader.update(r)};this.tick=void 0,Object.keys(e).forEach(function(a){"time"===e[a].type&&(t.tick=s,r[a]=!0)}),a&&(this.tick?a.addBehavior(this):a.removeBehavior(this))},updateShader:function(e){var t,a=this.data,r=shaders[e]&&shaders[e].Shader;if(!r)throw new Error("Unknown shader "+e);t=this.shader=new r,t.el=this.el,t.init(a),this.setMaterial(t.material),this.updateSchema(a)},updateMaterial:function(e){var t=this.data,a=this.material;a.alphaTest=t.alphaTest,a.depthTest=!1!==t.depthTest,a.depthWrite=!1!==t.depthWrite,a.opacity=t.opacity,a.flatShading=t.flatShading,a.side=parseSide(t.side),a.transparent=!1!==t.transparent||t.opacity<1,a.vertexColors=parseVertexColors(t.vertexColors),a.visible=t.visible,!Object.keys(e).length||e.alphaTest===t.alphaTest&&e.side===t.side&&e.vertexColors===t.vertexColors||(a.needsUpdate=!0)},remove:function(){var e=new THREE.MeshBasicMaterial,t=this.material,a=this.el.getObject3D("mesh");a&&(a.material=e),disposeMaterial(t,this.system)},setMaterial:function(e){var t,a=this.el,r=this.system;this.material&&disposeMaterial(this.material,r),this.material=e,r.registerMaterial(e),t=a.getObject3D("mesh"),t?t.material=e:a.addEventListener("object3dset",function t(r){"mesh"===r.detail.type&&r.target===a&&(a.getObject3D("mesh").material=e,a.removeEventListener("object3dset",t))})}});
},{"../core/component":102,"../core/shader":111,"../lib/three":150,"../utils/":172}],67:[function(_dereq_,module,exports){
var debug=_dereq_("../utils/debug"),registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),warn=debug("components:obj-model:warn");module.exports.Component=registerComponent("obj-model",{schema:{mtl:{type:"model"},obj:{type:"model"}},init:function(){this.model=null,this.objLoader=new THREE.OBJLoader,this.mtlLoader=new THREE.MTLLoader(this.objLoader.manager),this.mtlLoader.crossOrigin=""},update:function(){var e=this.data;e.obj&&(this.remove(),this.loadObj(e.obj,e.mtl))},remove:function(){this.model&&this.el.removeObject3D("mesh")},loadObj:function(e,o){var t=this,r=this.el,a=this.mtlLoader,i=this.objLoader;if(o)return r.hasAttribute("material")&&warn("Material component properties are ignored when a .MTL is provided"),a.setTexturePath(o.substr(0,o.lastIndexOf("/")+1)),void a.load(o,function(o){o.preload(),i.setMaterials(o),i.load(e,function(e){t.model=e,r.setObject3D("mesh",e),r.emit("model-loaded",{format:"obj",model:e})})});i.load(e,function(e){var o=r.components.material;o&&e.traverse(function(e){e instanceof THREE.Mesh&&(e.material=o.material)}),t.model=e,r.setObject3D("mesh",e),r.emit("model-loaded",{format:"obj",model:e})})}});
},{"../core/component":102,"../lib/three":150,"../utils/debug":168}],68:[function(_dereq_,module,exports){
var bind=_dereq_("../utils/bind"),registerComponent=_dereq_("../core/component").registerComponent,trackedControlsUtils=_dereq_("../utils/tracked-controls"),THREE=_dereq_("../lib/three"),onButtonEvent=trackedControlsUtils.onButtonEvent,TOUCH_CONTROLLER_MODEL_BASE_URL="https://cdn.aframe.io/controllers/oculus/oculus-touch-controller-",TOUCH_CONTROLLER_MODEL_OBJ_URL_L=TOUCH_CONTROLLER_MODEL_BASE_URL+"left.obj",TOUCH_CONTROLLER_MODEL_OBJ_MTL_L=TOUCH_CONTROLLER_MODEL_BASE_URL+"left.mtl",TOUCH_CONTROLLER_MODEL_OBJ_URL_R=TOUCH_CONTROLLER_MODEL_BASE_URL+"right.obj",TOUCH_CONTROLLER_MODEL_OBJ_MTL_R=TOUCH_CONTROLLER_MODEL_BASE_URL+"right.mtl",GAMEPAD_ID_PREFIX="Oculus Touch",DEFAULT_MODEL_PIVOT_OFFSET=new THREE.Vector3(0,0,-.053),RAY_ORIGIN={left:{origin:{x:.008,y:-.008,z:0},direction:{x:0,y:-.8,z:-1}},right:{origin:{x:-.008,y:-.008,z:0},direction:{x:0,y:-.8,z:-1}}};module.exports.Component=registerComponent("oculus-touch-controls",{schema:{hand:{default:"left"},buttonColor:{type:"color",default:"#999"},buttonTouchColor:{type:"color",default:"#8AB"},buttonHighlightColor:{type:"color",default:"#2DF"},model:{default:!0},orientationOffset:{type:"vec3",default:{x:43,y:0,z:0}}},mapping:{left:{axes:{thumbstick:[0,1]},buttons:["thumbstick","trigger","grip","xbutton","ybutton","surface"]},right:{axes:{thumbstick:[0,1]},buttons:["thumbstick","trigger","grip","abutton","bbutton","surface"]}},bindMethods:function(){this.onModelLoaded=bind(this.onModelLoaded,this),this.onControllersUpdate=bind(this.onControllersUpdate,this),this.checkIfControllerPresent=bind(this.checkIfControllerPresent,this),this.onAxisMoved=bind(this.onAxisMoved,this)},init:function(){var t=this;this.onButtonChanged=bind(this.onButtonChanged,this),this.onButtonDown=function(e){onButtonEvent(e.detail.id,"down",t,t.data.hand)},this.onButtonUp=function(e){onButtonEvent(e.detail.id,"up",t,t.data.hand)},this.onButtonTouchStart=function(e){onButtonEvent(e.detail.id,"touchstart",t,t.data.hand)},this.onButtonTouchEnd=function(e){onButtonEvent(e.detail.id,"touchend",t,t.data.hand)},this.controllerPresent=!1,this.lastControllerCheck=0,this.previousButtonValues={},this.bindMethods(),this.emitIfAxesChanged=trackedControlsUtils.emitIfAxesChanged,this.checkControllerPresentAndSetup=trackedControlsUtils.checkControllerPresentAndSetup},addEventListeners:function(){var t=this.el;t.addEventListener("buttonchanged",this.onButtonChanged),t.addEventListener("buttondown",this.onButtonDown),t.addEventListener("buttonup",this.onButtonUp),t.addEventListener("touchstart",this.onButtonTouchStart),t.addEventListener("touchend",this.onButtonTouchEnd),t.addEventListener("axismove",this.onAxisMoved),t.addEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!0},removeEventListeners:function(){var t=this.el;t.removeEventListener("buttonchanged",this.onButtonChanged),t.removeEventListener("buttondown",this.onButtonDown),t.removeEventListener("buttonup",this.onButtonUp),t.removeEventListener("touchstart",this.onButtonTouchStart),t.removeEventListener("touchend",this.onButtonTouchEnd),t.removeEventListener("axismove",this.onAxisMoved),t.removeEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!1},checkIfControllerPresent:function(){this.checkControllerPresentAndSetup(this,GAMEPAD_ID_PREFIX,{hand:this.data.hand})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},updateControllerModel:function(){var t,e;this.data.model&&("right"===this.data.hand?(t="url("+TOUCH_CONTROLLER_MODEL_OBJ_URL_R+")",e="url("+TOUCH_CONTROLLER_MODEL_OBJ_MTL_R+")"):(t="url("+TOUCH_CONTROLLER_MODEL_OBJ_URL_L+")",e="url("+TOUCH_CONTROLLER_MODEL_OBJ_MTL_L+")"),this.el.setAttribute("obj-model",{obj:t,mtl:e}))},injectTrackedControls:function(){var t=this.data;this.el.setAttribute("tracked-controls",{id:"right"===t.hand?"Oculus Touch (Right)":"Oculus Touch (Left)",controller:0,orientationOffset:t.orientationOffset}),this.updateControllerModel()},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(t){var e,o=this.mapping[this.data.hand].buttons[t.detail.id],n=this.buttonMeshes;o&&("trigger"!==o&&"grip"!==o||(e=t.detail.state.value),n&&("trigger"===o&&n.trigger&&(n.trigger.rotation.x=-e*(Math.PI/24)),"grip"===o&&n.grip&&(n.grip.rotation.y=("left"===this.data.hand?-1:1)*e*(Math.PI/60))),this.el.emit(o+"changed",t.detail.state))},onModelLoaded:function(t){var e,o=t.detail.model;if(this.data.model){var n="left"===this.data.hand;e=this.buttonMeshes={},e.grip=o.getObjectByName(n?"buttonHand_oculus-touch-controller-left.004":"buttonHand_oculus-touch-controller-right.005"),e.thumbstiLine truncated
},{"../core/component":102,"../lib/three":150,"../utils/bind":166,"../utils/tracked-controls":178}],69:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent;module.exports.Component=registerComponent("position",{schema:{type:"vec3"},update:function(){var e=this.el.object3D,o=this.data;e.position.set(o.x,o.y,o.z)},remove:function(){this.el.object3D.position.set(0,0,0)}});
},{"../core/component":102}],70:[function(_dereq_,module,exports){
function copyArray(e,t){var i;for(e.length=t.length,i=0;i<t.length;i++)e[i]=t[i]}var registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),warn=utils.debug("components:raycaster:warn"),OBSERVER_SELECTOR_RE=/^[\w\s-.,[\]#]*$/,OBSERVER_CONFIG={childList:!0,attributes:!0,subtree:!0};module.exports.Component=registerComponent("raycaster",{schema:{autoRefresh:{default:!0},direction:{type:"vec3",default:{x:0,y:0,z:-1}},enabled:{default:!0},far:{default:1e3},interval:{default:0},near:{default:0},objects:{default:""},origin:{type:"vec3"},recursive:{default:!0},showLine:{default:!1},useWorldCoordinates:{default:!1}},init:function(){this.clearedIntersectedEls=[],this.unitLineEndVec3=new THREE.Vector3,this.intersectedEls=[],this.intersections=[],this.newIntersectedEls=[],this.newIntersections=[],this.objects=[],this.prevCheckTime=void 0,this.prevIntersectedEls=[],this.rawIntersections=[],this.raycaster=new THREE.Raycaster,this.updateOriginDirection(),this.setDirty=this.setDirty.bind(this),this.observer=new MutationObserver(this.setDirty),this.dirty=!0,this.lineEndVec3=new THREE.Vector3,this.otherLineEndVec3=new THREE.Vector3,this.lineData={end:this.lineEndVec3},this.intersectedClearedDetail={el:this.el},this.intersectionClearedDetail={clearedEls:this.clearedIntersectedEls},this.intersectionDetail={}},update:function(e){var t=this.data,i=this.el,s=this.raycaster;s.far=t.far,s.near=t.near,!t.showLine||t.far===e.far&&t.origin===e.origin&&t.direction===e.direction&&e.showLine||(this.unitLineEndVec3.copy(t.origin).add(t.direction).normalize(),this.drawLine()),!t.showLine&&e.showLine&&i.removeAttribute("line"),t.objects===e.objects||OBSERVER_SELECTOR_RE.test(t.objects)||warn('Selector "'+t.objects+'" may not update automatically with DOM changes.'),t.autoRefresh!==e.autoRefresh&&i.isPlaying&&(t.autoRefresh?this.addEventListeners():this.removeEventListeners()),this.setDirty()},play:function(){this.addEventListeners()},pause:function(){this.removeEventListeners()},remove:function(){this.data.showLine&&this.el.removeAttribute("line")},addEventListeners:function(){this.data.autoRefresh&&(this.observer.observe(this.el.sceneEl,OBSERVER_CONFIG),this.el.sceneEl.addEventListener("object3dset",this.setDirty),this.el.sceneEl.addEventListener("object3dremove",this.setDirty))},removeEventListeners:function(){this.observer.disconnect(),this.el.sceneEl.removeEventListener("object3dset",this.setDirty),this.el.sceneEl.removeEventListener("object3dremove",this.setDirty)},setDirty:function(){this.dirty=!0},refreshObjects:function(){var e,t=this.data;e=t.objects?this.el.sceneEl.querySelectorAll(t.objects):this.el.sceneEl.children,this.objects=this.flattenChildrenShallow(e),this.dirty=!1},tick:function(e){var t=this.data,i=this.prevCheckTime;i&&e-i<t.interval||(this.prevCheckTime=e,this.checkIntersections())},checkIntersections:function(){var e,t,i,s=this.clearedIntersectedEls,n=this.el,r=this.data,o=this.intersectedEls,c=this.intersections,a=this.newIntersectedEls,h=this.newIntersections,l=this.prevIntersectedEls,d=this.rawIntersections,u=this;if(this.data.enabled){for(this.dirty&&this.refreshObjects(),copyArray(this.prevIntersectedEls,this.intersectedEls),this.updateOriginDirection(),d.length=0,this.raycaster.intersectObjects(this.objects,r.recursive,d),c.length=0,o.length=0,e=0;e<d.length;e++)t=d[e],r.showLine&&t.object===n.getObject3D("line")||t.object.el&&(c.push(t),o.push(t.object.el));for(h.length=0,a.length=0,e=0;e<c.length;e++)-1===l.indexOf(c[e].object.el)&&(h.push(c[e]),a.push(c[e].object.el));for(s.length=0,e=0;e<l.length;e++)-1===o.indexOf(l[e])&&(l[e].emit("raycaster-intersected-cleared",this.intersectedClearedDetail),s.push(l[e]));for(s.length&&n.emit("raycaster-intersection-cleared",this.intersectionClearedDetail),e=0;e<a.length;e++)a[e].emit("raycaster-intersected",{el:n,intersection:h[e]});h.length&&(this.intersectionDetail.els=a,this.intersectionDetail.intersections=h,n.emit("raycaster-intersection",this.intersectionDetail)),setTimeout(function(){u.data.showLine&&(c.length&&(i=c[0].object.el===n&&c[1]?c[1].distance:c[0].distance),u.drawLine(i))})}},getIntersection:function(e){var t,i;for(t=0;t<this.intersections.length;t++)if(i=this.intersections[t],i.object.el===e)return i;return null},updateOriginDirection:function(){var e=new THREE.Vector3,t=new THREE.Vector3;return function(){var i=this.el,s=this.data;if(s.useWorldCoordinates)return void this.raycaster.set(s.origin,s.direction);i.object3D.updateMatrixWorld(),i.object3D.getWorldPosition(t),0===s.origin.x&&0===s.origin.y&&0===s.origin.z||(t=i.object3D.localToWorld(t.copy(s.origin))),e.copy(s.direction).transformDirection(i.object3D.matrixWorld).normalize(),this.raycaster.set(t,e)}}(),drawLine:function(e){var t,i=this.data,s=this.el;t=this.lineData.end===this.lineEndVec3?this.otherLineEndVec3:this.lineEndVec3,void 0===e&&(e=i.far===1/0?1e3:i.far),this.lineData.start=i.origin,this.lineData.end=t.copy(this.unLine truncated
},{"../core/component":102,"../lib/three":150,"../utils/":172}],71:[function(_dereq_,module,exports){
var degToRad=_dereq_("../lib/three").Math.degToRad,registerComponent=_dereq_("../core/component").registerComponent;module.exports.Component=registerComponent("rotation",{schema:{type:"vec3"},update:function(){var e=this.data,o=this.el.object3D;o.rotation.set(degToRad(e.x),degToRad(e.y),degToRad(e.z)),o.rotation.order="YXZ"},remove:function(){this.el.object3D.rotation.set(0,0,0)}});
},{"../core/component":102,"../lib/three":150}],72:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,zeroScale=1e-5;module.exports.Component=registerComponent("scale",{schema:{type:"vec3",default:{x:1,y:1,z:1}},update:function(){var e=this.data,o=this.el.object3D,t=0===e.x?zeroScale:e.x,r=0===e.y?zeroScale:e.y,c=0===e.z?zeroScale:e.z;o.scale.set(t,r,c)},remove:function(){this.el.object3D.scale.set(1,1,1)}});
},{"../core/component":102}],73:[function(_dereq_,module,exports){
var register=_dereq_("../../core/component").registerComponent;module.exports.Component=register("background",{schema:{color:{type:"color",default:"black"},transparent:{default:!1}},update:function(){var e=this.data,r=this.el.object3D;if(e.transparent)return void(r.background=null);r.background=new THREE.Color(e.color)}});
},{"../../core/component":102}],74:[function(_dereq_,module,exports){
var register=_dereq_("../../core/component").registerComponent;module.exports.Component=register("debug",{schema:{default:!0}});
},{"../../core/component":102}],75:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../../core/component").registerComponent;module.exports.Component=registerComponent("embedded",{dependencies:["vr-mode-ui"],schema:{default:!0},update:function(){var e=this.el,r=e.querySelector(".a-enter-vr");!0===this.data?(r&&r.classList.add("embedded"),e.removeFullScreenStyles()):(r&&r.classList.remove("embedded"),e.addFullScreenStyles())}});
},{"../../core/component":102}],76:[function(_dereq_,module,exports){
function getFog(e){var o;return o="exponential"===e.type?new THREE.FogExp2(e.color,e.density):new THREE.Fog(e.color,e.near,e.far),o.name=e.type,o}var register=_dereq_("../../core/component").registerComponent,THREE=_dereq_("../../lib/three"),debug=_dereq_("../../utils/debug"),warn=debug("components:fog:warn");module.exports.Component=register("fog",{schema:{color:{type:"color",default:"#000"},density:{default:25e-5},far:{default:1e3,min:0},near:{default:1,min:0},type:{default:"linear",oneOf:["linear","exponential"]}},update:function(){var e=this.data,o=this.el,t=this.el.object3D.fog;return o.isScene?t&&e.type===t.name?void Object.keys(this.schema).forEach(function(o){var n=e[o];"color"===o&&(n=new THREE.Color(n)),t[o]=n}):(o.object3D.fog=getFog(e),void o.systems.material.updateMaterials()):void warn("Fog component can only be applied to <a-scene>")},remove:function(){var e=this.el.object3D.fog;e&&(e.far=0,e.near=.1)}});
},{"../../core/component":102,"../../lib/three":150,"../../utils/debug":168}],77:[function(_dereq_,module,exports){
(function (process){
function getFuzzyPatchVersion(e){var n=e.split(".");return n[2]="x",n.join(".")}var AFRAME_INJECTED=_dereq_("../../constants").AFRAME_INJECTED,bind=_dereq_("../../utils/bind"),pkg=_dereq_("../../../package"),registerComponent=_dereq_("../../core/component").registerComponent,INSPECTOR_DEV_URL="https://aframe.io/aframe-inspector/dist/aframe-inspector.js",INSPECTOR_RELEASE_URL="https://unpkg.com/aframe-inspector@"+getFuzzyPatchVersion(pkg.version)+"/dist/aframe-inspector.min.js",INSPECTOR_URL="dev"===process.env.INSPECTOR_VERSION?INSPECTOR_DEV_URL:INSPECTOR_RELEASE_URL,LOADING_MESSAGE="Loading Inspector",LOADING_ERROR_MESSAGE="Error loading Inspector";module.exports.Component=registerComponent("inspector",{schema:{url:{default:INSPECTOR_URL}},init:function(){this.onKeydown=bind(this.onKeydown,this),this.onMessage=bind(this.onMessage,this),this.initOverlay(),window.addEventListener("keydown",this.onKeydown),window.addEventListener("message",this.onMessage)},initOverlay:function(){this.loadingMessageEl=document.createElement("div"),this.loadingMessageEl.classList.add("a-inspector-loader"),this.loadingMessageEl.innerHTML=LOADING_MESSAGE+'<span class="dots"><span>.</span><span>.</span><span>.</span></span>'},remove:function(){this.removeEventListeners()},onKeydown:function(e){var n=73===e.keyCode&&e.ctrlKey&&e.altKey;this.data&&n&&this.injectInspector()},showLoader:function(){document.body.appendChild(this.loadingMessageEl)},hideLoader:function(){document.body.removeChild(this.loadingMessageEl)},onMessage:function(e){"INJECT_AFRAME_INSPECTOR"===e.data&&this.injectInspector()},injectInspector:function(){var e,n=this;AFRAME.INSPECTOR||AFRAME.inspectorInjected||(this.showLoader(),e=document.createElement("script"),e.src=this.data.url,e.setAttribute("data-name","aframe-inspector"),e.setAttribute(AFRAME_INJECTED,""),e.onload=function(){AFRAME.INSPECTOR.open(),n.hideLoader(),n.removeEventListeners()},e.onerror=function(){n.loadingMessageEl.innerHTML=LOADING_ERROR_MESSAGE},document.head.appendChild(e),AFRAME.inspectorInjected=!0)},removeEventListeners:function(){window.removeEventListener("keydown",this.onKeydown),window.removeEventListener("message",this.onMessage)}});
}).call(this,_dereq_('_process'))
},{"../../../package":51,"../../constants":93,"../../core/component":102,"../../utils/bind":166,"_process":6}],78:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../../core/component").registerComponent,shouldCaptureKeyEvent=_dereq_("../../utils/").shouldCaptureKeyEvent;module.exports.Component=registerComponent("keyboard-shortcuts",{schema:{enterVR:{default:!0},exitVR:{default:!0}},init:function(){this.onKeyup=this.onKeyup.bind(this)},update:function(e){var t=this.data;this.enterVREnabled=t.enterVR},play:function(){window.addEventListener("keyup",this.onKeyup,!1)},pause:function(){window.removeEventListener("keyup",this.onKeyup)},onKeyup:function(e){var t=this.el;shouldCaptureKeyEvent(e)&&(this.enterVREnabled&&70===e.keyCode&&t.enterVR(),this.enterVREnabled&&27===e.keyCode&&t.exitVR())}});
},{"../../core/component":102,"../../utils/":172}],79:[function(_dereq_,module,exports){
var debug=_dereq_("../../utils/debug"),registerComponent=_dereq_("../../core/component").registerComponent,warn=debug("components:pool:warn");module.exports.Component=registerComponent("pool",{schema:{container:{default:""},mixin:{default:""},size:{default:0},dynamic:{default:!1}},multiple:!0,initPool:function(){var t;for(this.availableEls=[],this.usedEls=[],this.data.mixin||warn("No mixin provided for pool component."),this.data.container&&(this.container=document.querySelector(this.data.container),this.container||warn("Container "+this.data.container+" not found.")),this.container=this.container||this.el,t=0;t<this.data.size;++t)this.createEntity()},update:function(t){var i=this.data;t.mixin===i.mixin&&t.size===i.size||this.initPool()},createEntity:function(){var t;t=document.createElement("a-entity"),t.play=this.wrapPlay(t.play),t.setAttribute("mixin",this.data.mixin),t.object3D.visible=!1,t.pause(),this.container.appendChild(t),this.availableEls.push(t)},wrapPlay:function(t){var i=this.usedEls;return function(){-1!==i.indexOf(this)&&t.call(this)}},requestEntity:function(){var t;if(0===this.availableEls.length){if(!1===this.data.dynamic)return void warn("Requested entity from empty pool: "+this.name);warn("Requested entity from empty pool. This pool is dynamic and will resize automatically. You might want to increase its initial size: "+this.name),this.createEntity()}return t=this.availableEls.shift(),this.usedEls.push(t),t.object3D.visible=!0,t},returnEntity:function(t){var i=this.usedEls.indexOf(t);return-1===i?void warn("The returned entity was not previously pooled from "+this.name):(this.usedEls.splice(i,1),this.availableEls.push(t),t.object3D.visible=!1,t.pause(),t)}});
},{"../../core/component":102,"../../utils/debug":168}],80:[function(_dereq_,module,exports){
var register=_dereq_("../../core/component").registerComponent,debug=_dereq_("../../utils/debug"),warn=debug("components:renderer:warn");module.exports.Component=register("renderer",{schema:{antialias:{default:"auto",oneOf:["true","false","auto"]},gammaOutput:{default:!1},physicallyCorrectLights:{default:!1},sortObjects:{default:!1}},init:function(){this.el.isScene||warn("Renderer component can only be applied to <a-scene>")},update:function(e){var t=this.data,a=this.el,r=a.renderer,i=!1;a.time>0&&t.antialias!==e.antialias&&warn('Property "antialias" cannot be changed after scene initialization'),t.sortObjects!==e.sortObjects&&(r.sortObjects=t.sortObjects),t.gammaOutput!==e.gammaOutput&&(r.gammaOutput=t.gammaOutput,i=!0),t.physicallyCorrectLights!==e.physicallyCorrectLights&&(r.physicallyCorrectLights=t.physicallyCorrectLights,i=!0),i&&0!==a.time&&(warn("Modifying renderer properties at runtime requires shader update and may drop frames."),a.object3D.traverse(function(e){e.isMesh&&(Array.isArray(e.material)?e.material.forEach(function(e){e.needsUpdate=!0}):e.material.needsUpdate=!0)}))}});
},{"../../core/component":102,"../../utils/debug":168}],81:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../../core/component").registerComponent,THREE=_dereq_("../../lib/three"),VERTEX_SHADER=["attribute vec3 position;","attribute vec2 uv;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","varying vec2 vUv;","void main() {"," vUv = vec2( 1.- uv.x, uv.y );"," gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );","}"].join("\n"),FRAGMENT_SHADER=["precision mediump float;","uniform samplerCube map;","varying vec2 vUv;","#define M_PI 3.141592653589793238462643383279","void main() {"," vec2 uv = vUv;"," float longitude = uv.x * 2. * M_PI - M_PI + M_PI / 2.;"," float latitude = uv.y * M_PI;"," vec3 dir = vec3("," - sin( longitude ) * sin( latitude ),"," cos( latitude ),"," - cos( longitude ) * sin( latitude )"," );"," normalize( dir );"," gl_FragColor = vec4( textureCube( map, dir ).rgb, 1.0 );","}"].join("\n");module.exports.Component=registerComponent("screenshot",{schema:{width:{default:4096},height:{default:2048},camera:{type:"selector"}},init:function(){function e(){var e=t.renderer.getContext();e&&(a.cubeMapSize=e.getParameter(e.MAX_CUBE_MAP_TEXTURE_SIZE),a.material=new THREE.RawShaderMaterial({uniforms:{map:{type:"t",value:null}},vertexShader:VERTEX_SHADER,fragmentShader:FRAGMENT_SHADER,side:THREE.DoubleSide}),a.quad=new THREE.Mesh(new THREE.PlaneBufferGeometry(1,1),a.material),a.quad.visible=!1,a.camera=new THREE.OrthographicCamera(-.5,.5,.5,-.5,-1e4,1e4),a.canvas=document.createElement("canvas"),a.ctx=a.canvas.getContext("2d"),t.camera&&t.camera.add(a.quad),a.onKeyDown=a.onKeyDown.bind(a),a.onCameraActive=a.onCameraActive.bind(a),t.addEventListener("camera-set-active",a.onCameraActive))}var t=this.el,a=this;t.renderer?e():t.addEventListener("render-target-loaded",e)},getRenderTarget:function(e,t){return new THREE.WebGLRenderTarget(e,t,{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,wrapS:THREE.ClampToEdgeWrapping,wrapT:THREE.ClampToEdgeWrapping,format:THREE.RGBAFormat,type:THREE.UnsignedByteType})},resize:function(e,t){this.quad.scale.set(e,t,1),this.camera.left=-1*e/2,this.camera.right=e/2,this.camera.top=t/2,this.camera.bottom=-1*t/2,this.camera.updateProjectionMatrix(),this.canvas.width=e,this.canvas.height=t},play:function(){window.addEventListener("keydown",this.onKeyDown)},onCameraActive:function(e){var t=this.quad.parent;t&&t.remove(this.quad),e.detail.cameraEl.getObject3D("camera").add(this.quad)},onKeyDown:function(e){var t=83===e.keyCode&&e.ctrlKey&&e.altKey;if(this.data&&t){var a=e.shiftKey?"equirectangular":"perspective";this.capture(a)}},setCapture:function(e){var t,a,i,r=this.el;return"perspective"===e?(this.quad.visible=!1,a=this.data.camera&&this.data.camera.components.camera.camera||r.camera,t={width:this.data.width,height:this.data.height}):(a=this.camera,a.position.copy(r.camera.getWorldPosition()),a.rotation.copy(r.camera.getWorldRotation()),i=new THREE.CubeCamera(r.camera.near,r.camera.far,Math.min(this.cubeMapSize,2048)),i.position.copy(r.camera.getWorldPosition()),i.rotation.copy(r.camera.getWorldRotation()),i.updateCubeMap(r.renderer,r.object3D),this.quad.material.uniforms.map.value=i.renderTarget.texture,t={width:this.data.width,height:this.data.height},this.quad.visible=!0),{camera:a,size:t,projection:e}},capture:function(e){var t=this.setCapture(e);this.renderCapture(t.camera,t.size,t.projection),this.saveCapture()},getCanvas:function(e){var t=this.setCapture(e);return this.renderCapture(t.camera,t.size,t.projection),this.canvas},renderCapture:function(e,t,a){var i,r,n,o=this.el.renderer.autoClear,c=this.el,d=this.el.renderer;r=this.getRenderTarget(t.width,t.height),n=new Uint8Array(4*t.width*t.height),this.resize(t.width,t.height),d.autoClear=!0,d.render(c.object3D,e,r,!0),d.autoClear=o,d.readRenderTargetPixels(r,0,0,t.width,t.height,n),"perspective"===a&&(n=this.flipPixelsVertically(n,t.width,t.height)),i=new ImageData(new Uint8ClampedArray(n),t.width,t.height),this.quad.visible=!1,this.ctx.putImageData(i,0,0)},flipPixelsVertically:function(e,t,a){for(var i=e.slice(0),r=0;r<t;++r)for(var n=0;n<a;++n)i[4*r+n*t*4]=e[4*r+(a-n)*t*4],i[4*r+1+n*t*4]=e[4*r+1+(a-n)*t*4],i[4*r+2+n*t*4]=e[4*r+2+(a-n)*t*4],i[4*r+3+n*t*4]=e[4*r+3+(a-n)*t*4];return i},saveCapture:function(){this.canvas.toBlob(function(e){var t="screenshot-"+document.title.toLowerCase()+"-"+Date.now()+".png",a=document.createElement("a"),i=URL.createObjectURL(e);a.href=i,a.setAttribute("download",t),a.innerHTML="downloading...",a.style.display="none",document.body.appendChild(a),setTimeout(function(){a.click(),document.body.removeChild(a)},1)},"image/png")}});
},{"../../core/component":102,"../../lib/three":150}],82:[function(_dereq_,module,exports){
function createStats(t){var e=new ThreeStats(t.renderer),s=new AFrameStats(t),i=t.isMobile?[]:[e,s];return new RStats({css:[],values:{fps:{caption:"fps",below:30}},groups:[{caption:"Framerate",values:["fps","raf"]}],plugins:i})}var registerComponent=_dereq_("../../core/component").registerComponent,RStats=_dereq_("../../../vendor/rStats"),utils=_dereq_("../../utils");_dereq_("../../../vendor/rStats.extras"),_dereq_("../../lib/rStatsAframe");var AFrameStats=window.aframeStats,bind=utils.bind,HIDDEN_CLASS="a-hidden",ThreeStats=window.threeStats;module.exports.Component=registerComponent("stats",{schema:{default:!0},init:function(){var t=this.el;"false"!==utils.getUrlParameter("stats")&&(this.stats=createStats(t),this.statsEl=document.querySelector(".rs-base"),this.hideBound=bind(this.hide,this),this.showBound=bind(this.show,this),t.addEventListener("enter-vr",this.hideBound),t.addEventListener("exit-vr",this.showBound))},update:function(){if(this.stats)return this.data?this.show():this.hide()},remove:function(){this.el.removeEventListener("enter-vr",this.hideBound),this.el.removeEventListener("exit-vr",this.showBound),this.statsEl&&this.statsEl.parentNode.removeChild(this.statsEl)},tick:function(){var t=this.stats;t&&(t("rAF").tick(),t("FPS").frame(),t().update())},hide:function(){this.statsEl.classList.add(HIDDEN_CLASS)},show:function(){this.statsEl.classList.remove(HIDDEN_CLASS)}});
},{"../../../vendor/rStats":180,"../../../vendor/rStats.extras":179,"../../core/component":102,"../../lib/rStatsAframe":149,"../../utils":172}],83:[function(_dereq_,module,exports){
function createEnterVRButton(t){var e,n;return n=document.createElement("div"),n.classList.add(ENTER_VR_CLASS),n.setAttribute(constants.AFRAME_INJECTED,""),e=document.createElement("button"),e.className=ENTER_VR_BTN_CLASS,e.setAttribute("title","Enter VR mode with a headset or fullscreen mode on a desktop. Visit https://webvr.rocks or https://webvr.info for more information."),e.setAttribute(constants.AFRAME_INJECTED,""),n.appendChild(e),e.addEventListener("click",function(e){t(),e.stopPropagation()}),n}function createOrientationModal(t){var e=document.createElement("div");e.className=ORIENTATION_MODAL_CLASS,e.classList.add(HIDDEN_CLASS),e.setAttribute(constants.AFRAME_INJECTED,"");var n=document.createElement("button");return n.setAttribute(constants.AFRAME_INJECTED,""),n.innerHTML="Exit VR",n.addEventListener("click",t),e.appendChild(n),e}var registerComponent=_dereq_("../../core/component").registerComponent,constants=_dereq_("../../constants/"),utils=_dereq_("../../utils/"),bind=utils.bind,ENTER_VR_CLASS="a-enter-vr",ENTER_VR_BTN_CLASS="a-enter-vr-button",HIDDEN_CLASS="a-hidden",ORIENTATION_MODAL_CLASS="a-orientation-modal";module.exports.Component=registerComponent("vr-mode-ui",{dependencies:["canvas"],schema:{enabled:{default:!0}},init:function(){var t=this,e=this.el;"false"!==utils.getUrlParameter("ui")&&(this.insideLoader=!1,this.enterVREl=null,this.orientationModalEl=null,this.bindMethods(),e.addEventListener("enter-vr",this.updateEnterVRInterface),e.addEventListener("exit-vr",this.updateEnterVRInterface),window.addEventListener("message",function(e){"loaderReady"===e.data.type&&(t.insideLoader=!0,t.remove())}),window.addEventListener("orientationchange",this.toggleOrientationModalIfNeeded))},bindMethods:function(){this.onEnterVRButtonClick=bind(this.onEnterVRButtonClick,this),this.onModalClick=bind(this.onModalClick,this),this.toggleOrientationModalIfNeeded=bind(this.toggleOrientationModalIfNeeded,this),this.updateEnterVRInterface=bind(this.updateEnterVRInterface,this)},onModalClick:function(){this.el.exitVR()},onEnterVRButtonClick:function(){this.el.enterVR()},update:function(){var t=this.el;if(!this.data.enabled||this.insideLoader||"false"===utils.getUrlParameter("ui"))return this.remove();this.enterVREl||this.orientationModalEl||(this.enterVREl=createEnterVRButton(this.onEnterVRButtonClick),t.appendChild(this.enterVREl),this.orientationModalEl=createOrientationModal(this.onModalClick),t.appendChild(this.orientationModalEl),this.updateEnterVRInterface())},remove:function(){[this.enterVREl,this.orientationModalEl].forEach(function(t){t&&t.parentNode&&t.parentNode.removeChild(t)})},updateEnterVRInterface:function(){this.toggleEnterVRButtonIfNeeded(),this.toggleOrientationModalIfNeeded()},toggleEnterVRButtonIfNeeded:function(){var t=this.el;this.enterVREl&&(t.is("vr-mode")?this.enterVREl.classList.add(HIDDEN_CLASS):this.enterVREl.classList.remove(HIDDEN_CLASS))},toggleOrientationModalIfNeeded:function(){var t=this.el,e=this.orientationModalEl;e&&t.isMobile&&(!utils.device.isLandscape()&&t.is("vr-mode")?e.classList.remove(HIDDEN_CLASS):e.classList.add(HIDDEN_CLASS))}});
},{"../../constants/":93,"../../core/component":102,"../../utils/":172}],84:[function(_dereq_,module,exports){
var component=_dereq_("../core/component"),THREE=_dereq_("../lib/three"),bind=_dereq_("../utils/bind"),registerComponent=component.registerComponent;module.exports.Component=registerComponent("shadow",{schema:{cast:{default:!0},receive:{default:!0}},init:function(){this.onMeshChanged=bind(this.update,this),this.el.addEventListener("object3dset",this.onMeshChanged),this.system.setShadowMapEnabled(!0)},update:function(){var e=this.data;this.updateDescendants(e.cast,e.receive)},remove:function(){this.el.removeEventListener("object3dset",this.onMeshChanged),this.updateDescendants(!1,!1)},updateDescendants:function(e,t){var n=this.el.sceneEl;this.el.object3D.traverse(function(s){if(s instanceof THREE.Mesh&&(s.castShadow=e,s.receiveShadow=t,n.hasLoaded&&s.material))for(var a=Array.isArray(s.material)?s.material:[s.material],i=0;i<a.length;i++)a[i].needsUpdate=!0})}});
},{"../core/component":102,"../lib/three":150,"../utils/bind":166}],85:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,debug=_dereq_("../utils/debug"),bind=_dereq_("../utils/bind"),THREE=_dereq_("../lib/three"),warn=debug("components:sound:warn");module.exports.Component=registerComponent("sound",{schema:{autoplay:{default:!1},distanceModel:{default:"inverse",oneOf:["linear","inverse","exponential"]},loop:{default:!1},maxDistance:{default:1e4},on:{default:""},poolSize:{default:1},positional:{default:!0},refDistance:{default:1},rolloffFactor:{default:1},src:{type:"audio"},volume:{default:1}},multiple:!0,init:function(){this.listener=null,this.audioLoader=new THREE.AudioLoader,this.pool=new THREE.Group,this.loaded=!1,this.mustPlay=!1,this.playSound=bind(this.playSound,this)},update:function(e){var t=this.data,o=t.src!==e.src;if(o){if(!t.src)return void warn("Audio source was not specified with `src`");this.setupSound()}if(this.pool.children.forEach(function(e){t.positional&&(e.setDistanceModel(t.distanceModel),e.setMaxDistance(t.maxDistance),e.setRefDistance(t.refDistance),e.setRolloffFactor(t.rolloffFactor)),e.setLoop(t.loop),e.setVolume(t.volume),e.isPaused=!1}),t.on!==e.on&&this.updateEventListener(e.on),o){var i=this;this.loaded=!1,this.audioLoader.load(t.src,function(e){i.pool.children.forEach(function(t){t.setBuffer(e)}),i.loaded=!0,THREE.Cache.remove(t.src),(i.data.autoplay||i.mustPlay)&&i.playSound(),i.el.emit("sound-loaded",i.evtDetail)})}},pause:function(){this.stopSound(),this.removeEventListener()},play:function(){this.data.autoplay&&this.playSound(),this.updateEventListener()},remove:function(){this.removeEventListener(),this.el.removeObject3D(this.attrName);try{this.pool.children.forEach(function(e){e.disconnect()})}catch(e){warn("Audio source not properly disconnected")}},updateEventListener:function(e){var t=this.el;e&&t.removeEventListener(e,this.playSound),t.addEventListener(this.data.on,this.playSound)},removeEventListener:function(){this.el.removeEventListener(this.data.on,this.playSound)},setupSound:function(){var e=this,t=this.el,o=t.sceneEl;this.pool.children.length>0&&(this.stopSound(),t.removeObject3D("sound"));var i=this.listener=o.audioListener||new THREE.AudioListener;o.audioListener=i,o.camera&&o.camera.add(i),o.addEventListener("camera-set-active",function(e){e.detail.cameraEl.getObject3D("camera").add(i)}),this.pool=new THREE.Group;for(var n=0;n<this.data.poolSize;n++){var s=this.data.positional?new THREE.PositionalAudio(i):new THREE.Audio(i);this.pool.add(s)}t.setObject3D(this.attrName,this.pool),this.pool.children.forEach(function(o){o.onEnded=function(){o.isPlaying=!1,t.emit("sound-ended",e.evtDetail)}})},pauseSound:function(){this.isPlaying=!1,this.pool.children.forEach(function(e){e.source&&e.source.buffer&&e.isPlaying&&!e.isPaused&&(e.isPaused=!0,e.pause())})},playSound:function(){if(!this.loaded)return warn("Sound not loaded yet. It will be played once it finished loading"),void(this.mustPlay=!0);var e=!1;if(this.isPlaying=!0,this.pool.children.forEach(function(t){if(!t.isPlaying&&t.buffer&&!e)return t.play(),t.isPaused=!1,void(e=!0)}),!e)return void warn("All the sounds are playing. If you need to play more sounds simultaneously consider increasing the size of pool with the `poolSize` attribute.",this.el);this.mustPlay=!1},stopSound:function(){this.isPlaying=!1,this.pool.children.forEach(function(e){e.source&&e.source.buffer&&e.stop()})}});
},{"../core/component":102,"../lib/three":150,"../utils/bind":166,"../utils/debug":168}],86:[function(_dereq_,module,exports){
function parseSide(t){switch(t){case"back":return THREE.FrontSide;case"double":return THREE.DoubleSide;default:return THREE.BackSide}}function coerceData(t){return t=utils.clone(t),void 0!==t.lineHeight&&(t.lineHeight=parseFloat(t.lineHeight),isFinite(t.lineHeight)||(t.lineHeight=void 0)),void 0!==t.width&&(t.width=parseFloat(t.width),isFinite(t.width)||(t.width=void 0)),t}function loadFont(t,e){return new Promise(function(r,n){loadBMFont(t,function(o,i){if(o)return error("Error loading font",t),void n(o);t.indexOf("/Roboto-msdf.json")>=0&&(e=30),e&&i.chars.map(function(t){t.yoffset+=e}),r(i)})})}function loadTexture(t){return new Promise(function(e,r){(new THREE.ImageLoader).load(t,function(t){e(t)},void 0,function(){error("Error loading font image",t),r(null)})})}function createShader(t,e,r){var n,o;return o=new shaders[e].Shader,o.el=t,o.init(r),o.update(r),n=o.material,n.transparent=r.transparent,{material:n,shader:o}}function computeWidth(t,e,r){return t||(.5+e)*r}function computeFontWidthFactor(t){var e=0,r=0,n=0;return t.chars.map(function(t){e+=t.xadvance,t.id>=48&&t.id<=57&&(n++,r+=t.xadvance)}),n?r/n:e/t.chars.length}function PromiseCache(){var t=this.cache={};this.get=function(e,r){return e in t?t[e]:(t[e]=r(),t[e])}}var createTextGeometry=_dereq_("three-bmfont-text"),loadBMFont=_dereq_("load-bmfont"),registerComponent=_dereq_("../core/component").registerComponent,coreShader=_dereq_("../core/shader"),THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),error=utils.debug("components:text:error"),shaders=coreShader.shaders,warn=utils.debug("components:text:warn"),DEFAULT_WIDTH=1,MAX_ANISOTROPY=16,FONT_BASE_URL="https://cdn.aframe.io/fonts/",FONTS={aileronsemibold:FONT_BASE_URL+"Aileron-Semibold.fnt",dejavu:FONT_BASE_URL+"DejaVu-sdf.fnt",exo2bold:FONT_BASE_URL+"Exo2Bold.fnt",exo2semibold:FONT_BASE_URL+"Exo2SemiBold.fnt",kelsonsans:FONT_BASE_URL+"KelsonSans.fnt",monoid:FONT_BASE_URL+"Monoid.fnt",mozillavr:FONT_BASE_URL+"mozillavr.fnt",roboto:FONT_BASE_URL+"Roboto-msdf.json",sourcecodepro:FONT_BASE_URL+"SourceCodePro.fnt"},MSDF_FONTS=["roboto"],DEFAULT_FONT="roboto";module.exports.FONTS=FONTS;var cache=new PromiseCache,fontWidthFactors={},textures={};module.exports.Component=registerComponent("text",{multiple:!0,schema:{align:{type:"string",default:"left",oneOf:["left","right","center"]},alphaTest:{default:.5},anchor:{default:"center",oneOf:["left","right","center","align"]},baseline:{default:"center",oneOf:["top","center","bottom"]},color:{type:"color",default:"#FFF"},font:{type:"string",default:DEFAULT_FONT},fontImage:{type:"string"},height:{type:"number"},letterSpacing:{type:"number",default:0},lineHeight:{type:"number"},negate:{type:"boolean",default:!0},opacity:{type:"number",default:1},shader:{default:"sdf",oneOf:shaders},side:{default:"front",oneOf:["front","back","double"]},tabSize:{default:4},transparent:{default:!0},value:{type:"string"},whiteSpace:{default:"normal",oneOf:["normal","pre","nowrap"]},width:{type:"number"},wrapCount:{type:"number",default:40},wrapPixels:{type:"number"},xOffset:{type:"number",default:0},yOffset:{type:"number",default:0},zOffset:{type:"number",default:.001}},init:function(){this.shaderData={},this.geometry=createTextGeometry(),this.createOrUpdateMaterial(),this.mesh=new THREE.Mesh(this.geometry,this.material),this.el.setObject3D(this.attrName,this.mesh)},update:function(t){var e=coerceData(this.data),r=this.currentFont,n=this.getFontImageSrc();if(textures[n]?this.texture=textures[n]:(this.texture=textures[n]=new THREE.Texture,this.texture.anisotropy=MAX_ANISOTROPY),this.createOrUpdateMaterial(),t.font!==e.font)return void this.updateFont();r&&(this.updateGeometry(this.geometry,e,r),this.updateLayout(e))},remove:function(){this.geometry.dispose(),this.geometry=null,this.el.removeObject3D(this.attrName),this.material.dispose(),this.material=null,this.texture.dispose(),this.texture=null,this.shaderObject&&delete this.shaderObject},createOrUpdateMaterial:function(){var t,e,r,n=this.data,o=this.material,i=this.shaderData;if(r=n.shader,-1!==MSDF_FONTS.indexOf(n.font)||n.font.indexOf("-msdf.")>=0?r="msdf":n.font in FONTS&&-1===MSDF_FONTS.indexOf(n.font)&&(r="sdf"),t=(this.shaderObject&&this.shaderObject.name)!==r,i.alphaTest=n.alphaTest,i.color=n.color,i.map=this.texture,i.opacity=n.opacity,i.side=parseSide(n.side),i.transparent=n.transparent,i.negate=n.negate,!t)return this.shaderObject.update(i),o.transparent=i.transparent,void(o.side=i.side);e=createShader(this.el,r,i),this.material=e.material,this.shaderObject=e.shader,this.material.side=i.side,this.mesh&&(this.mesh.material=this.material)},updateFont:function(){var t,e=this.data,r=this.el,n=this.geometry,o=this;e.font||warn("No font specified. Using the default font."),this.mesh.visible=!1,t=this.lookupFont(e.font||DEFAULT_FONT)||e.font,cache.get(t,function(){return loadFont(t,e.yOffset)}).then(function(i){var a,s;if(1!==i.pages.length)throw new Error("Currently only single-page bitmap fonts are supported.");Line truncated
},{"../core/component":102,"../core/shader":111,"../lib/three":150,"../utils/":172,"load-bmfont":24,"three-bmfont-text":36}],87:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,controllerUtils=_dereq_("../utils/tracked-controls"),DEFAULT_CAMERA_HEIGHT=_dereq_("../constants").DEFAULT_CAMERA_HEIGHT,THREE=_dereq_("../lib/three"),DEFAULT_HANDEDNESS=_dereq_("../constants").DEFAULT_HANDEDNESS,EYES_TO_ELBOW={x:.175,y:-.3,z:-.03},FOREARM={x:0,y:0,z:-.175};module.exports.Component=registerComponent("tracked-controls",{schema:{controller:{default:0},id:{type:"string",default:""},hand:{type:"string",default:""},idPrefix:{type:"string",default:""},orientationOffset:{type:"vec3"},armModel:{default:!0},headElement:{type:"selector"}},init:function(){this.axis=[0,0,0],this.buttonStates={},this.changedAxes=[],this.targetControllerNumber=this.data.controller,this.axisMoveEventDetail={axis:this.axis,changed:this.changedAxes},this.deltaControllerPosition=new THREE.Vector3,this.controllerQuaternion=new THREE.Quaternion,this.controllerEuler=new THREE.Euler,this.updateGamepad(),this.el.object3D.matrixAutoUpdate=!1},tick:function(t,e){var i=this.el.getObject3D("mesh");i&&i.update&&i.update(e/1e3),this.updateGamepad(),this.updatePose(),this.updateButtons()},defaultUserHeight:function(){return DEFAULT_CAMERA_HEIGHT},getHeadElement:function(){return this.data.headElement||this.el.sceneEl.camera.el},updateGamepad:function(){var t=this.data,e=controllerUtils.findMatchingController(this.system.controllers,t.id,t.idPrefix,t.hand,t.controller);this.controller=e},applyArmModel:function(t){var e,i,o,n,r,s=this.controller,a=this.controllerEuler,l=this.controllerQuaternion,h=this.deltaControllerPosition;i=this.getHeadElement(),o=i.object3D,r=this.defaultUserHeight(),n=s.pose,e=(s?s.hand:void 0)||DEFAULT_HANDEDNESS,t.copy(o.position),h.set(EYES_TO_ELBOW.x*("left"===e?-1:"right"===e?1:0),EYES_TO_ELBOW.y,EYES_TO_ELBOW.z),h.multiplyScalar(r),h.applyAxisAngle(o.up,o.rotation.y),t.add(h),h.set(FOREARM.x,FOREARM.y,FOREARM.z),h.multiplyScalar(r),n.orientation?l.fromArray(n.orientation):l.copy(o.quaternion),a.setFromQuaternion(l),a.set(a.x,a.y,0),h.applyEuler(a),t.add(h)},updatePose:function(){var t,e,i=this.controller,o=this.data,n=this.el.object3D,r=this.system.vrDisplay;i&&(t=i.pose,t.position?n.position.fromArray(t.position):o.armModel&&this.applyArmModel(n.position),t.orientation&&n.quaternion.fromArray(t.orientation),r&&t.position&&(e=this.el.sceneEl.renderer.vr.getStandingMatrix(),n.matrixAutoUpdate=!1,n.matrix.compose(n.position,n.quaternion,n.scale),n.matrix.multiplyMatrices(e,n.matrix),n.matrix.decompose(n.position,n.quaternion,n.scale)),n.rotateX(this.data.orientationOffset.x*THREE.Math.DEG2RAD),n.rotateY(this.data.orientationOffset.y*THREE.Math.DEG2RAD),n.rotateZ(this.data.orientationOffset.z*THREE.Math.DEG2RAD),n.updateMatrix(),n.matrixWorldNeedsUpdate=!0)},updateButtons:function(){var t,e,i=this.controller;if(i){for(e=0;e<i.buttons.length;++e)this.buttonStates[e]||(this.buttonStates[e]={pressed:!1,touched:!1,value:0}),t=i.buttons[e],this.handleButton(e,t);this.handleAxes()}},handleButton:function(t,e){return!!(this.handlePress(t,e)|this.handleTouch(t,e)|this.handleValue(t,e))&&(this.el.emit("buttonchanged",{id:t,state:e}),!0)},handleAxes:function(){var t,e=!1,i=this.controller.axes,o=this.axis,n=this.changedAxes;for(this.changedAxes.length=0,t=0;t<i.length;++t)n.push(o[t]!==i[t]),n[t]&&(e=!0);if(!e)return!1;for(this.axis.length=0,t=0;t<i.length;t++)this.axis.push(i[t]);return this.el.emit("axismove",this.axisMoveEventDetail),!0},handlePress:function(t,e){var i,o=this.buttonStates[t];return e.pressed!==o.pressed&&(i=e.pressed?"down":"up",this.el.emit("button"+i,{id:t,state:e}),o.pressed=e.pressed,!0)},handleTouch:function(t,e){var i,o=this.buttonStates[t];return e.touched!==o.touched&&(i=e.touched?"start":"end",this.el.emit("touch"+i,{id:t,state:e},!0,{touches:[]}),o.touched=e.touched,!0)},handleValue:function(t,e){var i=this.buttonStates[t];return e.value!==i.value&&(i.value=e.value,!0)}});
},{"../constants":93,"../core/component":102,"../lib/three":150,"../utils/tracked-controls":178}],88:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent;module.exports.Component=registerComponent("visible",{schema:{default:!0},update:function(){this.el.object3D.visible=this.data}});
},{"../core/component":102}],89:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../core/component").registerComponent,utils=_dereq_("../utils/"),bind=utils.bind,trackedControlsUtils=_dereq_("../utils/tracked-controls"),checkControllerPresentAndSetup=trackedControlsUtils.checkControllerPresentAndSetup,emitIfAxesChanged=trackedControlsUtils.emitIfAxesChanged,onButtonEvent=trackedControlsUtils.onButtonEvent,VIVE_CONTROLLER_MODEL_OBJ_URL="https://cdn.aframe.io/controllers/vive/vr_controller_vive.obj",VIVE_CONTROLLER_MODEL_OBJ_MTL="https://cdn.aframe.io/controllers/vive/vr_controller_vive.mtl",GAMEPAD_ID_PREFIX="OpenVR ";module.exports.Component=registerComponent("vive-controls",{schema:{hand:{default:"left"},buttonColor:{type:"color",default:"#FAFAFA"},buttonHighlightColor:{type:"color",default:"#22D1EE"},model:{default:!0},orientationOffset:{type:"vec3"}},mapping:{axes:{trackpad:[0,1]},buttons:["trackpad","trigger","grip","menu","system"]},init:function(){var t=this;this.animationActive="pointing",this.checkControllerPresentAndSetup=checkControllerPresentAndSetup,this.controllerPresent=!1,this.emitIfAxesChanged=emitIfAxesChanged,this.lastControllerCheck=0,this.onButtonChanged=bind(this.onButtonChanged,this),this.onButtonDown=function(e){onButtonEvent(e.detail.id,"down",t)},this.onButtonUp=function(e){onButtonEvent(e.detail.id,"up",t)},this.onButtonTouchEnd=function(e){onButtonEvent(e.detail.id,"touchend",t)},this.onButtonTouchStart=function(e){onButtonEvent(e.detail.id,"touchstart",t)},this.onAxisMoved=bind(this.onAxisMoved,this),this.previousButtonValues={},this.bindMethods()},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},bindMethods:function(){this.onModelLoaded=bind(this.onModelLoaded,this),this.onControllersUpdate=bind(this.onControllersUpdate,this),this.checkIfControllerPresent=bind(this.checkIfControllerPresent,this),this.removeControllersUpdateListener=bind(this.removeControllersUpdateListener,this),this.onAxisMoved=bind(this.onAxisMoved,this)},addEventListeners:function(){var t=this.el;t.addEventListener("buttonchanged",this.onButtonChanged),t.addEventListener("buttondown",this.onButtonDown),t.addEventListener("buttonup",this.onButtonUp),t.addEventListener("touchend",this.onButtonTouchEnd),t.addEventListener("touchstart",this.onButtonTouchStart),t.addEventListener("model-loaded",this.onModelLoaded),t.addEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!0},removeEventListeners:function(){var t=this.el;t.removeEventListener("buttonchanged",this.onButtonChanged),t.removeEventListener("buttondown",this.onButtonDown),t.removeEventListener("buttonup",this.onButtonUp),t.removeEventListener("touchend",this.onButtonTouchEnd),t.removeEventListener("touchstart",this.onButtonTouchStart),t.removeEventListener("model-loaded",this.onModelLoaded),t.removeEventListener("axismove",this.onAxisMoved),this.controllerEventsActive=!1},checkIfControllerPresent:function(){var t=this.data,e="right"===t.hand?0:"left"===t.hand?1:2;this.checkControllerPresentAndSetup(this,GAMEPAD_ID_PREFIX,{index:e})},injectTrackedControls:function(){var t=this.el,e=this.data;t.setAttribute("tracked-controls",{idPrefix:GAMEPAD_ID_PREFIX,controller:"right"===e.hand?0:"left"===e.hand?1:2,orientationOffset:e.orientationOffset}),this.data.model&&this.el.setAttribute("obj-model",{obj:VIVE_CONTROLLER_MODEL_OBJ_URL,mtl:VIVE_CONTROLLER_MODEL_OBJ_MTL})},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onButtonChanged:function(t){var e,n=this.mapping.buttons[t.detail.id],o=this.buttonMeshes;n&&("trigger"===n&&(e=t.detail.state.value,o&&o.trigger&&(o.trigger.rotation.x=-e*(Math.PI/12))),this.el.emit(n+"changed",t.detail.state))},onModelLoaded:function(t){var e,n=t.detail.model,o=this;this.data.model&&(e=this.buttonMeshes={},e.grip={left:n.getObjectByName("leftgrip"),right:n.getObjectByName("rightgrip")},e.menu=n.getObjectByName("menubutton"),e.system=n.getObjectByName("systembutton"),e.trackpad=n.getObjectByName("touchpad"),e.trigger=n.getObjectByName("trigger"),Object.keys(e).forEach(function(t){o.setButtonColor(t,o.data.buttonColor)}),n.position.set(0,-.015,.04))},onAxisMoved:function(t){this.emitIfAxesChanged(this,this.mapping.axes,t)},updateModel:function(t,e){var n;this.data.model&&(-1!==e.indexOf("touch")||(n="up"===e?this.data.buttonColor:this.data.buttonHighlightColor,this.setButtonColor(t,n)))},setButtonColor:function(t,e){var n=this.buttonMeshes;if(n)return"grip"===t?(n.grip.left.material.color.set(e),void n.grip.right.material.color.set(e)):void n[t].material.color.set(e)}});
},{"../core/component":102,"../utils/":172,"../utils/tracked-controls":178}],90:[function(_dereq_,module,exports){
function isEmptyObject(e){var t;for(t in e)return!1;return!0}var KEYCODE_TO_CODE=_dereq_("../constants").keyboardevent.KEYCODE_TO_CODE,registerComponent=_dereq_("../core/component").registerComponent,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),bind=utils.bind,shouldCaptureKeyEvent=utils.shouldCaptureKeyEvent,CLAMP_VELOCITY=1e-5,MAX_DELTA=.2,KEYS=["KeyW","KeyA","KeyS","KeyD","ArrowUp","ArrowLeft","ArrowRight","ArrowDown"];module.exports.Component=registerComponent("wasd-controls",{schema:{acceleration:{default:65},adAxis:{default:"x",oneOf:["x","y","z"]},adEnabled:{default:!0},adInverted:{default:!1},easing:{default:20},enabled:{default:!0},fly:{default:!1},wsAxis:{default:"z",oneOf:["x","y","z"]},wsEnabled:{default:!0},wsInverted:{default:!1}},init:function(){this.keys={},this.position={},this.velocity=new THREE.Vector3,this.onBlur=bind(this.onBlur,this),this.onFocus=bind(this.onFocus,this),this.onKeyDown=bind(this.onKeyDown,this),this.onKeyUp=bind(this.onKeyUp,this),this.onVisibilityChange=bind(this.onVisibilityChange,this),this.attachVisibilityEventListeners()},tick:function(e,t){var i,n,s=this.data,o=this.el,r=this.position,a=this.velocity;(a[s.adAxis]||a[s.wsAxis]||!isEmptyObject(this.keys))&&(t/=1e3,this.updateVelocity(t),(a[s.adAxis]||a[s.wsAxis])&&(i=o.getAttribute("position"),n=this.getMovementVector(t),r.x=i.x+n.x,r.y=i.y+n.y,r.z=i.z+n.z,o.setAttribute("position",r)))},remove:function(){this.removeKeyEventListeners(),this.removeVisibilityEventListeners()},play:function(){this.attachKeyEventListeners()},pause:function(){this.keys={},this.removeKeyEventListeners()},updateVelocity:function(e){var t,i,n,s,o,r=this.data,a=this.keys,d=this.velocity;if(i=r.adAxis,s=r.wsAxis,e>MAX_DELTA)return d[i]=0,void(d[s]=0);0!==d[i]&&(d[i]-=d[i]*r.easing*e),0!==d[s]&&(d[s]-=d[s]*r.easing*e),Math.abs(d[i])<CLAMP_VELOCITY&&(d[i]=0),Math.abs(d[s])<CLAMP_VELOCITY&&(d[s]=0),r.enabled&&(t=r.acceleration,r.adEnabled&&(n=r.adInverted?-1:1,(a.KeyA||a.ArrowLeft)&&(d[i]-=n*t*e),(a.KeyD||a.ArrowRight)&&(d[i]+=n*t*e)),r.wsEnabled&&(o=r.wsInverted?-1:1,(a.KeyW||a.ArrowUp)&&(d[s]-=o*t*e),(a.KeyS||a.ArrowDown)&&(d[s]+=o*t*e)))},getMovementVector:function(){var e=new THREE.Vector3(0,0,0),t=new THREE.Euler(0,0,0,"YXZ");return function(i){var n,s=this.el.getAttribute("rotation"),o=this.velocity;return e.copy(o),e.multiplyScalar(i),s?(n=this.data.fly?s.x:0,t.set(THREE.Math.degToRad(n),THREE.Math.degToRad(s.y),0),e.applyEuler(t),e):e}}(),attachVisibilityEventListeners:function(){window.addEventListener("blur",this.onBlur),window.addEventListener("focus",this.onFocus),document.addEventListener("visibilitychange",this.onVisibilityChange)},removeVisibilityEventListeners:function(){window.removeEventListener("blur",this.onBlur),window.removeEventListener("focus",this.onFocus),document.removeEventListener("visibilitychange",this.onVisibilityChange)},attachKeyEventListeners:function(){window.addEventListener("keydown",this.onKeyDown),window.addEventListener("keyup",this.onKeyUp)},removeKeyEventListeners:function(){window.removeEventListener("keydown",this.onKeyDown),window.removeEventListener("keyup",this.onKeyUp)},onBlur:function(){this.pause()},onFocus:function(){this.play()},onVisibilityChange:function(){document.hidden?this.onBlur():this.onFocus()},onKeyDown:function(e){var t;shouldCaptureKeyEvent(e)&&(t=e.code||KEYCODE_TO_CODE[e.keyCode],-1!==KEYS.indexOf(t)&&(this.keys[t]=!0))},onKeyUp:function(e){var t;t=e.code||KEYCODE_TO_CODE[e.keyCode],delete this.keys[t]}});
},{"../constants":93,"../core/component":102,"../lib/three":150,"../utils/":172}],91:[function(_dereq_,module,exports){
var bind=_dereq_("../utils/bind"),registerComponent=_dereq_("../core/component").registerComponent,trackedControlsUtils=_dereq_("../utils/tracked-controls"),onButtonEvent=trackedControlsUtils.onButtonEvent,utils=_dereq_("../utils/"),debug=utils.debug("components:windows-motion-controls:debug"),warn=utils.debug("components:windows-motion-controls:warn"),DEFAULT_HANDEDNESS=_dereq_("../constants").DEFAULT_HANDEDNESS,MODEL_BASE_URL="https://cdn.aframe.io/controllers/microsoft/",MODEL_FILENAMES={left:"left.glb",right:"right.glb",default:"universal.glb"},GAMEPAD_ID_PREFIX="Spatial Controller (Spatial Interaction Source) ",GAMEPAD_ID_PATTERN=/([0-9a-zA-Z]+-[0-9a-zA-Z]+)$/;module.exports.Component=registerComponent("windows-motion-controls",{schema:{hand:{default:DEFAULT_HANDEDNESS},pair:{default:0},model:{default:!0},hideDisconnected:{default:!0}},mapping:{axes:{thumbstick:[0,1],trackpad:[2,3]},buttons:["thumbstick","trigger","grip","menu","trackpad"],axisMeshNames:["THUMBSTICK_X","THUMBSTICK_Y","TOUCHPAD_TOUCH_X","TOUCHPAD_TOUCH_Y"],buttonMeshNames:{trigger:"SELECT",menu:"MENU",grip:"GRASP",thumbstick:"THUMBSTICK_PRESS",trackpad:"TOUCHPAD_PRESS"},pointingPoseMeshName:"POINTING_POSE"},bindMethods:function(){this.onModelError=bind(this.onModelError,this),this.onModelLoaded=bind(this.onModelLoaded,this),this.onControllersUpdate=bind(this.onControllersUpdate,this),this.checkIfControllerPresent=bind(this.checkIfControllerPresent,this),this.onAxisMoved=bind(this.onAxisMoved,this)},init:function(){var t=this,e=this.el;this.onButtonChanged=bind(this.onButtonChanged,this),this.onButtonDown=function(e){onButtonEvent(e.detail.id,"down",t)},this.onButtonUp=function(e){onButtonEvent(e.detail.id,"up",t)},this.onButtonTouchStart=function(e){onButtonEvent(e.detail.id,"touchstart",t)},this.onButtonTouchEnd=function(e){onButtonEvent(e.detail.id,"touchend",t)},this.onControllerConnected=function(){t.setModelVisibility(!0)},this.onControllerDisconnected=function(){t.setModelVisibility(!1)},this.controllerPresent=!1,this.lastControllerCheck=0,this.previousButtonValues={},this.bindMethods(),this.loadedMeshInfo={buttonMeshes:null,axisMeshes:null},this.rayOrigin={origin:new THREE.Vector3,direction:new THREE.Vector3(0,0,-1),createdFromMesh:!1},this.emitIfAxesChanged=trackedControlsUtils.emitIfAxesChanged,this.checkControllerPresentAndSetup=trackedControlsUtils.checkControllerPresentAndSetup,e.addEventListener("controllerconnected",this.onControllerConnected),e.addEventListener("controllerdisconnected",this.onControllerDisconnected)},addEventListeners:function(){var t=this.el;t.addEventListener("buttonchanged",this.onButtonChanged),t.addEventListener("buttondown",this.onButtonDown),t.addEventListener("buttonup",this.onButtonUp),t.addEventListener("touchstart",this.onButtonTouchStart),t.addEventListener("touchend",this.onButtonTouchEnd),t.addEventListener("axismove",this.onAxisMoved),t.addEventListener("model-error",this.onModelError),t.addEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!0},removeEventListeners:function(){var t=this.el;t.removeEventListener("buttonchanged",this.onButtonChanged),t.removeEventListener("buttondown",this.onButtonDown),t.removeEventListener("buttonup",this.onButtonUp),t.removeEventListener("touchstart",this.onButtonTouchStart),t.removeEventListener("touchend",this.onButtonTouchEnd),t.removeEventListener("axismove",this.onAxisMoved),t.removeEventListener("model-error",this.onModelError),t.removeEventListener("model-loaded",this.onModelLoaded),this.controllerEventsActive=!1},checkIfControllerPresent:function(){this.checkControllerPresentAndSetup(this,GAMEPAD_ID_PREFIX,{hand:this.data.hand,index:this.data.pair})},play:function(){this.checkIfControllerPresent(),this.addControllersUpdateListener()},pause:function(){this.removeEventListeners(),this.removeControllersUpdateListener()},updateControllerModel:function(){if(!this.data.model||this.rayOrigin.createdFromMesh)return void this.modelReady();var t=this.createControllerModelUrl();this.loadModel(t)},createControllerModelUrl:function(t){var e,n=this.el.components["tracked-controls"],o=n?n.controller:null,i="default",s=this.data.hand;if(o&&(s=o.hand,!t)){var r=o.id.match(GAMEPAD_ID_PATTERN);i=r&&r[0]||i}return e=MODEL_FILENAMES[s]||MODEL_FILENAMES.default,MODEL_BASE_URL+i+"/"+e},injectTrackedControls:function(){var t=this.data;this.el.setAttribute("tracked-controls",{idPrefix:GAMEPAD_ID_PREFIX,controller:t.pair,hand:t.hand,armModel:!1}),this.updateControllerModel()},addControllersUpdateListener:function(){this.el.sceneEl.addEventListener("controllersupdated",this.onControllersUpdate,!1)},removeControllersUpdateListener:function(){this.el.sceneEl.removeEventListener("controllersupdated",this.onControllersUpdate,!1)},onControllersUpdate:function(){this.checkIfControllerPresent()},onModelError:function(t){var e=this.createControllerModelUrl(!0);t.detail.src!==e?(warn("Failed to load controller model for device, attempting to load default.")Line truncated
},{"../constants":93,"../core/component":102,"../utils/":172,"../utils/bind":166,"../utils/tracked-controls":178}],92:[function(_dereq_,module,exports){
var TWEEN=_dereq_("@tweenjs/tween.js"),DIRECTIONS={alternate:"alternate",alternateReverse:"alternate-reverse",normal:"normal",reverse:"reverse"},EASING_FUNCTIONS={linear:TWEEN.Easing.Linear.None,ease:TWEEN.Easing.Cubic.InOut,"ease-in":TWEEN.Easing.Cubic.In,"ease-out":TWEEN.Easing.Cubic.Out,"ease-in-out":TWEEN.Easing.Cubic.InOut,"ease-cubic":TWEEN.Easing.Cubic.In,"ease-in-cubic":TWEEN.Easing.Cubic.In,"ease-out-cubic":TWEEN.Easing.Cubic.Out,"ease-in-out-cubic":TWEEN.Easing.Cubic.InOut,"ease-quad":TWEEN.Easing.Quadratic.InOut,"ease-in-quad":TWEEN.Easing.Quadratic.In,"ease-out-quad":TWEEN.Easing.Quadratic.Out,"ease-in-out-quad":TWEEN.Easing.Quadratic.InOut,"ease-quart":TWEEN.Easing.Quartic.InOut,"ease-in-quart":TWEEN.Easing.Quartic.In,"ease-out-quart":TWEEN.Easing.Quartic.Out,"ease-in-out-quart":TWEEN.Easing.Quartic.InOut,"ease-quint":TWEEN.Easing.Quintic.InOut,"ease-in-quint":TWEEN.Easing.Quintic.In,"ease-out-quint":TWEEN.Easing.Quintic.Out,"ease-in-out-quint":TWEEN.Easing.Quintic.InOut,"ease-sine":TWEEN.Easing.Sinusoidal.InOut,"ease-in-sine":TWEEN.Easing.Sinusoidal.In,"ease-out-sine":TWEEN.Easing.Sinusoidal.Out,"ease-in-out-sine":TWEEN.Easing.Sinusoidal.InOut,"ease-expo":TWEEN.Easing.Exponential.InOut,"ease-in-expo":TWEEN.Easing.Exponential.In,"ease-out-expo":TWEEN.Easing.Exponential.Out,"ease-in-out-expo":TWEEN.Easing.Exponential.InOut,"ease-circ":TWEEN.Easing.Circular.InOut,"ease-in-circ":TWEEN.Easing.Circular.In,"ease-out-circ":TWEEN.Easing.Circular.Out,"ease-in-out-circ":TWEEN.Easing.Circular.InOut,"ease-elastic":TWEEN.Easing.Elastic.InOut,"ease-in-elastic":TWEEN.Easing.Elastic.In,"ease-out-elastic":TWEEN.Easing.Elastic.Out,"ease-in-out-elastic":TWEEN.Easing.Elastic.InOut,"ease-back":TWEEN.Easing.Back.InOut,"ease-in-back":TWEEN.Easing.Back.In,"ease-out-back":TWEEN.Easing.Back.Out,"ease-in-out-back":TWEEN.Easing.Back.InOut,"ease-bounce":TWEEN.Easing.Bounce.InOut,"ease-in-bounce":TWEEN.Easing.Bounce.In,"ease-out-bounce":TWEEN.Easing.Bounce.Out,"ease-in-out-bounce":TWEEN.Easing.Bounce.InOut},FILLS={backwards:"backwards",both:"both",forwards:"forwards",none:"none"},REPEATS={indefinite:"indefinite"},DEFAULTS={attribute:"rotation",begin:"",end:"",delay:0,dur:1e3,easing:"ease",direction:DIRECTIONS.normal,fill:FILLS.forwards,from:void 0,repeat:0,to:void 0};module.exports.defaults=DEFAULTS,module.exports.directions=DIRECTIONS,module.exports.easingFunctions=EASING_FUNCTIONS,module.exports.fills=FILLS,module.exports.repeats=REPEATS;
},{"@tweenjs/tween.js":1}],93:[function(_dereq_,module,exports){
module.exports={AFRAME_INJECTED:"aframe-injected",DEFAULT_CAMERA_HEIGHT:1.6,DEFAULT_HANDEDNESS:"right",animation:_dereq_("./animation"),keyboardevent:_dereq_("./keyboardevent")};
},{"./animation":92,"./keyboardevent":94}],94:[function(_dereq_,module,exports){
module.exports={KEYCODE_TO_CODE:{38:"ArrowUp",37:"ArrowLeft",40:"ArrowDown",39:"ArrowRight",87:"KeyW",65:"KeyA",83:"KeyS",68:"KeyD"}};
},{}],95:[function(_dereq_,module,exports){
function cloneValue(t){return utils.extend({},t)}function getAnimationValues(t,e,i,n,a){function o(){c=new THREE.Color(i||t.getAttribute(e)),p=new THREE.Color(n),d=function(i){h.length>1&&t.setAttribute(h[0],h[1],rgbVectorToHex(i)),t.setAttribute(e,rgbVectorToHex(i))}}var s,r,u,l,d,h=e.split("."),c={},p={};return 2===h.length?function(){var e=h[0],i=h[1],n=t.components[e],a=n&&n.schema;return a&&a[i]&&"color"===a[i].type}()?o():function(){l=h[0],u=h[1],r=t.components[l],r||(t.setAttribute(l,""),r=t.components[l]),s=r.schema,c[e]=void 0===i?getComponentProperty(t,e):i,c[e]=parseProperty(c[e],s[u]),p[e]=parseProperty(n,s[u]),d=function(i){e in i&&t.setAttribute(l,u,i[e])}}():n&&isCoordinates(n)?function(){c=i?coordinates.parse(i):a,p=coordinates.parse(n),d=function(i){t.setAttribute(e,i)}}():-1!==["true","false"].indexOf(n)?function(){c[e]=void 0!==i&&strToBool(i),c[e]=boolToNum(c[e]),p[e]=boolToNum(strToBool(n)),d=function(i){t.setAttribute(e,!!i[e])}}():isNaN(n)?o():function(){c[e]=void 0===i?parseFloat(t.getAttribute(e)):parseFloat(i),p[e]=parseFloat(n),d=function(i){t.setAttribute(e,i[e])}}(),{from:c,partialSetAttribute:d,to:p}}function strToBool(t){return"true"===t}function boolToNum(t){return t?1:0}function componentToHex(t){var e=t.toString(16);return 1===e.length?"0"+e:e}function convertToIntegerColor(t){return Math.floor(255*Math.min(Math.abs(t),1))}function rgbVectorToHex(t){return"#"+["r","g","b"].map(function(e){return componentToHex(convertToIntegerColor(t[e]))}).join("")}var ANode=_dereq_("./a-node"),animationConstants=_dereq_("../constants/animation"),coordinates=_dereq_("../utils/").coordinates,parseProperty=_dereq_("./schema").parseProperty,registerElement=_dereq_("./a-register-element").registerElement,TWEEN=_dereq_("@tweenjs/tween.js"),THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),bind=utils.bind,getComponentProperty=utils.entity.getComponentProperty,DEFAULTS=animationConstants.defaults,DIRECTIONS=animationConstants.directions,EASING_FUNCTIONS=animationConstants.easingFunctions,FILLS=animationConstants.fills,REPEATS=animationConstants.repeats,isCoordinates=coordinates.isCoordinates,warn=utils.debug("core:a-animation:warn"),hasLoggedDeprecation=!1;module.exports.AAnimation=registerElement("a-animation",{prototype:Object.create(ANode.prototype,{createdCallback:{value:function(){this.bindMethods(),this.isRunning=!1,this.partialSetAttribute=function(){},this.tween=null,hasLoggedDeprecation||(warn("<a-animation> has been deprecated and will be replaced by the animation component: https://www.npmjs.com/package/aframe-animation-component"),hasLoggedDeprecation=!0)}},attachedCallback:{value:function(){this.el=this.parentNode,this.handleMixinUpdate(),this.update(),this.load()}},attributeChangedCallback:{value:function(t,e,i){this.hasLoaded&&this.isRunning&&(this.stop(),this.handleMixinUpdate(),this.update())}},detachedCallback:{value:function(){this.isRunning&&this.stop()}},getTween:{value:function(){var t,e,i,n,a=this,o=a.data,s=a.el,r=o.attribute,u=parseInt(o.delay,10),l=getComponentProperty(s,r),d=a.getDirection(o.direction),h=EASING_FUNCTIONS[o.easing],c=o.fill,p=o.repeat===REPEATS.indefinite?1/0:0,v=!1;return t=getAnimationValues(s,r,o.from||a.initialValue,o.to,l),e=t.from,i=t.to,a.partialSetAttribute=t.partialSetAttribute,void 0===a.count&&(a.count=p===1/0?0:parseInt(o.repeat,10)),isNaN(u)&&(u=0),a.initialValue=a.initialValue||cloneValue(l),p===1/0&&c===FILLS.forwards&&-1!==[DIRECTIONS.alternate,DIRECTIONS.alternateReverse].indexOf(o.direction)&&(v=!0),d===DIRECTIONS.reverse&&(n=i,i=cloneValue(e),e=cloneValue(n)),-1!==[FILLS.backwards,FILLS.both].indexOf(c)&&a.partialSetAttribute(e),new TWEEN.Tween(cloneValue(e)).to(i,o.dur).delay(u).easing(h).repeat(p).yoyo(v).onUpdate(function(){a.partialSetAttribute(this)}).onComplete(bind(a.onCompleted,a))}},update:{value:function(){var t=this.data;"infinite"===t.repeat&&console.warn("Using 'infinite' as 'repeat' value is invalid. Use 'indefinite' instead."),""===t.begin||isNaN(t.begin)||(console.warn("Using 'begin' to specify a delay is deprecated. Use 'delay' instead."),t.delay=t.begin,t.begin="");var e=t.begin,i=t.end;this.evt&&this.removeEventListeners(this.evt),this.evt={begin:e,end:i},this.addEventListeners(this.evt),""===e&&(this.stop(),this.start())},writable:window.debug},onCompleted:{value:function(){var t=this.data;if(this.isRunning=!1,-1!==[FILLS.backwards,FILLS.none].indexOf(t.fill)&&this.partialSetAttribute(this.initialValue),0===this.count)return this.count=void 0,void this.emit("animationend");this.isRunning=!1,this.count--,this.start()}},start:{value:function(){var t=this;if(!this.el.hasLoaded)return void this.el.addEventListener("loaded",function(){t.start()});!this.isRunning&&this.el.isPlaying&&(this.tween=this.getTween(),this.isRunning=!0,this.tween.start(),this.emit("animationstart"))},writable:!0},stop:{value:function(){var t=this.tween;t&&(t.stop(),this.isRunning=!1,-1!==[FILLS.backwards,FILLS.none].indexOf(this.data.filLine truncated
},{"../constants/animation":92,"../lib/three":150,"../utils/":172,"./a-node":100,"./a-register-element":101,"./schema":110,"@tweenjs/tween.js":1}],96:[function(_dereq_,module,exports){
function mediaElementLoaded(e){if(e.hasAttribute("autoplay")||"auto"===e.getAttribute("preload"))return new Promise(function(t,r){function i(){for(var r=0,i=0;i<e.buffered.length;i++)r+=e.buffered.end(i)-e.buffered.start(i);r>=e.duration&&(THREE.Cache.files[e.getAttribute("src")]=e,t())}return 4===e.readyState?t():e.error?r():(e.addEventListener("loadeddata",i,!1),e.addEventListener("progress",i,!1),void e.addEventListener("error",r,!1))})}function fixUpMediaElement(e){var t=setCrossOrigin(e);return t.tagName&&"video"===t.tagName.toLowerCase()&&(t.setAttribute("playsinline",""),t.setAttribute("webkit-playsinline","")),t!==e&&(e.parentNode.appendChild(t),e.parentNode.removeChild(e)),t}function setCrossOrigin(e){var t;if(e.hasAttribute("crossorigin"))return e;if(null!==(t=e.getAttribute("src"))){if(-1===t.indexOf("://"))return e;if(extractDomain(t)===window.location.host)return e}return warn('Cross-origin element (e.g., <img>) was requested without `crossorigin` set. A-Frame will re-request the asset with `crossorigin` attribute set. Please set `crossorigin` on the element (e.g., <img crossorigin="anonymous">)',t),e.crossOrigin="anonymous",e.cloneNode(!0)}function extractDomain(e){var t=e.indexOf("://")>-1?e.split("/")[2]:e.split("/")[0];return t.substring(0,t.indexOf(":"))}function inferResponseType(e){var t=e.lastIndexOf(".");if(t>=0){var r=e.slice(t,e.length);if(".gltf"===r||".glb"===r)return"arraybuffer"}return"text"}var ANode=_dereq_("./a-node"),bind=_dereq_("../utils/bind"),debug=_dereq_("../utils/debug"),registerElement=_dereq_("./a-register-element").registerElement,THREE=_dereq_("../lib/three"),fileLoader=new THREE.FileLoader,warn=debug("core:a-assets:warn");module.exports=registerElement("a-assets",{prototype:Object.create(ANode.prototype,{createdCallback:{value:function(){this.isAssets=!0,this.fileLoader=fileLoader,this.timeout=null}},attachedCallback:{value:function(){var e,t,r,i,s,o,n=this,a=[];if(!this.parentNode.isScene)throw new Error("<a-assets> must be a child of a <a-scene>.");for(s=this.querySelectorAll("img"),e=0;e<s.length;e++)i=fixUpMediaElement(s[e]),a.push(new Promise(function(t,r){THREE.Cache.files[s[e].getAttribute("src")]=i,i.onload=t,i.onerror=r}));for(r=this.querySelectorAll("audio, video"),e=0;e<r.length;e++)t=fixUpMediaElement(r[e]),t.src||t.srcObject||warn("Audio/video asset has neither `src` nor `srcObject` attributes."),a.push(mediaElementLoaded(t));Promise.all(a).then(bind(this.load,this)),o=parseInt(this.getAttribute("timeout"),10)||3e3,this.timeout=setTimeout(function(){n.hasLoaded||(warn("Asset loading timed out in ",o,"ms"),n.emit("timeout"),n.load())},o)}},detachedCallback:{value:function(){this.timeout&&clearTimeout(this.timeout)}},load:{value:function(){ANode.prototype.load.call(this,null,function(e){return e.isAssetItem&&e.hasAttribute("src")})}}})}),registerElement("a-asset-item",{prototype:Object.create(ANode.prototype,{createdCallback:{value:function(){this.data=null,this.isAssetItem=!0}},attachedCallback:{value:function(){var e=this,t=this.getAttribute("src");fileLoader.setResponseType(this.getAttribute("response-type")||inferResponseType(t)),fileLoader.load(t,function(t){e.data=t,setTimeout(function(){ANode.prototype.load.call(e)})},function(t){e.emit("progress",{loadedBytes:t.loaded,totalBytes:t.total,xhr:t})},function(t){e.emit("error",{xhr:t})})}}})}),module.exports.inferResponseType=inferResponseType;
},{"../lib/three":150,"../utils/bind":166,"../utils/debug":168,"./a-node":100,"./a-register-element":101}],97:[function(_dereq_,module,exports){
var debug=_dereq_("../utils/debug"),registerElement=_dereq_("./a-register-element").registerElement,warn=debug("core:cubemap:warn");module.exports=registerElement("a-cubemap",{prototype:Object.create(window.HTMLElement.prototype,{attachedCallback:{value:function(){this.srcs=this.validate()},writable:window.debug},validate:{value:function(){var e,t=this.querySelectorAll("[src]"),r=[];if(6===t.length){for(e=0;e<t.length;e++)r.push(t[e].getAttribute("src"));return r}warn("<a-cubemap> did not contain exactly six elements each with a `src` attribute.")},writable:window.debug}})});
},{"../utils/debug":168,"./a-register-element":101}],98:[function(_dereq_,module,exports){
function checkComponentDefined(t,e){return!(!t.components[e]||!t.components[e].attrValue)||isComponentMixedIn(e,t.mixinEls)}function isComponentMixedIn(t,e){var i,n=!1;for(i=0;i<e.length&&!(n=e[i].hasAttribute(t));++i);return n}function mergeComponentData(t,e){return e?e.constructor===Object?utils.extend(e,utils.styleParser.parse(t||{})):t||e:t}function isComponent(t){return-1!==t.indexOf(MULTIPLE_COMPONENT_DELIMITER)&&(t=utils.split(t,MULTIPLE_COMPONENT_DELIMITER)[0]),!!COMPONENTS[t]}function getRotation(t){var e=THREE.Math.radToDeg,i=t.object3D.rotation,n=t.rotationObj;return n.x=e(i.x),n.y=e(i.y),n.z=e(i.z),n}var ANode=_dereq_("./a-node"),COMPONENTS=_dereq_("./component").components,registerElement=_dereq_("./a-register-element").registerElement,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),AEntity,debug=utils.debug("core:a-entity:debug"),warn=utils.debug("core:a-entity:warn"),MULTIPLE_COMPONENT_DELIMITER="__",OBJECT3D_COMPONENTS=["position","rotation","scale","visible"],proto=Object.create(ANode.prototype,{createdCallback:{value:function(){this.components={},this.initializingComponents={},this.componentsToUpdate={},this.isEntity=!0,this.isPlaying=!1,this.object3D=new THREE.Group,this.object3D.el=this,this.object3DMap={},this.parentEl=null,this.rotationObj={},this.states=[]}},attributeChangedCallback:{value:function(t,e,i){var n=this.components[t];if(n&&n.justInitialized&&""===i)return void delete n.justInitialized;(n||null!==i)&&this.setEntityAttribute(t,e,i)}},attachedCallback:{value:function(){var t,e=this.sceneEl,i=this;if(this.addToParent(),!this.isScene){if(!e)return void this.load();if((t=e.querySelector("a-assets"))&&!t.hasLoaded)return void t.addEventListener("loaded",function(){i.load()});this.load()}}},detachedCallback:{value:function(){var t;if(this.parentEl){for(t in this.components)this.removeComponent(t);this.isScene||(this.removeFromParent(),ANode.prototype.detachedCallback.call(this),this.object3D.el=null)}}},handleMixinUpdate:{value:function(t){if(!t)return void this.updateComponents();this.updateComponent(t,this.getDOMAttribute(t))}},getObject3D:{value:function(t){return this.object3DMap[t]}},setObject3D:{value:function(t,e){var i,n=this;if(!(e instanceof THREE.Object3D))throw new Error("`Entity.setObject3D` was called with an object that was not an instance of THREE.Object3D.");i=this.getObject3D(t),i&&this.object3D.remove(i),e.el=this,e.children.length&&e.traverse(function(t){t.el=n}),this.object3D.add(e),this.object3DMap[t]=e,this.emit("object3dset",{object:e,type:t})}},removeObject3D:{value:function(t){var e=this.getObject3D(t);if(!e)return void warn("Tried to remove `Object3D` of type:",t,"which was not defined.");this.object3D.remove(e),delete this.object3DMap[t],this.emit("object3dremove",{type:t})}},getOrCreateObject3D:{value:function(t,e){var i=this.getObject3D(t);return!i&&e&&(i=new e,this.setObject3D(t,i)),warn("`getOrCreateObject3D` has been deprecated. Use `setObject3D()` and `object3dset` event instead."),i}},add:{value:function(t){if(!t.object3D)throw new Error("Trying to add an element that doesn't have an `object3D`");this.object3D.add(t.object3D),this.emit("child-attached",{el:t})}},addToParent:{value:function(){var t=this.parentEl=this.parentNode;t&&t.add&&!this.attachedToParent&&(t.add(this),this.attachedToParent=!0)}},removeFromParent:{value:function(){var t=this.parentEl;this.parentEl.remove(this),this.attachedToParent=!1,this.parentEl=this.parentNode=null,t.emit("child-detached",{el:this})}},load:{value:function(){var t=this;!this.hasLoaded&&this.parentEl&&ANode.prototype.load.call(this,function(){t.parentEl&&(t.updateComponents(),(t.isScene||t.parentEl.isPlaying)&&t.play())})},writable:window.debug},remove:{value:function(t){this.object3D.remove(t.object3D)}},getChildEntities:{value:function(){for(var t=this.children,e=[],i=0;i<t.length;i++){var n=t[i];n instanceof AEntity&&e.push(n)}return e}},initComponent:{value:function(t,e,i){var n,o,s,a;if(s=utils.split(t,MULTIPLE_COMPONENT_DELIMITER),o=s[1],a=s[0],COMPONENTS[a]&&(checkComponentDefined(this,t)||void 0!==e||i)&&!(t in this.components)){if(this.initComponentDependencies(a),o&&!COMPONENTS[a].multiple)throw new Error("Trying to initialize multiple components of type `"+a+"`. There can only be one component of this type per entity.");n=new COMPONENTS[a].Component(this,e,o),this.isPlaying&&n.play(),this.hasAttribute(t)||(n.justInitialized=!0,window.HTMLElement.prototype.setAttribute.call(this,t,"")),debug("Component initialized: %s",t)}},writable:window.debug},initComponentDependencies:{value:function(t){var e,i,n=this,o=COMPONENTS[t];if(o&&(e=COMPONENTS[t].dependencies))for(i=0;i<e.length;i++)n.initComponent(e[i],window.HTMLElement.prototype.getAttribute.call(n,e[i])||void 0,!0)}},removeComponent:{value:function(t){var e;if(e=this.components[t]){if(!e.initialized)return void this.addEventListener("componentinitialized",function e(i){i.detail.name===t&&(this.removeComponent(t),this.removeEventListeneLine truncated
},{"../lib/three":150,"../utils/":172,"./a-node":100,"./a-register-element":101,"./component":102}],99:[function(_dereq_,module,exports){
var ANode=_dereq_("./a-node"),registerElement=_dereq_("./a-register-element").registerElement,components=_dereq_("./component").components,utils=_dereq_("../utils"),MULTIPLE_COMPONENT_DELIMITER="__";module.exports=registerElement("a-mixin",{prototype:Object.create(ANode.prototype,{createdCallback:{value:function(){this.componentCache={},this.id=this.getAttribute("id"),this.isMixin=!0}},attributeChangedCallback:{value:function(t,e,i){this.cacheAttribute(t,i)}},attachedCallback:{value:function(){this.sceneEl=this.closestScene(),this.cacheAttributes(),this.updateEntities(),this.load()}},setAttribute:{value:function(t,e){window.HTMLElement.prototype.setAttribute.call(this,t,e),this.cacheAttribute(t,e)}},cacheAttribute:{value:function(t,e){var i,n;n=utils.split(t,MULTIPLE_COMPONENT_DELIMITER)[0],(i=components[n])&&(void 0===e&&(e=window.HTMLElement.prototype.getAttribute.call(this,t)),this.componentCache[t]=i.parseAttrValueForCache(e))}},getAttribute:{value:function(t){return this.componentCache[t]||window.HTMLElement.prototype.getAttribute.call(this,t)}},cacheAttributes:{value:function(){var t,e,i=this.attributes;for(e=0;e<i.length;e++)t=i[e].name,this.cacheAttribute(t)}},updateEntities:{value:function(){var t,e,i;if(this.sceneEl)for(e=this.sceneEl.querySelectorAll("[mixin~="+this.id+"]"),i=0;i<e.length;i++)t=e[i],t.hasLoaded&&!t.isMixin&&t.mixinUpdate(this.id)}}})});
},{"../utils":172,"./a-node":100,"./a-register-element":101,"./component":102}],100:[function(_dereq_,module,exports){
var registerElement=_dereq_("./a-register-element").registerElement,isNode=_dereq_("./a-register-element").isNode,utils=_dereq_("../utils/"),warn=utils.debug("core:a-node:warn"),MIXIN_OBSERVER_CONFIG={attributes:!0};module.exports=registerElement("a-node",{prototype:Object.create(window.HTMLElement.prototype,{createdCallback:{value:function(){this.computedMixinStr="",this.hasLoaded=!1,this.isNode=!0,this.mixinEls=[],this.mixinObservers={}},writable:window.debug},attachedCallback:{value:function(){var e;this.sceneEl=this.closestScene(),this.sceneEl||warn("You are attempting to attach <"+this.tagName+"> outside of an A-Frame scene. Append this element to `<a-scene>` instead."),this.hasLoaded=!1,this.emit("nodeready",void 0,!1),this.isMixin||(e=this.getAttribute("mixin"))&&this.updateMixins(e)},writable:window.debug},attributeChangedCallback:{value:function(e,t,i){i!==this.computedMixinStr&&("mixin"!==e||this.isMixin||this.updateMixins(i,t))}},closestScene:{value:function(){for(var e=this;e&&!e.isScene;)e=e.parentElement;return e}},closest:{value:function(e){for(var t=this.matches||this.mozMatchesSelector||this.msMatchesSelector||this.oMatchesSelector||this.webkitMatchesSelector,i=this;i&&!t.call(i,e);)i=i.parentElement;return i}},detachedCallback:{value:function(){this.hasLoaded=!1}},load:{value:function(e,t){var i,n,s=this;this.hasLoaded||(t=t||isNode,i=this.getChildren(),n=i.filter(t).map(function(e){return new Promise(function(t){if(e.hasLoaded)return t();e.addEventListener("loaded",t)})}),Promise.all(n).then(function(){s.hasLoaded=!0,e&&e(),s.emit("loaded",void 0,!1)}))},writable:!0},getChildren:{value:function(){return Array.prototype.slice.call(this.children,0)}},updateMixins:{value:function(){var e=[],t=[];return function(i,n){var s,r,a;for(e.length=0,t.length=0,r=i?utils.split(i.trim(),/\s+/):e,a=n?utils.split(n.trim(),/\s+/):t,s=0;s<a.length;s++)-1===r.indexOf(a[s])&&this.unregisterMixin(a[s]);for(this.computedMixinStr="",this.mixinEls.length=0,s=0;s<r.length;s++)this.registerMixin(document.getElementById(r[s]));this.computedMixinStr&&(this.computedMixinStr=this.computedMixinStr.trim(),window.HTMLElement.prototype.setAttribute.call(this,"mixin",this.computedMixinStr))}}()},registerMixin:{value:function(e){var t,i,n;if(e){if(n=e.getAttribute("mixin"))for(t=utils.split(n.trim(),/\s+/),i=0;i<t.length;i++)this.registerMixin(document.getElementById(t[i]));this.computedMixinStr=this.computedMixinStr+" "+e.id,this.mixinEls.push(e),this.attachMixinListener(e)}}},setAttribute:{value:function(e,t){"mixin"===e&&this.updateMixins(t),window.HTMLElement.prototype.setAttribute.call(this,e,t)}},unregisterMixin:{value:function(e){var t,i,n=this.mixinEls;for(t=0;t<n.length;++t)if(i=n[t],e===i.id){n.splice(t,1);break}this.removeMixinListener(e)}},removeMixinListener:{value:function(e){var t=this.mixinObservers[e];t&&(t.disconnect(),this.mixinObservers[e]=null)}},attachMixinListener:{value:function(e){var t,i,n=this;e&&(t=e.id,this.mixinObservers[t]||(i=new MutationObserver(function(e){n.handleMixinUpdate(e[0].attributeName)}),i.observe(e,MIXIN_OBSERVER_CONFIG),this.mixinObservers[t]=i))}},handleMixinUpdate:{value:function(){}},emit:{value:function(){var e={};return function(t,i,n,s){void 0===n&&(n=!0),e.bubbles=!!n,e.detail=i,s&&(e=utils.extend({},s,e)),this.dispatchEvent(new CustomEvent(t,e))}}(),writable:window.debug}})});
},{"../utils/":172,"./a-register-element":101}],101:[function(_dereq_,module,exports){
function addTagName(t){knownTags[t.toLowerCase()]=!0}function wrapANodeMethods(t){var e={};return wrapMethods(e,["attachedCallback","attributeChangedCallback","createdCallback"],t,ANode.prototype),copyProperties(t,e),e}function wrapAEntityMethods(t){var e={},o=["attachedCallback","attributeChangedCallback","createdCallback"],r=["attachedCallback","attributeChangedCallback","createdCallback","detachedCallback"];return wrapMethods(e,o,t,ANode.prototype),wrapMethods(e,r,t,AEntity.prototype),copyProperties(t,e),e}function wrapMethods(t,e,o,r){e.forEach(function(e){wrapMethod(t,e,o,r)})}function wrapMethod(t,e,o,r){var a=o[e],n=r[e];a&&n&&a!==n&&(t[e]={value:function(){return n.apply(this,arguments),a.apply(this,arguments)},writable:window.debug})}function copyProperties(t,e){Object.getOwnPropertyNames(t).forEach(function(o){var r;e[o]||(r=Object.getOwnPropertyDescriptor(t,o),e[o]={value:t[o],writable:r.writable})})}_dereq_("document-register-element");var ANode,AEntity,knownTags=module.exports.knownTags={};module.exports.isNode=function(t){return t.tagName.toLowerCase()in knownTags||t.isNode},module.exports.registerElement=function(t,e){var o=Object.getPrototypeOf(e.prototype),r=e,a=ANode&&o===ANode.prototype,n=AEntity&&o===AEntity.prototype;return(a||n)&&addTagName(t),a&&(r=wrapANodeMethods(e.prototype),r={prototype:Object.create(o,r)}),n&&(r=wrapAEntityMethods(e.prototype),r={prototype:Object.create(o,r)}),Object.getOwnPropertyNames(r.prototype).forEach(function(t){var e=r.prototype[t];"function"==typeof e&&(e.displayName=t)}),document.registerElement(t,r)},module.exports.wrapMethods=wrapMethods,ANode=_dereq_("./a-node"),AEntity=_dereq_("./a-entity");
},{"./a-entity":98,"./a-node":100,"document-register-element":13}],102:[function(_dereq_,module,exports){
function cloneData(e){var t,i,r={};for(i in e)t=e[i],r[i]=isObjectOrArray(t)?utils.clone(t):t;return r}function extendProperties(e,t,i){if(i&&(null===t||"object"!=typeof t))return t;var r,s=utils.extend(e,t);for(r in s)s[r]&&s[r].constructor===Object&&(s[r]=utils.clone(s[r]));return s}function hasBehavior(e){return e.tick||e.tock}function wrapPause(e){return function(){var t=this.el.sceneEl;this.isPlaying&&(e.call(this),this.isPlaying=!1,hasBehavior(this)&&t.removeBehavior(this))}}function wrapPlay(e){return function(){var t=this.el.sceneEl,i=this.el.isPlaying&&!this.isPlaying;this.initialized&&i&&(e.call(this),this.isPlaying=!0,hasBehavior(this)&&t.addBehavior(this))}}function isObjectOrArray(e){return e&&(e.constructor===Object||e.constructor===Array)}var schema=_dereq_("./schema"),scenes=_dereq_("./scene/scenes"),systems=_dereq_("./system"),utils=_dereq_("../utils/"),components=module.exports.components={},parseProperties=schema.parseProperties,parseProperty=schema.parseProperty,processSchema=schema.process,isSingleProp=schema.isSingleProperty,stringifyProperties=schema.stringifyProperties,stringifyProperty=schema.stringifyProperty,styleParser=utils.styleParser,warn=utils.debug("core:component:warn"),aframeScript=document.currentScript,upperCaseRegExp=new RegExp("[A-Z]+"),Component=module.exports.Component=function(e,t,i){var r=this;this.el=e,this.id=i,this.attrName=this.name+(i?"__"+i:""),this.evtDetail={id:this.id,name:this.name},this.initialized=!1,this.el.components[this.attrName]=this,this.oldData=void 0,this.previousAttrValue=void 0,this.throttledEmitComponentChanged=utils.throttle(function(){e.emit("componentchanged",r.evtDetail,!1)},200),this.updateProperties(t)};if(Component.prototype={schema:{},init:function(){},update:function(e){},updateSchema:void 0,tick:void 0,tock:void 0,play:function(){},pause:function(){},remove:function(){},parse:function(e,t){var i=this.schema;return isSingleProp(i)?parseProperty(e,i):parseProperties(styleParser.parse(e),i,!0,this.name,t)},stringify:function(e){var t=this.schema;return"string"==typeof e?e:isSingleProp(t)?stringifyProperty(e,t):(e=stringifyProperties(e,t),styleParser.stringify(e))},updateCachedAttrValue:function(e,t){var i,r=this.parseAttrValueForCache(e),s=isSingleProp(this.schema);if(void 0!==e)if(s||t)this.attrValue=r;else{this.attrValue=this.attrValue?cloneData(this.attrValue):{};for(i in r)this.attrValue[i]=r[i]}},parseAttrValueForCache:function(e){var t;return"string"!=typeof e?e:(isSingleProp(this.schema)?"string"==typeof(t=this.schema.parse(e))&&(t=e):t=styleParser.parse(e),t)},flushToDOM:function(e){var t=e?this.data:this.attrValue;t&&window.HTMLElement.prototype.setAttribute.call(this.el,this.attrName,this.stringify(t))},updateProperties:function(e,t){var i,r,s,a=this.el,o=this.oldData;if(!a.hasLoaded)return void this.updateCachedAttrValue(e);if(i=isSingleProp(this.schema),s=null!==e&&"object"==typeof this.previousAttrValue&&e===this.previousAttrValue){for(r in this.attrValue)if(!(r in e)){s=!1;break}for(r in e)if(!(r in this.attrValue)){s=!1;break}}if(this.previousAttrValue=e,e=this.parseAttrValueForCache(e),this.updateCachedAttrValue(e,t),this.updateSchema&&this.updateSchema(this.buildData(this.attrValue,!1,!0)),this.data=this.buildData(this.attrValue,t,!1,s),this.initialized){if(utils.deepEqual(this.oldData,this.data))return;this.oldData=extendProperties({},this.data,i),this.update(o),this.throttledEmitComponentChanged()}else{if(a.initializingComponents[this.name])return;a.initializingComponents[this.name]=!0,this.init(),this.initialized=!0,delete a.initializingComponents[this.name],o=i&&"object"!=typeof parseProperty(void 0,this.schema)?void 0:{},this.oldData=extendProperties({},this.data,i),this.update(o),a.isPlaying&&this.play(),a.emit("componentinitialized",this.evtDetail,!1)}},resetProperty:function(e){if(isSingleProp(this.schema))this.attrValue=void 0;else{if(!(e in this.attrValue))return;delete this.attrValue[e]}this.updateProperties(this.attrValue)},extendSchema:function(e){var t=utils.extend({},components[this.name].schema);utils.extend(t,e),this.schema=processSchema(t),this.el.emit("schemachanged",{component:this.name})},buildData:function(e,t,i,r){var s,a,o,n,p,h,c,l,u=this.schema,m=isSingleProp(u),d=this.el.mixinEls;if(s=e&&e.constructor===Array?e.length:void 0!==e&&null!==e,m)a=isObjectOrArray(u.default)?utils.clone(u.default):u.default;else for(l=!t&&this.attrValue,a="object"==typeof l?cloneData(l):{},c=0,n=Object.keys(u),p=n.length;c<p;c++)o=u[n[c]].default,void 0===a[n[c]]&&(a[n[c]]=isObjectOrArray(o)?utils.clone(o):o);for(c=0;c<d.length;c++)(h=d[c].getAttribute(this.attrName))&&(a=extendProperties(a,h,m));if(s){if(m)return!0===r?e:parseProperty(e,u);a=extendProperties(a,e,m)}else{if(!0===r)return a;if(m)return parseProperty(a,u)}return!0===r?a:parseProperties(a,u,void 0,this.name,i)}},window.debug)var registrationOrderWarnings=module.exports.registrationOrderWarnings={};module.exports.registerComponent=function(e,t){var i,Line truncated
},{"../utils/":172,"./scene/scenes":108,"./schema":110,"./system":112}],103:[function(_dereq_,module,exports){
var schema=_dereq_("./schema"),processSchema=schema.process,geometries=module.exports.geometries={},geometryNames=module.exports.geometryNames=[],THREE=_dereq_("../lib/three"),Geometry=module.exports.Geometry=function(){};Geometry.prototype={schema:{},init:function(e){return this.geometry=new THREE.Geometry,this.geometry},update:function(e){}},module.exports.registerGeometry=function(e,t){var r,o={};if(Object.keys(t).forEach(function(e){o[e]={value:t[e],writable:!0}}),geometries[e])throw new Error("The geometry `"+e+"` has been already registered");return r=function(){Geometry.call(this)},r.prototype=Object.create(Geometry.prototype,o),r.prototype.name=e,r.prototype.constructor=r,geometries[e]={Geometry:r,schema:processSchema(r.prototype.schema)},geometryNames.push(e),r};
},{"../lib/three":150,"./schema":110}],104:[function(_dereq_,module,exports){
function registerPropertyType(e,r,t,n){if("type"in propertyTypes)return void error("Property type "+e+" is already registered.");propertyTypes[e]={default:r,parse:t||defaultParse,stringify:n||defaultStringify}}function arrayParse(e){function r(e){return e.trim()}return Array.isArray(e)?e:e&&"string"==typeof e?e.split(",").map(r):[]}function arrayStringify(e){return e.join(", ")}function assetParse(e){var r,t;return"string"!=typeof e?e:(t=e.match(/\url\((.+)\)/),t?t[1]:"#"===e.charAt(0)?(r=document.getElementById(e.substring(1)))?"CANVAS"===r.tagName||"VIDEO"===r.tagName||"IMG"===r.tagName?r:r.getAttribute("src"):void warn('"'+e+'" asset not found.'):e)}function defaultParse(e){return e}function defaultStringify(e){return null===e?"null":e.toString()}function boolParse(e){return"false"!==e&&!1!==e}function intParse(e){return parseInt(e,10)}function numberParse(e){return parseFloat(e,10)}function selectorParse(e){return e?"string"!=typeof e?e:"#"!==e[0]||nonCharRegex.test(e)?document.querySelector(e):document.getElementById(e.substring(1)):null}function selectorAllParse(e){return e?"string"!=typeof e?e:Array.prototype.slice.call(document.querySelectorAll(e),0):null}function selectorStringify(e){return e.getAttribute?"#"+e.getAttribute("id"):defaultStringify(e)}function selectorAllStringify(e){return e instanceof Array?e.map(function(e){return"#"+e.getAttribute("id")}).join(", "):defaultStringify(e)}function srcParse(e){return warn("`src` property type is deprecated. Use `asset` instead."),assetParse(e)}function vecParse(e){return coordinates.parse(e,this.default)}function isValidDefaultValue(e,r){return("audio"!==e||"string"==typeof r)&&(!("array"===e&&!Array.isArray(r))&&(("asset"!==e||"string"==typeof r)&&(("boolean"!==e||"boolean"==typeof r)&&(("color"!==e||"string"==typeof r)&&(("int"!==e||"number"==typeof r)&&(("number"!==e||"number"==typeof r)&&(("map"!==e||"string"==typeof r)&&(("model"!==e||"string"==typeof r)&&(("selector"!==e||"string"==typeof r||null===r)&&(("selectorAll"!==e||"string"==typeof r||null===r)&&(("src"!==e||"string"==typeof r)&&(("string"!==e||"string"==typeof r)&&(("time"!==e||"number"==typeof r)&&("vec2"===e?isValidDefaultCoordinate(r,2):"vec3"===e?isValidDefaultCoordinate(r,3):"vec4"!==e||isValidDefaultCoordinate(r,4)))))))))))))))}function isValidDefaultCoordinate(e,r){if(null===e)return!0;if("object"!=typeof e)return!1;if(Object.keys(e).length!==r)return!1;var t=e.x,n=e.y,i=e.z,o=e.w;return"number"==typeof t&&"number"==typeof n&&(!(r>2&&"number"!=typeof i)&&!(r>3&&"number"!=typeof o))}var coordinates=_dereq_("../utils/coordinates"),debug=_dereq_("debug"),error=debug("core:propertyTypes:warn"),warn=debug("core:propertyTypes:warn"),propertyTypes=module.exports.propertyTypes={},nonCharRegex=/[,> .[\]:]/;registerPropertyType("audio","",assetParse),registerPropertyType("array",[],arrayParse,arrayStringify),registerPropertyType("asset","",assetParse),registerPropertyType("boolean",!1,boolParse),registerPropertyType("color","#FFF",defaultParse,defaultStringify),registerPropertyType("int",0,intParse),registerPropertyType("number",0,numberParse),registerPropertyType("map","",assetParse),registerPropertyType("model","",assetParse),registerPropertyType("selector",null,selectorParse,selectorStringify),registerPropertyType("selectorAll",null,selectorAllParse,selectorAllStringify),registerPropertyType("src","",srcParse),registerPropertyType("string","",defaultParse,defaultStringify),registerPropertyType("time",0,intParse),registerPropertyType("vec2",{x:0,y:0},vecParse,coordinates.stringify),registerPropertyType("vec3",{x:0,y:0,z:0},vecParse,coordinates.stringify),registerPropertyType("vec4",{x:0,y:0,z:0,w:1},vecParse,coordinates.stringify),module.exports.registerPropertyType=registerPropertyType,module.exports.isValidDefaultValue=isValidDefaultValue,module.exports.isValidDefaultCoordinate=isValidDefaultCoordinate;
},{"../utils/coordinates":167,"debug":10}],105:[function(_dereq_,module,exports){
function getCanvasSize(e,t){return t?{height:e.parentElement.offsetHeight,width:e.parentElement.offsetWidth}:{height:window.innerHeight,width:window.innerWidth}}function requestFullscreen(e){(e.requestFullscreen||e.webkitRequestFullscreen||e.mozRequestFullScreen||e.msRequestFullscreen).apply(e)}function exitFullscreen(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()}function setupCanvas(e){function t(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||e.exitVR(),document.activeElement.blur(),document.body.focus()}var i;i=document.createElement("canvas"),i.classList.add("a-canvas"),i.dataset.aframeCanvas=!0,e.appendChild(i),document.addEventListener("fullscreenchange",t),document.addEventListener("mozfullscreenchange",t),document.addEventListener("webkitfullscreenchange",t),i.addEventListener("touchmove",function(e){e.preventDefault()}),e.canvas=i,e.emit("render-target-loaded",{target:i}),setTimeout(bind(e.resize,e),0)}var initMetaTags=_dereq_("./metaTags").inject,initWakelock=_dereq_("./wakelock"),re=_dereq_("../a-register-element"),scenes=_dereq_("./scenes"),systems=_dereq_("../system").systems,THREE=_dereq_("../../lib/three"),TWEEN=_dereq_("@tweenjs/tween.js"),utils=_dereq_("../../utils/"),AEntity=_dereq_("../a-entity"),ANode=_dereq_("../a-node"),initPostMessageAPI=_dereq_("./postMessage"),bind=utils.bind,isIOS=utils.device.isIOS(),isMobile=utils.device.isMobile(),registerElement=re.registerElement,warn=utils.debug("core:a-scene:warn");module.exports.AScene=registerElement("a-scene",{prototype:Object.create(AEntity.prototype,{createdCallback:{value:function(){this.isIOS=isIOS,this.isMobile=isMobile,this.isScene=!0,this.object3D=new THREE.Scene;var e=this;this.object3D.onAfterRender=function(t,i,s){e.isPlaying&&e.tock(e.time,e.delta,s)},this.render=bind(this.render,this),this.systems={},this.systemNames=[],this.time=this.delta=0,this.init()}},init:{value:function(){this.behaviors={tick:[],tock:[]},this.hasLoaded=!1,this.isPlaying=!1,this.originalHTML=this.innerHTML,this.renderTarget=null,setupCanvas(this),this.setupRenderer(),this.resize(),this.addFullScreenStyles(),initPostMessageAPI(this),this.setAttribute("inspector",""),this.setAttribute("keyboard-shortcuts",""),this.setAttribute("screenshot",""),this.setAttribute("vr-mode-ui","")},writable:!0},addFullScreenStyles:{value:function(){document.documentElement.classList.add("a-html"),document.body.classList.add("a-body"),this.classList.add("fullscreen")}},removeFullScreenStyles:{value:function(){document.documentElement.classList.remove("a-html"),document.body.classList.remove("a-body"),this.classList.remove("fullscreen")}},attachedCallback:{value:function(){var e,t=this;initMetaTags(this),initWakelock(this),this.initSystems(),e=bind(this.resize,this),window.addEventListener("load",e),window.addEventListener("resize",function(){this.isIOS?setTimeout(e,100):e()}),this.play(),scenes.push(this),this.onVRPresentChangeBound=bind(this.onVRPresentChange,this),window.addEventListener("vrdisplaypresentchange",this.onVRPresentChangeBound),this.enterVRBound=function(){t.enterVR()},this.exitVRBound=function(){t.exitVR()},this.exitVRTrueBound=function(){t.exitVR(!0)},this.pointerRestrictedBound=function(){t.pointerRestricted()},this.pointerUnrestrictedBound=function(){t.pointerUnrestricted()},window.addEventListener("vrdisplayactivate",this.enterVRBound),window.addEventListener("vrdisplaydeactivate",this.exitVRBound),window.addEventListener("vrdisplaydisconnect",this.exitVRTrueBound),window.addEventListener("vrdisplaypointerrestricted",this.pointerRestrictedBound),window.addEventListener("vrdisplaypointerunrestricted",this.pointerUnrestrictedBound)},writable:window.debug},initSystems:{value:function(){Object.keys(systems).forEach(bind(this.initSystem,this))}},initSystem:{value:function(e){this.systems[e]||(this.systems[e]=new systems[e](this),this.systemNames.push(e))}},detachedCallback:{value:function(){var e=scenes.indexOf(this);scenes.splice(e,1),window.removeEventListener("vrdisplaypresentchange",this.onVRPresentChangeBound),window.removeEventListener("vrdisplayactivate",this.enterVRBound),window.removeEventListener("vrdisplaydeactivate",this.exitVRBound),window.removeEventListener("vrdisplayconnect",this.enterVRBound),window.removeEventListener("vrdisplaydisconnect",this.exitVRTrueBound),window.removeEventListener("vrdisplaypointerrestricted",this.pointerRestrictedBound),window.removeEventListener("vrdisplaypointerunrestricted",this.pointerUnrestrictedBound)}},addBehavior:{value:function(e){var t,i,s=this.behaviors;for(i in s)e[i]&&(t=this.behaviors[i],-1===t.indexOf(e)&&t.push(e))}},getPointerLockElement:{value:function(){return document.pointerLockElement},writable:window.debug},checkHeadsetConnected:{value:utils.device.checkHeadsetConnected,writable:window.debug},enterVR:{value:function(e){funcLine truncated
},{"../../lib/three":150,"../../utils/":172,"../a-entity":98,"../a-node":100,"../a-register-element":101,"../system":112,"./metaTags":106,"./postMessage":107,"./scenes":108,"./wakelock":109,"@tweenjs/tween.js":1}],106:[function(_dereq_,module,exports){
function Meta(e){return{tagName:"meta",attributes:e,exists:function(){return document.querySelector('meta[name="'+e.name+'"]')}}}function Link(e){return{tagName:"link",attributes:e,exists:function(){return document.querySelector('link[rel="'+e.rel+'"]')}}}function createTag(e){if(e&&e.tagName){var t=document.createElement(e.tagName);return t.setAttribute(constants.AFRAME_INJECTED,""),extend(t,e.attributes)}}var constants=_dereq_("../../constants/"),extend=_dereq_("../../utils").extend,MOBILE_HEAD_TAGS=module.exports.MOBILE_HEAD_TAGS=[Meta({name:"viewport",content:"width=device-width,initial-scale=1,maximum-scale=1,shrink-to-fit=no,user-scalable=no,minimal-ui"}),Meta({name:"mobile-web-app-capable",content:"yes"}),Meta({name:"theme-color",content:"black"})],MOBILE_IOS_HEAD_TAGS=[Meta({name:"apple-mobile-web-app-capable",content:"yes"}),Meta({name:"apple-mobile-web-app-status-bar-style",content:"black"}),Link({rel:"apple-touch-icon",href:"https://aframe.io/images/aframe-logo-152.png"})];module.exports.inject=function(e){function t(e){e&&!e.exists()&&(a=createTag(e))&&(r?r.parentNode.insertBefore(a,r):n.appendChild(a),i.push(a))}var a,n=document.head,r=n.querySelector("script"),i=[];return MOBILE_HEAD_TAGS.forEach(t),e.isIOS&&MOBILE_IOS_HEAD_TAGS.forEach(t),i};
},{"../../constants/":93,"../../utils":172}],107:[function(_dereq_,module,exports){
function postMessageAPIHandler(e){var a=this;if(e.data)switch(e.data.type){case"vr":switch(e.data.data){case"enter":a.enterVR();break;case"exit":a.exitVR()}}}var bind=_dereq_("../../utils/bind"),isIframed=_dereq_("../../utils/").isIframed;module.exports=function(e){isIframed()&&window.addEventListener("message",bind(postMessageAPIHandler,e))};
},{"../../utils/":172,"../../utils/bind":166}],108:[function(_dereq_,module,exports){
module.exports=[];
},{}],109:[function(_dereq_,module,exports){
var Wakelock=_dereq_("../../../vendor/wakelock/wakelock");module.exports=function(e){if(e.isMobile){var n=e.wakelock=new Wakelock;e.addEventListener("enter-vr",function(){n.request()}),e.addEventListener("exit-vr",function(){n.release()})}};
},{"../../../vendor/wakelock/wakelock":182}],110:[function(_dereq_,module,exports){
function isSingleProperty(r){return"type"in r?"string"==typeof r.type:"default"in r}function processPropertyDefinition(r,e){var t,o,n=r.default,p=r.type;return r.type?"bool"===r.type?p="boolean":"float"===r.type&&(p="number"):p=void 0===n||"boolean"!=typeof n&&"number"!=typeof n?Array.isArray(n)?"array":"string":typeof n,o=propertyTypes[p],o||warn("Unknown property type for component `"+e+"`: "+p),t=!!r.parse,r.parse=r.parse||o.parse,r.stringify=r.stringify||o.stringify,r.type=p,"default"in r?t||isValidDefaultValue(p,n)||warn("Default value `"+n+"` does not match type `"+p+"` in component `"+e+"`"):r.default=o.default,r}function parseProperty(r,e){return void 0!==r&&null!==r&&""!==r||(r=e.default,Array.isArray(r)&&(r=r.slice())),e.parse(r,e.default)}function stringifyProperty(r,e){return"object"!=typeof r?r:e&&null!==r?e.stringify(r):JSON.stringify(r)}var utils=_dereq_("../utils/"),PropertyTypes=_dereq_("./propertyTypes"),debug=utils.debug,isValidDefaultValue=PropertyTypes.isValidDefaultValue,propertyTypes=PropertyTypes.propertyTypes,warn=debug("core:schema:warn");module.exports.isSingleProperty=isSingleProperty,module.exports.process=function(r,e){var t;if(isSingleProperty(r))return processPropertyDefinition(r,e);for(t in r)r[t]=processPropertyDefinition(r[t],e);return r},module.exports.processPropertyDefinition=processPropertyDefinition,module.exports.parseProperties=function(){var r=[];return function(e,t,o,n,p){var i,s,y,u;r.length=0;for(s in o?e:t)r.push(s);if(null===e||"object"!=typeof e)return e;for(s in e)t[s]||p||warn("Unknown property `"+s+"` for component/system `"+n+"`.");for(i=0;i<r.length;i++){if(s=r[i],y=t[s],u=e[s],!t[s])return;e[s]=parseProperty(u,y)}return e}}(),module.exports.parseProperty=parseProperty,module.exports.stringifyProperties=function(r,e){var t,o,n,p,i={};for(t in r)o=e[t],n=r[t],p=n,"object"==typeof p&&(p=stringifyProperty(n,o),o||warn("Unknown component property: "+t)),i[t]=p;return i},module.exports.stringifyProperty=stringifyProperty;
},{"../utils/":172,"./propertyTypes":104}],111:[function(_dereq_,module,exports){
var schema=_dereq_("./schema"),processSchema=schema.process,shaders=module.exports.shaders={},shaderNames=module.exports.shaderNames=[],THREE=_dereq_("../lib/three"),utils=_dereq_("../utils"),propertyToThreeMapping={array:"v3",color:"v3",int:"i",number:"f",map:"t",time:"f",vec2:"v2",vec3:"v3",vec4:"v4"},Shader=module.exports.Shader=function(){};Shader.prototype={schema:{},vertexShader:"void main() {gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);}",fragmentShader:"void main() {gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0);}",init:function(e){return this.attributes=this.initVariables(e,"attribute"),this.uniforms=this.initVariables(e,"uniform"),this.material=new(this.raw?THREE.RawShaderMaterial:THREE.ShaderMaterial)({uniforms:this.uniforms,vertexShader:this.vertexShader,fragmentShader:this.fragmentShader}),this.material},initVariables:function(e,r){var t,a,i=this.schema,s={};for(t in i)i[t].is===r&&(a=propertyToThreeMapping[i[t].type],s[t]={type:a,value:void 0});return s},update:function(e){this.updateVariables(e,"attribute"),this.updateVariables(e,"uniform")},updateVariables:function(e,r){var t,a,i,s=this.schema;i="uniform"===r?this.uniforms:this.attributes;for(t in e)if(s[t]&&s[t].is===r)if("map"!==s[t].type)i[t].value=this.parseValue(s[t].type,e[t]),i[t].needsUpdate=!0;else{if(!i[t]||i[t].value===e[t])continue;a="_texture_"+t,this.setMapOnTextureLoad(i,t,a),utils.material.updateMapMaterialFromData(a,t,this,e)}},parseValue:function(e,r){var t;switch(e){case"vec2":return new THREE.Vector2(r.x,r.y);case"vec3":return new THREE.Vector3(r.x,r.y,r.z);case"vec4":return new THREE.Vector4(r.x,r.y,r.z,r.w);case"color":return t=new THREE.Color(r),new THREE.Vector3(t.r,t.g,t.b);case"map":return THREE.ImageUtils.loadTexture(r);default:return r}},setMapOnTextureLoad:function(e,r,t){var a=this;this.el.addEventListener("materialtextureloaded",function(){e[r].value=a.material[t],e[r].needsUpdate=!0})}},module.exports.registerShader=function(e,r){var t,a={};if(Object.keys(r).forEach(function(e){a[e]={value:r[e],writable:!0}}),shaders[e])throw new Error("The shader "+e+" has been already registered");return t=function(){Shader.call(this)},t.prototype=Object.create(Shader.prototype,a),t.prototype.name=e,t.prototype.constructor=t,shaders[e]={Shader:t,schema:processSchema(t.prototype.schema)},shaderNames.push(e),t};
},{"../lib/three":150,"../utils":172,"./schema":110}],112:[function(_dereq_,module,exports){
var components=_dereq_("./component"),schema=_dereq_("./schema"),utils=_dereq_("../utils/"),parseProperties=schema.parseProperties,parseProperty=schema.parseProperty,processSchema=schema.process,isSingleProp=schema.isSingleProperty,styleParser=utils.styleParser,systems=module.exports.systems={},System=module.exports.System=function(e){var t=components&&components.components[this.name];this.el=e,this.sceneEl=e,t&&(t.Component.prototype.system=this),this.buildData(),this.init(),this.update({})};System.prototype={schema:{},init:function(){},update:function(e){},updateProperties:function(e){var t=this.data;Object.keys(schema).length&&(this.buildData(e),this.update(t))},buildData:function(e){var t=this.schema;Object.keys(t).length&&(e=e||window.HTMLElement.prototype.getAttribute.call(this.sceneEl,this.name),isSingleProp(t)?this.data=parseProperty(e,t):this.data=parseProperties(styleParser.parse(e)||{},t))},tick:void 0,tock:void 0,play:function(){},pause:function(){}},module.exports.registerSystem=function(e,t){var s,o,r={},i=utils.findAllScenes(document);if(Object.keys(t).forEach(function(e){r[e]={value:t[e],writable:!0}}),systems[e])throw new Error("The system `"+e+"` has been already registered. Check that you are not loading two versions of the same system or two different systems of the same name.");for(o=function(e){System.call(this,e)},o.prototype=Object.create(System.prototype,r),o.prototype.name=e,o.prototype.constructor=o,o.prototype.schema=utils.extend(processSchema(o.prototype.schema)),systems[e]=o,s=0;s<i.length;s++)i[s].initSystem(e)};
},{"../utils/":172,"./component":102,"./schema":110}],113:[function(_dereq_,module,exports){
_dereq_("./pivot");
},{"./pivot":114}],114:[function(_dereq_,module,exports){
var registerComponent=_dereq_("../../core/component").registerComponent,THREE=_dereq_("../../lib/three"),originalPosition=new THREE.Vector3,originalRotation=new THREE.Vector3;registerComponent("pivot",{dependencies:["position"],schema:{type:"vec3"},init:function(){var o=this.data,i=this.el,t=i.object3D.parent,e=i.object3D,n=new THREE.Group;originalPosition.copy(e.position),originalRotation.copy(e.rotation),t.remove(e),n.add(e),t.add(n),i.object3D=n,e.position.set(-1*o.x,-1*o.y,-1*o.z),n.position.set(o.x+originalPosition.x,o.y+originalPosition.y,o.z+originalPosition.z),n.rotation.copy(e.rotation),e.rotation.set(0,0,0)}});
},{"../../core/component":102,"../../lib/three":150}],115:[function(_dereq_,module,exports){
function addMapping(e){var a=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();"fog"===e&&(a="material-fog"),"visible"===e&&(a="material-visible"),materialMappings[a]="material."+e}var components=_dereq_("../../core/component").components,shaders=_dereq_("../../core/shader").shaders,utils=_dereq_("../../utils/"),materialMappings={};Object.keys(components.material.schema).forEach(addMapping),Object.keys(shaders.standard.schema).forEach(addMapping),module.exports=function(){return{defaultComponents:{material:{}},mappings:utils.extend({},materialMappings)}};
},{"../../core/component":102,"../../core/shader":111,"../../utils/":172}],116:[function(_dereq_,module,exports){
_dereq_("./primitives/a-camera"),_dereq_("./primitives/a-collada-model"),_dereq_("./primitives/a-cursor"),_dereq_("./primitives/a-curvedimage"),_dereq_("./primitives/a-gltf-model"),_dereq_("./primitives/a-image"),_dereq_("./primitives/a-light"),_dereq_("./primitives/a-link"),_dereq_("./primitives/a-obj-model"),_dereq_("./primitives/a-sky"),_dereq_("./primitives/a-sound"),_dereq_("./primitives/a-text"),_dereq_("./primitives/a-video"),_dereq_("./primitives/a-videosphere"),_dereq_("./primitives/meshPrimitives");
},{"./primitives/a-camera":118,"./primitives/a-collada-model":119,"./primitives/a-cursor":120,"./primitives/a-curvedimage":121,"./primitives/a-gltf-model":122,"./primitives/a-image":123,"./primitives/a-light":124,"./primitives/a-link":125,"./primitives/a-obj-model":126,"./primitives/a-sky":127,"./primitives/a-sound":128,"./primitives/a-text":129,"./primitives/a-video":130,"./primitives/a-videosphere":131,"./primitives/meshPrimitives":132}],117:[function(_dereq_,module,exports){
function addComponentMapping(e,t){var i=components[e].schema;Object.keys(i).map(function(i){var n=i.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();void 0!==t[n]&&(n=e+"-"+i),t[n]=e+"."+i})}function definePrimitive(e,t,i){i=i||{},Object.keys(t).map(function(e){addComponentMapping(e,i)}),module.exports.registerPrimitive(e,utils.extendDeep({},null,{defaultComponents:t,mappings:i}))}var AEntity=_dereq_("../../core/a-entity"),components=_dereq_("../../core/component").components,registerElement=_dereq_("../../core/a-register-element").registerElement,utils=_dereq_("../../utils/"),debug=utils.debug,setComponentProperty=utils.entity.setComponentProperty,log=debug("extras:primitives:debug"),warn=debug("extras:primitives:warn"),primitives=module.exports.primitives={};module.exports.registerPrimitive=function(e,t){e=e.toLowerCase(),log("Registering <%s>",e),t.defaultAttributes&&warn("The 'defaultAttributes' object is deprecated. Use 'defaultComponents' instead.");var i=registerElement(e,{prototype:Object.create(AEntity.prototype,{defaultComponentsFromPrimitive:{value:t.defaultComponents||t.defaultAttributes||{}},deprecated:{value:t.deprecated||null},deprecatedMappings:{value:t.deprecatedMappings||{}},mappings:{value:t.mappings||{}},createdCallback:{value:function(){t.deprecated&&console.warn(t.deprecated),this.resolveMappingCollisions()}},resolveMappingCollisions:{value:function(){var e=this.mappings,t=this;Object.keys(e).forEach(function(i){var n;i!==i.toLowerCase()&&warn("Mapping keys should be specified in lower case. The mapping key "+i+" may not be recognized"),components[i]&&(n=e[i].replace(".","-"),e[n]=e[i],delete e[i],console.warn("The primitive "+t.tagName.toLowerCase()+" has a mapping collision. The attribute "+i+" has the same name as a registered component and has been renamed to "+n))})}},getExtraComponents:{value:function(){function e(e,r){return t(e)?i(r):t(r)?i(e):n(e)&&n(r)?utils.extendDeep(e,r):i(r)}function t(e){return void 0===e}function i(e){return n(e)?utils.extendDeep({},e):e}function n(e){return null!==e&&e.constructor===Object}var r,o,a,s,p,u,l=this;for(o=utils.clone(this.defaultComponentsFromPrimitive),p=this.getAttribute("mixin"),p&&(p=p.trim().split(" "),p.forEach(function(t){var i=l.sceneEl.querySelector("#"+t).componentCache;Object.keys(i).forEach(function(t){o[t]=e(o[t],i[t])})})),a=0;a<this.attributes.length;a++)r=this.attributes[a],(s=this.mappings[r.name])&&(u=utils.entity.getComponentPropertyPath(s),u.constructor===Array?(o[u[0]]=o[u[0]]||{},o[u[0]][u[1]]=r.value.trim()):o[u]=r.value.trim());return o}},attributeChangedCallback:{value:function(e,t,i){var n=this.mappings[e];e in this.deprecatedMappings&&console.warn(this.deprecatedMappings[e]),e&&n&&setComponentProperty(this,n,i)}}})});return primitives[e]=i,i},module.exports.definePrimitive=definePrimitive;
},{"../../core/a-entity":98,"../../core/a-register-element":101,"../../core/component":102,"../../utils/":172}],118:[function(_dereq_,module,exports){
var registerPrimitive=_dereq_("../primitives").registerPrimitive;registerPrimitive("a-camera",{defaultComponents:{camera:{},"look-controls":{},"wasd-controls":{},position:{y:1.6}},mappings:{active:"camera.active",far:"camera.far",fov:"camera.fov","look-controls-enabled":"look-controls.enabled",near:"camera.near","pointer-lock-enabled":"look-controls.pointerLockEnabled","wasd-controls-enabled":"wasd-controls.enabled","reverse-mouse-drag":"look-controls.reverseMouseDrag",zoom:"camera.zoom"}});
},{"../primitives":117}],119:[function(_dereq_,module,exports){
var registerPrimitive=_dereq_("../primitives").registerPrimitive;registerPrimitive("a-collada-model",{mappings:{src:"collada-model"}});
},{"../primitives":117}],120:[function(_dereq_,module,exports){
var getMeshMixin=_dereq_("../getMeshMixin"),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/");registerPrimitive("a-cursor",utils.extendDeep({},getMeshMixin(),{defaultComponents:{cursor:{},geometry:{primitive:"ring",radiusOuter:.016,radiusInner:.01,segmentsTheta:32},material:{color:"#000",shader:"flat",opacity:.8},position:{x:0,y:0,z:-1}},mappings:{far:"raycaster.far",fuse:"cursor.fuse","fuse-timeout":"cursor.fuseTimeout",interval:"raycaster.interval",objects:"raycaster.objects"}}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],121:[function(_dereq_,module,exports){
var getMeshMixin=_dereq_("../getMeshMixin"),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/");registerPrimitive("a-curvedimage",utils.extendDeep({},getMeshMixin(),{defaultComponents:{geometry:{height:1,primitive:"cylinder",radius:2,segmentsRadial:48,thetaLength:270,openEnded:!0,thetaStart:0},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0,repeat:"-1 1"}},mappings:{height:"geometry.height","open-ended":"geometry.openEnded",radius:"geometry.radius",segments:"geometry.segmentsRadial",start:"geometry.thetaStart","theta-length":"geometry.thetaLength","theta-start":"geometry.thetaStart",width:"geometry.thetaLength"}}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],122:[function(_dereq_,module,exports){
var registerPrimitive=_dereq_("../primitives").registerPrimitive;registerPrimitive("a-gltf-model",{mappings:{src:"gltf-model"}});
},{"../primitives":117}],123:[function(_dereq_,module,exports){
var getMeshMixin=_dereq_("../getMeshMixin"),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/");registerPrimitive("a-image",utils.extendDeep({},getMeshMixin(),{defaultComponents:{geometry:{primitive:"plane"},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0}},mappings:{height:"geometry.height",width:"geometry.width"}}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],124:[function(_dereq_,module,exports){
var registerPrimitive=_dereq_("../primitives").registerPrimitive;registerPrimitive("a-light",{defaultComponents:{light:{}},mappings:{angle:"light.angle",color:"light.color","ground-color":"light.groundColor",decay:"light.decay",distance:"light.distance",intensity:"light.intensity",penumbra:"light.penumbra",type:"light.type",target:"light.target"}});
},{"../primitives":117}],125:[function(_dereq_,module,exports){
var registerPrimitive=_dereq_("../primitives").registerPrimitive;registerPrimitive("a-link",{defaultComponents:{},mappings:{href:"link.href",image:"link.image",title:"link.title"}});
},{"../primitives":117}],126:[function(_dereq_,module,exports){
var meshMixin=_dereq_("../getMeshMixin")(),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/");registerPrimitive("a-obj-model",utils.extendDeep({},meshMixin,{defaultComponents:{"obj-model":{}},mappings:{src:"obj-model.obj",mtl:"obj-model.mtl"}}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],127:[function(_dereq_,module,exports){
var getMeshMixin=_dereq_("../getMeshMixin"),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/"),meshPrimitives=_dereq_("./meshPrimitives");registerPrimitive("a-sky",utils.extendDeep({},getMeshMixin(),{defaultComponents:{geometry:{primitive:"sphere",radius:5e3,segmentsWidth:64,segmentsHeight:32},material:{color:"#FFF",side:"back",shader:"flat",npot:!0},scale:"-1 1 1"},mappings:utils.extendDeep({},meshPrimitives["a-sphere"].prototype.mappings)}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117,"./meshPrimitives":132}],128:[function(_dereq_,module,exports){
var registerPrimitive=_dereq_("../primitives").registerPrimitive;registerPrimitive("a-sound",{defaultComponents:{sound:{}},mappings:{src:"sound.src",on:"sound.on",autoplay:"sound.autoplay",loop:"sound.loop",volume:"sound.volume"}});
},{"../primitives":117}],129:[function(_dereq_,module,exports){
var definePrimitive=_dereq_("../primitives").definePrimitive;definePrimitive("a-text",{text:{anchor:"align",width:5}});
},{"../primitives":117}],130:[function(_dereq_,module,exports){
var getMeshMixin=_dereq_("../getMeshMixin"),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/");registerPrimitive("a-video",utils.extendDeep({},getMeshMixin(),{defaultComponents:{geometry:{primitive:"plane"},material:{color:"#FFF",shader:"flat",side:"double",transparent:!0}},mappings:{height:"geometry.height",width:"geometry.width"}}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],131:[function(_dereq_,module,exports){
var getMeshMixin=_dereq_("../getMeshMixin"),registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/");registerPrimitive("a-videosphere",utils.extendDeep({},getMeshMixin(),{defaultComponents:{geometry:{primitive:"sphere",radius:5e3,segmentsWidth:64,segmentsHeight:32},material:{color:"#FFF",shader:"flat",side:"back",npot:!0},scale:"-1 1 1"},mappings:{radius:"geometry.radius","segments-height":"geometry.segmentsHeight","segments-width":"geometry.segmentsWidth"}}));
},{"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],132:[function(_dereq_,module,exports){
function unCamelCase(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}var getMeshMixin=_dereq_("../getMeshMixin"),geometries=_dereq_("../../../core/geometry").geometries,geometryNames=_dereq_("../../../core/geometry").geometryNames,registerPrimitive=_dereq_("../primitives").registerPrimitive,utils=_dereq_("../../../utils/"),meshPrimitives=module.exports={};geometryNames.forEach(function(e){var i=geometries[e],r=unCamelCase(e),t={};Object.keys(i.schema).forEach(function(e){t[unCamelCase(e)]="geometry."+e});var m="a-"+r,s=registerPrimitive(m,utils.extendDeep({},getMeshMixin(),{defaultComponents:{geometry:{primitive:e}},mappings:t}));meshPrimitives[m]=s});
},{"../../../core/geometry":103,"../../../utils/":172,"../getMeshMixin":115,"../primitives":117}],133:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("box",{schema:{depth:{default:1,min:0},height:{default:1,min:0},width:{default:1,min:0},segmentsHeight:{default:1,min:1,max:20,type:"int"},segmentsWidth:{default:1,min:1,max:20,type:"int"},segmentsDepth:{default:1,min:1,max:20,type:"int"}},init:function(e){this.geometry=new THREE.BoxGeometry(e.width,e.height,e.depth,e.segmentsWidth,e.segmentsHeight,e.segmentsDepth)}});
},{"../core/geometry":103,"../lib/three":150}],134:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad;registerGeometry("circle",{schema:{radius:{default:1,min:0},segments:{default:32,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new THREE.CircleGeometry(e.radius,e.segments,degToRad(e.thetaStart),degToRad(e.thetaLength))}});
},{"../core/geometry":103,"../lib/three":150}],135:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad;registerGeometry("cone",{schema:{height:{default:1,min:0},openEnded:{default:!1},radiusBottom:{default:1,min:0},radiusTop:{default:.01,min:0},segmentsHeight:{default:18,min:1,type:"int"},segmentsRadial:{default:36,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new THREE.CylinderGeometry(e.radiusTop,e.radiusBottom,e.height,e.segmentsRadial,e.segmentsHeight,e.openEnded,degToRad(e.thetaStart),degToRad(e.thetaLength))}});
},{"../core/geometry":103,"../lib/three":150}],136:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad;registerGeometry("cylinder",{schema:{height:{default:1,min:0},openEnded:{default:!1},radius:{default:1,min:0},segmentsHeight:{default:18,min:1,type:"int"},segmentsRadial:{default:36,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new THREE.CylinderGeometry(e.radius,e.radius,e.height,e.segmentsRadial,e.segmentsHeight,e.openEnded,degToRad(e.thetaStart),degToRad(e.thetaLength))}});
},{"../core/geometry":103,"../lib/three":150}],137:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("dodecahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new THREE.DodecahedronGeometry(e.radius,e.detail)}});
},{"../core/geometry":103,"../lib/three":150}],138:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("icosahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new THREE.IcosahedronGeometry(e.radius,e.detail)}});
},{"../core/geometry":103,"../lib/three":150}],139:[function(_dereq_,module,exports){
_dereq_("./box.js"),_dereq_("./circle.js"),_dereq_("./cone.js"),_dereq_("./cylinder.js"),_dereq_("./dodecahedron.js"),_dereq_("./icosahedron.js"),_dereq_("./octahedron.js"),_dereq_("./plane.js"),_dereq_("./ring.js"),_dereq_("./sphere.js"),_dereq_("./tetrahedron.js"),_dereq_("./torus.js"),_dereq_("./torusKnot.js"),_dereq_("./triangle.js");
},{"./box.js":133,"./circle.js":134,"./cone.js":135,"./cylinder.js":136,"./dodecahedron.js":137,"./icosahedron.js":138,"./octahedron.js":140,"./plane.js":141,"./ring.js":142,"./sphere.js":143,"./tetrahedron.js":144,"./torus.js":145,"./torusKnot.js":146,"./triangle.js":147}],140:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("octahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new THREE.OctahedronGeometry(e.radius,e.detail)}});
},{"../core/geometry":103,"../lib/three":150}],141:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("plane",{schema:{height:{default:1,min:0},width:{default:1,min:0},segmentsHeight:{default:1,min:1,max:20,type:"int"},segmentsWidth:{default:1,min:1,max:20,type:"int"}},init:function(e){this.geometry=new THREE.PlaneGeometry(e.width,e.height,e.segmentsWidth,e.segmentsHeight)}});
},{"../core/geometry":103,"../lib/three":150}],142:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad;registerGeometry("ring",{schema:{radiusInner:{default:.8,min:0},radiusOuter:{default:1.2,min:0},segmentsPhi:{default:10,min:1,type:"int"},segmentsTheta:{default:32,min:3,type:"int"},thetaLength:{default:360,min:0},thetaStart:{default:0}},init:function(e){this.geometry=new THREE.RingGeometry(e.radiusInner,e.radiusOuter,e.segmentsTheta,e.segmentsPhi,degToRad(e.thetaStart),degToRad(e.thetaLength))}});
},{"../core/geometry":103,"../lib/three":150}],143:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad;registerGeometry("sphere",{schema:{radius:{default:1,min:0},phiLength:{default:360},phiStart:{default:0,min:0},thetaLength:{default:180,min:0},thetaStart:{default:0},segmentsHeight:{default:18,min:2,type:"int"},segmentsWidth:{default:36,min:3,type:"int"}},init:function(e){this.geometry=new THREE.SphereGeometry(e.radius,e.segmentsWidth,e.segmentsHeight,degToRad(e.phiStart),degToRad(e.phiLength),degToRad(e.thetaStart),degToRad(e.thetaLength))}});
},{"../core/geometry":103,"../lib/three":150}],144:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("tetrahedron",{schema:{detail:{default:0,min:0,max:5,type:"int"},radius:{default:1,min:0}},init:function(e){this.geometry=new THREE.TetrahedronGeometry(e.radius,e.detail)}});
},{"../core/geometry":103,"../lib/three":150}],145:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),degToRad=THREE.Math.degToRad;registerGeometry("torus",{schema:{arc:{default:360},radius:{default:1,min:0},radiusTubular:{default:.2,min:0},segmentsRadial:{default:36,min:2,type:"int"},segmentsTubular:{default:32,min:3,type:"int"}},init:function(e){this.geometry=new THREE.TorusGeometry(e.radius,2*e.radiusTubular,e.segmentsRadial,e.segmentsTubular,degToRad(e.arc))}});
},{"../core/geometry":103,"../lib/three":150}],146:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three");registerGeometry("torusKnot",{schema:{p:{default:2,min:1},q:{default:3,min:1},radius:{default:1,min:0},radiusTubular:{default:.2,min:0},segmentsRadial:{default:8,min:3,type:"int"},segmentsTubular:{default:100,min:3,type:"int"}},init:function(e){this.geometry=new THREE.TorusKnotGeometry(e.radius,2*e.radiusTubular,e.segmentsTubular,e.segmentsRadial,e.p,e.q)}});
},{"../core/geometry":103,"../lib/three":150}],147:[function(_dereq_,module,exports){
var registerGeometry=_dereq_("../core/geometry").registerGeometry,THREE=_dereq_("../lib/three"),quaternion=new THREE.Quaternion,rotateVector=new THREE.Vector3(0,0,1),uvMinVector=new THREE.Vector2,uvMaxVector=new THREE.Vector2,uvScaleVector=new THREE.Vector2;registerGeometry("triangle",{schema:{vertexA:{type:"vec3",default:{x:0,y:.5,z:0}},vertexB:{type:"vec3",default:{x:-.5,y:-.5,z:0}},vertexC:{type:"vec3",default:{x:.5,y:-.5,z:0}}},init:function(e){var t,r,o,c,n,a;o=new THREE.Triangle,o.a.set(e.vertexA.x,e.vertexA.y,e.vertexA.z),o.b.set(e.vertexB.x,e.vertexB.y,e.vertexB.z),o.c.set(e.vertexC.x,e.vertexC.y,e.vertexC.z),r=o.normal(),quaternion.setFromUnitVectors(r,rotateVector),c=o.a.clone().applyQuaternion(quaternion),n=o.b.clone().applyQuaternion(quaternion),a=o.c.clone().applyQuaternion(quaternion),uvMinVector.set(Math.min(c.x,n.x,a.x),Math.min(c.y,n.y,a.y)),uvMaxVector.set(Math.max(c.x,n.x,a.x),Math.max(c.y,n.y,a.y)),uvScaleVector.set(0,0).subVectors(uvMaxVector,uvMinVector),c=(new THREE.Vector2).subVectors(c,uvMinVector).divide(uvScaleVector),n=(new THREE.Vector2).subVectors(n,uvMinVector).divide(uvScaleVector),a=(new THREE.Vector2).subVectors(a,uvMinVector).divide(uvScaleVector),t=this.geometry=new THREE.Geometry,t.vertices.push(o.a),t.vertices.push(o.b),t.vertices.push(o.c),t.faces.push(new THREE.Face3(0,1,2,r)),t.faceVertexUvs[0]=[[c,n,a]]}});
},{"../core/geometry":103,"../lib/three":150}],148:[function(_dereq_,module,exports){
window.hasNativeWebVRImplementation=!!window.navigator.getVRDisplays||!!window.navigator.getVRDevices;var WebVRPolyfill=_dereq_("webvr-polyfill");window.webvrpolyfill=new WebVRPolyfill({BUFFER_SCALE:1,CARDBOARD_UI_DISABLED:!0,ROTATE_INSTRUCTIONS_DISABLED:!0});var utils=_dereq_("./utils/"),debug=utils.debug,error=debug("A-Frame:error"),warn=debug("A-Frame:warn");window.document.currentScript&&window.document.currentScript.parentNode!==window.document.head&&!window.debug&&warn("Put the A-Frame <script> tag in the <head> of the HTML *before* the scene to ensure everything for A-Frame is properly registered before they are used from HTML."),"file:"===window.location.protocol&&error("This HTML file is currently being served via the file:// protocol. Assets, textures, and models WILL NOT WORK due to cross-origin policy! Please use a local or hosted server: https://aframe.io/docs/0.5.0/introduction/getting-started.html#using-a-local-server."),window.Promise=window.Promise||_dereq_("promise-polyfill"),utils.device.isIOSOlderThan10(window.navigator.userAgent)&&(window.WebVRConfig.BUFFER_SCALE=1/window.devicePixelRatio),_dereq_("present"),utils.device.isBrowserEnvironment&&(_dereq_("./style/aframe.css"),_dereq_("./style/rStats.css"));var AScene=_dereq_("./core/scene/a-scene").AScene,components=_dereq_("./core/component").components,registerComponent=_dereq_("./core/component").registerComponent,registerGeometry=_dereq_("./core/geometry").registerGeometry,registerPrimitive=_dereq_("./extras/primitives/primitives").registerPrimitive,registerShader=_dereq_("./core/shader").registerShader,registerSystem=_dereq_("./core/system").registerSystem,shaders=_dereq_("./core/shader").shaders,systems=_dereq_("./core/system").systems,THREE=window.THREE=_dereq_("./lib/three"),TWEEN=window.TWEEN=_dereq_("@tweenjs/tween.js"),pkg=_dereq_("../package");_dereq_("./components/index"),_dereq_("./geometries/index"),_dereq_("./shaders/index"),_dereq_("./systems/index");var ANode=_dereq_("./core/a-node"),AEntity=_dereq_("./core/a-entity");_dereq_("./core/a-animation"),_dereq_("./core/a-assets"),_dereq_("./core/a-cubemap"),_dereq_("./core/a-mixin"),_dereq_("./extras/components/"),_dereq_("./extras/primitives/"),console.log("A-Frame Version: 0.8.2 (Date 2018-04-15, Commit #b20527f)"),console.log("three Version:",pkg.dependencies.three),console.log("WebVR Polyfill Version:",pkg.dependencies["webvr-polyfill"]),module.exports=window.AFRAME={AComponent:_dereq_("./core/component").Component,AEntity:AEntity,ANode:ANode,AScene:AScene,components:components,geometries:_dereq_("./core/geometry").geometries,registerComponent:registerComponent,registerElement:_dereq_("./core/a-register-element").registerElement,registerGeometry:registerGeometry,registerPrimitive:registerPrimitive,registerShader:registerShader,registerSystem:registerSystem,primitives:{getMeshMixin:_dereq_("./extras/primitives/getMeshMixin"),primitives:_dereq_("./extras/primitives/primitives").primitives},scenes:_dereq_("./core/scene/scenes"),schema:_dereq_("./core/schema"),shaders:shaders,systems:systems,THREE:THREE,TWEEN:TWEEN,utils:utils,version:pkg.version};
},{"../package":51,"./components/index":60,"./core/a-animation":95,"./core/a-assets":96,"./core/a-cubemap":97,"./core/a-entity":98,"./core/a-mixin":99,"./core/a-node":100,"./core/a-register-element":101,"./core/component":102,"./core/geometry":103,"./core/scene/a-scene":105,"./core/scene/scenes":108,"./core/schema":110,"./core/shader":111,"./core/system":112,"./extras/components/":113,"./extras/primitives/":116,"./extras/primitives/getMeshMixin":115,"./extras/primitives/primitives":117,"./geometries/index":139,"./lib/three":150,"./shaders/index":152,"./style/aframe.css":157,"./style/rStats.css":158,"./systems/index":161,"./utils/":172,"@tweenjs/tween.js":1,"present":32,"promise-polyfill":33,"webvr-polyfill":46}],149:[function(_dereq_,module,exports){
window.aframeStats=function(t){function e(){i("te").set(n()),window.performance.getEntriesByName&&i("lt").set(window.performance.getEntriesByName("render-started")[0].startTime.toFixed(0))}function n(){var t=c.querySelectorAll("*");return Array.prototype.slice.call(t).filter(function(t){return t.isEntity}),t.length}function r(){}function a(){}function o(t){i=t}var i=null,c=t;return{update:e,start:r,end:a,attach:o,values:{te:{caption:"Entities"},lt:{caption:"Load Time"}},groups:[{caption:"A-Frame",values:["te","lt"]}],fractions:[]}},"object"==typeof module&&(module.exports={aframeStats:window.aframeStats});
},{}],150:[function(_dereq_,module,exports){
(function (global){
var THREE=global.THREE=_dereq_("three");THREE.TextureLoader&&(THREE.TextureLoader.prototype.crossOrigin="anonymous"),THREE.ImageLoader&&(THREE.ImageLoader.prototype.crossOrigin="anonymous"),THREE.Cache&&(THREE.Cache.enabled=!0),_dereq_("three/examples/js/loaders/GLTFLoader"),_dereq_("three/examples/js/loaders/OBJLoader"),_dereq_("three/examples/js/loaders/MTLLoader"),_dereq_("three/examples/js/loaders/ColladaLoader"),THREE.ColladaLoader.prototype.crossOrigin="anonymous",THREE.GLTFLoader.prototype.crossOrigin="anonymous",THREE.MTLLoader.prototype.crossOrigin="anonymous",THREE.OBJLoader.prototype.crossOrigin="anonymous",module.exports=THREE;
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"three":40,"three/examples/js/loaders/ColladaLoader":41,"three/examples/js/loaders/GLTFLoader":42,"three/examples/js/loaders/MTLLoader":43,"three/examples/js/loaders/OBJLoader":44}],151:[function(_dereq_,module,exports){
function getMaterialData(e){return{fog:e.fog,color:new THREE.Color(e.color),wireframe:e.wireframe,wireframeLinewidth:e.wireframeLinewidth}}var registerShader=_dereq_("../core/shader").registerShader,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/");module.exports.Shader=registerShader("flat",{schema:{color:{type:"color"},fog:{default:!0},height:{default:256},offset:{type:"vec2",default:{x:0,y:0}},repeat:{type:"vec2",default:{x:1,y:1}},src:{type:"map"},width:{default:512},wireframe:{default:!1},wireframeLinewidth:{default:2}},init:function(e){this.textureSrc=null,this.material=new THREE.MeshBasicMaterial(getMaterialData(e)),utils.material.updateMap(this,e)},update:function(e){this.updateMaterial(e),utils.material.updateMap(this,e)},updateMaterial:function(e){var t=this.material;e=getMaterialData(e),Object.keys(e).forEach(function(a){t[a]=e[a]})}});
},{"../core/shader":111,"../lib/three":150,"../utils/":172}],152:[function(_dereq_,module,exports){
_dereq_("./flat"),_dereq_("./standard"),_dereq_("./sdf"),_dereq_("./msdf"),_dereq_("./ios10hls");
},{"./flat":151,"./ios10hls":153,"./msdf":154,"./sdf":155,"./standard":156}],153:[function(_dereq_,module,exports){
var registerShader=_dereq_("../core/shader").registerShader;module.exports.Shader=registerShader("ios10hls",{schema:{src:{type:"map",is:"uniform"},opacity:{type:"number",is:"uniform",default:1}},vertexShader:["varying vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),fragmentShader:["uniform sampler2D src;","uniform float opacity;","varying vec2 vUV;","void main() {"," vec2 offset = vec2(0, 0);"," vec2 repeat = vec2(1, 1);"," vec4 color = texture2D(src, vec2(vUV.x / repeat.x + offset.x, (1.0 - vUV.y) / repeat.y + offset.y)).bgra;"," gl_FragColor = vec4(color.rgb, opacity);","}"].join("\n")});
},{"../core/shader":111}],154:[function(_dereq_,module,exports){
var registerShader=_dereq_("../core/shader").registerShader;module.exports.Shader=registerShader("msdf",{schema:{alphaTest:{type:"number",is:"uniform",default:.5},color:{type:"color",is:"uniform",default:"white"},map:{type:"map",is:"uniform"},negate:{type:"boolean",is:"uniform",default:!0},opacity:{type:"number",is:"uniform",default:1}},raw:!0,vertexShader:["attribute vec2 uv;","attribute vec3 position;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","varying vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),fragmentShader:["#ifdef GL_OES_standard_derivatives","#extension GL_OES_standard_derivatives: enable","#endif","precision highp float;","#define BIG_ENOUGH 0.001","#define MODIFIED_ALPHATEST (0.02 * isBigEnough / BIG_ENOUGH)","#define ALL_SMOOTH 0.4","#define ALL_ROUGH 0.02","#define DISCARD_ALPHA (alphaTest / (2.2 - 1.2 * ratio))","uniform sampler2D map;","uniform vec3 color;","uniform float opacity;","uniform float alphaTest;","uniform bool negate;","varying vec2 vUV;","float median(float r, float g, float b) {"," return max(min(r, g), min(max(r, g), b));","}","void main() {"," vec3 sample = texture2D(map, vUV).rgb;"," if (negate) {"," sample = 1.0 - sample;"," }"," float sigDist = median(sample.r, sample.g, sample.b) - 0.5;"," float alpha = clamp(sigDist/fwidth(sigDist) + 0.5, 0.0, 1.0);"," float dscale = 0.353505;"," vec2 duv = dscale * (dFdx(vUV) + dFdy(vUV));"," float isBigEnough = max(abs(duv.x), abs(duv.y));"," if (isBigEnough > BIG_ENOUGH) {"," float ratio = BIG_ENOUGH / isBigEnough;"," alpha = ratio * alpha + (1.0 - ratio) * (sigDist + 0.5);"," }"," if (isBigEnough <= BIG_ENOUGH && alpha < alphaTest) { discard; return; }"," if (alpha < alphaTest * MODIFIED_ALPHATEST) { discard; return; }"," gl_FragColor = vec4(color.xyz, alpha * opacity);","}"].join("\n")});
},{"../core/shader":111}],155:[function(_dereq_,module,exports){
var registerShader=_dereq_("../core/shader").registerShader;module.exports.Shader=registerShader("sdf",{schema:{alphaTest:{type:"number",is:"uniform",default:.5},color:{type:"color",is:"uniform",default:"white"},map:{type:"map",is:"uniform"},opacity:{type:"number",is:"uniform",default:1}},raw:!0,vertexShader:["attribute vec2 uv;","attribute vec3 position;","uniform mat4 projectionMatrix;","uniform mat4 modelViewMatrix;","varying vec2 vUV;","void main(void) {"," gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);"," vUV = uv;","}"].join("\n"),fragmentShader:["#ifdef GL_OES_standard_derivatives","#extension GL_OES_standard_derivatives: enable","#endif","precision highp float;","#define BIG_ENOUGH 0.001","#define MODIFIED_ALPHATEST (0.02 * isBigEnough / BIG_ENOUGH)","#define ALL_SMOOTH 0.4","#define ALL_ROUGH 0.02","#define DISCARD_ALPHA (alphaTest / (2.2 - 1.2 * ratio))","uniform sampler2D map;","uniform vec3 color;","uniform float opacity;","uniform float alphaTest;","varying vec2 vUV;","#ifdef GL_OES_standard_derivatives","float contour(float width, float value) {"," return smoothstep(0.5 - value, 0.5 + value, width);","}","#else","float aastep(float value, float afwidth) {"," return smoothstep(0.5 - afwidth, 0.5 + afwidth, value);","}","#endif","void main() {","#ifdef GL_OES_standard_derivatives"," vec2 uv = vUV;"," vec4 texColor = texture2D(map, uv);"," float dist = texColor.a;"," float width = fwidth(dist);"," float alpha = contour(dist, width);"," float dscale = 0.353505;"," vec2 duv = dscale * (dFdx(uv) + dFdy(uv));"," float isBigEnough = max(abs(duv.x), abs(duv.y));"," if (isBigEnough > BIG_ENOUGH) {"," float ratio = BIG_ENOUGH / isBigEnough;"," alpha = ratio * alpha + (1.0 - ratio) * dist;"," }"," else if (isBigEnough <= BIG_ENOUGH) {"," vec4 box = vec4 (uv - duv, uv + duv);"," alpha = (alpha + 0.5 * ("," contour(texture2D(map, box.xy).a, width)"," + contour(texture2D(map, box.zw).a, width)"," + contour(texture2D(map, box.xw).a, width)"," + contour(texture2D(map, box.zy).a, width)"," )) / 3.0;"," }"," if (isBigEnough <= BIG_ENOUGH && alpha < alphaTest) { discard; return; }"," if (alpha < alphaTest * MODIFIED_ALPHATEST) { discard; return; }","#else"," vec4 texColor = texture2D(map, vUV);"," float value = texColor.a;"," float afwidth = (1.0 / 32.0) * (1.4142135623730951 / (2.0 * gl_FragCoord.w));"," float alpha = aastep(value, afwidth);"," float ratio = (gl_FragCoord.w >= ALL_SMOOTH) ? 1.0 : (gl_FragCoord.w < ALL_ROUGH) ? 0.0 : (gl_FragCoord.w - ALL_ROUGH) / (ALL_SMOOTH - ALL_ROUGH);"," if (alpha < alphaTest) { if (ratio >= 1.0) { discard; return; } alpha = 0.0; }"," alpha = alpha * ratio + (1.0 - ratio) * value;"," if (ratio < 1.0)"," if (alpha <= DISCARD_ALPHA) { discard; return; }","#endif"," gl_FragColor = vec4(color, opacity * alpha);","}"].join("\n")});
},{"../core/shader":111}],156:[function(_dereq_,module,exports){
function getMaterialData(e){var t={color:new THREE.Color(e.color),emissive:new THREE.Color(e.emissive),emissiveIntensity:e.emissiveIntensity,fog:e.fog,metalness:e.metalness,roughness:e.roughness,wireframe:e.wireframe,wireframeLinewidth:e.wireframeLinewidth};return e.normalMap&&(t.normalScale=e.normalScale),e.ambientOcclusionMap&&(t.aoMapIntensity=e.ambientOcclusionMapIntensity),e.displacementMap&&(t.displacementScale=e.displacementScale,t.displacementBias=e.displacementBias),t}var registerShader=_dereq_("../core/shader").registerShader,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),CubeLoader=new THREE.CubeTextureLoader,texturePromises={};module.exports.Shader=registerShader("standard",{schema:{ambientOcclusionMap:{type:"map"},ambientOcclusionMapIntensity:{default:1},ambientOcclusionTextureOffset:{type:"vec2"},ambientOcclusionTextureRepeat:{type:"vec2",default:{x:1,y:1}},color:{type:"color"},displacementMap:{type:"map"},displacementScale:{default:1},displacementBias:{default:.5},displacementTextureOffset:{type:"vec2"},displacementTextureRepeat:{type:"vec2",default:{x:1,y:1}},emissive:{type:"color",default:"#000"},emissiveIntensity:{default:1},envMap:{default:""},fog:{default:!0},height:{default:256},metalness:{default:0,min:0,max:1},metalnessMap:{type:"map"},metalnessTextureOffset:{type:"vec2"},metalnessTextureRepeat:{type:"vec2",default:{x:1,y:1}},normalMap:{type:"map"},normalScale:{type:"vec2",default:{x:1,y:1}},normalTextureOffset:{type:"vec2"},normalTextureRepeat:{type:"vec2",default:{x:1,y:1}},offset:{type:"vec2",default:{x:0,y:0}},repeat:{type:"vec2",default:{x:1,y:1}},roughness:{default:.5,min:0,max:1},roughnessMap:{type:"map"},roughnessTextureOffset:{type:"vec2"},roughnessTextureRepeat:{type:"vec2",default:{x:1,y:1}},sphericalEnvMap:{type:"map"},src:{type:"map"},width:{default:512},wireframe:{default:!1},wireframeLinewidth:{default:2}},init:function(e){this.material=new THREE.MeshStandardMaterial(getMaterialData(e)),utils.material.updateMap(this,e),e.normalMap&&utils.material.updateDistortionMap("normal",this,e),e.displacementMap&&utils.material.updateDistortionMap("displacement",this,e),e.ambientOcclusionMap&&utils.material.updateDistortionMap("ambientOcclusion",this,e),e.metalnessMap&&utils.material.updateDistortionMap("metalness",this,e),e.roughnessMap&&utils.material.updateDistortionMap("roughness",this,e),this.updateEnvMap(e)},update:function(e){this.updateMaterial(e),utils.material.updateMap(this,e),e.normalMap&&utils.material.updateDistortionMap("normal",this,e),e.displacementMap&&utils.material.updateDistortionMap("displacement",this,e),e.ambientOcclusionMap&&utils.material.updateDistortionMap("ambientOcclusion",this,e),e.metalnessMap&&utils.material.updateDistortionMap("metalness",this,e),e.roughnessMap&&utils.material.updateDistortionMap("roughness",this,e),this.updateEnvMap(e)},updateMaterial:function(e){var t=this.material;e=getMaterialData(e),Object.keys(e).forEach(function(a){t[a]=e[a]})},updateEnvMap:function(e){var t=this,a=this.material,i=e.envMap,s=e.sphericalEnvMap;return!i&&!s||this.isLoadingEnvMap?(a.envMap=null,void(a.needsUpdate=!0)):(this.isLoadingEnvMap=!0,s?void this.el.sceneEl.systems.material.loadTexture(s,{src:s},function(e){t.isLoadingEnvMap=!1,e.mapping=THREE.SphericalReflectionMapping,a.envMap=e,utils.material.handleTextureEvents(t.el,e),a.needsUpdate=!0}):texturePromises[i]?void texturePromises[i].then(function(e){t.isLoadingEnvMap=!1,a.envMap=e,utils.material.handleTextureEvents(t.el,e),a.needsUpdate=!0}):void(texturePromises[i]=new Promise(function(e){utils.srcLoader.validateCubemapSrc(i,function(i){CubeLoader.load(i,function(i){t.isLoadingEnvMap=!1,a.envMap=i,utils.material.handleTextureEvents(t.el,i),e(i)})})})))}});
},{"../core/shader":111,"../lib/three":150,"../utils/":172}],157:[function(_dereq_,module,exports){
var css = ".a-html{bottom:0;left:0;position:fixed;right:0;top:0}.a-body{height:100%;margin:0;overflow:hidden;padding:0;width:100%}:-webkit-full-screen{background-color:transparent}.a-hidden{display:none!important}.a-canvas{height:100%;left:0;position:absolute;top:0;width:100%}.a-canvas.a-grab-cursor:hover{cursor:grab;cursor:-moz-grab;cursor:-webkit-grab}.a-canvas.a-grab-cursor:active,.a-grabbing{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}a-scene.fullscreen .a-canvas{width:100%!important;height:100%!important;top:0!important;left:0!important;right:0!important;bottom:0!important;position:fixed!important}.a-inspector-loader{background-color:#ed3160;position:fixed;left:3px;top:3px;padding:6px 10px;color:#fff;text-decoration:none;font-size:12px;font-family:Roboto,sans-serif;text-align:center;z-index:99999;width:204px}@keyframes dots-1{from{opacity:0}25%{opacity:1}}@keyframes dots-2{from{opacity:0}50%{opacity:1}}@keyframes dots-3{from{opacity:0}75%{opacity:1}}@-webkit-keyframes dots-1{from{opacity:0}25%{opacity:1}}@-webkit-keyframes dots-2{from{opacity:0}50%{opacity:1}}@-webkit-keyframes dots-3{from{opacity:0}75%{opacity:1}}.a-inspector-loader .dots span{animation:dots-1 2s infinite steps(1);-webkit-animation:dots-1 2s infinite steps(1)}.a-inspector-loader .dots span:first-child+span{animation-name:dots-2;-webkit-animation-name:dots-2}.a-inspector-loader .dots span:first-child+span+span{animation-name:dots-3;-webkit-animation-name:dots-3}a-scene{display:block;position:relative;height:100%;width:100%}a-assets,a-scene audio,a-scene img,a-scene video{display:none}.a-enter-vr-modal,.a-orientation-modal{font-family:Consolas,Andale Mono,Courier New,monospace}.a-enter-vr-modal a{border-bottom:1px solid #fff;padding:2px 0;text-decoration:none;transition:.1s color ease-in}.a-enter-vr-modal a:hover{background-color:#fff;color:#111;padding:2px 4px;position:relative;left:-4px}.a-enter-vr{font-family:sans-serif,monospace;font-size:13px;width:100%;font-weight:200;line-height:16px;position:absolute;right:20px;bottom:20px}.a-enter-vr.embedded{right:5px;bottom:5px}.a-enter-vr-button,.a-enter-vr-modal,.a-enter-vr-modal a{color:#fff}.a-enter-vr-button{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20245.82%20141.73%22%3E%3Cdefs%3E%3Cstyle%3E.a%7Bfill%3A%23fff%3Bfill-rule%3Aevenodd%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Ctitle%3Emask%3C%2Ftitle%3E%3Cpath%20class%3D%22a%22%20d%3D%22M175.56%2C111.37c-22.52%2C0-40.77-18.84-40.77-42.07S153%2C27.24%2C175.56%2C27.24s40.77%2C18.84%2C40.77%2C42.07S198.08%2C111.37%2C175.56%2C111.37ZM26.84%2C69.31c0-23.23%2C18.25-42.07%2C40.77-42.07s40.77%2C18.84%2C40.77%2C42.07-18.26%2C42.07-40.77%2C42.07S26.84%2C92.54%2C26.84%2C69.31ZM27.27%2C0C11.54%2C0%2C0%2C12.34%2C0%2C28.58V110.9c0%2C16.24%2C11.54%2C30.83%2C27.27%2C30.83H99.57c2.17%2C0%2C4.19-1.83%2C5.4-3.7L116.47%2C118a8%2C8%2C0%2C0%2C1%2C12.52-.18l11.51%2C20.34c1.2%2C1.86%2C3.22%2C3.61%2C5.39%2C3.61h72.29c15.74%2C0%2C27.63-14.6%2C27.63-30.83V28.58C245.82%2C12.34%2C233.93%2C0%2C218.19%2C0H27.27Z%22%2F%3E%3C%2Fsvg%3E) 50% 50%/70% 70% no-repeat rgba(0,0,0,.35);border:0;bottom:0;cursor:pointer;min-width:50px;min-height:30px;padding-right:5%;padding-top:4%;position:absolute;right:0;transition:background-color .05s ease;-webkit-transition:background-color .05s ease;z-index:9999}.a-enter-vr-button:active,.a-enter-vr-button:hover{background-color:#666}[data-a-enter-vr-no-webvr] .a-enter-vr-button{border-color:#666;opacity:.65}[data-a-enter-vr-no-webvr] .a-enter-vr-button:active,[data-a-enter-vr-no-webvr] .a-enter-vr-button:hover{background-color:rgba(0,0,0,.35);cursor:not-allowed}.a-enter-vr-modal{background-color:#666;border-radius:0;display:none;min-height:32px;margin-right:70px;padding:9px;width:280px;right:2%;position:absolute}.a-enter-vr-modal:after{border-bottom:10px solid transparent;border-left:10px solid #666;border-top:10px solid transparent;display:inline-block;content:'';position:absolute;right:-5px;top:5px;width:0;height:0}.a-enter-vr-modal a,.a-enter-vr-modal p{display:inline}.a-enter-vr-modal p{margin:0}.a-enter-vr-modal p:after{content:' '}[data-a-enter-vr-no-headset].a-enter-vr:hover .a-enter-vr-modal,[data-a-enter-vr-no-webvr].a-enter-vr:hover .a-enter-vr-modal{display:block}.a-orientation-modal{background:url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%20version%3D%221.1%22%20x%3D%220px%22%20y%3D%220px%22%20viewBox%3D%220%200%2090%2090%22%20enable-background%3D%22new%200%200%2090%2090%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpolygon%20points%3D%220%2C0%200%2C0%200%2C0%20%22%3E%3C/polygon%3E%3Cg%3E%3Cpath%20d%3D%22M71.545%2C48.145h-31.98V20.743c0-2.627-2.138-4.765-4.765-4.765H18.456c-2.628%2C0-4.767%2C2.138-4.767%2C4.765v42.789%20%20%20c0%2C2.628%2C2.138%2C4.766%2C4.767%2C4.766h5.535v0.959c0%2C2.628%2C2.138%2C4.765%2C4.766%2C4.765h42.788c2.628%2C0%2C4.766-2.137%2C4.766-4.765V52.914%Line truncated
},{"browserify-css":5}],158:[function(_dereq_,module,exports){
var css = ".rs-base{background-color:#333;color:#fafafa;border-radius:0;font:10px monospace;left:5px;line-height:1em;opacity:.85;overflow:hidden;padding:10px;position:fixed;top:5px;width:300px;z-index:10000}.rs-base div.hidden{display:none}.rs-base h1{color:#fff;cursor:pointer;font-size:1.4em;font-weight:300;margin:0 0 5px;padding:0}.rs-group{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-direction:column-reverse;flex-direction:column-reverse;margin-bottom:5px}.rs-group:last-child{margin-bottom:0}.rs-counter-base{align-items:center;display:-webkit-box;display:-webkit-flex;display:flex;height:10px;-webkit-justify-content:space-between;justify-content:space-between;margin:2px 0}.rs-counter-base.alarm{color:#b70000;text-shadow:0 0 0 #b70000,0 0 1px #fff,0 0 1px #fff,0 0 2px #fff,0 0 2px #fff,0 0 3px #fff,0 0 3px #fff,0 0 4px #fff,0 0 4px #fff}.rs-counter-id{font-weight:300;-webkit-box-ordinal-group:0;-webkit-order:0;order:0;width:54px}.rs-counter-value{font-weight:300;-webkit-box-ordinal-group:1;-webkit-order:1;order:1;text-align:right;width:35px}.rs-canvas{-webkit-box-ordinal-group:2;-webkit-order:2;order:2}@media (min-width:480px){.rs-base{left:20px;top:20px}}"; (_dereq_("browserify-css").createStyle(css, { "href": "src\\style\\rStats.css"})); module.exports = css;
},{"browserify-css":5}],159:[function(_dereq_,module,exports){
function removeDefaultCamera(e){var t;e.camera&&(t=e.querySelector("["+DEFAULT_CAMERA_ATTR+"]"))&&e.removeChild(t)}var bind=_dereq_("../utils/bind"),constants=_dereq_("../constants/"),registerSystem=_dereq_("../core/system").registerSystem,DEFAULT_CAMERA_ATTR="data-aframe-default-camera";module.exports.System=registerSystem("camera",{init:function(){this.activeCameraEl=null,this.sceneEl.addEventListener("loaded",bind(this.setupDefaultCamera,this))},setupDefaultCamera:function(){var e,t=this.sceneEl;if(t.camera&&!t.camera.el.getAttribute("camera").spectator)return void t.emit("camera-ready",{cameraEl:t.camera.el});e=document.createElement("a-entity"),e.setAttribute("camera",{active:!0}),e.setAttribute("wasd-controls",""),e.setAttribute("look-controls",""),e.setAttribute(constants.AFRAME_INJECTED,""),e.setAttribute("position",{x:0,y:constants.DEFAULT_CAMERA_HEIGHT,z:0}),t.appendChild(e),t.addEventListener("enter-vr",this.removeDefaultOffset),t.addEventListener("exit-vr",this.addDefaultOffset),t.emit("camera-ready",{cameraEl:e})},disableActiveCamera:function(){var e=this.sceneEl.querySelectorAll("[camera]");e[e.length-1].setAttribute("camera","active",!0)},setActiveCamera:function(e){var t,a,r,i,c=this.activeCameraEl,s=this.sceneEl;if((i=e.getObject3D("camera"))&&e!==this.activeCameraEl){var m=s.querySelector("["+DEFAULT_CAMERA_ATTR+"]"),n=m&&m.querySelector("[camera]");for(e!==n&&removeDefaultCamera(s),this.activeCameraEl=e,this.activeCameraEl.play(),s.camera=i,c&&c.setAttribute("camera","active",!1),a=s.querySelectorAll("[camera]"),r=0;r<a.length;r++)t=a[r],t.isEntity&&e!==t&&(t.setAttribute("camera","active",!1),t.pause());s.emit("camera-set-active",{cameraEl:e})}},setSpectatorCamera:function(e){var t,a,r=this.spectatorCameraEl,i=this.sceneEl;(t=e.getObject3D("camera"))&&e!==this.spectatorCameraEl&&(r&&r.setAttribute("camera","spectator",!1),a=this.spectatorCameraEl=e,a.setAttribute("camera","active",!1),a.play(),i.emit("camera-set-spectator",{cameraEl:e}))},disableSpectatorCamera:function(){this.spectatorCameraEl=void 0},tock:function(){var e,t=this.sceneEl,a=t.renderer.vr.enabled;this.spectatorCameraEl&&!t.isMobile&&(e=this.spectatorCameraEl.components.camera.camera,t.renderer.vr.enabled=!1,t.renderer.render(t.object3D,e),t.renderer.vr.enabled=a)}});
},{"../constants/":93,"../core/system":112,"../utils/bind":166}],160:[function(_dereq_,module,exports){
function createGeometry(e){var t=e.primitive,r=geometries[t]&&geometries[t].Geometry,o=new r;if(!r)throw new Error("Unknown geometry `"+t+"`");return o.init(e),toBufferGeometry(o.geometry,e.buffer)}function decrementCacheCount(e,t){e[t]--}function incrementCacheCount(e,t){e[t]=void 0===e[t]?1:e[t]+1}function toBufferGeometry(e,t){var r;return t?(r=(new THREE.BufferGeometry).fromGeometry(e),r.metadata={type:e.type,parameters:e.parameters||{}},e.dispose(),r):e}var geometries=_dereq_("../core/geometry").geometries,registerSystem=_dereq_("../core/system").registerSystem,THREE=_dereq_("../lib/three");module.exports.System=registerSystem("geometry",{init:function(){this.cache={},this.cacheCount={}},clearCache:function(){this.cache={},this.cacheCount={}},getOrCreateGeometry:function(e){var t,r,o=this.cache;return e.skipCache?createGeometry(e):(r=this.hash(e),t=o[r],incrementCacheCount(this.cacheCount,r),t||(t=createGeometry(e),o[r]=t,t))},unuseGeometry:function(e){var t,r,o=this.cache,i=this.cacheCount;e.skipCache||(r=this.hash(e),o[r]&&(decrementCacheCount(i,r),i[r]>0||(t=o[r],t.dispose(),delete o[r],delete i[r])))},hash:function(e){return JSON.stringify(e)}});
},{"../core/geometry":103,"../core/system":112,"../lib/three":150}],161:[function(_dereq_,module,exports){
_dereq_("./camera"),_dereq_("./geometry"),_dereq_("./light"),_dereq_("./material"),_dereq_("./shadow"),_dereq_("./tracked-controls");
},{"./camera":159,"./geometry":160,"./light":162,"./material":163,"./shadow":164,"./tracked-controls":165}],162:[function(_dereq_,module,exports){
var registerSystem=_dereq_("../core/system").registerSystem,bind=_dereq_("../utils/bind"),constants=_dereq_("../constants/"),DEFAULT_LIGHT_ATTR="data-aframe-default-light";module.exports.System=registerSystem("light",{schema:{defaultLightsEnabled:{default:!0}},init:function(){this.defaultLights=!1,this.userDefinedLights=!1,this.sceneEl.addEventListener("loaded",bind(this.setupDefaultLights,this))},registerLight:function(t){t.hasAttribute(DEFAULT_LIGHT_ATTR)||(this.removeDefaultLights(),this.userDefinedLights=!0)},removeDefaultLights:function(){var t,e=this.sceneEl;if(this.defaultLights){t=document.querySelectorAll("["+DEFAULT_LIGHT_ATTR+"]");for(var i=0;i<t.length;i++)e.removeChild(t[i]);this.defaultLights=!1}},setupDefaultLights:function(){var t,e,i=this.sceneEl;this.userDefinedLights||this.defaultLights||!this.data.defaultLightsEnabled||(t=document.createElement("a-entity"),t.setAttribute("light",{color:"#BBB",type:"ambient"}),t.setAttribute(DEFAULT_LIGHT_ATTR,""),t.setAttribute(constants.AFRAME_INJECTED,""),i.appendChild(t),e=document.createElement("a-entity"),e.setAttribute("light",{color:"#FFF",intensity:.6,castShadow:!0}),e.setAttribute("position",{x:-.5,y:1,z:1}),e.setAttribute(DEFAULT_LIGHT_ATTR,""),e.setAttribute(constants.AFRAME_INJECTED,""),i.appendChild(e),this.defaultLights=!0)}});
},{"../constants/":93,"../core/system":112,"../utils/bind":166}],163:[function(_dereq_,module,exports){
function calculateVideoCacheHash(e,t){var r,i,n,a=t.getAttribute("id");if(a)return a;for(i="",n=e||{},r=0;r<t.attributes.length;r++)n[t.attributes[r].name]=t.attributes[r].value;return Object.keys(n).sort().forEach(function(e){i+=e+":"+n[e]+";"}),i}function loadImageTexture(e,t){function r(r,i){function n(e){setTextureProperties(e,t),e.needsUpdate=!0,r(e)}if("string"!=typeof e)return void n(new THREE.Texture(e));TextureLoader.load(e,n,function(){},function(e){error("`$s` could not be fetched (Error code: %s; Response: %s)",e.status,e.statusText)})}return new Promise(r)}function setTextureProperties(e,t){var r=t.offset||{x:0,y:0},i=t.repeat||{x:1,y:1};(t.npot||!1)&&(e.wrapS=THREE.ClampToEdgeWrapping,e.wrapT=THREE.ClampToEdgeWrapping,e.magFilter=THREE.LinearFilter,e.minFilter=THREE.LinearFilter),1===i.x&&1===i.y||(e.wrapS=THREE.RepeatWrapping,e.wrapT=THREE.RepeatWrapping,e.repeat.set(i.x,i.y)),0===r.x&&0===r.y||e.offset.set(r.x,r.y)}function createVideoEl(e,t,r){var i=document.createElement("video");return i.width=t,i.height=r,i.setAttribute("playsinline",""),i.setAttribute("webkit-playsinline",""),i.autoplay=!0,i.loop=!0,i.crossOrigin="anonymous",i.addEventListener("error",function(){warn("`$s` is not a valid video",e)},!0),i.src=e,i}function fixVideoAttributes(e){return e.autoplay=e.hasAttribute("autoplay")&&"false"!==e.getAttribute("autoplay"),e.controls=e.hasAttribute("controls")&&"false"!==e.getAttribute("controls"),"false"===e.getAttribute("loop")&&e.removeAttribute("loop"),"false"===e.getAttribute("preload")&&(e.preload="none"),e.crossOrigin=e.crossOrigin||"anonymous",e.setAttribute("playsinline",""),e.setAttribute("webkit-playsinline",""),e}var registerSystem=_dereq_("../core/system").registerSystem,THREE=_dereq_("../lib/three"),utils=_dereq_("../utils/"),isHLS=_dereq_("../utils/material").isHLS,bind=utils.bind,debug=utils.debug,error=debug("components:texture:error"),TextureLoader=new THREE.TextureLoader,warn=debug("components:texture:warn");TextureLoader.setCrossOrigin("anonymous"),module.exports.System=registerSystem("material",{init:function(){this.materials={},this.textureCounts={},this.textureCache={},this.sceneEl.addEventListener("materialtextureloaded",bind(this.onMaterialTextureLoaded,this))},clearTextureCache:function(){this.textureCache={}},loadTexture:function(e,t,r){function i(e){a.loadImage(e,t,r)}function n(e){a.loadVideo(e,t,r)}var a=this;return"CANVAS"===e.tagName?void this.loadCanvas(e,t,r):"VIDEO"===e.tagName?(e.src||e.srcObject||e.childElementCount||warn("Video element was defined with neither `source` elements nor `src` / `srcObject` attributes."),void this.loadVideo(e,t,r)):void utils.srcLoader.validateSrc(e,i,n)},loadImage:function(e,t,r){var i=this.hash(t),n=this.textureCache;if(n[i])return void n[i].then(r);n[i]=loadImageTexture(e,t),n[i].then(r)},loadCanvas:function(e,t,r){e.readyState=2,e.HAVE_CURRENT_DATA=2,this.loadVideo(e,t,r)},loadVideo:function(e,t,r){function i(e){e.texture.needsUpdate=!0,r(e.texture,e.videoEl)}var n,a,s,o,u=this.textureCache;if("string"!=typeof e){if(s=e,n=this.hashVideo(t,s),u[n])return void u[n].then(i);fixVideoAttributes(s)}if(s=s||createVideoEl(e,t.width,t.height),n=this.hashVideo(t,s),u[n])return void u[n].then(i);a=new THREE.VideoTexture(s),a.minFilter=THREE.LinearFilter,setTextureProperties(a,t),this.sceneEl.isIOS&&isHLS(s.src||s.getAttribute("src"),s.type||s.getAttribute("type"))&&(a.format=THREE.RGBAFormat,a.needsCorrectionBGRA=!0,a.flipY=!1,a.needsCorrectionFlipY=!0),o={texture:a,videoEl:s},u[n]=Promise.resolve(o),i(o)},hash:function(e){return e.src.tagName&&(e=utils.extendDeep({},e),e.src=e.src.src),JSON.stringify(e)},hashVideo:function(e,t){return calculateVideoCacheHash(e,t)},registerMaterial:function(e){this.materials[e.uuid]=e},unregisterMaterial:function(e){delete this.materials[e.uuid];var t=this.textureCounts;Object.keys(e).filter(function(t){return e[t]&&e[t].isTexture}).forEach(function(r){--t[e[r].uuid]<=0&&e[r].dispose()})},updateMaterials:function(e){var t=this.materials;Object.keys(t).forEach(function(e){t[e].needsUpdate=!0})},onMaterialTextureLoaded:function(e){this.textureCounts[e.detail.texture.uuid]||(this.textureCounts[e.detail.texture.uuid]=0),this.textureCounts[e.detail.texture.uuid]++}});
},{"../core/system":112,"../lib/three":150,"../utils/":172,"../utils/material":173}],164:[function(_dereq_,module,exports){
var registerSystem=_dereq_("../core/system").registerSystem,THREE=_dereq_("../lib/three"),SHADOW_MAP_TYPE_MAP={basic:THREE.BasicShadowMap,pcf:THREE.PCFShadowMap,pcfsoft:THREE.PCFSoftShadowMap};module.exports.System=registerSystem("shadow",{schema:{autoUpdate:{default:!0},type:{default:"pcf",oneOf:["basic","pcf","pcfsoft"]}},init:function(){var e=this.sceneEl,a=this.data;this.shadowMapEnabled=!1,e.renderer&&(e.renderer.shadowMap.type=SHADOW_MAP_TYPE_MAP[a.type],e.renderer.shadowMap.autoUpdate=a.autoUpdate,this.setShadowMapEnabled(this.shadowMapEnabled))},setShadowMapEnabled:function(e){var a=this.sceneEl.renderer;this.shadowMapEnabled=e,a&&(a.shadowMap.enabled=e)}});
},{"../core/system":112,"../lib/three":150}],165:[function(_dereq_,module,exports){
var registerSystem=_dereq_("../core/system").registerSystem,utils=_dereq_("../utils");module.exports.System=registerSystem("tracked-controls",{init:function(){var t=this;this.controllers=[],this.updateControllerList(navigator.getGamepads&&navigator.getGamepads()),this.throttledUpdateControllerList=utils.throttle(this.updateControllerList,500,this),navigator.getVRDisplays&&this.sceneEl.addEventListener("enter-vr",function(){navigator.getVRDisplays().then(function(e){e.length&&(t.vrDisplay=e[0])})})},tick:function(){var t;t=navigator.getGamepads&&navigator.getGamepads(),this.throttledUpdateControllerList(t)},updateControllerList:function(t){var e,r,s,i=this.controllers;if(t){for(s=i.length,i.length=0,r=0;r<t.length;++r)(e=t[r])&&e.pose&&i.push(e);i.length!==s&&this.el.emit("controllersupdated",void 0,!1)}}});
},{"../core/system":112,"../utils":172}],166:[function(_dereq_,module,exports){
module.exports=function(r,t){return function(n){return function(){var o=n.concat(Array.prototype.slice.call(arguments,0));return r.apply(t,o)}}(Array.prototype.slice.call(arguments,2))};
},{}],167:[function(_dereq_,module,exports){
function parse(e,r){var o,t;return e&&e instanceof Object?(r&&(e.x=void 0===e.x?r.x:e.x,e.y=void 0===e.y?r.y:e.y,e.z=void 0===e.z?r.z:e.z,e.w=void 0===e.w?r.w:e.w),vecParseFloat(e)):null===e||void 0===e?"object"==typeof r?extend({},r):r:(o=e.trim().replace(/\s+/g," ").split(" "),t={},t.x=o[0]||r&&r.x,t.y=o[1]||r&&r.y,t.z=o[2]||r&&r.z,t.w=o[3]||r&&r.w,vecParseFloat(t))}function stringify(e){return"object"!=typeof e?e:[e.x,e.y,e.z,e.w].join(" ").trim()}function isCoordinates(e){return regex.test(e)}function vecParseFloat(e){var r;for(r in e)void 0!==e[r]?e[r].constructor===String&&(e[r]=parseFloat(e[r],10)):delete e[r];return e}var debug=_dereq_("./debug"),extend=_dereq_("object-assign"),warn=debug("utils:coordinates:warn"),regex=/^\s*((-?\d*\.{0,1}\d+(e-?\d+)?)\s+){2,3}(-?\d*\.{0,1}\d+(e-?\d+)?)\s*$/;module.exports.regex=regex,module.exports.parse=parse,module.exports.stringify=stringify,module.exports.isCoordinates=isCoordinates,module.exports.isCoordinate=function(e){return warn("`AFRAME.utils.isCoordinate` has been renamed to `AFRAME.utils.isCoordinates`"),isCoordinates(e)},module.exports.toVector3=function(e){return new THREE.Vector3(e.x,e.y,e.z)};
},{"./debug":168,"object-assign":26}],168:[function(_dereq_,module,exports){
(function (process){
function getDebugNamespaceType(e){var r=e.split(":");return r[r.length-1]}function getDebugNamespaceColor(e){var r=getDebugNamespaceType(e);return settings.colors&&settings.colors[r]||null}function storage(){try{return window.localStorage}catch(e){}}var debugLib=_dereq_("debug"),extend=_dereq_("object-assign"),settings={colors:{debug:"gray",error:"red",info:"gray",warn:"orange"}},debug=function(e){var r=debugLib(e);return r.color=getDebugNamespaceColor(e),r};extend(debug,debugLib);var ls=storage();ls&&(parseInt(ls.logs,10)||"true"===ls.logs)?debug.enable("*"):debug.enable("*:error,*:info,*:warn"),process.browser&&(window.logs=debug),module.exports=debug;
}).call(this,_dereq_('_process'))
},{"_process":6,"debug":10,"object-assign":26}],169:[function(_dereq_,module,exports){
(function (process){
function getVRDisplay(){return vrDisplay}function checkHeadsetConnected(){return!!getVRDisplay()}function checkHasPositionalTracking(){var i=getVRDisplay();return!isMobile()&&!isGearVR()&&(i&&i.capabilities.hasPosition)}function isTablet(i){return/ipad|Nexus (7|9)|xoom|sch-i800|playbook|tablet|kindle/i.test(i||window.navigator.userAgent)}function isIOS(){return/iPad|iPhone|iPod/.test(window.navigator.platform)}function isGearVR(){return/SamsungBrowser.+Mobile VR/i.test(window.navigator.userAgent)}function isR7(){return/R7 Build/.test(window.navigator.userAgent)}var vrDisplay,polyfilledVRDisplay,POLYFILL_VRDISPLAY_ID="Cardboard VRDisplay";navigator.getVRDisplays&&navigator.getVRDisplays().then(function(i){vrDisplay=i.length&&i[0],polyfilledVRDisplay=vrDisplay.displayName===POLYFILL_VRDISPLAY_ID}),module.exports.getVRDisplay=getVRDisplay,module.exports.checkHeadsetConnected=checkHeadsetConnected,module.exports.checkHasPositionalTracking=checkHasPositionalTracking;var isMobile=function(){var i=!1;return function(e){(/(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(e)||/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(e.substr(0,4)))&&(i=!0),(isIOS()||isTablet()||isR7())&&(i=!0)}(window.navigator.userAgent||window.navigator.vendor||window.opera),function(){return i}}();module.exports.isMobile=isMobile,module.exports.isTablet=isTablet,module.exports.isIOS=isIOS,module.exports.isGearVR=isGearVR,module.exports.isR7=isR7,module.exports.isLandscape=function(){var i=window.orientation;return isR7()&&(i+=90),90===i||-90===i},module.exports.isIOSOlderThan10=function(i){return/(iphone|ipod|ipad).*os.(7|8|9)/i.test(i)},module.exports.isBrowserEnvironment=!(process&&!process.browser),module.exports.isNodeEnvironment=!module.exports.isBrowserEnvironment,module.exports.PolyfillControls=function(i){var e;window.VRFrameData&&(e=new window.VRFrameData),this.update=function(){var o;vrDisplay&&polyfilledVRDisplay&&(vrDisplay.getFrameData(e),o=e.pose,null!==o.orientation&&i.quaternion.fromArray(o.orientation),null!==o.position?i.position.fromArray(o.position):i.position.set(0,0,0))}};
}).call(this,_dereq_('_process'))
},{"_process":6}],170:[function(_dereq_,module,exports){
function getComponentPropertyPath(t,e){return e=e||".",propertyPathCache[e]||(propertyPathCache[e]={}),-1!==t.indexOf(e)?propertyPathCache[e][t]=t.split(e):propertyPathCache[e][t]=t,propertyPathCache[e][t]}var propertyPathCache={};module.exports.getComponentPropertyPath=getComponentPropertyPath,module.exports.propertyPathCache=propertyPathCache,module.exports.getComponentProperty=function(t,e,r){var o;return r=r||".",-1!==e.indexOf(r)?(o=getComponentPropertyPath(e,r),o.constructor===String?t.getAttribute(o):t.getAttribute(o[0])[o[1]]):t.getAttribute(e)},module.exports.setComponentProperty=function(t,e,r,o){var p;if(o=o||".",-1!==e.indexOf(o))return p=getComponentPropertyPath(e,o),void(p.constructor===String?t.setAttribute(p,r):t.setAttribute(p[0],p[1],r));t.setAttribute(e,r)};
},{}],171:[function(_dereq_,module,exports){
module.exports=function(t){var e=t.style.width,s=t.style.height;t.style.width=parseInt(e,10)+1+"px",t.style.height=parseInt(s,10)+1+"px",setTimeout(function(){t.style.width=e,t.style.height=s},200)};
},{}],172:[function(_dereq_,module,exports){
var debug=_dereq_("./debug"),deepAssign=_dereq_("deep-assign"),device=_dereq_("./device"),objectAssign=_dereq_("object-assign"),objectPool=_dereq_("./object-pool"),warn=debug("utils:warn");module.exports.bind=_dereq_("./bind"),module.exports.coordinates=_dereq_("./coordinates"),module.exports.debug=debug,module.exports.device=device,module.exports.entity=_dereq_("./entity"),module.exports.forceCanvasResizeSafariMobile=_dereq_("./forceCanvasResizeSafariMobile"),module.exports.material=_dereq_("./material"),module.exports.objectPool=objectPool,module.exports.split=_dereq_("./split").split,module.exports.styleParser=_dereq_("./styleParser"),module.exports.trackedControls=_dereq_("./tracked-controls"),module.exports.checkHeadsetConnected=function(){return warn("`utils.checkHeadsetConnected` has moved to `utils.device.checkHeadsetConnected`"),device.checkHeadsetConnected(arguments)},module.exports.isGearVR=function(){return warn("`utils.isGearVR` has moved to `utils.device.isGearVR`"),device.isGearVR(arguments)},module.exports.isIOS=function(){return warn("`utils.isIOS` has moved to `utils.device.isIOS`"),device.isIOS(arguments)},module.exports.isMobile=function(){return warn("`utils.isMobile has moved to `utils.device.isMobile`"),device.isMobile(arguments)},module.exports.throttle=function(e,r,t){var o;return t&&(e=module.exports.bind(e,t)),function(){var t=Date.now(),n=void 0===o?r:t-o;(void 0===o||n>=r)&&(o=t,e.apply(null,arguments))}},module.exports.throttleTick=function(e,r,t){var o;return t&&(e=module.exports.bind(e,t)),function(t,n){var i=void 0===o?n:t-o;(void 0===o||i>=r)&&(o=t,e(t,i))}},module.exports.debounce=function(e,r,t){var o;return function(){var n=this,i=arguments,u=function(){o=null,t||e.apply(n,i)},s=t&&!o;clearTimeout(o),o=setTimeout(u,r),s&&e.apply(n,i)}},module.exports.extend=objectAssign,module.exports.extendDeep=deepAssign,module.exports.clone=function(e){return JSON.parse(JSON.stringify(e))};var deepEqual=function(){var e=objectPool.createPool(function(){return[]});return function(r,t){var o,n,i,u,s,c;if(void 0===r||void 0===t||null===r||null===t||!(r&&t&&r.constructor===Object&&t.constructor===Object||r.constructor===Array&&t.constructor===Array))return r===t;n=e.use(),i=e.use(),n.length=0,i.length=0;for(o in r)n.push(o);for(o in t)i.push(o);if(n.length!==i.length)return e.recycle(n),e.recycle(i),!1;for(u=0;u<n.length;++u)if(s=r[n[u]],c=t[n[u]],"object"==typeof s||"object"==typeof c||Array.isArray(s)&&Array.isArray(c)){if(s===c)continue;if(!deepEqual(s,c))return e.recycle(n),e.recycle(i),!1}else if(s!==c)return e.recycle(n),e.recycle(i),!1;return e.recycle(n),e.recycle(i),!0}}();module.exports.deepEqual=deepEqual,module.exports.diff=function(){var e=[];return function(r,t,o){var n,i,u,s,c,l,d;s=o||{},e.length=0;for(c in r)e.push(c);if(!t)return s;for(u in t)-1===e.indexOf(u)&&e.push(u);for(l=0;l<e.length;l++)c=e[l],n=r[c],i=t[c],((d=n&&i&&n.constructor===Object&&i.constructor===Object)&&!deepEqual(n,i)||!d&&n!==i)&&(s[c]=i);return s}}(),module.exports.shouldCaptureKeyEvent=function(e){return!e.metaKey&&document.activeElement===document.body},module.exports.splitString=function(e,r){void 0===r&&(r=" ");var t=new RegExp(r,"g");return e=(e||"").replace(t,r),e.split(r)},module.exports.getElData=function(e,r){function t(r){e.hasAttribute(r)&&(o[r]=e.getAttribute(r))}r=r||{};var o={};return Object.keys(r).forEach(t),o},module.exports.getUrlParameter=function(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var r=new RegExp("[\\?&]"+e+"=([^&#]*)"),t=r.exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))},module.exports.isIframed=function(){return window.top!==window.self},module.exports.findAllScenes=function(e){for(var r=[],t=e.getElementsByTagName("*"),o=0,n=t.length;o<n;o++)t[o].isScene&&r.push(t[o]);return r},module.exports.srcLoader=_dereq_("./src-loader");
},{"./bind":166,"./coordinates":167,"./debug":168,"./device":169,"./entity":170,"./forceCanvasResizeSafariMobile":171,"./material":173,"./object-pool":174,"./split":175,"./src-loader":176,"./styleParser":177,"./tracked-controls":178,"deep-assign":12,"object-assign":26}],173:[function(_dereq_,module,exports){
function handleTextureEvents(e,t){t&&(e.emit("materialtextureloaded",{src:t.image,texture:t}),t.image&&"VIDEO"===t.image.tagName&&(t.image.addEventListener("loadeddata",function(){e.components&&e.components.material&&(t.needsCorrectionBGRA&&t.needsCorrectionFlipY&&-1!==["standard","flat"].indexOf(e.components.material.data.shader)&&e.setAttribute("material","shader","ios10hls"),e.emit("materialvideoloadeddata",{src:t.image,texture:t}))}),t.image.addEventListener("ended",function(){e.emit("materialvideoended",{src:t.image,texture:t})})))}var THREE=_dereq_("../lib/three"),HLS_MIMETYPES=["application/x-mpegurl","application/vnd.apple.mpegurl"];module.exports.updateMapMaterialFromData=function(e,t,a,r){function n(t){a.materialSrcs[e]===l&&i(t)}function i(t){s[e]=t,s.needsUpdate=!0,handleTextureEvents(o,t)}var o=a.el,s=a.material,l=r[t];if(a.materialSrcs||(a.materialSrcs={}),!l)return delete a.materialSrcs[e],void i(null);l!==a.materialSrcs[e]&&(a.materialSrcs[e]=l,l instanceof THREE.Texture?i(l):o.sceneEl.systems.material.loadTexture(l,{src:l,repeat:r.repeat,offset:r.offset,npot:r.npot},n))},module.exports.updateMap=function(e,t){return module.exports.updateMapMaterialFromData("map","src",e,t)},module.exports.updateDistortionMap=function(e,t,a){function r(e){o[n+"Map"]=e,o.needsUpdate=!0,handleTextureEvents(i,e)}var n=e;"ambientOcclusion"===e&&(n="ao");var i=t.el,o=t.material,s=a[e+"Map"],l={};if(l.src=s,l.offset=a[e+"TextureOffset"],l.repeat=a[e+"TextureRepeat"],l.wrap=a[e+"TextureWrap"],s){if(s===t[e+"TextureSrc"])return;return t[e+"TextureSrc"]=s,void i.sceneEl.systems.material.loadTexture(s,l,r)}o.map&&r(null)},module.exports.handleTextureEvents=handleTextureEvents,module.exports.isHLS=function(e,t){return!(!t||!HLS_MIMETYPES.includes(t.toLowerCase()))||!!(e&&e.toLowerCase().indexOf(".m3u8")>0)};
},{"../lib/three":150}],174:[function(_dereq_,module,exports){
function defaultObjectFactory(){return{}}function clearObject(e){var t;if(e.constructor===Object)for(t in e)e[t]=void 0}var EMPTY_SLOT=Object.freeze(Object.create(null));module.exports.createPool=function(e){function t(){var e;return null!==o&&o!==l.length||r(l.length||5),e=l[o],l[o++]=EMPTY_SLOT,clearObject(e),e}function n(e){if(e instanceof Object)return null===o||-1===o?void(l[l.length]=e):void(l[--o]=e)}function r(t){var n,r;if(t=void 0===t?l.length:t,t>0&&null==o&&(o=0),t>0)for(n=l.length,l.length+=Number(t),r=n;r<l.length;r++)l[r]=e();return l.length}function c(){return l.length}var l=[],o=null;return e=e||defaultObjectFactory,{grow:r,pool:l,recycle:n,size:c,use:t}},module.exports.clearObject=clearObject;
},{}],175:[function(_dereq_,module,exports){
module.exports.split=function(){var n={};return function(t,i){return i in n||(n[i]={}),t in n[i]?n[i][t]:(n[i][t]=t.split(i),n[i][t])}}();
},{}],176:[function(_dereq_,module,exports){
function validateSrc(e,a,t){checkIsImage(e,function(r){if(r)return void a(e);t(e)})}function validateCubemapSrc(e,a){function t(e){o.push(e),6===o.length&&a(o)}var r,n,c,s="",o=[];for(n=0;n<5;n++)s+="(url\\((?:[^\\)]+)\\),\\s*)";if(s+="(url\\((?:[^\\)]+)\\)\\s*)",c=e.match(new RegExp(s)))for(n=1;n<7;n++)validateSrc(parseUrl(c[n]),t);else if(r=validateAndGetQuerySelector(e))return"A-CUBEMAP"===r.tagName&&r.srcs?a(r.srcs):void warn('Selector "%s" does not point to <a-cubemap>',e)}function parseUrl(e){var a=e.match(/\url\((.+)\)/);if(a)return a[1]}function checkIsImage(e,a){var t;if(e.tagName)return void a("IMG"===e.tagName);t=new XMLHttpRequest,t.open("HEAD",e),t.addEventListener("load",function(r){var n;t.status>=200&&t.status<300?(n=t.getResponseHeader("Content-Type"),null==n?checkIsImageFallback(e,a):a(n.startsWith("image")?!0:!1)):checkIsImageFallback(e,a),t.abort()}),t.send()}function checkIsImageFallback(e,a){function t(){a(!0)}function r(){a(!1)}var n=new Image;n.addEventListener("load",t),n.addEventListener("error",r),n.src=e}function validateAndGetQuerySelector(e){try{var a=document.querySelector(e);return a||warn('No element was found matching the selector: "%s"',e),a}catch(a){return void warn('"%s" is not a valid selector',e)}}var debug=_dereq_("./debug"),warn=debug("utils:src-loader:warn");module.exports={parseUrl:parseUrl,validateSrc:validateSrc,validateCubemapSrc:validateCubemapSrc};
},{"./debug":168}],177:[function(_dereq_,module,exports){
function toCamelCase(e){function r(e){return e[1].toUpperCase()}return e.replace(/-([a-z])/g,r)}function transformKeysToCamelCase(e){var r=Object.keys(e),t={};return r.forEach(function(r){var s=toCamelCase(r);t[s]=e[r]}),t}var styleParser=_dereq_("style-attr");module.exports.parse=function(e){var r;return"string"!=typeof e?e:(r=styleParser.parse(e),r[""]?e:transformKeysToCamelCase(r))},module.exports.stringify=function(e){return"string"==typeof e?e:styleParser.stringify(e)},module.exports.toCamelCase=toCamelCase,module.exports.transformKeysToCamelCase=transformKeysToCamelCase;
},{"style-attr":35}],178:[function(_dereq_,module,exports){
function isControllerPresent(e,n,t){var r,o,l=e.el.sceneEl,i=t.index||0;return!!n&&(!!(o=l&&l.systems["tracked-controls"])&&(r=o.controllers,!!r.length&&!!findMatchingController(r,null,n,t.hand,i)))}function findMatchingController(e,n,t,r,o){var l,i,s,d,a,c,f=0,u=o||0;for(t&&t.indexOf("|")>=0&&(i=split(t,"|")),s=0;s<e.length;s++){if(l=e[s],i){for(a=!1,d=0;d<i.length;d++)if((c=i[d])&&l.id.startsWith(c)){a=!0;break}if(!a)continue}else if(t&&l.id.indexOf(t))continue;if((t||l.id===n)&&(!r||!l.hand||r===l.hand)){if(r&&!l.hand&&(u=NUM_HANDS*o+(r===DEFAULT_HANDEDNESS?0:1)),f===u)return l;++f}}}var split=_dereq_("./split").split,DEFAULT_HANDEDNESS=_dereq_("../constants").DEFAULT_HANDEDNESS,AXIS_LABELS=["x","y","z","w"],NUM_HANDS=2;module.exports.checkControllerPresentAndSetup=function(e,n,t){var r=e.el,o=isControllerPresent(e,n,t);if(e.controllerPresent&&!e.controllerEventsActive&&e.addEventListeners(),o===e.controllerPresent)return o;e.controllerPresent=o,o?(e.injectTrackedControls(),e.addEventListeners(),r.emit("controllerconnected",{name:e.name,component:e})):(e.removeEventListeners(),r.emit("controllerdisconnected",{name:e.name,component:e}))},module.exports.isControllerPresent=isControllerPresent,module.exports.findMatchingController=findMatchingController,module.exports.emitIfAxesChanged=function(e,n,t){var r,o,l,i,s;for(o in n){for(r=n[o],l=!1,s=0;s<r.length;s++)t.detail.changed[r[s]]&&(l=!0);if(l){for(i={},s=0;s<r.length;s++)i[AXIS_LABELS[s]]=t.detail.axis[r[s]];e.el.emit(o+"moved",i)}}},module.exports.onButtonEvent=function(e,n,t,r){var o=r?t.mapping[r]:t.mapping,l=o.buttons[e];t.el.emit(l+n),t.updateModel&&t.updateModel(l,n)};
},{"../constants":93,"./split":175}],179:[function(_dereq_,module,exports){
window.glStats=function(){function e(e,r){return function(){r.apply(this,arguments),e.apply(this,arguments)}}function r(){a("allcalls").set(s+i),a("drawElements").set(i),a("drawArrays").set(s),a("bindTexture").set(m),a("useProgram").set(d),a("glfaces").set(l),a("glvertices").set(c),a("glpoints").set(p)}function n(){s=0,i=0,d=0,l=0,c=0,p=0,m=0}function t(){}function o(e){a=e}var a=null,s=0,i=0,d=0,l=0,c=0,p=0,m=0;return WebGLRenderingContext.prototype.drawArrays=e(WebGLRenderingContext.prototype.drawArrays,function(){s++,arguments[0]==this.POINTS?p+=arguments[2]:c+=arguments[2]}),WebGLRenderingContext.prototype.drawElements=e(WebGLRenderingContext.prototype.drawElements,function(){i++,l+=arguments[1]/3,c+=arguments[1]}),WebGLRenderingContext.prototype.useProgram=e(WebGLRenderingContext.prototype.useProgram,function(){d++}),WebGLRenderingContext.prototype.bindTexture=e(WebGLRenderingContext.prototype.bindTexture,function(){m++}),{update:r,start:n,end:t,attach:o,values:{allcalls:{over:3e3,caption:"Calls (hook)"},drawelements:{caption:"drawElements (hook)"},drawarrays:{caption:"drawArrays (hook)"}},groups:[{caption:"WebGL",values:["allcalls","drawelements","drawarrays","useprogram","bindtexture","glfaces","glvertices","glpoints"]}],fractions:[{base:"allcalls",steps:["drawelements","drawarrays"]}]}},window.threeStats=function(e){function r(){a("renderer.info.memory.geometries").set(e.info.memory.geometries),a("renderer.info.programs").set(e.info.programs.length),a("renderer.info.memory.textures").set(e.info.memory.textures),a("renderer.info.render.calls").set(e.info.render.calls),a("renderer.info.render.faces").set(e.info.render.faces),a("renderer.info.render.points").set(e.info.render.points),a("renderer.info.render.vertices").set(e.info.render.vertices)}function n(){}function t(){}function o(e){a=e}var a=null;return{update:r,start:n,end:t,attach:o,values:{"renderer.info.memory.geometries":{caption:"Geometries"},"renderer.info.memory.textures":{caption:"Textures"},"renderer.info.programs":{caption:"Programs"},"renderer.info.render.calls":{caption:"Calls"},"renderer.info.render.faces":{caption:"Faces",over:1e3},"renderer.info.render.points":{caption:"Points"},"renderer.info.render.vertices":{caption:"Vertices"}},groups:[{caption:"Three.js - Memory",values:["renderer.info.memory.geometries","renderer.info.programs","renderer.info.memory.textures"]},{caption:"Three.js - Render",values:["renderer.info.render.calls","renderer.info.render.faces","renderer.info.render.points","renderer.info.render.vertices"]}],fractions:[]}},window.BrowserStats=function(){function e(e){var r=Math.floor(Math.log(e)/p);return Math.round(100*e/Math.pow(1024,r))/100}function r(){s=e(performance.memory.usedJSHeapSize),i=e(performance.memory.totalJSHeapSize),a("memory").set(s),a("total").set(i)}function n(){s=0}function t(){}function o(e){a=e}var a=null,s=0,i=0;window.performance&&!performance.memory&&(performance.memory={usedJSHeapSize:0,totalJSHeapSize:0}),0===performance.memory.totalJSHeapSize&&console.warn("totalJSHeapSize === 0... performance.memory is only available in Chrome .");var d={memory:{caption:"Used Memory",average:!0,avgMs:1e3,over:22},total:{caption:"Total Memory"}},l=[{caption:"Browser",values:["memory","total"]}],c=[{base:"total",steps:["memory"]}],p=Math.log(1024);return{update:r,start:n,end:t,attach:o,values:d,groups:l,fractions:c}},"object"==typeof module&&(module.exports={glStats:window.glStats,threeStats:window.threeStats,BrowserStats:window.BrowserStats});
},{}],180:[function(_dereq_,module,exports){
"use strict";!function(){"performance"in window==0&&(window.performance={});var e=window.performance;if("now"in e==0){var t=Date.now();e.timing&&e.timing.navigationStart&&(t=e.timing.navigationStart),e.now=function(){return Date.now()-t}}e.mark||(e.mark=function(){}),e.measure||(e.measure=function(){})}(),window.rStats=function(e){function t(e,t){for(var n=Object.keys(e),a=0,r=n.length;a<r;a++)t(n[a])}function n(e){var t=document.createElement("link");t.href=e,t.rel="stylesheet",t.type="text/css",document.getElementsByTagName("head")[0].appendChild(t)}function a(e,t,n){function a(e,t){l+=.1*(e-l),c*=.99,l>c&&(c=l),o.drawImage(i,1,0,i.width-1,i.height,0,0,i.width-1,i.height),t?o.drawImage(f,i.width-1,i.height-l*i.height/c-p):o.drawImage(u,i.width-1,i.height-l*i.height/c-p)}var r=n||{},i=document.createElement("canvas"),o=i.getContext("2d"),c=0,l=0,s=r.color?r.color:"#666666",u=document.createElement("canvas"),d=u.getContext("2d");u.width=1,u.height=2*p,d.fillStyle="#444444",d.fillRect(0,0,1,2*p),d.fillStyle=s,d.fillRect(0,p,1,p),d.fillStyle="#ffffff",d.globalAlpha=.5,d.fillRect(0,p,1,1),d.globalAlpha=1;var f=document.createElement("canvas"),m=f.getContext("2d");return f.width=1,f.height=2*p,m.fillStyle="#444444",m.fillRect(0,0,1,2*p),m.fillStyle="#b70000",m.fillRect(0,p,1,p),m.globalAlpha=.5,m.fillStyle="#ffffff",m.fillRect(0,p,1,1),m.globalAlpha=1,function(){i.width=h,i.height=p,i.style.width=i.width+"px",i.style.height=i.height+"px",i.className="rs-canvas",e.appendChild(i),o.fillStyle="#444444",o.fillRect(0,0,i.width,i.height)}(),{draw:a}}function r(e,n){function a(e){i.drawImage(r,1,0,r.width-1,r.height,0,0,r.width-1,r.height);var n=0;t(e,function(t){var a=e[t]*r.height;i.fillStyle=s[t],i.fillRect(r.width-1,n,1,a),n+=a})}var r=document.createElement("canvas"),i=r.getContext("2d");return function(){r.width=h,r.height=p*n,r.style.width=r.width+"px",r.style.height=r.height+"px",r.className="rs-canvas",e.appendChild(r),i.fillStyle="#444444",i.fillRect(0,0,r.width,r.height)}(),{draw:a}}function i(e,t){function n(e){if(x&&x.average){v+=e,C++;var t=performance.now();t-w>=(x.avgMs||1e3)&&(g=v/C,v=0,w=t,C=0)}}function r(){d=performance.now(),l.userTimingAPI&&performance.mark(p+"-start"),I=!0}function i(){h=performance.now()-d,l.userTimingAPI&&(performance.mark(p+"-end"),I&&performance.measure(p,p+"-start",p+"-end")),n(h)}function o(){i(),r()}function c(){var e=x&&x.average?g:h;b.nodeValue=Math.round(100*e)/100;var t=x&&(x.below&&h<x.below||x.over&&h>x.over);N.draw(h,t),y.className=t?"rs-counter-base alarm":"rs-counter-base"}function s(){var e=performance.now(),t=e-d;m++,t>1e3&&(h=x&&!1===x.interpolate?m:1e3*m/t,m=0,d=e,n(h))}function u(e){h=e,n(h)}var d,p=e,h=0,m=0,g=0,v=0,w=performance.now(),C=0,y=document.createElement("div"),E=document.createElement("span"),S=document.createElement("div"),b=document.createTextNode(""),x=l?l.values[p.toLowerCase()]:null,N=new a(y,p,x),I=!1;return E.className="rs-counter-id",E.textContent=x&&x.caption?x.caption:p,S.className="rs-counter-value",S.appendChild(b),y.appendChild(E),y.appendChild(S),t?t.div.appendChild(y):f.appendChild(y),d=performance.now(),{set:u,start:r,tick:o,end:i,frame:s,value:function(){return h},draw:c}}function o(e){var n=e.toLowerCase();if(void 0===n&&(n="default"),m[n])return m[n];var a=null;l&&l.groups&&t(l.groups,function(e){var t=l.groups[parseInt(e,10)];a||-1===t.values.indexOf(n.toLowerCase())||(a=t)});var r=new i(n,a);return m[n]=r,r}function c(){t(l.plugins,function(e){l.plugins[e].update()}),t(m,function(e){m[e].draw()}),l&&l.fractions&&t(l.fractions,function(e){var n=l.fractions[parseInt(e,10)],a=[],r=m[n.base.toLowerCase()];r&&(r=r.value(),t(l.fractions[e].steps,function(t){var n=l.fractions[e].steps[parseInt(t,10)].toLowerCase(),i=m[n];i&&a.push(i.value()/r)})),n.graph.draw(a)})}var l=e||{},s=l.colours||["#850700","#c74900","#fcb300","#284280","#4c7c0c"],u=(l.CSSPath?l.CSSPath:"")+"rStats.css";(l.css||["https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700,300",u]).forEach(function(e){n(e)}),l.values||(l.values={});var d,f,p=10,h=200,m={};return function(){if(l.plugins){l.values||(l.values={}),l.groups||(l.groups=[]),l.fractions||(l.fractions=[]);for(var e=0;e<l.plugins.length;e++)l.plugins[e].attach(o),t(l.plugins[e].values,function(t){l.values[t]=l.plugins[e].values[t]}),l.groups=l.groups.concat(l.plugins[e].groups),l.fractions=l.fractions.concat(l.plugins[e].fractions)}else l.plugins={};d=document.createElement("div"),d.className="rs-base",f=document.createElement("div"),f.className="rs-container",f.style.height="auto",d.appendChild(f),document.body.appendChild(d),l&&(l.groups&&t(l.groups,function(e){var t=l.groups[parseInt(e,10)],n=document.createElement("div");n.className="rs-group",t.div=n;var a=document.createElement("h1");a.textContent=t.caption,a.addEventListener("click",function(e){this.classList.toggle("hidden"),e.preventDefault()}.bind(n)),f.appendChild(a),f.appendChild(n)}),l.fractions&&t(l.fractions,function(e){var n=l.frLine truncated
},{}],181:[function(_dereq_,module,exports){
var Util={};Util.base64=function(e,i){return"data:"+e+";base64,"+i},Util.isMobile=function(){var e=!1;return function(i){(/(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(i)||/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(i.substr(0,4)))&&(e=!0)}(navigator.userAgent||navigator.vendor||window.opera),e},Util.isIOS=function(){return/(iPad|iPhone|iPod)/g.test(navigator.userAgent)},Util.isIFrame=function(){try{return window.self!==window.top}catch(e){return!0}},Util.appendQueryParameter=function(e,i,t){return e+=(e.indexOf("?")<0?"?":"&")+i+"="+t},Util.getQueryParameter=function(e){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var i=new RegExp("[\\?&]"+e+"=([^&#]*)"),t=i.exec(location.search);return null===t?"":decodeURIComponent(t[1].replace(/\+/g," "))},Util.isLandscapeMode=function(){return 90==window.orientation||-90==window.orientation},module.exports=Util;
},{}],182:[function(_dereq_,module,exports){
function AndroidWakeLock(){var A=document.createElement("video");A.addEventListener("ended",function(){A.play()}),this.request=function(){A.paused&&(A.src=Util.base64("video/webm","GkXfowEAAAAAAAAfQoaBAUL3gQFC8oEEQvOBCEKChHdlYm1Ch4ECQoWBAhhTgGcBAAAAAAAH4xFNm3RALE27i1OrhBVJqWZTrIHfTbuMU6uEFlSua1OsggEwTbuMU6uEHFO7a1OsggfG7AEAAAAAAACkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmAQAAAAAAAEUq17GDD0JATYCNTGF2ZjU2LjQwLjEwMVdBjUxhdmY1Ni40MC4xMDFzpJAGSJTMbsLpDt/ySkipgX1fRImIQO1MAAAAAAAWVK5rAQAAAAAAADuuAQAAAAAAADLXgQFzxYEBnIEAIrWcg3VuZIaFVl9WUDmDgQEj44OEO5rKAOABAAAAAAAABrCBsLqBkB9DtnUBAAAAAAAAo+eBAKOmgQAAgKJJg0IAAV4BHsAHBIODCoAACmH2MAAAZxgz4dPSTFi5JACjloED6ACmAECSnABMQAADYAAAWi0quoCjloEH0ACmAECSnABNwAADYAAAWi0quoCjloELuACmAECSnABNgAADYAAAWi0quoCjloEPoACmAECSnABNYAADYAAAWi0quoCjloETiACmAECSnABNIAADYAAAWi0quoAfQ7Z1AQAAAAAAAJTnghdwo5aBAAAApgBAkpwATOAAA2AAAFotKrqAo5aBA+gApgBAkpwATMAAA2AAAFotKrqAo5aBB9AApgBAkpwATIAAA2AAAFotKrqAo5aBC7gApgBAkpwATEAAA2AAAFotKrqAo5aBD6AApgDAkpwAQ2AAA2AAAFotKrqAo5aBE4gApgBAkpwATCAAA2AAAFotKrqAH0O2dQEAAAAAAACU54Iu4KOWgQAAAKYAQJKcAEvAAANgAABaLSq6gKOWgQPoAKYAQJKcAEtgAANgAABaLSq6gKOWgQfQAKYAQJKcAEsAAANgAABaLSq6gKOWgQu4AKYAQJKcAEqAAANgAABaLSq6gKOWgQ+gAKYAQJKcAEogAANgAABaLSq6gKOWgROIAKYAQJKcAEnAAANgAABaLSq6gB9DtnUBAAAAAAAAlOeCRlCjloEAAACmAECSnABJgAADYAAAWi0quoCjloED6ACmAECSnABJIAADYAAAWi0quoCjloEH0ACmAMCSnABDYAADYAAAWi0quoCjloELuACmAECSnABI4AADYAAAWi0quoCjloEPoACmAECSnABIoAADYAAAWi0quoCjloETiACmAECSnABIYAADYAAAWi0quoAfQ7Z1AQAAAAAAAJTngl3Ao5aBAAAApgBAkpwASCAAA2AAAFotKrqAo5aBA+gApgBAkpwASAAAA2AAAFotKrqAo5aBB9AApgBAkpwAR8AAA2AAAFotKrqAo5aBC7gApgBAkpwAR4AAA2AAAFotKrqAo5aBD6AApgBAkpwAR2AAA2AAAFotKrqAo5aBE4gApgBAkpwARyAAA2AAAFotKrqAH0O2dQEAAAAAAACU54J1MKOWgQAAAKYAwJKcAENgAANgAABaLSq6gKOWgQPoAKYAQJKcAEbgAANgAABaLSq6gKOWgQfQAKYAQJKcAEagAANgAABaLSq6gKOWgQu4AKYAQJKcAEaAAANgAABaLSq6gKOWgQ+gAKYAQJKcAEZAAANgAABaLSq6gKOWgROIAKYAQJKcAEYAAANgAABaLSq6gB9DtnUBAAAAAAAAlOeCjKCjloEAAACmAECSnABF4AADYAAAWi0quoCjloED6ACmAECSnABFwAADYAAAWi0quoCjloEH0ACmAECSnABFoAADYAAAWi0quoCjloELuACmAECSnABFgAADYAAAWi0quoCjloEPoACmAMCSnABDYAADYAAAWi0quoCjloETiACmAECSnABFYAADYAAAWi0quoAfQ7Z1AQAAAAAAAJTngqQQo5aBAAAApgBAkpwARUAAA2AAAFotKrqAo5aBA+gApgBAkpwARSAAA2AAAFotKrqAo5aBB9AApgBAkpwARQAAA2AAAFotKrqAo5aBC7gApgBAkpwARQAAA2AAAFotKrqAo5aBD6AApgBAkpwAROAAA2AAAFotKrqAo5aBE4gApgBAkpwARMAAA2AAAFotKrqAH0O2dQEAAAAAAACU54K7gKOWgQAAAKYAQJKcAESgAANgAABaLSq6gKOWgQPoAKYAQJKcAESAAANgAABaLSq6gKOWgQfQAKYAwJKcAENgAANgAABaLSq6gKOWgQu4AKYAQJKcAERgAANgAABaLSq6gKOWgQ+gAKYAQJKcAERAAANgAABaLSq6gKOWgROIAKYAQJKcAEQgAANgAABaLSq6gB9DtnUBAAAAAAAAlOeC0vCjloEAAACmAECSnABEIAADYAAAWi0quoCjloED6ACmAECSnABEAAADYAAAWi0quoCjloEH0ACmAECSnABD4AADYAAAWi0quoCjloELuACmAECSnABDwAADYAAAWi0quoCjloEPoACmAECSnABDoAADYAAAWi0quoCjloETiACmAECSnABDgAADYAAAWi0quoAcU7trAQAAAAAAABG7j7OBALeK94EB8YIBd/CBAw=="),A.play())},this.release=function(){A.pause(),A.src=""}}function iOSWakeLock(){var A=null;this.request=function(){A||(A=setInterval(function(){window.location.href="/",setTimeout(window.stop,0)},15e3))},this.release=function(){A&&(clearInterval(A),A=null)}}function getWakeLock(){var A=navigator.userAgent||navigator.vendor||window.opera;return A.match(/iPhone/i)||A.match(/iPod/i)?iOSWakeLock:AndroidWakeLock}var Util=_dereq_("./util.js");module.exports=getWakeLock();
},{"./util.js":181}]},{},[148])(148)
});
//# sourceMappingURL=aframe.min.js.map
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

+575
View File
@@ -0,0 +1,575 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Jogo VR Rolimã do livro "Jean: entre jogos e brincadeiras"</title>
<meta name="description" content="">
<script src="aframe.0.8.2.min.js"></script>
<script src="aframe-aabb-collider-component.min.js"></script>
<script>
var RotY;
var RotZ;
AFRAME.registerComponent('rotation-reader', {
tick: function () {
RotZ = this.el.object3D.rotation.y;
RotY = this.el.object3D.rotation.z;
}
});
</script>
</head>
<body>
<a-scene>
<a-assets>
<img id="sky" src="fundo.jpg">
<a-asset-item id="cidade" src="cidade.glb"></a-asset-item>
<!-- A Cidade
"CCity Building Set 1" (https://skfb.ly/LpSC) by Neberkenezer is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
Alterações foram feitas
-->
<a-asset-item id="carrinho" src="carrinho.glb"></a-asset-item>
<a-asset-item id="cone" src="cone.glb"></a-asset-item>
<!--
Cone
"Orange street cone" (https://skfb.ly/6RUHP) by Mateusz Woliński is licensed under Creative Commons Attribution (http://creativecommons.org/licenses/by/4.0/).
Alterações foram feitas
-->
<audio id="rolima" src="429104__inspectorj__marble-rolling-on-wood-alt.mp3" ></audio>
<!-- Som Rolimã
Usuário InspectorJ do freesound.org
Marble, Rolling on Wood, A.wav
https://freesound.org/people/InspectorJ/sounds/429104/
licença: https://creativecommons.org/licenses/by/3.0/
Foram realizadas alterações no arquivo
-->
<audio id="cont" src="528730__alexhanj__ping_alt.mp3" ></audio>
<!-- Som contagem
Usuário Alexhanj do freesound.org
Ping.aiff
https://freesound.org/people/Alexhanj/sounds/528730/
licença: https://creativecommons.org/publicdomain/zero/1.0/
-->
<audio id="vai" src="403005__inspectorj__ui-confirmation-alert-a4_alt.mp3" ></audio>
<!-- Som do vai
Usuário InspectorJ do freesound.org
UI Confirmation Alert, A4.wav
https://freesound.org/people/InspectorJ/sounds/403005/
licença: https://creativecommons.org/licenses/by/3.0/
-->
<audio id="sucesso" src="60443__jobro__tada1.mp3" ></audio>
<!-- Som de sucesso, conclusão
Usuário jobro do freesound.org
Success!! » tada1.wav
https://freesound.org/people/jobro/sounds/60443/
licença: https://creativecommons.org/licenses/by/3.0/
Foi feita uma pequena alteração
-->
<audio id="batida" src="456319__cupido-1__hit-ball.mp3" ></audio>
<!-- Som batida no cone
Usuário cupido-1 do freesound.org
hit ball.WAV
https://freesound.org/people/cupido-1/sounds/456319/
licença: https://creativecommons.org/publicdomain/zero/1.0/
Alterações foram feitas
-->
<audio id="falhou" src="563850__nikplaymostories__fail-trombone-wah-wah-wah-sound-effect.mp3" ></audio>
<!-- Som de game over - você falhou
Usuário NikPlaymostories do freesound.org
Fail (Trombone wah, wah, wah…) - Sound Effect.mp3
https://freesound.org/people/NikPlaymostories/sounds/563850/
licença: https://creativecommons.org/publicdomain/zero/1.0/
Alterações foram feitas
-->
</a-assets>
<a-sky src="#sky"></a-sky>
<a-entity id="roll" sound="src: #rolima; volume: 3"></a-entity>
<a-entity id="contSom" sound="src: #cont"></a-entity>
<a-entity id="vaiSom" sound="src: #vai"></a-entity>
<a-entity id="batidaSom" sound="src: #batida; volume:5"></a-entity>
<a-entity id="gameOverSom" sound="src: #falhou; volume:5"></a-entity>
<a-entity id="sucessoSom" sound="src: #sucesso; volume:25"></a-entity>
<a-entity id="camera" camera="active: true;" position="0 13.2 5"> <!-- Necessário para posicionar a camera -->
<a-entity rotation-reader camera="active: true" look-controls position="0 0 0" rotation="0 0 0">
<a-text id="contagem" visible="false" value="3" position="0 0.1 -0.4" width="3" color="#FFFFFF" align="center"></a-text>
<a-text id="instrucao" value="Desvie dos cones. Clique no desenho do canto inferior direito para iniciar." position="0 0.05 -0.2" width="0.5" color="#FFFFFF" align="center"></a-text>
<a-text id="textoFinal" visible="false" value="Isso! Vamos complicar um pouco? Aguarde a contagem novamente." position="0 0.05 -0.2" width="0.5" color="#FFFFFF" align="center"></a-text>
<a-text id="gameOver" visible="false" value="Que pena... Tente outra vez! Aguarde..." position="0 0.05 -0.2" width="0.5" color="#FFFFFF" align="center"></a-text>
</a-entity>
</a-entity>
<a-entity gltf-model="#cidade" position="22.5 0 -180" rotation="0 90 0"></a-entity>
<a-entity id="player" class="player" gltf-model="#carrinho" position="0 13 5" rotation="-4 0 0"></a-entity>
</a-scene>
<script>
var cam = document.querySelector('#camera');
var player = document.querySelector('#player');
var textoFinal = document.querySelector('#textoFinal');
var contagem = document.querySelector('#contagem');
let play;
var Px;
var Py;
let roll = document.querySelector('#roll');
let contSom = document.querySelector('#contSom');
let vaiSom = document.querySelector('#vaiSom');
let batidaSom = document.querySelector('#batidaSom');
let sucessoSom = document.querySelector('#sucessoSom');
let gameOverSom = document.querySelector('#gameOverSom');
let k = 0.1; //velocidade
var fase = 1;
function contarElArr(arr, el) {
return arr.filter(item => item == el).length;
}
function finalizarJogo(e) {
player.removeEventListener('hitstart', finalizarJogo);
var obj = e.detail.id;
cancelAnimationFrame(play);
roll.components.sound.stopSound();
batidaSom.components.sound.playSound();
setTimeout(() => {
gameOverSom.components.sound.playSound();
batidaSom.components.sound.stopSound();
}, 500);
gameOver.setAttribute('visible', true);
setTimeout(() => {
gameOverSom.components.sound.stopSound();
gameOver.setAttribute('visible', false);
voltarPosicaoInicial(0);
}, 3000);
console.log("Objeto colidido: "+obj);
}
function sortearObstaculos() {
let val = 12 - fase;
let qtde = parseInt(val,10)-1;
let posicoes = [0,15,30,45,60,75,90,105,120,135,150,165,180,195];
let sorteados = [];
for (i=0;i<qtde;i++){
let status = false;
let sorteado = Math.floor(Math.random()*(posicoes.length-1)); // sorteia números de 0 até a quantidade de posições menos um.
let rep = contarElArr(sorteados,posicoes[sorteado]);
if ( rep >= 2){
posicoes.splice(sorteado, 1);
sorteado = Math.floor(Math.random()*(posicoes.length-1)); // sorteia números de 0 até a quantidade de posições menos um.
sorteados.push(posicoes[sorteado]);
status = true;
} else {
sorteados.push(posicoes[sorteado]);
status = true;
}
if (status){
let sorteadoECD = Math.floor((Math.random()*3)+1); //sorteia 1, 2 ou 3. "1" esquerda, "2", centro e "3", direita.
let id = sorteado.toString();
let posX;
if(sorteadoECD == 1){
posX = -2.1;
} else if(sorteadoECD == 2){
posX = 0;
} else {
posX = 2.1;
}
let el = document.createElement('a-entity');
el.setAttribute('gltf-model','#cone');
let sceneEl = document.querySelector('a-scene');
sceneEl.appendChild(el);
el.id = id;
el.object3D.position.x = posX;
el.object3D.position.z = -10 - sorteados[i]; // -10 para o primeiro obstáculo não ficar muito em cima no início
el.object3D.position.y = (10 + sorteados[i])*(-0.0699) + 12.65;
el.setAttribute('aabb-collider','objects: .player; collideNonVisible: true');
}//fecha if do status
}// fecha for
}// fecha a funcao sortearObstaculos
function checarFim() {
if(this.player.object3D.position.z <= -210){
cancelAnimationFrame(play);
sucessoSom.components.sound.playSound();
roll.components.sound.stopSound();
if (fase == 1){
textoFinal.setAttribute('visible', true);
setTimeout(() => {
voltarPosicaoInicial(1);
}, 3000);
} else if (fase == 2) {
textoFinal.setAttribute('value','Uau! Uma mais complicada?')
textoFinal.setAttribute('visible', true);
setTimeout(() => {
voltarPosicaoInicial(2);
}, 3000);
} else if (fase == 3) {
textoFinal.setAttribute('value','Irado! Vou complicar mais!')
textoFinal.setAttribute('visible', true);
setTimeout(() => {
voltarPosicaoInicial(3);
}, 3000);
} else if (fase == 4) {
textoFinal.setAttribute('value','Fim. Que fera!')
textoFinal.setAttribute('visible', true);
}
}
}
function voltarPosicaoInicial(numFase) {
this.player.object3D.position.z = 5;
this.player.object3D.position.y = 13;
this.cam.object3D.position.z = 5;
this.cam.object3D.position.y = 13.2;
fase = numFase + 1;
k = parseInt(fase,10)*0.1;
console.log('Fase: '+fase+' k: '+k);
textoFinal.setAttribute('visible', false);
iniciarContagem();
}
function iniciarContagem() {
player.addEventListener('hitstart', finalizarJogo);
sortearObstaculos();
contSom.components.sound.stopSound();
instrucao.setAttribute('visible', false);
let tempoRestante = 3;
let contador = setInterval(function(){
contagem.setAttribute('visible', true);
if(tempoRestante <= -1){
clearInterval(contador);
contagem.setAttribute('visible', false);
requestAnimationFrame(moverPlayer);
roll.components.sound.playSound();
}
if(tempoRestante > 0){
contagem.setAttribute('value', tempoRestante);
contSom.components.sound.playSound();
} else if (tempoRestante == 0){
contagem.setAttribute('value', 'Vai!');
vaiSom.components.sound.playSound();
}
tempoRestante -= 1;
}, 1000);
}
function andarPraFrente(Py) {
this.player.object3D.position.z = -1*(Py + k);
this.player.object3D.position.y = (Py + k)*(-0.0699) + 13; //faz a descida do carrinho
this.cam.object3D.position.z = player.object3D.position.z;
this.cam.object3D.position.y = (Py + k)*(-0.0699) + 13.2; //faz a descida da câmera
checarFim();
}
const moverPlayer = () => {
play = requestAnimationFrame(moverPlayer);
Px = player.object3D.position.x;
Py = -1*(player.object3D.position.z);
if ((RotZ % Math.PI == 0) && ((RotZ/Math.PI) % 2 == 0)){//anda para frente
andarPraFrente(Py);
} else if ((-1*Math.sin(RotZ)) > 0 && Math.cos(RotZ) > 0){ //Diagonal entre frente e direita
this.player.object3D.rotation.y = RotZ;
let DeltaX = (Px + k*(-1*Math.sin(RotZ)));
DeltaX <= 2.5? null:DeltaX = 2.5;
this.player.object3D.position.z = -1*(Py + k*(Math.cos(RotZ)));
this.player.object3D.position.x = DeltaX;
this.player.object3D.position.y = (Py + k*(Math.cos(RotZ)))*(-0.0699) + 13; //faz a descida do carrinho
this.cam.object3D.position.z = player.object3D.position.z;
this.cam.object3D.position.x = DeltaX;
this.cam.object3D.position.y = player.object3D.position.y+0.2; //faz a descida da câmera
checarFim();
} else if (Math.sin(RotZ) > 0 && (-1*Math.cos(RotZ)) < 0){//Diagonal entre frente e esquerda
this.player.object3D.rotation.y = RotZ;
let DeltaX = (Px - k*(Math.sin(RotZ)));
DeltaX >= -2.5? null: DeltaX = -2.5;
this.player.object3D.position.z = -1*(Py + k*(Math.cos(RotZ)));
this.player.object3D.position.x = DeltaX;
this.player.object3D.position.y = (Py + k*(Math.cos(RotZ)))*(-0.0699) + 13; //faz a descida do carrinho
this.cam.object3D.position.z = player.object3D.position.z;
this.cam.object3D.position.x = DeltaX;
this.cam.object3D.position.y = player.object3D.position.y+0.2; //faz a descida da câmera
checarFim();
}else if ((RotZ/(Math.PI/2)) % 2 != 0 && (RotZ/(Math.PI/2)) % 4 == 1 || ((-1*Math.sin(RotZ)) < 0 && Math.cos(RotZ) < 0) || ((RotZ % Math.PI == 0) && ((RotZ/Math.PI) % 2 != 0)) || (Math.sin(RotZ) < 0 && (-1*Math.cos(RotZ))) || ((RotZ/(Math.PI/2)) % 2 != 0 && (RotZ/(Math.PI/2)) % 4 == 3)){
//Andar para esquerda || Diagonal entre esquerda e pra baixo || Andar pra baixo || Diagonal entre direita e pra baixo || Anda para direita - nessa ordem (separados por ou)
//Nesses casos, o carrinho deve continuar andando para frente
andarPraFrente(Py);
}
}
document.querySelector('a-scene').addEventListener('enter-vr', function () {
iniciarContagem();
});
</script>
</body>
</html>
Executable
+48
View File
@@ -0,0 +1,48 @@
# Introdução {.unnumbered .hidden}
```{=html}
<script src="scripts/pintarTela.js"></script>
<div id="conteudo-capitulo">
```
::: {.grid .grid_titulo}
::: {.g-col-3}
::: {.fig_titulo}
![](img/controller-1784571_295_pixabay_IO-Images.png "Desenho de um controle genérico de video game")
:::
:::
::: {.g-col-9}
# Introdução {.unnumbered}
:::
:::
```{=html}
<p class="unidade" id="CP1" title="CP1">E se pudéssemos viver na época dos nossos pais, como seria? Você já deve ter ouvido de algum adulto “em minha época não era assim”. Meu pai sempre me diz isso. E o pai dele sempre dizia isso para ele. <a id="_Hlk87018112"></a>E o pai do pai do meu pai também dizia isso. E... bom, acho que você entendeu, né!?</p><p class="unidade" id="CP2" title="CP2">– Em minha época meus amigos e eu brincávamos na rua, descalços, entrávamos sujos em casa ao anoitecer. Você só fica nesse quarto. Se não está mexendo no celular está no computador.</p><p class="unidade" id="CP3" title="CP3">Essa fala é uma das várias que meu pai utiliza, quando eu estou conectado com meus amigos. É tão difícil assim para ele entender que eu também estou brincando e interagindo? Só que de maneira diferente.</p><p class="unidade" id="CP4" title="CP4">Sem contar que, quando o meu pai tinha a minha idade, não tinha os jogos nos celulares e computadores como tem hoje. Acho que por isso que é tão difícil dele aceitar o meu tempo com os jogos. Além disso, meu pai pertence a geração chamada de <em>millennials, </em>pois tem 39 anos. Os nascidos nessa geração viram a internet se desenvolver e evoluir, mas isso não quer dizer que meu pai é a favor dos jogos eletrônicos, pelo contrário. Ele gosta de pesquisar o resultado do jogo do nosso time, de conversar com seus amigos em redes sociais, mas falou em jogo ele é contra.</p><p class="unidade" id="CP5" title="CP5">Meu pai tem o costume de dizer que eu sou criança, mas na verdade sou quase um adolescente. E pessoas nessa fase da vida não ficam mais brincando de carrinho. Pois bem, aqui inicia uma história divertida que eu, Jean, vou contar a você.</p><p class="unidade" id="CP6" title="CP6">Eu nasci em 10 de outubro de 2010. Tenho 11 anos e pertenço a geração <em>alpha</em>. Uma geração conhecida por ser rodeada de tecnologia. Há quem diga que os nascidos nessa geração “vão dominar o mundo”. Isso inclui: eu!</p><p class="unidade" id="CP7" title="CP7">Eu já nasci sabendo mexer no celular e olha que não é exagero. Uma vez, eu estava chorando e meu pai entregou o celular dele com um desenho animado e desde então, sou encantado pela tecnologia. E olha que eu só tinha três meses de vida.</p><canvas class="unidade" id="CP8" title="CP8" width="465" height="285"><img class="substituta" src="img/bua.png" alt="Desenho a m~ão de um carrinho de bebê com um choro vindo de dentro."/></canvas><p class="unidade" id="CP9" title="CP9">Com dois anos, eu já sabia acessar vídeos na <em>Internet, </em>com cinco eu já instalava jogos e com oito eu já gravava vídeos e postava em meu canal. E no meu aniversário de dez anos, ganhei o meu primeiro computador. Agora, depois de tudo isso, meu pai me diz:</p><p class="unidade" id="CP10" title="CP10">– Estou a ponto de quebrar esse computador!</p><p class="unidade" id="CP11" title="CP11">– Mas pai, você que me deu.</p><p class="unidade" id="CP12" title="CP12">Eu respondi preocupado.</p><p class="unidade" id="CP13" title="CP13">– Não me responda Jean.</p><p class="unidade" id="CP14" title="CP14">– Mas pai... </p><p class="unidade" id="CP15" title="CP15">– Mas nada, desliga isso agora!</p><div style="width: 40px; margin: 40px auto; display: block; text-align: center;">* * *</div>
</div>
<script>
var js_el_um = document.getElementById('CP8');
var img_url ="img/bua.png";
var programa_um_criado = new pintarTela(js_el_um, img_url);
</script>
```
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Loaded 100 of 193 files, more files were not shown because too many files have changed in this diff. Show more