├── .gitignore ├── CNAME ├── Makefile ├── README.md ├── config └── workbox-config.js ├── decoderfiles ├── draco_decoder.js ├── draco_decoder.wasm ├── draco_decoder_gltf.js ├── draco_encoder.js ├── draco_wasm_wrapper.js └── draco_wasm_wrapper_gltf.js ├── favicon.ico ├── fotos ├── FlyingMachine_RA.jpeg ├── qrcode.png └── vitruvian_RA.jpeg ├── images ├── apple-touch-icon.png ├── favicon-16x16.png ├── favicon-32x32.png ├── icon-192x192.png ├── icon-512x512.png └── safari-pinned-tab.svg ├── img ├── markers.jpg ├── markers.pdf ├── monalisa.jpg ├── pattern-fly200.png ├── pattern-monalisa200.png ├── pattern-vinci200.png └── pattern-vitruvio200.png ├── index.html ├── manifest.json ├── modal.css ├── modal.min.css ├── model ├── flying_machine │ ├── glider.jpg │ └── optimized.glb ├── leonard_de_vinci │ └── optimized.glb └── vitruvian │ └── optimized.glb ├── package-lock.json ├── patterns ├── pattern-fly.patt ├── pattern-monalisa.patt ├── pattern-vinci.patt └── pattern-vitruvio.patt ├── style.css ├── sw-precaching.js ├── sw.js └── vendor ├── aframe-ar.min.js ├── aframe-extras.min.js ├── aframe-shadow-plane.js ├── aframe.min.js └── aframe.min.js.map /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | https://davinci500.surge.sh -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | server: 2 | http-server -c-1 3 | 4 | workbox-generate-precaching: 5 | workbox injectManifest workbox-config.js 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Homenagem Leonardo da Vinci 500 anos 2 | 3 | ## Descrição 4 | 5 | Aplicação em **Realidade Aumentada na Web** com **[A-Frame](https://aframe.io/)** e **[AR.js](https://github.com/jeromeetienne/AR.js)** com suporte a **[PWA](https://developers.google.com/web/progressive-web-apps/)** em homenagem ao Leonardo da Vinci. 6 | 7 | - Modelos 3D: 8 | - Flying machine by [C. Yamahata on Sketchfab](https://sketchfab.com/3d-models/flying-machine-40bdbc05e69b464baca9fe547280e522) 9 | - The Vitruvian Man by [Fritz Feuerlocke on Sketchfab](https://sketchfab.com/3d-models/the-vitruvian-man-6c0b99ce8463468fbd00f304dbe7e105), texturizado com editor do [Three.js](https://threejs.org/) 10 | - Busto Léonard de Vinci by [josselintd on Sketchfab](https://sketchfab.com/3d-models/leonard-de-vinci-6acb521e313146349220710360dc392e) 11 | 12 | **Compressão geométrica do Modelos 3D efetuado com [Draco 3D Data Compression](https://google.github.io/draco/). Resultando numa boa compressão dos arquivos e garantindo uma melhor perfomance.** 13 | 14 | ## Rodar projeto localmente 15 | 16 | - Baixe esse repositório e vá até a pasta; 17 | - Use um servidor local para executar o projeto localmente. [Orientações aqui](https://aframe.io/docs/0.9.0/introduction/installation.html#use-a-local-server); 18 | 19 | ## Projeto em produção 20 | 21 | - Para visualizar em produção, acesse o site: 22 | - Escaneando o QR-Code abaixo: 23 | 24 | ![qrcode](/fotos/qrcode.png) 25 | 26 | - ou [clicando aqui](https://bit.ly/davinci500anos). 27 | 28 | Observações: Marcadores disponíveis para download na própria página. 29 | 30 | **** 31 | 32 | ## Exemplos de resultado 33 | 34 | ![screenshot](/fotos/FlyingMachine_RA.jpeg) 35 | ![screenshot](/fotos/vitruvian_RA.jpeg) 36 | -------------------------------------------------------------------------------- /config/workbox-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | "globDirectory": "app", 3 | "globPatterns": [ 4 | "**/*.{html,js}" 5 | ], 6 | "swDest": "app/sw-precaching.js", 7 | "swSrc": "app/sw.js" 8 | }; 9 | -------------------------------------------------------------------------------- /decoderfiles/draco_decoder.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/decoderfiles/draco_decoder.wasm -------------------------------------------------------------------------------- /decoderfiles/draco_wasm_wrapper.js: -------------------------------------------------------------------------------- 1 | var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(d,k,f){d!=Array.prototype&&d!=Object.prototype&&(d[k]=f.value)};$jscomp.getGlobal=function(d){return"undefined"!=typeof window&&window===d?d:"undefined"!=typeof global&&null!=global?global:d};$jscomp.global=$jscomp.getGlobal(this); 2 | $jscomp.polyfill=function(d,k,f,v){if(k){f=$jscomp.global;d=d.split(".");for(v=0;v>>16&65535)*h+k*(f>>>16&65535)<<16>>>0)|0}},"es6","es3"); 3 | $jscomp.polyfill("Math.clz32",function(d){return d?d:function(d){d=Number(d)>>>0;if(0===d)return 32;var f=0;0===(d&4294901760)&&(d<<=16,f+=16);0===(d&4278190080)&&(d<<=8,f+=8);0===(d&4026531840)&&(d<<=4,f+=4);0===(d&3221225472)&&(d<<=2,f+=2);0===(d&2147483648)&&f++;return f}},"es6","es3");$jscomp.polyfill("Math.trunc",function(d){return d?d:function(d){d=Number(d);if(isNaN(d)||Infinity===d||-Infinity===d||0===d)return d;var f=Math.floor(Math.abs(d));return 0>d?-f:f}},"es6","es3"); 4 | $jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var d=0;return function(k){return $jscomp.SYMBOL_PREFIX+(k||"")+d++}}(); 5 | $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var d=$jscomp.global.Symbol.iterator;d||(d=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[d]&&$jscomp.defineProperty(Array.prototype,d,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(d){var k=0;return $jscomp.iteratorPrototype(function(){return k>0];c|=e;if(0==e&&!b)break;d++;if(b&&d==b)break}b||(b=d);e="";if(128>c){for(;0e?c+=String.fromCharCode(e):(e-=65536,c+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else c+=String.fromCharCode(e)}}function ha(a,b){0< 16 | a%b&&(a+=b-a%b);return a}function q(){a.HEAP8=ia=new Int8Array(D);a.HEAP16=Ja=new Int16Array(D);a.HEAP32=E=new Int32Array(D);a.HEAPU8=V=new Uint8Array(D);a.HEAPU16=new Uint16Array(D);a.HEAPU32=new Uint32Array(D);a.HEAPF32=new Float32Array(D);a.HEAPF64=new Float64Array(D)}function B(e){for(;0>2]=e;e=la.buffer;for(var d=0;d>2],b.adjusted=e,(sa(p[d]),e)|0;e=E[e>>2]; 18 | return(sa(c),e)|0}function Y(e,b){u.varargs=b;try{var c=u.get(),p=u.get(),d=u.get();e=0;Y.buffers||(Y.buffers=[null,[],[]],Y.printChar=function(b,c){var e=Y.buffers[b];f(e);0===c||10===c?((1===b?a.print:a.printErr)(h(e,0)),e.length=0):e.push(c)});for(b=0;b>2],k=E[p+(8*b+4)>>2],l=0;l=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++c)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:2097151>=e?b+4:67108863>=e?b+5:b+6}b=Array(b+1);c=0;e=b.length;if(0=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++d)&1023);if(127>=f){if(c>=e)break;b[c++]=f}else{if(2047>=f){if(c+1>=e)break;b[c++]=192|f>>6}else{if(65535>=f){if(c+2>=e)break;b[c++]=224|f>>12}else{if(2097151>= 22 | f){if(c+3>=e)break;b[c++]=240|f>>18}else{if(67108863>=f){if(c+4>=e)break;b[c++]=248|f>>24}else{if(c+5>=e)break;b[c++]=252|f>>30;b[c++]=128|f>>24&63}b[c++]=128|f>>18&63}b[c++]=128|f>>12&63}b[c++]=128|f>>6&63}b[c++]=128|f&63}}b[c]=0}a=l.alloc(b,ia);l.copy(b,ia,a)}return a}function z(){throw"cannot construct a Status, no constructor in IDL";}function F(){this.ptr=Wa();t(F)[this.ptr]=this}function G(){this.ptr=Xa();t(G)[this.ptr]=this}function H(){this.ptr=Ya();t(H)[this.ptr]=this}function I(){this.ptr= 23 | Za();t(I)[this.ptr]=this}function J(){this.ptr=$a();t(J)[this.ptr]=this}function n(){this.ptr=ab();t(n)[this.ptr]=this}function P(){this.ptr=bb();t(P)[this.ptr]=this}function x(){this.ptr=cb();t(x)[this.ptr]=this}function K(){this.ptr=db();t(K)[this.ptr]=this}function r(){this.ptr=eb();t(r)[this.ptr]=this}function L(){this.ptr=fb();t(L)[this.ptr]=this}function M(){this.ptr=gb();t(M)[this.ptr]=this}function U(){this.ptr=hb();t(U)[this.ptr]=this}function Q(){this.ptr=ib();t(Q)[this.ptr]=this}function g(){this.ptr= 24 | jb();t(g)[this.ptr]=this}function C(){this.ptr=kb();t(C)[this.ptr]=this}function W(){throw"cannot construct a VoidPtr, no constructor in IDL";}function N(){this.ptr=lb();t(N)[this.ptr]=this}function R(){this.ptr=mb();t(R)[this.ptr]=this}d=d||{};var a="undefined"!==typeof d?d:{},Qa=!1,Ra=!1;a.onRuntimeInitialized=function(){Qa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ra=!0;if(Qa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported= 25 | function(a){if("string"!==typeof a)return!1;a=a.split(".");return 2>a.length||3=a[1]?!0:0!=a[0]||10>2]},getStr:function(){return v(u.get())},get64:function(){var a=u.get(),b=u.get();0<=a?f(0===b):f(-1===b);return a},getZero:function(){f(0===u.get())}},va={},Ha=1;ka=function(a){f(!Sa);var b=aa;aa=aa+ 40 | a+15&-16;return b}(4);Ca=ta=k(aa);ua=Ca+Fa;Da=k(ua);E[ka>>2]=Da;Sa=!0;a.wasmTableSize=492;a.wasmMaxTableSize=492;a.asmGlobalArg={};a.asmLibraryArg={abort:O,assert:f,enlargeMemory:function(){var e=a.usingWasm?65536:16777216,b=2147483648-e;if(E[ka>>2]>b)return!1;var c=A;for(A=Math.max(A,16777216);A>2];)A=536870912>=A?ha(2*A,e):Math.min(ha((3*A+2147483648)/4,e),b);e=a.reallocBuffer(A);if(!e||e.byteLength!=A)return A=c,!1;a.buffer=D=e;q();return!0},getTotalMemory:function(){return A},abortOnCannotGrowMemory:function(){O("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+ 41 | A+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_ii:function(e,b){try{return a.dynCall_ii(e,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;a.setThrew(1,0)}},invoke_iii:function(e,b,c){try{return a.dynCall_iii(e,b,c)}catch(p){if("number"!==typeof p&&"longjmp"!==p)throw p;a.setThrew(1,0)}},invoke_iiii:function(e,b,c,d){try{return a.dynCall_iiii(e, 42 | b,c,d)}catch(S){if("number"!==typeof S&&"longjmp"!==S)throw S;a.setThrew(1,0)}},invoke_iiiiiii:function(e,b,c,d,f,g,h){try{return a.dynCall_iiiiiii(e,b,c,d,f,g,h)}catch(ca){if("number"!==typeof ca&&"longjmp"!==ca)throw ca;a.setThrew(1,0)}},invoke_v:function(e){try{a.dynCall_v(e)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;a.setThrew(1,0)}},invoke_vi:function(e,b){try{a.dynCall_vi(e,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;a.setThrew(1,0)}},invoke_vii:function(e,b,c){try{a.dynCall_vii(e, 43 | b,c)}catch(p){if("number"!==typeof p&&"longjmp"!==p)throw p;a.setThrew(1,0)}},invoke_viii:function(e,b,c,d){try{a.dynCall_viii(e,b,c,d)}catch(S){if("number"!==typeof S&&"longjmp"!==S)throw S;a.setThrew(1,0)}},invoke_viiii:function(e,b,c,d,f){try{a.dynCall_viiii(e,b,c,d,f)}catch(xa){if("number"!==typeof xa&&"longjmp"!==xa)throw xa;a.setThrew(1,0)}},invoke_viiiii:function(e,b,c,d,f,g){try{a.dynCall_viiiii(e,b,c,d,f,g)}catch(ba){if("number"!==typeof ba&&"longjmp"!==ba)throw ba;a.setThrew(1,0)}},invoke_viiiiii:function(e, 44 | b,c,d,f,g,h){try{a.dynCall_viiiiii(e,b,c,d,f,g,h)}catch(ca){if("number"!==typeof ca&&"longjmp"!==ca)throw ca;a.setThrew(1,0)}},__ZSt18uncaught_exceptionv:w,___cxa_allocate_exception:function(a){return Ka(a)},___cxa_begin_catch:function(a){var b=y.infos[a];b&&!b.caught&&(b.caught=!0,w.uncaught_exception--);b&&(b.rethrown=!1);y.caught.push(a);y.addRef(y.deAdjust(a));return a},___cxa_find_matching_catch:la,___cxa_pure_virtual:function(){oa=!0;throw"Pure virtual function called!";},___cxa_throw:function(a, 45 | b,c){y.infos[a]={ptr:a,adjusted:a,type:b,destructor:c,refcount:0,caught:!1,rethrown:!1};y.last=a;"uncaught_exception"in w?w.uncaught_exception++:w.uncaught_exception=1;throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";},___gxx_personality_v0:function(){},___resumeException:function(a){y.last||(y.last=a);throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; 46 | },___setErrNo:function(d){a.___errno_location&&(E[a.___errno_location()>>2]=d);return d},___syscall140:function(a,b){u.varargs=b;try{var c=u.getStreamFromFD();u.get();var d=u.get(),e=u.get(),f=u.get();FS.llseek(c,d,f);E[e>>2]=c.position;c.getdents&&0===d&&0===f&&(c.getdents=null);return 0}catch(ba){return"undefined"!==typeof FS&&ba instanceof FS.ErrnoError||O(ba),-ba.errno}},___syscall146:Y,___syscall54:function(a,b){u.varargs=b;return 0},___syscall6:function(a,b){u.varargs=b;try{var c=u.getStreamFromFD(); 47 | FS.close(c);return 0}catch(p){return"undefined"!==typeof FS&&p instanceof FS.ErrnoError||O(p),-p.errno}},_abort:function(){a.abort()},_emscripten_memcpy_big:function(a,b,c){V.set(V.subarray(b,b+c),a);return a},_llvm_floor_f64:pb,_llvm_trap:function(){O("trap!")},_pthread_getspecific:function(a){return va[a]||0},_pthread_key_create:function(a,b){if(0==a)return 22;E[a>>2]=Ha;va[Ha]=0;Ha++;return 0},_pthread_once:ma,_pthread_setspecific:function(a,b){if(!(a in va))return 22;va[a]=b;return 0},flush_NO_FILESYSTEM:function(){var d= 48 | a._fflush;d&&d(0);if(d=Y.printChar){var b=Y.buffers;b[1].length&&d(1,10);b[2].length&&d(2,10)}},DYNAMICTOP_PTR:ka,tempDoublePtr:rb,ABORT:oa,STACKTOP:ta,STACK_MAX:ua};var Ua=a.asm(a.asmGlobalArg,a.asmLibraryArg,D);a.asm=Ua;a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)};a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)};var $a=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0.apply(null, 49 | arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1.apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform___destroy___0.apply(null,arguments)},ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0.apply(null, 50 | arguments)},cb=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0.apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1.apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform___destroy___0.apply(null, 51 | arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_min_value_1.apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0.apply(null,arguments)},zb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_range_0.apply(null, 52 | arguments)},bb=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return a.asm._emscripten_bind_AttributeTransformData_AttributeTransformData_0.apply(null,arguments)},Ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return a.asm._emscripten_bind_AttributeTransformData___destroy___0.apply(null,arguments)},Bb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return a.asm._emscripten_bind_AttributeTransformData_transform_type_0.apply(null, 53 | arguments)},ib=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return a.asm._emscripten_bind_DecoderBuffer_DecoderBuffer_0.apply(null,arguments)},Cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return a.asm._emscripten_bind_DecoderBuffer_Init_2.apply(null,arguments)},Db=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return a.asm._emscripten_bind_DecoderBuffer___destroy___0.apply(null,arguments)},Eb=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return a.asm._emscripten_bind_Decoder_DecodeBufferToMesh_2.apply(null, 54 | arguments)},Fb=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return a.asm._emscripten_bind_Decoder_DecodeBufferToPointCloud_2.apply(null,arguments)},jb=a._emscripten_bind_Decoder_Decoder_0=function(){return a.asm._emscripten_bind_Decoder_Decoder_0.apply(null,arguments)},Gb=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeByUniqueId_2.apply(null,arguments)},Hb=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3= 55 | function(){return a.asm._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3.apply(null,arguments)},Ib=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeFloat_3.apply(null,arguments)},Jb=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3.apply(null,arguments)},Kb=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIdByName_2.apply(null, 56 | arguments)},Lb=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeId_2.apply(null,arguments)},Mb=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3.apply(null,arguments)},Nb=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3.apply(null,arguments)},Ob=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3= 57 | function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3.apply(null,arguments)},Pb=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3.apply(null,arguments)},Qb=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeMetadata_2.apply(null,arguments)},Rb=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3.apply(null, 58 | arguments)},Sb=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3.apply(null,arguments)},Tb=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3.apply(null,arguments)},Ub=a._emscripten_bind_Decoder_GetAttribute_2=function(){return a.asm._emscripten_bind_Decoder_GetAttribute_2.apply(null,arguments)},Vb=a._emscripten_bind_Decoder_GetEncodedGeometryType_1= 59 | function(){return a.asm._emscripten_bind_Decoder_GetEncodedGeometryType_1.apply(null,arguments)},Wb=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return a.asm._emscripten_bind_Decoder_GetFaceFromMesh_3.apply(null,arguments)},Xb=a._emscripten_bind_Decoder_GetMetadata_1=function(){return a.asm._emscripten_bind_Decoder_GetMetadata_1.apply(null,arguments)},Yb=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return a.asm._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2.apply(null, 60 | arguments)},Zb=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return a.asm._emscripten_bind_Decoder_SkipAttributeTransform_1.apply(null,arguments)},$b=a._emscripten_bind_Decoder___destroy___0=function(){return a.asm._emscripten_bind_Decoder___destroy___0.apply(null,arguments)},gb=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return a.asm._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0.apply(null,arguments)},ac=a._emscripten_bind_DracoFloat32Array_GetValue_1= 61 | function(){return a.asm._emscripten_bind_DracoFloat32Array_GetValue_1.apply(null,arguments)},bc=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoFloat32Array___destroy___0.apply(null,arguments)},cc=a._emscripten_bind_DracoFloat32Array_size_0=function(){return a.asm._emscripten_bind_DracoFloat32Array_size_0.apply(null,arguments)},fb=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return a.asm._emscripten_bind_DracoInt16Array_DracoInt16Array_0.apply(null, 62 | arguments)},dc=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt16Array_GetValue_1.apply(null,arguments)},ec=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt16Array___destroy___0.apply(null,arguments)},fc=a._emscripten_bind_DracoInt16Array_size_0=function(){return a.asm._emscripten_bind_DracoInt16Array_size_0.apply(null,arguments)},lb=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return a.asm._emscripten_bind_DracoInt32Array_DracoInt32Array_0.apply(null, 63 | arguments)},gc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt32Array_GetValue_1.apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt32Array___destroy___0.apply(null,arguments)},ic=a._emscripten_bind_DracoInt32Array_size_0=function(){return a.asm._emscripten_bind_DracoInt32Array_size_0.apply(null,arguments)},db=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return a.asm._emscripten_bind_DracoInt8Array_DracoInt8Array_0.apply(null, 64 | arguments)},jc=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt8Array_GetValue_1.apply(null,arguments)},kc=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt8Array___destroy___0.apply(null,arguments)},lc=a._emscripten_bind_DracoInt8Array_size_0=function(){return a.asm._emscripten_bind_DracoInt8Array_size_0.apply(null,arguments)},Wa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return a.asm._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0.apply(null, 65 | arguments)},mc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt16Array_GetValue_1.apply(null,arguments)},nc=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt16Array___destroy___0.apply(null,arguments)},oc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt16Array_size_0.apply(null,arguments)},Za=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return a.asm._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0.apply(null, 66 | arguments)},pc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt32Array_GetValue_1.apply(null,arguments)},qc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt32Array___destroy___0.apply(null,arguments)},rc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt32Array_size_0.apply(null,arguments)},Ya=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return a.asm._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0.apply(null, 67 | arguments)},sc=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt8Array_GetValue_1.apply(null,arguments)},tc=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt8Array___destroy___0.apply(null,arguments)},uc=a._emscripten_bind_DracoUInt8Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt8Array_size_0.apply(null,arguments)},hb=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return a.asm._emscripten_bind_GeometryAttribute_GeometryAttribute_0.apply(null, 68 | arguments)},vc=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return a.asm._emscripten_bind_GeometryAttribute___destroy___0.apply(null,arguments)},kb=a._emscripten_bind_Mesh_Mesh_0=function(){return a.asm._emscripten_bind_Mesh_Mesh_0.apply(null,arguments)},wc=a._emscripten_bind_Mesh___destroy___0=function(){return a.asm._emscripten_bind_Mesh___destroy___0.apply(null,arguments)},xc=a._emscripten_bind_Mesh_num_attributes_0=function(){return a.asm._emscripten_bind_Mesh_num_attributes_0.apply(null, 69 | arguments)},yc=a._emscripten_bind_Mesh_num_faces_0=function(){return a.asm._emscripten_bind_Mesh_num_faces_0.apply(null,arguments)},zc=a._emscripten_bind_Mesh_num_points_0=function(){return a.asm._emscripten_bind_Mesh_num_points_0.apply(null,arguments)},Ac=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetDoubleEntry_2.apply(null,arguments)},Bc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetEntryName_2.apply(null, 70 | arguments)},Cc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetIntEntry_2.apply(null,arguments)},Dc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetStringEntry_2.apply(null,arguments)},Ec=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_HasEntry_2.apply(null,arguments)},eb=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= 71 | function(){return a.asm._emscripten_bind_MetadataQuerier_MetadataQuerier_0.apply(null,arguments)},Fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return a.asm._emscripten_bind_MetadataQuerier_NumEntries_1.apply(null,arguments)},Gc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return a.asm._emscripten_bind_MetadataQuerier___destroy___0.apply(null,arguments)},mb=a._emscripten_bind_Metadata_Metadata_0=function(){return a.asm._emscripten_bind_Metadata_Metadata_0.apply(null, 72 | arguments)},Hc=a._emscripten_bind_Metadata___destroy___0=function(){return a.asm._emscripten_bind_Metadata___destroy___0.apply(null,arguments)},Ic=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return a.asm._emscripten_bind_PointAttribute_GetAttributeTransformData_0.apply(null,arguments)},ab=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return a.asm._emscripten_bind_PointAttribute_PointAttribute_0.apply(null,arguments)},Jc=a._emscripten_bind_PointAttribute___destroy___0= 73 | function(){return a.asm._emscripten_bind_PointAttribute___destroy___0.apply(null,arguments)},Kc=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return a.asm._emscripten_bind_PointAttribute_attribute_type_0.apply(null,arguments)},Lc=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return a.asm._emscripten_bind_PointAttribute_byte_offset_0.apply(null,arguments)},Mc=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return a.asm._emscripten_bind_PointAttribute_byte_stride_0.apply(null, 74 | arguments)},Nc=a._emscripten_bind_PointAttribute_data_type_0=function(){return a.asm._emscripten_bind_PointAttribute_data_type_0.apply(null,arguments)},Oc=a._emscripten_bind_PointAttribute_normalized_0=function(){return a.asm._emscripten_bind_PointAttribute_normalized_0.apply(null,arguments)},Pc=a._emscripten_bind_PointAttribute_num_components_0=function(){return a.asm._emscripten_bind_PointAttribute_num_components_0.apply(null,arguments)},Qc=a._emscripten_bind_PointAttribute_size_0=function(){return a.asm._emscripten_bind_PointAttribute_size_0.apply(null, 75 | arguments)},Rc=a._emscripten_bind_PointAttribute_unique_id_0=function(){return a.asm._emscripten_bind_PointAttribute_unique_id_0.apply(null,arguments)},Xa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return a.asm._emscripten_bind_PointCloud_PointCloud_0.apply(null,arguments)},Sc=a._emscripten_bind_PointCloud___destroy___0=function(){return a.asm._emscripten_bind_PointCloud___destroy___0.apply(null,arguments)},Tc=a._emscripten_bind_PointCloud_num_attributes_0=function(){return a.asm._emscripten_bind_PointCloud_num_attributes_0.apply(null, 76 | arguments)},Uc=a._emscripten_bind_PointCloud_num_points_0=function(){return a.asm._emscripten_bind_PointCloud_num_points_0.apply(null,arguments)},Vc=a._emscripten_bind_Status___destroy___0=function(){return a.asm._emscripten_bind_Status___destroy___0.apply(null,arguments)},Wc=a._emscripten_bind_Status_code_0=function(){return a.asm._emscripten_bind_Status_code_0.apply(null,arguments)},Xc=a._emscripten_bind_Status_error_msg_0=function(){return a.asm._emscripten_bind_Status_error_msg_0.apply(null,arguments)}, 77 | Yc=a._emscripten_bind_Status_ok_0=function(){return a.asm._emscripten_bind_Status_ok_0.apply(null,arguments)},Zc=a._emscripten_bind_VoidPtr___destroy___0=function(){return a.asm._emscripten_bind_VoidPtr___destroy___0.apply(null,arguments)},$c=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM.apply(null,arguments)},ad=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM= 78 | function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM.apply(null,arguments)},bd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM.apply(null,arguments)},cd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM.apply(null, 79 | arguments)},dd=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE.apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD.apply(null,arguments)},fd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH.apply(null, 80 | arguments)},gd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_COLOR.apply(null,arguments)},hd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_GENERIC.apply(null,arguments)},id=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_INVALID.apply(null,arguments)},jd=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= 81 | function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_NORMAL.apply(null,arguments)},kd=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_POSITION.apply(null,arguments)},ld=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD.apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_ERROR=function(){return a.asm._emscripten_enum_draco_StatusCode_ERROR.apply(null, 82 | arguments)},nd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return a.asm._emscripten_enum_draco_StatusCode_INVALID_PARAMETER.apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return a.asm._emscripten_enum_draco_StatusCode_IO_ERROR.apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_OK=function(){return a.asm._emscripten_enum_draco_StatusCode_OK.apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return a.asm._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION.apply(null, 83 | arguments)},rd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return a.asm._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION.apply(null,arguments)},nb=a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)};a._free=function(){return a.asm._free.apply(null,arguments)};a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)};var Ka=a._malloc=function(){return a.asm._malloc.apply(null,arguments)};a._memcpy= 84 | function(){return a.asm._memcpy.apply(null,arguments)};a._memmove=function(){return a.asm._memmove.apply(null,arguments)};a._memset=function(){return a.asm._memset.apply(null,arguments)};a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)};a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)};a.getTempRet0=function(){return a.asm.getTempRet0.apply(null,arguments)};a.runPostSets=function(){return a.asm.runPostSets.apply(null,arguments)};var sa=a.setTempRet0= 85 | function(){return a.asm.setTempRet0.apply(null,arguments)};a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)};a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)};a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)};a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)};a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)};a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null, 86 | arguments)};a.dynCall_iiiiiii=function(){return a.asm.dynCall_iiiiiii.apply(null,arguments)};a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)};a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)};a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)};a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)};a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)};a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null, 87 | arguments)};a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)};a.asm=Ua;a.then=function(d){if(a.calledRun)d(a);else{var b=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){b&&b();d(a)}}return a};na.prototype=Error();na.prototype.constructor=na;ra=function b(){a.calledRun||wa();a.calledRun||(ra=b)};a.run=wa;a.exit=function(b,c){if(!c||!a.noExitRuntime||0!==b){if(!a.noExitRuntime&&(oa=!0,ta=void 0,B(ob),a.onExit))a.onExit(b);qa&&process.exit(b);a.quit(b,new na(b))}}; 88 | a.abort=O;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=l.size?(f(0>=1;break;case 4:d>>=2;break;case 8:d>>=3}for(var b=0;b>>16&65535)*h+k*(f>>>16&65535)<<16>>>0)|0}},"es6","es3"); 3 | $jscomp.polyfill("Math.clz32",function(d){return d?d:function(d){d=Number(d)>>>0;if(0===d)return 32;var f=0;0===(d&4294901760)&&(d<<=16,f+=16);0===(d&4278190080)&&(d<<=8,f+=8);0===(d&4026531840)&&(d<<=4,f+=4);0===(d&3221225472)&&(d<<=2,f+=2);0===(d&2147483648)&&f++;return f}},"es6","es3");$jscomp.polyfill("Math.trunc",function(d){return d?d:function(d){d=Number(d);if(isNaN(d)||Infinity===d||-Infinity===d||0===d)return d;var f=Math.floor(Math.abs(d));return 0>d?-f:f}},"es6","es3"); 4 | $jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var d=0;return function(k){return $jscomp.SYMBOL_PREFIX+(k||"")+d++}}(); 5 | $jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var d=$jscomp.global.Symbol.iterator;d||(d=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[d]&&$jscomp.defineProperty(Array.prototype,d,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(d){var k=0;return $jscomp.iteratorPrototype(function(){return k>0];c|=e;if(0==e&&!b)break;d++;if(b&&d==b)break}b||(b=d);e="";if(128>c){for(;0e?c+=String.fromCharCode(e):(e-=65536,c+=String.fromCharCode(55296|e>>10,56320|e&1023))}}else c+=String.fromCharCode(e)}}function ha(a,b){0< 16 | a%b&&(a+=b-a%b);return a}function q(){a.HEAP8=ia=new Int8Array(D);a.HEAP16=Ja=new Int16Array(D);a.HEAP32=E=new Int32Array(D);a.HEAPU8=V=new Uint8Array(D);a.HEAPU16=new Uint16Array(D);a.HEAPU32=new Uint32Array(D);a.HEAPF32=new Float32Array(D);a.HEAPF64=new Float64Array(D)}function B(e){for(;0>2]=e;e=la.buffer;for(var d=0;d>2],b.adjusted=e,(sa(p[d]),e)|0;e=E[e>>2]; 18 | return(sa(c),e)|0}function Y(e,b){w.varargs=b;try{var c=w.get(),p=w.get(),d=w.get();e=0;Y.buffers||(Y.buffers=[null,[],[]],Y.printChar=function(b,c){var e=Y.buffers[b];f(e);0===c||10===c?((1===b?a.print:a.printErr)(h(e,0)),e.length=0):e.push(c)});for(b=0;b>2],k=E[p+(8*b+4)>>2],l=0;l=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++c)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:2097151>=e?b+4:67108863>=e?b+5:b+6}b=Array(b+1);c=0;e=b.length;if(0=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++d)&1023);if(127>=f){if(c>=e)break;b[c++]=f}else{if(2047>=f){if(c+1>=e)break;b[c++]=192|f>>6}else{if(65535>=f){if(c+2>=e)break;b[c++]=224|f>>12}else{if(2097151>= 22 | f){if(c+3>=e)break;b[c++]=240|f>>18}else{if(67108863>=f){if(c+4>=e)break;b[c++]=248|f>>24}else{if(c+5>=e)break;b[c++]=252|f>>30;b[c++]=128|f>>24&63}b[c++]=128|f>>18&63}b[c++]=128|f>>12&63}b[c++]=128|f>>6&63}b[c++]=128|f&63}}b[c]=0}a=l.alloc(b,ia);l.copy(b,ia,a)}return a}function z(){throw"cannot construct a Status, no constructor in IDL";}function F(){this.ptr=Wa();t(F)[this.ptr]=this}function G(){this.ptr=Xa();t(G)[this.ptr]=this}function H(){this.ptr=Ya();t(H)[this.ptr]=this}function I(){this.ptr= 23 | Za();t(I)[this.ptr]=this}function J(){this.ptr=$a();t(J)[this.ptr]=this}function n(){this.ptr=ab();t(n)[this.ptr]=this}function P(){this.ptr=bb();t(P)[this.ptr]=this}function x(){this.ptr=cb();t(x)[this.ptr]=this}function K(){this.ptr=db();t(K)[this.ptr]=this}function r(){this.ptr=eb();t(r)[this.ptr]=this}function L(){this.ptr=fb();t(L)[this.ptr]=this}function M(){this.ptr=gb();t(M)[this.ptr]=this}function U(){this.ptr=hb();t(U)[this.ptr]=this}function Q(){this.ptr=ib();t(Q)[this.ptr]=this}function g(){this.ptr= 24 | jb();t(g)[this.ptr]=this}function C(){this.ptr=kb();t(C)[this.ptr]=this}function W(){throw"cannot construct a VoidPtr, no constructor in IDL";}function N(){this.ptr=lb();t(N)[this.ptr]=this}function R(){this.ptr=mb();t(R)[this.ptr]=this}d=d||{};var a="undefined"!==typeof d?d:{},Qa=!1,Ra=!1;a.onRuntimeInitialized=function(){Qa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ra=!0;if(Qa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported= 25 | function(a){if("string"!==typeof a)return!1;a=a.split(".");return 2>a.length||3=a[1]?!0:0!=a[0]||10>2]},getStr:function(){return u(w.get())},get64:function(){var a=w.get(),b=w.get();0<=a?f(0===b):f(-1===b);return a},getZero:function(){f(0===w.get())}},va={},Ha=1;ka=function(a){f(!Sa);var b=aa;aa=aa+ 40 | a+15&-16;return b}(4);Ca=ta=k(aa);ua=Ca+Fa;Da=k(ua);E[ka>>2]=Da;Sa=!0;a.wasmTableSize=476;a.wasmMaxTableSize=476;a.asmGlobalArg={};a.asmLibraryArg={abort:O,assert:f,enlargeMemory:function(){var e=a.usingWasm?65536:16777216,b=2147483648-e;if(E[ka>>2]>b)return!1;var c=A;for(A=Math.max(A,16777216);A>2];)A=536870912>=A?ha(2*A,e):Math.min(ha((3*A+2147483648)/4,e),b);e=a.reallocBuffer(A);if(!e||e.byteLength!=A)return A=c,!1;a.buffer=D=e;q();return!0},getTotalMemory:function(){return A},abortOnCannotGrowMemory:function(){O("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+ 41 | A+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")},invoke_ii:function(e,b){try{return a.dynCall_ii(e,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;a.setThrew(1,0)}},invoke_iii:function(e,b,c){try{return a.dynCall_iii(e,b,c)}catch(p){if("number"!==typeof p&&"longjmp"!==p)throw p;a.setThrew(1,0)}},invoke_iiii:function(e,b,c,d){try{return a.dynCall_iiii(e, 42 | b,c,d)}catch(S){if("number"!==typeof S&&"longjmp"!==S)throw S;a.setThrew(1,0)}},invoke_iiiiiii:function(e,b,c,d,f,g,h){try{return a.dynCall_iiiiiii(e,b,c,d,f,g,h)}catch(ca){if("number"!==typeof ca&&"longjmp"!==ca)throw ca;a.setThrew(1,0)}},invoke_v:function(e){try{a.dynCall_v(e)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;a.setThrew(1,0)}},invoke_vi:function(e,b){try{a.dynCall_vi(e,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;a.setThrew(1,0)}},invoke_vii:function(e,b,c){try{a.dynCall_vii(e, 43 | b,c)}catch(p){if("number"!==typeof p&&"longjmp"!==p)throw p;a.setThrew(1,0)}},invoke_viii:function(e,b,c,d){try{a.dynCall_viii(e,b,c,d)}catch(S){if("number"!==typeof S&&"longjmp"!==S)throw S;a.setThrew(1,0)}},invoke_viiii:function(e,b,c,d,f){try{a.dynCall_viiii(e,b,c,d,f)}catch(xa){if("number"!==typeof xa&&"longjmp"!==xa)throw xa;a.setThrew(1,0)}},invoke_viiiii:function(e,b,c,d,f,g){try{a.dynCall_viiiii(e,b,c,d,f,g)}catch(ba){if("number"!==typeof ba&&"longjmp"!==ba)throw ba;a.setThrew(1,0)}},invoke_viiiiii:function(e, 44 | b,c,d,f,g,h){try{a.dynCall_viiiiii(e,b,c,d,f,g,h)}catch(ca){if("number"!==typeof ca&&"longjmp"!==ca)throw ca;a.setThrew(1,0)}},__ZSt18uncaught_exceptionv:v,___cxa_allocate_exception:function(a){return Ka(a)},___cxa_begin_catch:function(a){var b=y.infos[a];b&&!b.caught&&(b.caught=!0,v.uncaught_exception--);b&&(b.rethrown=!1);y.caught.push(a);y.addRef(y.deAdjust(a));return a},___cxa_find_matching_catch:la,___cxa_pure_virtual:function(){oa=!0;throw"Pure virtual function called!";},___cxa_throw:function(a, 45 | b,c){y.infos[a]={ptr:a,adjusted:a,type:b,destructor:c,refcount:0,caught:!1,rethrown:!1};y.last=a;"uncaught_exception"in v?v.uncaught_exception++:v.uncaught_exception=1;throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";},___gxx_personality_v0:function(){},___resumeException:function(a){y.last||(y.last=a);throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."; 46 | },___setErrNo:function(d){a.___errno_location&&(E[a.___errno_location()>>2]=d);return d},___syscall140:function(a,b){w.varargs=b;try{var c=w.getStreamFromFD();w.get();var d=w.get(),e=w.get(),f=w.get();FS.llseek(c,d,f);E[e>>2]=c.position;c.getdents&&0===d&&0===f&&(c.getdents=null);return 0}catch(ba){return"undefined"!==typeof FS&&ba instanceof FS.ErrnoError||O(ba),-ba.errno}},___syscall146:Y,___syscall6:function(a,b){w.varargs=b;try{var c=w.getStreamFromFD();FS.close(c);return 0}catch(p){return"undefined"!== 47 | typeof FS&&p instanceof FS.ErrnoError||O(p),-p.errno}},_abort:function(){a.abort()},_emscripten_memcpy_big:function(a,b,c){V.set(V.subarray(b,b+c),a);return a},_llvm_trap:function(){O("trap!")},_pthread_getspecific:function(a){return va[a]||0},_pthread_key_create:function(a,b){if(0==a)return 22;E[a>>2]=Ha;va[Ha]=0;Ha++;return 0},_pthread_once:ma,_pthread_setspecific:function(a,b){if(!(a in va))return 22;va[a]=b;return 0},flush_NO_FILESYSTEM:function(){var d=a._fflush;d&&d(0);if(d=Y.printChar){var b= 48 | Y.buffers;b[1].length&&d(1,10);b[2].length&&d(2,10)}},DYNAMICTOP_PTR:ka,tempDoublePtr:qb,ABORT:oa,STACKTOP:ta,STACK_MAX:ua};var Ua=a.asm(a.asmGlobalArg,a.asmLibraryArg,D);a.asm=Ua;a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null,arguments)};a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)};var $a=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0.apply(null, 49 | arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1.apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform___destroy___0.apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0.apply(null, 50 | arguments)},cb=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0.apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1.apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform___destroy___0.apply(null, 51 | arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_min_value_1.apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0.apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_range_0.apply(null, 52 | arguments)},bb=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return a.asm._emscripten_bind_AttributeTransformData_AttributeTransformData_0.apply(null,arguments)},zb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return a.asm._emscripten_bind_AttributeTransformData___destroy___0.apply(null,arguments)},Ab=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return a.asm._emscripten_bind_AttributeTransformData_transform_type_0.apply(null, 53 | arguments)},ib=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return a.asm._emscripten_bind_DecoderBuffer_DecoderBuffer_0.apply(null,arguments)},Bb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return a.asm._emscripten_bind_DecoderBuffer_Init_2.apply(null,arguments)},Cb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return a.asm._emscripten_bind_DecoderBuffer___destroy___0.apply(null,arguments)},Db=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return a.asm._emscripten_bind_Decoder_DecodeBufferToMesh_2.apply(null, 54 | arguments)},Eb=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return a.asm._emscripten_bind_Decoder_DecodeBufferToPointCloud_2.apply(null,arguments)},jb=a._emscripten_bind_Decoder_Decoder_0=function(){return a.asm._emscripten_bind_Decoder_Decoder_0.apply(null,arguments)},Fb=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeByUniqueId_2.apply(null,arguments)},Gb=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3= 55 | function(){return a.asm._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3.apply(null,arguments)},Hb=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeFloat_3.apply(null,arguments)},Ib=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3.apply(null,arguments)},Jb=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIdByName_2.apply(null, 56 | arguments)},Kb=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeId_2.apply(null,arguments)},Lb=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3.apply(null,arguments)},Mb=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3.apply(null,arguments)},Nb=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3= 57 | function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3.apply(null,arguments)},Ob=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3.apply(null,arguments)},Pb=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeMetadata_2.apply(null,arguments)},Qb=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3.apply(null, 58 | arguments)},Rb=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3.apply(null,arguments)},Sb=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3.apply(null,arguments)},Tb=a._emscripten_bind_Decoder_GetAttribute_2=function(){return a.asm._emscripten_bind_Decoder_GetAttribute_2.apply(null,arguments)},Ub=a._emscripten_bind_Decoder_GetEncodedGeometryType_1= 59 | function(){return a.asm._emscripten_bind_Decoder_GetEncodedGeometryType_1.apply(null,arguments)},Vb=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return a.asm._emscripten_bind_Decoder_GetFaceFromMesh_3.apply(null,arguments)},Wb=a._emscripten_bind_Decoder_GetMetadata_1=function(){return a.asm._emscripten_bind_Decoder_GetMetadata_1.apply(null,arguments)},Xb=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return a.asm._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2.apply(null, 60 | arguments)},Yb=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return a.asm._emscripten_bind_Decoder_SkipAttributeTransform_1.apply(null,arguments)},Zb=a._emscripten_bind_Decoder___destroy___0=function(){return a.asm._emscripten_bind_Decoder___destroy___0.apply(null,arguments)},gb=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return a.asm._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0.apply(null,arguments)},$b=a._emscripten_bind_DracoFloat32Array_GetValue_1= 61 | function(){return a.asm._emscripten_bind_DracoFloat32Array_GetValue_1.apply(null,arguments)},ac=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoFloat32Array___destroy___0.apply(null,arguments)},bc=a._emscripten_bind_DracoFloat32Array_size_0=function(){return a.asm._emscripten_bind_DracoFloat32Array_size_0.apply(null,arguments)},fb=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return a.asm._emscripten_bind_DracoInt16Array_DracoInt16Array_0.apply(null, 62 | arguments)},cc=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt16Array_GetValue_1.apply(null,arguments)},dc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt16Array___destroy___0.apply(null,arguments)},ec=a._emscripten_bind_DracoInt16Array_size_0=function(){return a.asm._emscripten_bind_DracoInt16Array_size_0.apply(null,arguments)},lb=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return a.asm._emscripten_bind_DracoInt32Array_DracoInt32Array_0.apply(null, 63 | arguments)},fc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt32Array_GetValue_1.apply(null,arguments)},gc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt32Array___destroy___0.apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array_size_0=function(){return a.asm._emscripten_bind_DracoInt32Array_size_0.apply(null,arguments)},db=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return a.asm._emscripten_bind_DracoInt8Array_DracoInt8Array_0.apply(null, 64 | arguments)},ic=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt8Array_GetValue_1.apply(null,arguments)},jc=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt8Array___destroy___0.apply(null,arguments)},kc=a._emscripten_bind_DracoInt8Array_size_0=function(){return a.asm._emscripten_bind_DracoInt8Array_size_0.apply(null,arguments)},Wa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return a.asm._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0.apply(null, 65 | arguments)},lc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt16Array_GetValue_1.apply(null,arguments)},mc=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt16Array___destroy___0.apply(null,arguments)},nc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt16Array_size_0.apply(null,arguments)},Za=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return a.asm._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0.apply(null, 66 | arguments)},oc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt32Array_GetValue_1.apply(null,arguments)},pc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt32Array___destroy___0.apply(null,arguments)},qc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt32Array_size_0.apply(null,arguments)},Ya=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return a.asm._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0.apply(null, 67 | arguments)},rc=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt8Array_GetValue_1.apply(null,arguments)},sc=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt8Array___destroy___0.apply(null,arguments)},tc=a._emscripten_bind_DracoUInt8Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt8Array_size_0.apply(null,arguments)},hb=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return a.asm._emscripten_bind_GeometryAttribute_GeometryAttribute_0.apply(null, 68 | arguments)},uc=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return a.asm._emscripten_bind_GeometryAttribute___destroy___0.apply(null,arguments)},kb=a._emscripten_bind_Mesh_Mesh_0=function(){return a.asm._emscripten_bind_Mesh_Mesh_0.apply(null,arguments)},vc=a._emscripten_bind_Mesh___destroy___0=function(){return a.asm._emscripten_bind_Mesh___destroy___0.apply(null,arguments)},wc=a._emscripten_bind_Mesh_num_attributes_0=function(){return a.asm._emscripten_bind_Mesh_num_attributes_0.apply(null, 69 | arguments)},xc=a._emscripten_bind_Mesh_num_faces_0=function(){return a.asm._emscripten_bind_Mesh_num_faces_0.apply(null,arguments)},yc=a._emscripten_bind_Mesh_num_points_0=function(){return a.asm._emscripten_bind_Mesh_num_points_0.apply(null,arguments)},zc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetDoubleEntry_2.apply(null,arguments)},Ac=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetEntryName_2.apply(null, 70 | arguments)},Bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetIntEntry_2.apply(null,arguments)},Cc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetStringEntry_2.apply(null,arguments)},Dc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_HasEntry_2.apply(null,arguments)},eb=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0= 71 | function(){return a.asm._emscripten_bind_MetadataQuerier_MetadataQuerier_0.apply(null,arguments)},Ec=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return a.asm._emscripten_bind_MetadataQuerier_NumEntries_1.apply(null,arguments)},Fc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return a.asm._emscripten_bind_MetadataQuerier___destroy___0.apply(null,arguments)},mb=a._emscripten_bind_Metadata_Metadata_0=function(){return a.asm._emscripten_bind_Metadata_Metadata_0.apply(null, 72 | arguments)},Gc=a._emscripten_bind_Metadata___destroy___0=function(){return a.asm._emscripten_bind_Metadata___destroy___0.apply(null,arguments)},Hc=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return a.asm._emscripten_bind_PointAttribute_GetAttributeTransformData_0.apply(null,arguments)},ab=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return a.asm._emscripten_bind_PointAttribute_PointAttribute_0.apply(null,arguments)},Ic=a._emscripten_bind_PointAttribute___destroy___0= 73 | function(){return a.asm._emscripten_bind_PointAttribute___destroy___0.apply(null,arguments)},Jc=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return a.asm._emscripten_bind_PointAttribute_attribute_type_0.apply(null,arguments)},Kc=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return a.asm._emscripten_bind_PointAttribute_byte_offset_0.apply(null,arguments)},Lc=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return a.asm._emscripten_bind_PointAttribute_byte_stride_0.apply(null, 74 | arguments)},Mc=a._emscripten_bind_PointAttribute_data_type_0=function(){return a.asm._emscripten_bind_PointAttribute_data_type_0.apply(null,arguments)},Nc=a._emscripten_bind_PointAttribute_normalized_0=function(){return a.asm._emscripten_bind_PointAttribute_normalized_0.apply(null,arguments)},Oc=a._emscripten_bind_PointAttribute_num_components_0=function(){return a.asm._emscripten_bind_PointAttribute_num_components_0.apply(null,arguments)},Pc=a._emscripten_bind_PointAttribute_size_0=function(){return a.asm._emscripten_bind_PointAttribute_size_0.apply(null, 75 | arguments)},Qc=a._emscripten_bind_PointAttribute_unique_id_0=function(){return a.asm._emscripten_bind_PointAttribute_unique_id_0.apply(null,arguments)},Xa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return a.asm._emscripten_bind_PointCloud_PointCloud_0.apply(null,arguments)},Rc=a._emscripten_bind_PointCloud___destroy___0=function(){return a.asm._emscripten_bind_PointCloud___destroy___0.apply(null,arguments)},Sc=a._emscripten_bind_PointCloud_num_attributes_0=function(){return a.asm._emscripten_bind_PointCloud_num_attributes_0.apply(null, 76 | arguments)},Tc=a._emscripten_bind_PointCloud_num_points_0=function(){return a.asm._emscripten_bind_PointCloud_num_points_0.apply(null,arguments)},Uc=a._emscripten_bind_Status___destroy___0=function(){return a.asm._emscripten_bind_Status___destroy___0.apply(null,arguments)},Vc=a._emscripten_bind_Status_code_0=function(){return a.asm._emscripten_bind_Status_code_0.apply(null,arguments)},Wc=a._emscripten_bind_Status_error_msg_0=function(){return a.asm._emscripten_bind_Status_error_msg_0.apply(null,arguments)}, 77 | Xc=a._emscripten_bind_Status_ok_0=function(){return a.asm._emscripten_bind_Status_ok_0.apply(null,arguments)},Yc=a._emscripten_bind_VoidPtr___destroy___0=function(){return a.asm._emscripten_bind_VoidPtr___destroy___0.apply(null,arguments)},Zc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM.apply(null,arguments)},$c=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM= 78 | function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM.apply(null,arguments)},ad=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM.apply(null,arguments)},bd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM.apply(null, 79 | arguments)},cd=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE.apply(null,arguments)},dd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD.apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH.apply(null, 80 | arguments)},fd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_COLOR.apply(null,arguments)},gd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_GENERIC.apply(null,arguments)},hd=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_INVALID.apply(null,arguments)},id=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL= 81 | function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_NORMAL.apply(null,arguments)},jd=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_POSITION.apply(null,arguments)},kd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD.apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_ERROR=function(){return a.asm._emscripten_enum_draco_StatusCode_ERROR.apply(null, 82 | arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return a.asm._emscripten_enum_draco_StatusCode_INVALID_PARAMETER.apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return a.asm._emscripten_enum_draco_StatusCode_IO_ERROR.apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return a.asm._emscripten_enum_draco_StatusCode_OK.apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return a.asm._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION.apply(null, 83 | arguments)},qd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return a.asm._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION.apply(null,arguments)},nb=a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)};a._free=function(){return a.asm._free.apply(null,arguments)};a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)};var Ka=a._malloc=function(){return a.asm._malloc.apply(null,arguments)};a._memcpy= 84 | function(){return a.asm._memcpy.apply(null,arguments)};a._memmove=function(){return a.asm._memmove.apply(null,arguments)};a._memset=function(){return a.asm._memset.apply(null,arguments)};a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)};a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)};a.getTempRet0=function(){return a.asm.getTempRet0.apply(null,arguments)};a.runPostSets=function(){return a.asm.runPostSets.apply(null,arguments)};var sa=a.setTempRet0= 85 | function(){return a.asm.setTempRet0.apply(null,arguments)};a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)};a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)};a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)};a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)};a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)};a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null, 86 | arguments)};a.dynCall_iiiiiii=function(){return a.asm.dynCall_iiiiiii.apply(null,arguments)};a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)};a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)};a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)};a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)};a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)};a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null, 87 | arguments)};a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)};a.asm=Ua;a.then=function(d){if(a.calledRun)d(a);else{var b=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){b&&b();d(a)}}return a};na.prototype=Error();na.prototype.constructor=na;ra=function b(){a.calledRun||wa();a.calledRun||(ra=b)};a.run=wa;a.exit=function(b,c){if(!c||!a.noExitRuntime||0!==b){if(!a.noExitRuntime&&(oa=!0,ta=void 0,B(ob),a.onExit))a.onExit(b);qa&&process.exit(b);a.quit(b,new na(b))}}; 88 | a.abort=O;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0=l.size?(f(0>=1;break;case 4:d>>=2;break;case 8:d>>=3}for(var b=0;b 2 | 4 | 7 | 8 | Created by potrace 1.11, written by Peter Selinger 2001-2013 9 | 10 | 12 | 54 | 56 | 58 | 61 | 64 | 66 | 86 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /img/markers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/markers.jpg -------------------------------------------------------------------------------- /img/markers.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/markers.pdf -------------------------------------------------------------------------------- /img/monalisa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/monalisa.jpg -------------------------------------------------------------------------------- /img/pattern-fly200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/pattern-fly200.png -------------------------------------------------------------------------------- /img/pattern-monalisa200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/pattern-monalisa200.png -------------------------------------------------------------------------------- /img/pattern-vinci200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/pattern-vinci200.png -------------------------------------------------------------------------------- /img/pattern-vitruvio200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/img/pattern-vitruvio200.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Homenagem Leonardo da Vinci - 500 anos 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 44 | 45 | 46 | 47 |
48 |
49 |
Da Vinci 500 anos
50 |
51 | 52 |
53 | 107 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | quadro Monalisa 119 | 120 | 121 | 122 | 123 | 124 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 136 | 138 | 139 | 140 | 141 | 142 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 170 | 171 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "Da Vinci - 500 anos", 3 | "name": "Leonardo da Vinci 500 anos", 4 | "icons": [ 5 | { 6 | "src": "images/icon-192x192.png", 7 | "type": "image/png", 8 | "sizes": "192x192" 9 | }, 10 | { 11 | "src": "images/icon-512x512.png", 12 | "type": "image/png", 13 | "sizes": "512x512" 14 | } 15 | ], 16 | "start_url": "index.html", 17 | "background_color": "#8d6e63", 18 | "display": "standalone", 19 | "scope": ".", 20 | "theme_color": "#8d6e63" 21 | } 22 | -------------------------------------------------------------------------------- /modal.css: -------------------------------------------------------------------------------- 1 | /** 2 | * modal.css 3 | * Author: Pedro Laxe 4 | * Version: 1.0.6 5 | * License: GPLv2 6 | **/ 7 | .modal { 8 | bottom: 10px; 9 | left: 50%; 10 | margin: -250px 0 0 -32%; 11 | opacity: 0; 12 | position: absolute; 13 | top: -50%; 14 | visibility: hidden; 15 | width: 75%; 16 | box-shadow: 0 3px 3px rgba(0,0,0,.25); 17 | box-sizing: border-box; 18 | transition: all .4s ease-in-out; 19 | -moz-transition: all .4s ease-in-out; 20 | -webkit-transition: all .4s ease-in-out; 21 | 22 | height: auto; 23 | min-height: 0; 24 | max-height: 100%; 25 | overflow: auto; 26 | } 27 | .modal:target { 28 | opacity: 1; 29 | top: 50%; 30 | visibility: visible; 31 | } 32 | .modal .header, .modal .footer { 33 | border-bottom: 1px solid #e7e7e7; 34 | border-radius: 5px 5px 0 0; 35 | } 36 | .modal .footer { 37 | text-align: center; 38 | border: none; 39 | border-top: 1px solid #e7e7e7; 40 | border-radius: 0 0 5px 5px; 41 | } 42 | .modal h2 { 43 | margin: 0; 44 | color: #333333; 45 | } 46 | .modal .btn { 47 | float: right; 48 | } 49 | .modal .copy, .modal .header, .modal .footer { 50 | padding: 5px; 51 | color: #333333; 52 | } 53 | .modal-content { 54 | background: #f7f7f7; 55 | position: relative; 56 | z-index: 20; 57 | border-radius: 5px; 58 | color: #333333; 59 | } 60 | .modal .copy { 61 | background: #fff; 62 | } 63 | .modal .overlay { 64 | background-color: #000; 65 | background: rgba(0,0,0,.8); 66 | height: 100%; 67 | left: 0; 68 | position: fixed; 69 | top: 0; 70 | width: 100%; 71 | z-index: 10; 72 | } 73 | .copy ul li a { 74 | color: #333333; 75 | text-decoration: none; 76 | } 77 | /* Responsive Options */ 78 | @media screen and (min-width: 768px) { 79 | .modal{ 80 | width:600px; 81 | margin:-250px 0px 0px -18.2%; 82 | top: -50%; 83 | } 84 | } 85 | .modalcss-button { 86 | /* Structure */ 87 | display: inline-block; 88 | zoom: 1; 89 | line-height: normal; 90 | white-space: nowrap; 91 | vertical-align: middle; 92 | text-align: center; 93 | cursor: pointer; 94 | -webkit-user-drag: none; 95 | -webkit-user-select: none; 96 | -moz-user-select: none; 97 | -ms-user-select: none; 98 | user-select: none; 99 | -webkit-box-sizing: border-box; 100 | -moz-box-sizing: border-box; 101 | box-sizing: border-box; 102 | } 103 | 104 | /* Firefox: Get rid of the inner focus border */ 105 | .modalcss-button::-moz-focus-inner { 106 | padding: 0; 107 | border: 0; 108 | } 109 | 110 | .modalcss-button { 111 | font-family: inherit; 112 | font-size: 100%; 113 | padding: 0.5em 1em; 114 | color: #444; /* rgba not supported (IE 8) */ 115 | color: rgba(0, 0, 0, 0.80); /* rgba supported */ 116 | border: 1px solid #999; /*IE 6/7/8*/ 117 | border: none rgba(0, 0, 0, 0); /*IE9 + everything else*/ 118 | background-color: #E6E6E6; 119 | text-decoration: none; 120 | border-radius: 2px; 121 | } 122 | 123 | .modalcss-button-hover, 124 | .modalcss-button:hover, 125 | .modalcss-button:focus { 126 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000',GradientType=0); 127 | background-image: -webkit-gradient(linear, 0 0, 0 100%, from(transparent), color-stop(40%, rgba(0,0,0, 0.05)), to(rgba(0,0,0, 0.10))); 128 | background-image: -webkit-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); 129 | background-image: -moz-linear-gradient(top, rgba(0,0,0, 0.05) 0%, rgba(0,0,0, 0.10)); 130 | background-image: -o-linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); 131 | background-image: linear-gradient(transparent, rgba(0,0,0, 0.05) 40%, rgba(0,0,0, 0.10)); 132 | } 133 | .modalcss-button:focus { 134 | outline: 0; 135 | } 136 | .modalcss-button-active, 137 | .modalcss-button:active { 138 | box-shadow: 0 0 0 1px rgba(0,0,0, 0.15) inset, 0 0 6px rgba(0,0,0, 0.20) inset; 139 | border-color: #0009; 140 | } 141 | .modalcss-button[disabled], 142 | .modalcss-button-disabled, 143 | .modalcss-button-disabled:hover, 144 | .modalcss-button-disabled:focus, 145 | .modalcss-button-disabled:active { 146 | border: none; 147 | background-image: none; 148 | filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); 149 | filter: alpha(opacity=40); 150 | -khtml-opacity: 0.40; 151 | -moz-opacity: 0.40; 152 | opacity: 0.40; 153 | cursor: not-allowed; 154 | box-shadow: none; 155 | } 156 | 157 | .modalcss-button-hidden { 158 | display: none; 159 | } 160 | 161 | /* Firefox: Get rid of the inner focus border */ 162 | .modalcss-button::-moz-focus-inner{ 163 | padding: 0; 164 | border: 0; 165 | } 166 | 167 | .modalcss-button-primary, 168 | .modalcss-button-selected, 169 | a.modalcss-button-primary, 170 | a.modalcss-button-selected { 171 | background-color: rgb(0, 120, 231); 172 | color: #fff; 173 | } 174 | .button-success, 175 | .button-error, 176 | .button-warning, 177 | .button-secondary { 178 | color: white; 179 | border-radius: 4px; 180 | text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); 181 | } 182 | 183 | .button-success { 184 | background: rgb(28, 184, 65); /* this is a green */ 185 | } 186 | 187 | .button-error { 188 | background: rgb(202, 60, 60); /* this is a maroon */ 189 | } 190 | 191 | .button-warning { 192 | background: rgb(223, 117, 20); /* this is an orange */ 193 | } 194 | 195 | .button-secondary { 196 | background: rgb(66, 184, 221); /* this is a light blue */ 197 | } 198 | /* Close Button */ 199 | .box3 { 200 | width: 25px; 201 | right: 0px; 202 | position: absolute; 203 | margin: 5px; 204 | } 205 | svg { 206 | display: block; 207 | } 208 | .close-x { 209 | stroke: black; 210 | fill: transparent; 211 | stroke-linecap: round; 212 | stroke-width: 5; 213 | } 214 | -------------------------------------------------------------------------------- /modal.min.css: -------------------------------------------------------------------------------- 1 | .modal{bottom:10px;left:50%;margin:-250px 0 0 -32%;opacity:0;position:absolute;top:-50%;visibility:hidden;width:75%;box-shadow:0 3px 3px rgba(0,0,0,.25);box-sizing:border-box;transition:all .4s ease-in-out;-moz-transition:all .4s ease-in-out;-webkit-transition:all .4s ease-in-out;height:auto;min-height:0;max-height:100%;overflow:auto}.modal:target{opacity:1;top:50%;visibility:visible}.modal .footer,.modal .header{border-bottom:1px solid #e7e7e7;border-radius:5px 5px 0 0}.modal .footer{text-align:center;border:0;border-top:1px solid #e7e7e7;border-radius:0 0 5px 5px}.modal h2{margin:0;color:#333}.modal .btn{float:right}.modal .copy,.modal .footer,.modal .header{padding:1.5em;color:#333}.modal-content{background:#f7f7f7;position:relative;z-index:20;border-radius:5px;color:#333}.modal .copy{background:#fff}.modal .overlay{background-color:#000;background:rgba(0,0,0,.8);height:100%;left:0;position:fixed;top:0;width:100%;z-index:10}.copy ul li a{color:#333;text-decoration:none}@media screen and (min-width:768px){.modal{margin:-250px 0 0 -32%;top:-50%;bottom:10px;left:50%}}.modalcss-button{display:inline-block;zoom:1;line-height:normal;vertical-align:middle;text-align:center;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.modalcss-button::-moz-focus-inner{padding:0;border:0}.modalcss-button{font-family:inherit;font-size:100%;padding:.5em .5em;color:#444;color:rgba(0,0,0,.8);border:1px solid #999;border:0 transparent;background-color:#e6e6e6;text-decoration:none;border-radius:2px}.modalcss-button-hover,.modalcss-button:focus,.modalcss-button:hover{background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05)40%,rgba(0,0,0,.1));background-image:-moz-linear-gradient(top,rgba(0,0,0,.05)0,rgba(0,0,0,.1));background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05)40%,rgba(0,0,0,.1));background-image:linear-gradient(transparent,rgba(0,0,0,.05)40%,rgba(0,0,0,.1))}.modalcss-button:focus{outline:0}.modalcss-button-active,.modalcss-button:active{box-shadow:0 0 0 1px rgba(0,0,0,.15)inset,0 0 6px rgba(0,0,0,.2)inset;border-color:#0009}.modalcss-button-disabled,.modalcss-button-disabled:active,.modalcss-button-disabled:focus,.modalcss-button-disabled:hover,.modalcss-button[disabled]{border:0;background-image:none;-khtml-opacity:.4;-moz-opacity:.4;opacity:.4;cursor:not-allowed;box-shadow:none}.modalcss-button-hidden{display:none}.modalcss-button::-moz-focus-inner{padding:0;border:0}.modalcss-button-primary,.modalcss-button-selected,a.modalcss-button-primary,a.modalcss-button-selected{background-color:#0078e7;color:#fff}.button-error,.button-secondary,.button-success,.button-warning{color:#fff;border-radius:4px;text-shadow:0 1px 1px rgba(0,0,0,.2)}.button-success{background:#1cb841}.button-error{background:#ca3c3c}.button-warning{background:#df7514}.button-secondary{background:#42b8dd}.box3{width:25px;right:0;position:absolute;margin:5px}svg{display:block}.close-x{stroke:#000;fill:transparent;stroke-linecap:round;stroke-width:5} -------------------------------------------------------------------------------- /model/flying_machine/glider.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/model/flying_machine/glider.jpg -------------------------------------------------------------------------------- /model/flying_machine/optimized.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/model/flying_machine/optimized.glb -------------------------------------------------------------------------------- /model/leonard_de_vinci/optimized.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/model/leonard_de_vinci/optimized.glb -------------------------------------------------------------------------------- /model/vitruvian/optimized.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thauska/davinci500th-ar/8b800b12d8b11cc07b16abb81c8b20c5f63763a6/model/vitruvian/optimized.glb -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "lockfileVersion": 1, 3 | "dependencies": { 4 | "lodash.template": ">=4.5.0" 5 | } 6 | 7 | } 8 | -------------------------------------------------------------------------------- /patterns/pattern-fly.patt: -------------------------------------------------------------------------------- 1 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 2 | 222 222 222 222 222 222 222 222 222 165 85 116 111 93 131 222 3 | 222 222 222 222 222 222 222 167 81 92 58 108 84 92 142 222 4 | 222 222 222 222 222 222 127 81 82 107 65 119 103 162 57 222 5 | 222 222 222 222 222 222 109 42 101 35 109 89 62 222 222 222 6 | 222 222 222 222 222 222 108 96 111 94 114 77 222 222 222 222 7 | 222 222 222 222 222 221 64 96 99 118 47 214 222 222 222 222 8 | 222 222 222 222 222 217 65 51 102 101 84 222 222 222 222 222 9 | 222 222 222 222 214 222 222 60 73 107 222 222 222 222 222 222 10 | 222 222 222 217 180 33 222 222 85 222 222 222 222 222 222 222 11 | 222 222 164 66 202 212 217 222 222 222 222 222 222 222 222 222 12 | 79 80 108 105 88 117 73 21 39 222 222 222 222 222 222 222 13 | 40 120 112 68 109 94 222 222 50 123 97 112 97 222 222 222 14 | 222 122 74 139 137 222 222 222 222 204 97 97 222 222 222 222 15 | 222 222 158 151 222 222 222 222 222 222 222 222 222 222 222 222 16 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 17 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 18 | 222 222 222 222 222 222 222 222 222 182 120 151 151 125 172 222 19 | 222 222 222 222 222 222 222 186 108 121 71 154 119 122 176 222 20 | 222 222 222 222 222 222 163 109 101 142 101 159 138 195 80 222 21 | 222 222 222 222 222 222 140 49 141 54 147 128 98 222 222 222 22 | 222 222 222 222 222 222 149 132 151 123 154 119 222 222 222 222 23 | 222 222 222 222 222 221 84 128 133 159 63 215 222 222 222 222 24 | 222 222 222 222 222 218 87 74 140 139 126 222 222 222 222 222 25 | 222 222 222 222 214 222 222 78 103 147 222 222 222 222 222 222 26 | 222 222 222 219 180 36 222 222 111 222 222 222 222 222 222 222 27 | 222 222 200 97 205 212 217 222 222 222 222 222 222 222 222 222 28 | 102 110 146 145 127 156 98 24 65 222 222 222 222 222 222 222 29 | 60 155 150 99 148 143 222 222 73 151 128 151 131 222 222 222 30 | 222 164 114 176 178 222 222 222 222 206 143 127 222 222 222 222 31 | 222 222 196 187 222 222 222 222 222 222 222 222 222 222 222 222 32 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 33 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 34 | 222 222 222 222 222 222 222 222 222 193 149 175 177 153 198 222 35 | 222 222 222 222 222 222 222 194 130 148 82 182 147 145 199 222 36 | 222 222 222 222 222 222 180 136 119 162 133 182 165 214 99 222 37 | 222 222 222 222 222 222 160 54 169 74 173 159 135 222 222 222 38 | 222 222 222 222 222 222 167 159 176 147 182 156 222 222 222 222 39 | 222 222 222 222 222 222 101 152 159 182 78 216 222 222 222 222 40 | 222 222 222 222 222 219 98 92 167 166 162 222 222 222 222 222 41 | 222 222 222 222 215 222 222 95 123 174 222 222 222 222 222 222 42 | 222 222 222 220 180 39 222 222 133 222 222 222 222 222 222 222 43 | 222 222 218 116 207 212 218 222 222 222 222 222 222 222 222 222 44 | 121 128 164 172 158 177 113 26 101 222 222 222 222 222 222 222 45 | 83 180 175 118 175 178 222 222 101 170 151 177 157 222 222 222 46 | 222 191 141 198 205 222 222 222 222 209 171 152 222 222 222 222 47 | 222 222 218 212 222 222 222 222 222 222 222 222 222 222 222 222 48 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 49 | 50 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 51 | 222 131 142 57 222 222 222 222 222 222 222 222 222 222 222 222 52 | 222 93 92 162 222 222 222 222 222 222 222 222 222 222 222 222 53 | 222 111 84 103 62 222 222 222 222 222 222 222 97 222 222 222 54 | 222 116 108 119 89 77 214 222 222 222 222 222 112 97 222 222 55 | 222 85 58 65 109 114 47 84 222 222 222 222 97 97 222 222 56 | 222 165 92 107 35 94 118 101 107 222 222 222 123 204 222 222 57 | 222 222 81 82 101 111 99 102 73 85 222 39 50 222 222 222 58 | 222 222 167 81 42 96 96 51 60 222 222 21 222 222 222 222 59 | 222 222 222 127 109 108 64 65 222 222 217 73 222 222 222 222 60 | 222 222 222 222 222 222 221 217 222 33 212 117 94 222 222 222 61 | 222 222 222 222 222 222 222 222 214 180 202 88 109 137 222 222 62 | 222 222 222 222 222 222 222 222 222 217 66 105 68 139 151 222 63 | 222 222 222 222 222 222 222 222 222 222 164 108 112 74 158 222 64 | 222 222 222 222 222 222 222 222 222 222 222 80 120 122 222 222 65 | 222 222 222 222 222 222 222 222 222 222 222 79 40 222 222 222 66 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 67 | 222 172 176 80 222 222 222 222 222 222 222 222 222 222 222 222 68 | 222 125 122 195 222 222 222 222 222 222 222 222 222 222 222 222 69 | 222 151 119 138 98 222 222 222 222 222 222 222 131 222 222 222 70 | 222 151 154 159 128 119 215 222 222 222 222 222 151 127 222 222 71 | 222 120 71 101 147 154 63 126 222 222 222 222 128 143 222 222 72 | 222 182 121 142 54 123 159 139 147 222 222 222 151 206 222 222 73 | 222 222 108 101 141 151 133 140 103 111 222 65 73 222 222 222 74 | 222 222 186 109 49 132 128 74 78 222 222 24 222 222 222 222 75 | 222 222 222 163 140 149 84 87 222 222 217 98 222 222 222 222 76 | 222 222 222 222 222 222 221 218 222 36 212 156 143 222 222 222 77 | 222 222 222 222 222 222 222 222 214 180 205 127 148 178 222 222 78 | 222 222 222 222 222 222 222 222 222 219 97 145 99 176 187 222 79 | 222 222 222 222 222 222 222 222 222 222 200 146 150 114 196 222 80 | 222 222 222 222 222 222 222 222 222 222 222 110 155 164 222 222 81 | 222 222 222 222 222 222 222 222 222 222 222 102 60 222 222 222 82 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 83 | 222 198 199 99 222 222 222 222 222 222 222 222 222 222 222 222 84 | 222 153 145 214 222 222 222 222 222 222 222 222 222 222 222 222 85 | 222 177 147 165 135 222 222 222 222 222 222 222 157 222 222 222 86 | 222 175 182 182 159 156 216 222 222 222 222 222 177 152 222 222 87 | 222 149 82 133 173 182 78 162 222 222 222 222 151 171 222 222 88 | 222 193 148 162 74 147 182 166 174 222 222 222 170 209 222 222 89 | 222 222 130 119 169 176 159 167 123 133 222 101 101 222 222 222 90 | 222 222 194 136 54 159 152 92 95 222 222 26 222 222 222 222 91 | 222 222 222 180 160 167 101 98 222 222 218 113 222 222 222 222 92 | 222 222 222 222 222 222 222 219 222 39 212 177 178 222 222 222 93 | 222 222 222 222 222 222 222 222 215 180 207 158 175 205 222 222 94 | 222 222 222 222 222 222 222 222 222 220 116 172 118 198 212 222 95 | 222 222 222 222 222 222 222 222 222 222 218 164 175 141 218 222 96 | 222 222 222 222 222 222 222 222 222 222 222 128 180 191 222 222 97 | 222 222 222 222 222 222 222 222 222 222 222 121 83 222 222 222 98 | 99 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 100 | 222 222 222 222 222 222 222 222 222 222 222 222 151 158 222 222 101 | 222 222 222 222 97 97 204 222 222 222 222 137 139 74 122 222 102 | 222 222 222 97 112 97 123 50 222 222 94 109 68 112 120 40 103 | 222 222 222 222 222 222 222 39 21 73 117 88 105 108 80 79 104 | 222 222 222 222 222 222 222 222 222 217 212 202 66 164 222 222 105 | 222 222 222 222 222 222 222 85 222 222 33 180 217 222 222 222 106 | 222 222 222 222 222 222 107 73 60 222 222 214 222 222 222 222 107 | 222 222 222 222 222 84 101 102 51 65 217 222 222 222 222 222 108 | 222 222 222 222 214 47 118 99 96 64 221 222 222 222 222 222 109 | 222 222 222 222 77 114 94 111 96 108 222 222 222 222 222 222 110 | 222 222 222 62 89 109 35 101 42 109 222 222 222 222 222 222 111 | 222 57 162 103 119 65 107 82 81 127 222 222 222 222 222 222 112 | 222 142 92 84 108 58 92 81 167 222 222 222 222 222 222 222 113 | 222 131 93 111 116 85 165 222 222 222 222 222 222 222 222 222 114 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 115 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 116 | 222 222 222 222 222 222 222 222 222 222 222 222 187 196 222 222 117 | 222 222 222 222 127 143 206 222 222 222 222 178 176 114 164 222 118 | 222 222 222 131 151 128 151 73 222 222 143 148 99 150 155 60 119 | 222 222 222 222 222 222 222 65 24 98 156 127 145 146 110 102 120 | 222 222 222 222 222 222 222 222 222 217 212 205 97 200 222 222 121 | 222 222 222 222 222 222 222 111 222 222 36 180 219 222 222 222 122 | 222 222 222 222 222 222 147 103 78 222 222 214 222 222 222 222 123 | 222 222 222 222 222 126 139 140 74 87 218 222 222 222 222 222 124 | 222 222 222 222 215 63 159 133 128 84 221 222 222 222 222 222 125 | 222 222 222 222 119 154 123 151 132 149 222 222 222 222 222 222 126 | 222 222 222 98 128 147 54 141 49 140 222 222 222 222 222 222 127 | 222 80 195 138 159 101 142 101 109 163 222 222 222 222 222 222 128 | 222 176 122 119 154 71 121 108 186 222 222 222 222 222 222 222 129 | 222 172 125 151 151 120 182 222 222 222 222 222 222 222 222 222 130 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 131 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 132 | 222 222 222 222 222 222 222 222 222 222 222 222 212 218 222 222 133 | 222 222 222 222 152 171 209 222 222 222 222 205 198 141 191 222 134 | 222 222 222 157 177 151 170 101 222 222 178 175 118 175 180 83 135 | 222 222 222 222 222 222 222 101 26 113 177 158 172 164 128 121 136 | 222 222 222 222 222 222 222 222 222 218 212 207 116 218 222 222 137 | 222 222 222 222 222 222 222 133 222 222 39 180 220 222 222 222 138 | 222 222 222 222 222 222 174 123 95 222 222 215 222 222 222 222 139 | 222 222 222 222 222 162 166 167 92 98 219 222 222 222 222 222 140 | 222 222 222 222 216 78 182 159 152 101 222 222 222 222 222 222 141 | 222 222 222 222 156 182 147 176 159 167 222 222 222 222 222 222 142 | 222 222 222 135 159 173 74 169 54 160 222 222 222 222 222 222 143 | 222 99 214 165 182 133 162 119 136 180 222 222 222 222 222 222 144 | 222 199 145 147 182 82 148 130 194 222 222 222 222 222 222 222 145 | 222 198 153 177 175 149 193 222 222 222 222 222 222 222 222 222 146 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 147 | 148 | 222 222 222 40 79 222 222 222 222 222 222 222 222 222 222 222 149 | 222 222 122 120 80 222 222 222 222 222 222 222 222 222 222 222 150 | 222 158 74 112 108 164 222 222 222 222 222 222 222 222 222 222 151 | 222 151 139 68 105 66 217 222 222 222 222 222 222 222 222 222 152 | 222 222 137 109 88 202 180 214 222 222 222 222 222 222 222 222 153 | 222 222 222 94 117 212 33 222 217 221 222 222 222 222 222 222 154 | 222 222 222 222 73 217 222 222 65 64 108 109 127 222 222 222 155 | 222 222 222 222 21 222 222 60 51 96 96 42 81 167 222 222 156 | 222 222 222 50 39 222 85 73 102 99 111 101 82 81 222 222 157 | 222 222 204 123 222 222 222 107 101 118 94 35 107 92 165 222 158 | 222 222 97 97 222 222 222 222 84 47 114 109 65 58 85 222 159 | 222 222 97 112 222 222 222 222 222 214 77 89 119 108 116 222 160 | 222 222 222 97 222 222 222 222 222 222 222 62 103 84 111 222 161 | 222 222 222 222 222 222 222 222 222 222 222 222 162 92 93 222 162 | 222 222 222 222 222 222 222 222 222 222 222 222 57 142 131 222 163 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 164 | 222 222 222 60 102 222 222 222 222 222 222 222 222 222 222 222 165 | 222 222 164 155 110 222 222 222 222 222 222 222 222 222 222 222 166 | 222 196 114 150 146 200 222 222 222 222 222 222 222 222 222 222 167 | 222 187 176 99 145 97 219 222 222 222 222 222 222 222 222 222 168 | 222 222 178 148 127 205 180 214 222 222 222 222 222 222 222 222 169 | 222 222 222 143 156 212 36 222 218 221 222 222 222 222 222 222 170 | 222 222 222 222 98 217 222 222 87 84 149 140 163 222 222 222 171 | 222 222 222 222 24 222 222 78 74 128 132 49 109 186 222 222 172 | 222 222 222 73 65 222 111 103 140 133 151 141 101 108 222 222 173 | 222 222 206 151 222 222 222 147 139 159 123 54 142 121 182 222 174 | 222 222 143 128 222 222 222 222 126 63 154 147 101 71 120 222 175 | 222 222 127 151 222 222 222 222 222 215 119 128 159 154 151 222 176 | 222 222 222 131 222 222 222 222 222 222 222 98 138 119 151 222 177 | 222 222 222 222 222 222 222 222 222 222 222 222 195 122 125 222 178 | 222 222 222 222 222 222 222 222 222 222 222 222 80 176 172 222 179 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 180 | 222 222 222 83 121 222 222 222 222 222 222 222 222 222 222 222 181 | 222 222 191 180 128 222 222 222 222 222 222 222 222 222 222 222 182 | 222 218 141 175 164 218 222 222 222 222 222 222 222 222 222 222 183 | 222 212 198 118 172 116 220 222 222 222 222 222 222 222 222 222 184 | 222 222 205 175 158 207 180 215 222 222 222 222 222 222 222 222 185 | 222 222 222 178 177 212 39 222 219 222 222 222 222 222 222 222 186 | 222 222 222 222 113 218 222 222 98 101 167 160 180 222 222 222 187 | 222 222 222 222 26 222 222 95 92 152 159 54 136 194 222 222 188 | 222 222 222 101 101 222 133 123 167 159 176 169 119 130 222 222 189 | 222 222 209 170 222 222 222 174 166 182 147 74 162 148 193 222 190 | 222 222 171 151 222 222 222 222 162 78 182 173 133 82 149 222 191 | 222 222 152 177 222 222 222 222 222 216 156 159 182 182 175 222 192 | 222 222 222 157 222 222 222 222 222 222 222 135 165 147 177 222 193 | 222 222 222 222 222 222 222 222 222 222 222 222 214 145 153 222 194 | 222 222 222 222 222 222 222 222 222 222 222 222 99 199 198 222 195 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 196 | -------------------------------------------------------------------------------- /patterns/pattern-monalisa.patt: -------------------------------------------------------------------------------- 1 | 222 222 222 222 222 222 212 189 215 222 222 222 222 222 222 222 2 | 222 222 222 222 222 141 33 0 11 123 222 222 222 222 222 222 3 | 222 222 222 222 214 171 220 172 8 0 154 222 222 222 222 222 4 | 222 222 222 222 126 221 222 222 122 0 78 222 222 222 222 222 5 | 222 222 222 222 88 129 146 96 100 0 44 222 222 222 222 222 6 | 222 222 222 221 57 217 199 217 153 0 20 222 222 222 222 222 7 | 222 222 222 194 0 171 98 211 72 0 0 199 222 222 222 222 8 | 222 222 222 187 0 76 181 161 10 0 0 158 222 222 222 222 9 | 222 222 222 215 15 0 38 3 5 0 0 152 222 222 222 222 10 | 222 222 222 222 145 55 116 201 208 68 0 90 222 222 222 222 11 | 222 222 222 205 30 151 222 222 222 115 0 3 184 222 222 222 12 | 222 222 214 76 52 210 222 222 222 94 80 174 69 118 221 222 13 | 222 221 86 0 98 217 222 222 221 177 90 17 0 51 184 222 14 | 222 134 0 0 0 13 64 99 106 10 0 18 116 220 222 222 15 | 222 183 72 5 0 0 0 0 0 30 128 201 222 222 222 222 16 | 222 222 222 216 196 192 192 190 190 219 222 222 222 222 222 222 17 | 222 222 222 222 222 222 212 189 215 222 222 222 222 222 222 222 18 | 222 222 222 222 222 141 33 0 11 123 222 222 222 222 222 222 19 | 222 222 222 222 214 171 220 172 8 0 154 222 222 222 222 222 20 | 222 222 222 222 126 221 222 222 122 0 78 222 222 222 222 222 21 | 222 222 222 222 88 129 146 96 100 0 44 222 222 222 222 222 22 | 222 222 222 221 57 217 199 217 153 0 20 222 222 222 222 222 23 | 222 222 222 194 0 171 98 211 72 0 0 199 222 222 222 222 24 | 222 222 222 187 0 76 181 161 10 0 0 158 222 222 222 222 25 | 222 222 222 215 15 0 38 3 5 0 0 152 222 222 222 222 26 | 222 222 222 222 145 55 116 201 208 68 0 90 222 222 222 222 27 | 222 222 222 205 30 151 222 222 222 115 0 3 184 222 222 222 28 | 222 222 214 76 52 210 222 222 222 94 80 174 69 118 221 222 29 | 222 221 86 0 98 217 222 222 221 177 90 17 0 51 184 222 30 | 222 134 0 0 0 13 64 99 106 10 0 18 116 220 222 222 31 | 222 183 72 5 0 0 0 0 0 30 128 201 222 222 222 222 32 | 222 222 222 216 196 192 192 190 190 219 222 222 222 222 222 222 33 | 222 222 222 222 222 222 212 189 215 222 222 222 222 222 222 222 34 | 222 222 222 222 222 141 33 0 11 123 222 222 222 222 222 222 35 | 222 222 222 222 214 171 220 172 8 0 154 222 222 222 222 222 36 | 222 222 222 222 126 221 222 222 122 0 78 222 222 222 222 222 37 | 222 222 222 222 88 129 146 96 100 0 44 222 222 222 222 222 38 | 222 222 222 221 57 217 199 217 153 0 20 222 222 222 222 222 39 | 222 222 222 194 0 171 98 211 72 0 0 199 222 222 222 222 40 | 222 222 222 187 0 76 181 161 10 0 0 158 222 222 222 222 41 | 222 222 222 215 15 0 38 3 5 0 0 152 222 222 222 222 42 | 222 222 222 222 145 55 116 201 208 68 0 90 222 222 222 222 43 | 222 222 222 205 30 151 222 222 222 115 0 3 184 222 222 222 44 | 222 222 214 76 52 210 222 222 222 94 80 174 69 118 221 222 45 | 222 221 86 0 98 217 222 222 221 177 90 17 0 51 184 222 46 | 222 134 0 0 0 13 64 99 106 10 0 18 116 220 222 222 47 | 222 183 72 5 0 0 0 0 0 30 128 201 222 222 222 222 48 | 222 222 222 216 196 192 192 190 190 219 222 222 222 222 222 222 49 | 50 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 51 | 222 222 222 222 222 222 222 222 222 222 222 221 184 222 222 222 52 | 222 222 222 222 222 222 222 222 222 222 222 118 51 220 222 222 53 | 222 222 222 222 222 222 222 222 222 222 184 69 0 116 222 222 54 | 222 222 222 222 222 222 199 158 152 90 3 174 17 18 201 222 55 | 222 222 154 78 44 20 0 0 0 0 0 80 90 0 128 222 56 | 222 123 0 0 0 0 0 0 0 68 115 94 177 10 30 219 57 | 215 11 8 122 100 153 72 10 5 208 222 222 221 106 0 190 58 | 189 0 172 222 96 217 211 161 3 201 222 222 222 99 0 190 59 | 212 33 220 222 146 199 98 181 38 116 222 222 222 64 0 192 60 | 222 141 171 221 129 217 171 76 0 55 151 210 217 13 0 192 61 | 222 222 214 126 88 57 0 0 15 145 30 52 98 0 0 196 62 | 222 222 222 222 222 221 194 187 215 222 205 76 0 0 5 216 63 | 222 222 222 222 222 222 222 222 222 222 222 214 86 0 72 222 64 | 222 222 222 222 222 222 222 222 222 222 222 222 221 134 183 222 65 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 66 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 67 | 222 222 222 222 222 222 222 222 222 222 222 221 184 222 222 222 68 | 222 222 222 222 222 222 222 222 222 222 222 118 51 220 222 222 69 | 222 222 222 222 222 222 222 222 222 222 184 69 0 116 222 222 70 | 222 222 222 222 222 222 199 158 152 90 3 174 17 18 201 222 71 | 222 222 154 78 44 20 0 0 0 0 0 80 90 0 128 222 72 | 222 123 0 0 0 0 0 0 0 68 115 94 177 10 30 219 73 | 215 11 8 122 100 153 72 10 5 208 222 222 221 106 0 190 74 | 189 0 172 222 96 217 211 161 3 201 222 222 222 99 0 190 75 | 212 33 220 222 146 199 98 181 38 116 222 222 222 64 0 192 76 | 222 141 171 221 129 217 171 76 0 55 151 210 217 13 0 192 77 | 222 222 214 126 88 57 0 0 15 145 30 52 98 0 0 196 78 | 222 222 222 222 222 221 194 187 215 222 205 76 0 0 5 216 79 | 222 222 222 222 222 222 222 222 222 222 222 214 86 0 72 222 80 | 222 222 222 222 222 222 222 222 222 222 222 222 221 134 183 222 81 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 82 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 83 | 222 222 222 222 222 222 222 222 222 222 222 221 184 222 222 222 84 | 222 222 222 222 222 222 222 222 222 222 222 118 51 220 222 222 85 | 222 222 222 222 222 222 222 222 222 222 184 69 0 116 222 222 86 | 222 222 222 222 222 222 199 158 152 90 3 174 17 18 201 222 87 | 222 222 154 78 44 20 0 0 0 0 0 80 90 0 128 222 88 | 222 123 0 0 0 0 0 0 0 68 115 94 177 10 30 219 89 | 215 11 8 122 100 153 72 10 5 208 222 222 221 106 0 190 90 | 189 0 172 222 96 217 211 161 3 201 222 222 222 99 0 190 91 | 212 33 220 222 146 199 98 181 38 116 222 222 222 64 0 192 92 | 222 141 171 221 129 217 171 76 0 55 151 210 217 13 0 192 93 | 222 222 214 126 88 57 0 0 15 145 30 52 98 0 0 196 94 | 222 222 222 222 222 221 194 187 215 222 205 76 0 0 5 216 95 | 222 222 222 222 222 222 222 222 222 222 222 214 86 0 72 222 96 | 222 222 222 222 222 222 222 222 222 222 222 222 221 134 183 222 97 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 98 | 99 | 222 222 222 222 222 222 219 190 190 192 192 196 216 222 222 222 100 | 222 222 222 222 201 128 30 0 0 0 0 0 5 72 183 222 101 | 222 222 220 116 18 0 10 106 99 64 13 0 0 0 134 222 102 | 222 184 51 0 17 90 177 221 222 222 217 98 0 86 221 222 103 | 222 221 118 69 174 80 94 222 222 222 210 52 76 214 222 222 104 | 222 222 222 184 3 0 115 222 222 222 151 30 205 222 222 222 105 | 222 222 222 222 90 0 68 208 201 116 55 145 222 222 222 222 106 | 222 222 222 222 152 0 0 5 3 38 0 15 215 222 222 222 107 | 222 222 222 222 158 0 0 10 161 181 76 0 187 222 222 222 108 | 222 222 222 222 199 0 0 72 211 98 171 0 194 222 222 222 109 | 222 222 222 222 222 20 0 153 217 199 217 57 221 222 222 222 110 | 222 222 222 222 222 44 0 100 96 146 129 88 222 222 222 222 111 | 222 222 222 222 222 78 0 122 222 222 221 126 222 222 222 222 112 | 222 222 222 222 222 154 0 8 172 220 171 214 222 222 222 222 113 | 222 222 222 222 222 222 123 11 0 33 141 222 222 222 222 222 114 | 222 222 222 222 222 222 222 215 189 212 222 222 222 222 222 222 115 | 222 222 222 222 222 222 219 190 190 192 192 196 216 222 222 222 116 | 222 222 222 222 201 128 30 0 0 0 0 0 5 72 183 222 117 | 222 222 220 116 18 0 10 106 99 64 13 0 0 0 134 222 118 | 222 184 51 0 17 90 177 221 222 222 217 98 0 86 221 222 119 | 222 221 118 69 174 80 94 222 222 222 210 52 76 214 222 222 120 | 222 222 222 184 3 0 115 222 222 222 151 30 205 222 222 222 121 | 222 222 222 222 90 0 68 208 201 116 55 145 222 222 222 222 122 | 222 222 222 222 152 0 0 5 3 38 0 15 215 222 222 222 123 | 222 222 222 222 158 0 0 10 161 181 76 0 187 222 222 222 124 | 222 222 222 222 199 0 0 72 211 98 171 0 194 222 222 222 125 | 222 222 222 222 222 20 0 153 217 199 217 57 221 222 222 222 126 | 222 222 222 222 222 44 0 100 96 146 129 88 222 222 222 222 127 | 222 222 222 222 222 78 0 122 222 222 221 126 222 222 222 222 128 | 222 222 222 222 222 154 0 8 172 220 171 214 222 222 222 222 129 | 222 222 222 222 222 222 123 11 0 33 141 222 222 222 222 222 130 | 222 222 222 222 222 222 222 215 189 212 222 222 222 222 222 222 131 | 222 222 222 222 222 222 219 190 190 192 192 196 216 222 222 222 132 | 222 222 222 222 201 128 30 0 0 0 0 0 5 72 183 222 133 | 222 222 220 116 18 0 10 106 99 64 13 0 0 0 134 222 134 | 222 184 51 0 17 90 177 221 222 222 217 98 0 86 221 222 135 | 222 221 118 69 174 80 94 222 222 222 210 52 76 214 222 222 136 | 222 222 222 184 3 0 115 222 222 222 151 30 205 222 222 222 137 | 222 222 222 222 90 0 68 208 201 116 55 145 222 222 222 222 138 | 222 222 222 222 152 0 0 5 3 38 0 15 215 222 222 222 139 | 222 222 222 222 158 0 0 10 161 181 76 0 187 222 222 222 140 | 222 222 222 222 199 0 0 72 211 98 171 0 194 222 222 222 141 | 222 222 222 222 222 20 0 153 217 199 217 57 221 222 222 222 142 | 222 222 222 222 222 44 0 100 96 146 129 88 222 222 222 222 143 | 222 222 222 222 222 78 0 122 222 222 221 126 222 222 222 222 144 | 222 222 222 222 222 154 0 8 172 220 171 214 222 222 222 222 145 | 222 222 222 222 222 222 123 11 0 33 141 222 222 222 222 222 146 | 222 222 222 222 222 222 222 215 189 212 222 222 222 222 222 222 147 | 148 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 149 | 222 183 134 221 222 222 222 222 222 222 222 222 222 222 222 222 150 | 222 72 0 86 214 222 222 222 222 222 222 222 222 222 222 222 151 | 216 5 0 0 76 205 222 215 187 194 221 222 222 222 222 222 152 | 196 0 0 98 52 30 145 15 0 0 57 88 126 214 222 222 153 | 192 0 13 217 210 151 55 0 76 171 217 129 221 171 141 222 154 | 192 0 64 222 222 222 116 38 181 98 199 146 222 220 33 212 155 | 190 0 99 222 222 222 201 3 161 211 217 96 222 172 0 189 156 | 190 0 106 221 222 222 208 5 10 72 153 100 122 8 11 215 157 | 219 30 10 177 94 115 68 0 0 0 0 0 0 0 123 222 158 | 222 128 0 90 80 0 0 0 0 0 20 44 78 154 222 222 159 | 222 201 18 17 174 3 90 152 158 199 222 222 222 222 222 222 160 | 222 222 116 0 69 184 222 222 222 222 222 222 222 222 222 222 161 | 222 222 220 51 118 222 222 222 222 222 222 222 222 222 222 222 162 | 222 222 222 184 221 222 222 222 222 222 222 222 222 222 222 222 163 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 164 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 165 | 222 183 134 221 222 222 222 222 222 222 222 222 222 222 222 222 166 | 222 72 0 86 214 222 222 222 222 222 222 222 222 222 222 222 167 | 216 5 0 0 76 205 222 215 187 194 221 222 222 222 222 222 168 | 196 0 0 98 52 30 145 15 0 0 57 88 126 214 222 222 169 | 192 0 13 217 210 151 55 0 76 171 217 129 221 171 141 222 170 | 192 0 64 222 222 222 116 38 181 98 199 146 222 220 33 212 171 | 190 0 99 222 222 222 201 3 161 211 217 96 222 172 0 189 172 | 190 0 106 221 222 222 208 5 10 72 153 100 122 8 11 215 173 | 219 30 10 177 94 115 68 0 0 0 0 0 0 0 123 222 174 | 222 128 0 90 80 0 0 0 0 0 20 44 78 154 222 222 175 | 222 201 18 17 174 3 90 152 158 199 222 222 222 222 222 222 176 | 222 222 116 0 69 184 222 222 222 222 222 222 222 222 222 222 177 | 222 222 220 51 118 222 222 222 222 222 222 222 222 222 222 222 178 | 222 222 222 184 221 222 222 222 222 222 222 222 222 222 222 222 179 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 180 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 181 | 222 183 134 221 222 222 222 222 222 222 222 222 222 222 222 222 182 | 222 72 0 86 214 222 222 222 222 222 222 222 222 222 222 222 183 | 216 5 0 0 76 205 222 215 187 194 221 222 222 222 222 222 184 | 196 0 0 98 52 30 145 15 0 0 57 88 126 214 222 222 185 | 192 0 13 217 210 151 55 0 76 171 217 129 221 171 141 222 186 | 192 0 64 222 222 222 116 38 181 98 199 146 222 220 33 212 187 | 190 0 99 222 222 222 201 3 161 211 217 96 222 172 0 189 188 | 190 0 106 221 222 222 208 5 10 72 153 100 122 8 11 215 189 | 219 30 10 177 94 115 68 0 0 0 0 0 0 0 123 222 190 | 222 128 0 90 80 0 0 0 0 0 20 44 78 154 222 222 191 | 222 201 18 17 174 3 90 152 158 199 222 222 222 222 222 222 192 | 222 222 116 0 69 184 222 222 222 222 222 222 222 222 222 222 193 | 222 222 220 51 118 222 222 222 222 222 222 222 222 222 222 222 194 | 222 222 222 184 221 222 222 222 222 222 222 222 222 222 222 222 195 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 196 | -------------------------------------------------------------------------------- /patterns/pattern-vinci.patt: -------------------------------------------------------------------------------- 1 | 222 222 222 222 222 222 0 153 147 0 222 222 222 222 222 222 2 | 222 222 222 222 0 204 204 153 153 153 153 222 222 222 222 222 3 | 222 222 222 222 153 153 204 153 153 153 153 222 222 222 222 223 4 | 222 222 222 222 153 153 146 153 153 153 153 222 222 222 222 222 5 | 222 222 222 222 153 153 0 192 0 153 0 0 222 222 222 222 6 | 222 222 222 222 153 153 0 153 153 153 153 137 222 222 222 222 7 | 222 222 222 0 153 153 130 0 51 0 0 0 0 222 222 222 8 | 222 222 222 0 153 153 102 204 51 51 153 0 204 222 222 222 9 | 222 222 222 153 153 102 204 204 204 204 204 204 0 222 222 222 10 | 222 222 222 153 153 153 102 102 204 204 204 204 0 222 222 222 11 | 222 222 222 153 102 102 102 102 153 153 204 204 204 222 222 222 12 | 222 222 222 153 102 102 102 102 204 204 204 204 204 222 222 222 13 | 222 222 222 46 153 153 102 102 102 204 204 204 204 222 222 222 14 | 222 222 222 222 0 153 204 204 204 204 204 204 0 222 222 222 15 | 222 222 222 222 222 0 153 0 204 204 204 0 222 222 222 222 16 | 222 222 222 222 222 222 19 0 0 204 222 222 222 222 222 222 17 | 222 222 222 222 222 222 0 204 196 0 222 222 222 222 222 222 18 | 222 222 222 222 0 204 204 204 204 204 204 222 222 222 222 222 19 | 222 222 222 222 153 153 204 204 204 204 204 222 222 222 222 223 20 | 222 222 222 222 153 153 146 204 204 204 204 222 222 222 222 222 21 | 222 222 222 222 153 153 0 192 0 204 0 0 222 222 222 222 22 | 222 222 222 222 153 153 0 204 204 204 204 182 222 222 222 222 23 | 222 222 222 0 153 153 130 0 102 0 0 0 0 222 222 222 24 | 222 222 222 0 153 153 102 204 51 51 204 0 204 222 222 222 25 | 222 222 222 153 153 102 204 204 204 204 204 204 0 222 222 222 26 | 222 222 222 153 153 153 102 102 204 204 204 204 0 222 222 222 27 | 222 222 222 153 102 102 102 102 153 153 204 204 204 222 222 222 28 | 222 222 222 153 102 102 102 102 204 204 204 204 204 222 222 222 29 | 222 222 222 46 153 153 102 102 102 204 204 204 204 222 222 222 30 | 222 222 222 222 0 153 204 204 204 204 204 204 0 222 222 222 31 | 222 222 222 222 222 0 153 0 204 204 204 0 222 222 222 222 32 | 222 222 222 222 222 222 19 0 0 204 222 222 222 222 222 222 33 | 222 222 222 222 222 222 0 255 246 0 222 222 222 222 222 222 34 | 222 222 222 222 0 204 204 255 255 255 255 222 222 222 222 222 35 | 222 222 222 222 153 153 204 255 255 255 255 222 222 222 222 223 36 | 222 222 222 222 153 153 146 255 255 255 255 222 222 222 222 222 37 | 222 222 222 222 153 153 0 192 0 255 0 0 222 222 222 222 38 | 222 222 222 222 153 153 0 255 255 255 255 228 222 222 222 222 39 | 222 222 222 0 153 153 130 0 153 0 0 0 0 222 222 222 40 | 222 222 222 0 153 153 102 204 51 51 255 0 204 222 222 222 41 | 222 222 222 153 153 102 204 204 204 204 204 204 0 222 222 222 42 | 222 222 222 153 153 153 102 102 204 204 204 204 0 222 222 222 43 | 222 222 222 153 102 102 102 102 153 153 204 204 204 222 222 222 44 | 222 222 222 153 102 102 102 102 204 204 204 204 204 222 222 222 45 | 222 222 222 46 153 153 102 102 102 204 204 204 204 222 222 222 46 | 222 222 222 222 0 153 204 204 204 204 204 204 0 222 222 222 47 | 222 222 222 222 222 0 153 0 204 204 204 0 222 222 222 222 48 | 222 222 222 222 222 222 19 0 0 204 222 222 222 222 222 222 49 | 50 | 222 222 223 222 222 222 222 222 222 222 222 222 222 222 222 222 51 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 52 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 53 | 222 222 222 222 222 222 0 204 0 0 204 204 204 0 222 222 54 | 222 222 222 222 0 134 0 0 204 204 204 204 204 204 0 222 55 | 222 153 153 153 0 153 3 153 204 204 204 204 204 204 204 222 56 | 0 153 153 153 153 153 0 51 204 204 153 204 204 204 204 204 57 | 149 153 153 153 0 153 51 51 204 204 153 204 102 204 204 0 58 | 153 153 153 153 188 153 0 204 204 103 102 102 102 204 0 0 59 | 0 204 204 145 0 0 127 102 204 102 102 102 102 204 153 29 60 | 222 204 153 153 153 153 153 153 102 153 102 102 153 153 0 222 61 | 222 0 153 153 153 153 153 153 153 153 102 102 153 0 222 222 62 | 222 222 222 222 222 222 0 0 153 153 153 153 59 222 222 222 63 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 64 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 65 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 66 | 222 222 223 222 222 222 222 222 222 222 222 222 222 222 222 222 67 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 68 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 69 | 222 222 222 222 222 222 0 204 0 0 204 204 204 0 222 222 70 | 222 222 222 222 0 179 0 0 204 204 204 204 204 204 0 222 71 | 222 204 204 204 0 204 4 204 204 204 204 204 204 204 204 222 72 | 0 204 204 204 204 204 0 51 204 204 153 204 204 204 204 204 73 | 198 204 204 204 0 204 102 51 204 204 153 204 102 204 204 0 74 | 204 204 204 204 188 204 0 204 204 103 102 102 102 204 0 0 75 | 0 204 204 145 0 0 127 102 204 102 102 102 102 204 153 29 76 | 222 204 153 153 153 153 153 153 102 153 102 102 153 153 0 222 77 | 222 0 153 153 153 153 153 153 153 153 102 102 153 0 222 222 78 | 222 222 222 222 222 222 0 0 153 153 153 153 59 222 222 222 79 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 80 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 81 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 82 | 222 222 223 222 222 222 222 222 222 222 222 222 222 222 222 222 83 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 84 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 85 | 222 222 222 222 222 222 0 204 0 0 204 204 204 0 222 222 86 | 222 222 222 222 0 224 0 0 204 204 204 204 204 204 0 222 87 | 222 255 255 255 0 255 6 255 204 204 204 204 204 204 204 222 88 | 0 255 255 255 255 255 0 51 204 204 153 204 204 204 204 204 89 | 248 255 255 255 0 255 153 51 204 204 153 204 102 204 204 0 90 | 255 255 255 255 188 255 0 204 204 103 102 102 102 204 0 0 91 | 0 204 204 145 0 0 127 102 204 102 102 102 102 204 153 29 92 | 222 204 153 153 153 153 153 153 102 153 102 102 153 153 0 222 93 | 222 0 153 153 153 153 153 153 153 153 102 102 153 0 222 222 94 | 222 222 222 222 222 222 0 0 153 153 153 153 59 222 222 222 95 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 96 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 97 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 98 | 99 | 222 222 222 222 222 222 204 0 0 29 222 222 222 222 222 222 100 | 222 222 222 222 0 204 204 204 0 153 0 222 222 222 222 222 101 | 222 222 222 0 204 204 204 204 204 204 153 0 222 222 222 222 102 | 222 222 222 204 204 204 204 102 102 102 153 153 59 222 222 222 103 | 222 222 222 204 204 204 204 204 102 102 102 102 153 222 222 222 104 | 222 222 222 204 204 204 153 153 102 102 102 102 153 222 222 222 105 | 222 222 222 0 204 204 204 204 103 102 153 153 153 222 222 222 106 | 222 222 222 0 204 204 204 204 204 204 102 153 153 222 222 222 107 | 222 222 222 204 0 153 51 51 204 102 153 153 0 222 222 222 108 | 222 222 222 0 0 3 0 51 0 127 153 153 0 222 222 222 109 | 222 222 222 222 134 153 153 153 153 0 153 153 222 222 222 222 110 | 222 222 222 222 0 0 153 0 188 0 153 153 222 222 222 222 111 | 222 222 222 222 222 153 153 153 153 145 153 153 222 222 222 222 112 | 223 222 222 222 222 153 153 153 153 204 153 153 222 222 222 222 113 | 222 222 222 222 222 153 153 153 153 204 204 0 222 222 222 222 114 | 222 222 222 222 222 222 0 149 153 0 222 222 222 222 222 222 115 | 222 222 222 222 222 222 204 0 0 29 222 222 222 222 222 222 116 | 222 222 222 222 0 204 204 204 0 153 0 222 222 222 222 222 117 | 222 222 222 0 204 204 204 204 204 204 153 0 222 222 222 222 118 | 222 222 222 204 204 204 204 102 102 102 153 153 59 222 222 222 119 | 222 222 222 204 204 204 204 204 102 102 102 102 153 222 222 222 120 | 222 222 222 204 204 204 153 153 102 102 102 102 153 222 222 222 121 | 222 222 222 0 204 204 204 204 103 102 153 153 153 222 222 222 122 | 222 222 222 0 204 204 204 204 204 204 102 153 153 222 222 222 123 | 222 222 222 204 0 204 51 51 204 102 153 153 0 222 222 222 124 | 222 222 222 0 0 4 0 102 0 127 153 153 0 222 222 222 125 | 222 222 222 222 179 204 204 204 204 0 153 153 222 222 222 222 126 | 222 222 222 222 0 0 204 0 188 0 153 153 222 222 222 222 127 | 222 222 222 222 222 204 204 204 204 145 153 153 222 222 222 222 128 | 223 222 222 222 222 204 204 204 204 204 153 153 222 222 222 222 129 | 222 222 222 222 222 204 204 204 204 204 204 0 222 222 222 222 130 | 222 222 222 222 222 222 0 198 204 0 222 222 222 222 222 222 131 | 222 222 222 222 222 222 204 0 0 29 222 222 222 222 222 222 132 | 222 222 222 222 0 204 204 204 0 153 0 222 222 222 222 222 133 | 222 222 222 0 204 204 204 204 204 204 153 0 222 222 222 222 134 | 222 222 222 204 204 204 204 102 102 102 153 153 59 222 222 222 135 | 222 222 222 204 204 204 204 204 102 102 102 102 153 222 222 222 136 | 222 222 222 204 204 204 153 153 102 102 102 102 153 222 222 222 137 | 222 222 222 0 204 204 204 204 103 102 153 153 153 222 222 222 138 | 222 222 222 0 204 204 204 204 204 204 102 153 153 222 222 222 139 | 222 222 222 204 0 255 51 51 204 102 153 153 0 222 222 222 140 | 222 222 222 0 0 6 0 153 0 127 153 153 0 222 222 222 141 | 222 222 222 222 224 255 255 255 255 0 153 153 222 222 222 222 142 | 222 222 222 222 0 0 255 0 188 0 153 153 222 222 222 222 143 | 222 222 222 222 222 255 255 255 255 145 153 153 222 222 222 222 144 | 223 222 222 222 222 255 255 255 255 204 153 153 222 222 222 222 145 | 222 222 222 222 222 255 255 255 255 204 204 0 222 222 222 222 146 | 222 222 222 222 222 222 0 248 255 0 222 222 222 222 222 222 147 | 148 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 149 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 150 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 151 | 222 222 222 59 153 153 153 153 0 0 222 222 222 222 222 222 152 | 222 222 0 153 102 102 153 153 153 153 153 153 153 153 0 222 153 | 222 0 153 153 102 102 153 102 153 153 153 153 153 153 204 222 154 | 29 153 204 102 102 102 102 204 102 127 0 0 145 204 204 0 155 | 0 0 204 102 102 102 103 204 204 0 153 188 153 153 153 153 156 | 0 204 204 102 204 153 204 204 51 51 153 0 153 153 153 149 157 | 204 204 204 204 204 153 204 204 51 0 153 153 153 153 153 0 158 | 222 204 204 204 204 204 204 204 153 3 153 0 153 153 153 222 159 | 222 0 204 204 204 204 204 204 0 0 134 0 222 222 222 222 160 | 222 222 0 204 204 204 0 0 204 0 222 222 222 222 222 222 161 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 162 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 163 | 222 222 222 222 222 222 222 222 222 222 222 222 222 223 222 222 164 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 165 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 166 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 167 | 222 222 222 59 153 153 153 153 0 0 222 222 222 222 222 222 168 | 222 222 0 153 102 102 153 153 153 153 153 153 153 153 0 222 169 | 222 0 153 153 102 102 153 102 153 153 153 153 153 153 204 222 170 | 29 153 204 102 102 102 102 204 102 127 0 0 145 204 204 0 171 | 0 0 204 102 102 102 103 204 204 0 204 188 204 204 204 204 172 | 0 204 204 102 204 153 204 204 51 102 204 0 204 204 204 198 173 | 204 204 204 204 204 153 204 204 51 0 204 204 204 204 204 0 174 | 222 204 204 204 204 204 204 204 204 4 204 0 204 204 204 222 175 | 222 0 204 204 204 204 204 204 0 0 179 0 222 222 222 222 176 | 222 222 0 204 204 204 0 0 204 0 222 222 222 222 222 222 177 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 178 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 179 | 222 222 222 222 222 222 222 222 222 222 222 222 222 223 222 222 180 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 181 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 182 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 183 | 222 222 222 59 153 153 153 153 0 0 222 222 222 222 222 222 184 | 222 222 0 153 102 102 153 153 153 153 153 153 153 153 0 222 185 | 222 0 153 153 102 102 153 102 153 153 153 153 153 153 204 222 186 | 29 153 204 102 102 102 102 204 102 127 0 0 145 204 204 0 187 | 0 0 204 102 102 102 103 204 204 0 255 188 255 255 255 255 188 | 0 204 204 102 204 153 204 204 51 153 255 0 255 255 255 248 189 | 204 204 204 204 204 153 204 204 51 0 255 255 255 255 255 0 190 | 222 204 204 204 204 204 204 204 255 6 255 0 255 255 255 222 191 | 222 0 204 204 204 204 204 204 0 0 224 0 222 222 222 222 192 | 222 222 0 204 204 204 0 0 204 0 222 222 222 222 222 222 193 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 194 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 195 | 222 222 222 222 222 222 222 222 222 222 222 222 222 223 222 222 196 | -------------------------------------------------------------------------------- /patterns/pattern-vitruvio.patt: -------------------------------------------------------------------------------- 1 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 2 | 222 222 222 222 94 94 94 94 94 94 94 94 222 222 222 222 3 | 222 222 222 94 94 94 94 94 94 94 94 94 94 222 222 222 4 | 222 222 222 94 94 94 94 222 222 94 94 94 103 222 222 222 5 | 222 64 64 64 222 222 94 222 222 151 222 222 64 64 64 222 6 | 222 65 222 222 222 222 222 222 222 222 222 222 222 222 65 222 7 | 222 66 66 66 66 66 66 222 222 66 66 66 66 66 66 222 8 | 210 67 67 67 67 67 67 222 222 67 67 67 67 67 67 156 9 | 200 68 68 68 68 68 68 222 222 69 69 69 69 69 69 121 10 | 222 69 69 69 69 69 222 222 222 70 70 70 70 70 70 222 11 | 222 70 70 70 70 70 222 222 222 222 70 70 70 70 70 222 12 | 222 71 71 71 71 218 94 222 222 222 71 71 71 71 71 222 13 | 222 222 72 72 72 222 94 222 222 103 219 72 72 72 222 222 14 | 222 222 222 73 222 94 94 222 222 94 222 73 73 222 222 222 15 | 222 222 222 222 222 94 94 222 222 94 94 222 222 222 222 222 16 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 17 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 18 | 222 222 222 222 93 93 93 93 93 93 93 93 222 222 222 222 19 | 222 222 222 93 93 93 93 93 93 93 93 93 93 222 222 222 20 | 222 222 222 93 93 93 93 222 222 93 93 93 102 222 222 222 21 | 222 196 196 196 222 222 93 222 222 151 222 222 196 196 196 222 22 | 222 195 222 222 222 222 222 222 222 222 222 222 222 222 194 222 23 | 222 193 193 193 193 193 193 222 222 193 193 193 193 193 193 222 24 | 218 191 191 191 191 191 191 222 222 191 191 191 191 191 191 205 25 | 215 190 190 190 190 190 190 222 222 190 190 190 190 190 190 198 26 | 222 188 188 188 188 188 222 222 222 188 188 188 188 188 188 222 27 | 222 187 187 187 187 187 222 222 222 222 187 187 187 187 187 222 28 | 222 185 185 185 185 220 93 222 222 222 185 185 185 185 185 222 29 | 222 222 184 184 184 222 93 222 222 102 221 184 184 184 222 222 30 | 222 222 222 182 222 93 93 222 222 93 222 182 182 222 222 222 31 | 222 222 222 222 222 93 93 222 222 93 93 222 222 222 222 222 32 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 33 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 34 | 222 222 222 222 93 93 93 93 93 93 93 93 222 222 222 222 35 | 222 222 222 93 93 93 93 93 93 93 93 93 93 222 222 222 36 | 222 222 222 93 93 93 93 222 222 93 93 93 102 222 222 222 37 | 222 135 135 135 222 222 93 222 222 151 222 222 134 134 134 222 38 | 222 128 222 222 222 222 222 222 222 222 222 222 222 222 127 222 39 | 222 122 122 122 122 122 122 222 222 122 122 122 122 122 122 222 40 | 213 115 115 115 115 115 115 222 222 115 115 115 115 115 115 171 41 | 203 110 110 110 110 110 110 222 222 109 109 109 109 109 109 143 42 | 222 102 102 102 102 102 222 222 222 100 100 100 100 100 100 222 43 | 222 93 93 93 93 93 222 222 222 222 93 93 93 93 93 222 44 | 222 84 84 84 84 218 93 222 222 222 84 84 84 84 84 222 45 | 222 222 74 74 74 222 93 222 222 102 219 74 74 74 222 222 46 | 222 222 222 65 222 93 93 222 222 93 222 65 65 222 222 222 47 | 222 222 222 222 222 93 93 222 222 93 93 222 222 222 222 222 48 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 49 | 50 | 222 222 222 222 222 222 222 156 122 222 222 222 222 222 222 222 51 | 222 222 222 222 64 65 66 67 69 70 70 71 222 222 222 222 52 | 222 222 222 222 64 222 66 67 69 70 70 71 72 222 222 222 53 | 222 222 94 103 64 222 66 67 69 70 70 71 72 73 222 222 54 | 222 94 94 94 222 222 66 67 69 70 70 71 72 73 222 222 55 | 222 94 94 94 222 222 66 67 69 70 70 71 220 222 94 222 56 | 222 94 94 94 152 222 66 67 69 70 222 222 103 94 94 222 57 | 222 94 94 222 222 222 222 222 222 222 222 222 222 222 222 222 58 | 222 94 94 222 222 222 222 222 222 222 222 222 222 222 222 222 59 | 222 94 94 94 94 222 66 67 68 222 222 94 94 94 94 222 60 | 222 94 94 94 222 222 66 67 68 69 70 218 222 94 94 222 61 | 222 94 94 94 222 222 66 67 68 69 70 71 72 222 222 222 62 | 222 222 94 94 64 222 66 67 68 69 70 71 72 73 222 222 63 | 222 222 222 222 64 222 66 67 68 69 70 71 72 222 222 222 64 | 222 222 222 222 64 65 66 67 68 69 70 71 222 222 222 222 65 | 222 222 222 222 222 222 222 211 201 222 222 222 222 222 222 222 66 | 222 222 222 222 222 222 222 206 199 222 222 222 222 222 222 222 67 | 222 222 222 222 196 195 193 191 190 188 187 185 222 222 222 222 68 | 222 222 222 222 196 222 193 191 190 188 187 185 184 222 222 222 69 | 222 222 93 102 196 222 193 191 190 188 187 185 184 182 222 222 70 | 222 93 93 93 222 222 193 191 190 188 187 185 184 182 222 222 71 | 222 93 93 93 222 222 193 191 190 188 187 185 221 222 93 222 72 | 222 93 93 93 151 222 193 191 190 188 222 222 102 93 93 222 73 | 222 93 93 222 222 222 222 222 222 222 222 222 222 222 222 222 74 | 222 93 93 222 222 222 222 222 222 222 222 222 222 222 222 222 75 | 222 93 93 93 93 222 193 192 190 222 222 93 93 93 93 222 76 | 222 93 93 93 222 222 193 192 190 188 187 221 222 93 93 222 77 | 222 93 93 93 222 222 193 192 190 188 187 185 184 222 222 222 78 | 222 222 93 93 196 222 193 192 190 188 187 185 184 182 222 222 79 | 222 222 222 222 196 222 193 192 190 188 187 185 184 222 222 222 80 | 222 222 222 222 196 195 193 192 190 188 187 185 222 222 222 222 81 | 222 222 222 222 222 222 222 219 215 222 222 222 222 222 222 222 82 | 222 222 222 222 222 222 222 171 144 222 222 222 222 222 222 222 83 | 222 222 222 222 134 128 122 115 109 101 93 84 222 222 222 222 84 | 222 222 222 222 134 222 122 115 109 101 93 84 74 222 222 222 85 | 222 222 93 102 134 222 122 115 109 101 93 84 74 65 222 222 86 | 222 93 93 93 222 222 122 115 109 101 93 84 74 65 222 222 87 | 222 93 93 93 222 222 122 115 109 101 93 84 220 222 93 222 88 | 222 93 93 93 151 222 122 115 109 101 222 222 102 93 93 222 89 | 222 93 93 222 222 222 222 222 222 222 222 222 222 222 222 222 90 | 222 93 93 222 222 222 222 222 222 222 222 222 222 222 222 222 91 | 222 93 93 93 93 222 122 116 110 222 222 93 93 93 93 222 92 | 222 93 93 93 222 222 122 116 110 102 93 218 222 93 93 222 93 | 222 93 93 93 222 222 122 116 110 102 93 84 74 222 222 222 94 | 222 222 93 93 135 222 122 116 110 102 93 84 74 65 222 222 95 | 222 222 222 222 135 222 122 116 110 102 93 84 74 222 222 222 96 | 222 222 222 222 135 128 122 116 110 102 93 84 222 222 222 222 97 | 222 222 222 222 222 222 222 213 204 222 222 222 222 222 222 222 98 | 99 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 100 | 222 222 222 222 222 94 94 222 222 94 94 222 222 222 222 222 101 | 222 222 222 73 73 222 94 222 222 94 94 222 73 222 222 222 102 | 222 222 72 72 72 220 103 222 222 94 222 72 72 72 222 222 103 | 222 71 71 71 71 71 222 222 222 94 218 71 71 71 71 222 104 | 222 70 70 70 70 70 222 222 222 222 70 70 70 70 70 222 105 | 222 70 70 70 70 70 70 222 222 222 69 69 69 69 69 222 106 | 122 69 69 69 69 69 69 222 222 68 68 68 68 68 68 201 107 | 156 67 67 67 67 67 67 222 222 67 67 67 67 67 67 211 108 | 222 66 66 66 66 66 66 222 222 66 66 66 66 66 66 222 109 | 222 65 222 222 222 222 222 222 222 222 222 222 222 222 65 222 110 | 222 64 64 64 222 222 152 222 222 94 222 222 64 64 64 222 111 | 222 222 222 103 94 94 94 222 222 94 94 94 94 222 222 222 112 | 222 222 222 94 94 94 94 94 94 94 94 94 94 222 222 222 113 | 222 222 222 222 94 94 94 94 94 94 94 94 222 222 222 222 114 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 115 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 116 | 222 222 222 222 222 93 93 222 222 93 93 222 222 222 222 222 117 | 222 222 222 182 182 222 93 222 222 93 93 222 182 222 222 222 118 | 222 222 184 184 184 221 102 222 222 93 222 184 184 184 222 222 119 | 222 185 185 185 185 185 222 222 222 93 221 185 185 185 185 222 120 | 222 187 187 187 187 187 222 222 222 222 187 187 187 187 187 222 121 | 222 188 188 188 188 188 188 222 222 222 188 188 188 188 188 222 122 | 199 190 190 190 190 190 190 222 222 190 190 190 190 190 190 215 123 | 206 191 191 191 191 191 191 222 222 192 192 192 192 192 192 219 124 | 222 193 193 193 193 193 193 222 222 193 193 193 193 193 193 222 125 | 222 195 222 222 222 222 222 222 222 222 222 222 222 222 195 222 126 | 222 196 196 196 222 222 151 222 222 93 222 222 196 196 196 222 127 | 222 222 222 102 93 93 93 222 222 93 93 93 93 222 222 222 128 | 222 222 222 93 93 93 93 93 93 93 93 93 93 222 222 222 129 | 222 222 222 222 93 93 93 93 93 93 93 93 222 222 222 222 130 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 131 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 132 | 222 222 222 222 222 93 93 222 222 93 93 222 222 222 222 222 133 | 222 222 222 65 65 222 93 222 222 93 93 222 65 222 222 222 134 | 222 222 74 74 74 220 102 222 222 93 222 74 74 74 222 222 135 | 222 84 84 84 84 84 222 222 222 93 218 84 84 84 84 222 136 | 222 93 93 93 93 93 222 222 222 222 93 93 93 93 93 222 137 | 222 101 101 101 101 101 101 222 222 222 102 102 102 102 102 222 138 | 144 109 109 109 109 109 109 222 222 110 110 110 110 110 110 204 139 | 171 115 115 115 115 115 115 222 222 116 116 116 116 116 116 213 140 | 222 122 122 122 122 122 122 222 222 122 122 122 122 122 122 222 141 | 222 128 222 222 222 222 222 222 222 222 222 222 222 222 128 222 142 | 222 134 134 134 222 222 151 222 222 93 222 222 135 135 135 222 143 | 222 222 222 102 93 93 93 222 222 93 93 93 93 222 222 222 144 | 222 222 222 93 93 93 93 93 93 93 93 93 93 222 222 222 145 | 222 222 222 222 93 93 93 93 93 93 93 93 222 222 222 222 146 | 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 222 147 | 148 | 222 222 222 222 222 222 222 201 211 222 222 222 222 222 222 222 149 | 222 222 222 222 71 70 69 68 67 66 65 64 222 222 222 222 150 | 222 222 222 72 71 70 69 68 67 66 222 64 222 222 222 222 151 | 222 222 73 72 71 70 69 68 67 66 222 64 94 94 222 222 152 | 222 222 222 72 71 70 69 68 67 66 222 222 94 94 94 222 153 | 222 94 94 222 218 70 69 68 67 66 222 222 94 94 94 222 154 | 222 94 94 94 94 222 222 68 67 66 222 94 94 94 94 222 155 | 222 222 222 222 222 222 222 222 222 222 222 222 222 94 94 222 156 | 222 222 222 222 222 222 222 222 222 222 222 222 222 94 94 222 157 | 222 94 94 103 222 222 70 69 67 66 222 152 94 94 94 222 158 | 222 94 222 220 71 70 70 69 67 66 222 222 94 94 94 222 159 | 222 222 73 72 71 70 70 69 67 66 222 222 94 94 94 222 160 | 222 222 73 72 71 70 70 69 67 66 222 64 103 94 222 222 161 | 222 222 222 72 71 70 70 69 67 66 222 64 222 222 222 222 162 | 222 222 222 222 71 70 70 69 67 66 65 64 222 222 222 222 163 | 222 222 222 222 222 222 222 122 156 222 222 222 222 222 222 222 164 | 222 222 222 222 222 222 222 215 219 222 222 222 222 222 222 222 165 | 222 222 222 222 185 187 188 190 192 193 195 196 222 222 222 222 166 | 222 222 222 184 185 187 188 190 192 193 222 196 222 222 222 222 167 | 222 222 182 184 185 187 188 190 192 193 222 196 93 93 222 222 168 | 222 222 222 184 185 187 188 190 192 193 222 222 93 93 93 222 169 | 222 93 93 222 221 187 188 190 192 193 222 222 93 93 93 222 170 | 222 93 93 93 93 222 222 190 192 193 222 93 93 93 93 222 171 | 222 222 222 222 222 222 222 222 222 222 222 222 222 93 93 222 172 | 222 222 222 222 222 222 222 222 222 222 222 222 222 93 93 222 173 | 222 93 93 102 222 222 188 190 191 193 222 151 93 93 93 222 174 | 222 93 222 221 185 187 188 190 191 193 222 222 93 93 93 222 175 | 222 222 182 184 185 187 188 190 191 193 222 222 93 93 93 222 176 | 222 222 182 184 185 187 188 190 191 193 222 196 102 93 222 222 177 | 222 222 222 184 185 187 188 190 191 193 222 196 222 222 222 222 178 | 222 222 222 222 185 187 188 190 191 193 195 196 222 222 222 222 179 | 222 222 222 222 222 222 222 199 206 222 222 222 222 222 222 222 180 | 222 222 222 222 222 222 222 204 213 222 222 222 222 222 222 222 181 | 222 222 222 222 84 93 102 110 116 122 128 135 222 222 222 222 182 | 222 222 222 74 84 93 102 110 116 122 222 135 222 222 222 222 183 | 222 222 65 74 84 93 102 110 116 122 222 135 93 93 222 222 184 | 222 222 222 74 84 93 102 110 116 122 222 222 93 93 93 222 185 | 222 93 93 222 218 93 102 110 116 122 222 222 93 93 93 222 186 | 222 93 93 93 93 222 222 110 116 122 222 93 93 93 93 222 187 | 222 222 222 222 222 222 222 222 222 222 222 222 222 93 93 222 188 | 222 222 222 222 222 222 222 222 222 222 222 222 222 93 93 222 189 | 222 93 93 102 222 222 101 109 115 122 222 151 93 93 93 222 190 | 222 93 222 220 84 93 101 109 115 122 222 222 93 93 93 222 191 | 222 222 65 74 84 93 101 109 115 122 222 222 93 93 93 222 192 | 222 222 65 74 84 93 101 109 115 122 222 134 102 93 222 222 193 | 222 222 222 74 84 93 101 109 115 122 222 134 222 222 222 222 194 | 222 222 222 222 84 93 101 109 115 122 128 134 222 222 222 222 195 | 222 222 222 222 222 222 222 144 171 222 222 222 222 222 222 222 196 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | header { 2 | top: 0; 3 | left: 0; 4 | right: 0; 5 | display: block; 6 | z-index: 2000; 7 | background-color: #8d6e63; 8 | color: #fff; 9 | } 10 | 11 | .ontop { 12 | background-image: linear-gradient(180deg, hsla(0, 0%, 100%, .3), hsla(0, 0%, 100%, 0) 50%, rgba(0, 0, 0, .12) 51%, rgba(0, 0, 0, .04)) !important; 13 | flex-wrap: nowrap; 14 | display: flex; 15 | position: relative; 16 | padding: 0 12px; 17 | min-height: 50px; 18 | width: 100%; 19 | align-items: center; 20 | } 21 | 22 | .title { 23 | flex: 1 1 0%; 24 | min-width: 1px; 25 | max-width: 100%; 26 | font-size: 21px; 27 | font-weight: 500; 28 | letter-spacing: .01em; 29 | padding: 0 12px; 30 | text-overflow: ellipsis; 31 | white-space: nowrap; 32 | overflow: hidden; 33 | } 34 | 35 | .btn { 36 | -webkit-appearance: button; 37 | padding: 0 12px; 38 | right: 20px; 39 | height: 2em; 40 | width: 2em; 41 | min-height: 2em; 42 | min-width: 2em; 43 | border-radius: 50%; 44 | position: relative; 45 | outline: 0; 46 | border: 0; 47 | vertical-align: middle; 48 | cursor: pointer; 49 | font-size: 14px; 50 | line-height: 1.718em; 51 | text-decoration: none; 52 | color: black; 53 | transition: .3s cubic-bezier(.25, .8, .5, 1); 54 | font-weight: 500; 55 | align-items: flex-start; 56 | text-align: center; 57 | -webkit-user-drag: none; 58 | -webkit-user-select: none; 59 | -moz-user-select: none; 60 | -ms-user-select: none; 61 | user-select: none; 62 | -webkit-box-sizing: border-box; 63 | -moz-box-sizing: border-box; 64 | box-sizing: border-box; 65 | } 66 | 67 | .marker { 68 | display: inline; 69 | max-width: 5em; 70 | max-height: 5em; 71 | } -------------------------------------------------------------------------------- /sw-precaching.js: -------------------------------------------------------------------------------- 1 | console.log('Hello from sw.js') 2 | 3 | ////////////////////////////////////////////////////////////////////////////// 4 | // load workbox 5 | ////////////////////////////////////////////////////////////////////////////// 6 | importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.4.1/workbox-sw.js') 7 | 8 | if (workbox) { 9 | console.log(`Yay! Workbox is loaded 🎉`) 10 | } else { 11 | console.log(`Boo! Workbox didn't load 😬`) 12 | } 13 | 14 | ////////////////////////////////////////////////////////////////////////////// 15 | // set log level 16 | ////////////////////////////////////////////////////////////////////////////// 17 | // The most verbose - displays all logs. 18 | workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug) 19 | 20 | ////////////////////////////////////////////////////////////////////////////// 21 | // register some routes 22 | ////////////////////////////////////////////////////////////////////////////// 23 | workbox.routing.registerRoute( 24 | new RegExp('.*\.css'), 25 | workbox.strategies.cacheFirst() 26 | ) 27 | 28 | workbox.routing.registerRoute( 29 | new RegExp('index.html'), 30 | workbox.strategies.cacheFirst() 31 | ) 32 | 33 | workbox.routing.registerRoute( 34 | new RegExp('/'), 35 | workbox.strategies.cacheFirst() 36 | ) 37 | 38 | 39 | // TODO register / for index.html 40 | // - is this needed ? 41 | 42 | ////////////////////////////////////////////////////////////////////////////// 43 | // precache and route 44 | ////////////////////////////////////////////////////////////////////////////// 45 | 46 | // TO BE FILLED BY `````` 47 | workbox.precaching.precacheAndRoute([ 48 | { 49 | "url": "index.html", 50 | "revision": "cc28257303356890e7011a6a28167324" 51 | }, 52 | { 53 | "url": "sw.js", 54 | "revision": "d4b9dddffb8524988be9fc3e44af1c65" 55 | }, 56 | { 57 | "url": "vendor/aframe.min.js", 58 | "revision": "50610178305c4ae36dce20d74d7dd06c" 59 | } 60 | ]) 61 | -------------------------------------------------------------------------------- /sw.js: -------------------------------------------------------------------------------- 1 | console.log('Hello from sw.js') 2 | 3 | ////////////////////////////////////////////////////////////////////////////// 4 | // load workbox 5 | ////////////////////////////////////////////////////////////////////////////// 6 | importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.4.1/workbox-sw.js') 7 | 8 | if (workbox) { 9 | console.log(`Yay! Workbox is loaded 🎉`) 10 | } else { 11 | console.log(`Boo! Workbox didn't load 😬`) 12 | } 13 | 14 | ////////////////////////////////////////////////////////////////////////////// 15 | // set log level 16 | ////////////////////////////////////////////////////////////////////////////// 17 | // The most verbose - displays all logs. 18 | workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug) 19 | 20 | ////////////////////////////////////////////////////////////////////////////// 21 | // register some routes 22 | ////////////////////////////////////////////////////////////////////////////// 23 | workbox.routing.registerRoute( 24 | new RegExp('.*\.css'), 25 | workbox.strategies.cacheFirst() 26 | ) 27 | 28 | workbox.routing.registerRoute( 29 | new RegExp('index.html'), 30 | workbox.strategies.cacheFirst() 31 | ) 32 | 33 | workbox.routing.registerRoute( 34 | new RegExp('/'), 35 | workbox.strategies.cacheFirst() 36 | ) 37 | 38 | ////////////////////////////////////////////////////////////////////////////// 39 | // precache and route 40 | ////////////////////////////////////////////////////////////////////////////// 41 | 42 | // TO BE FILLED BY ```workbox injectManifest workbox-config.js``` 43 | workbox.precaching.precacheAndRoute([]) 44 | -------------------------------------------------------------------------------- /vendor/aframe-shadow-plane.js: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // arjs-hit-testing 3 | ////////////////////////////////////////////////////////////////////////////// 4 | AFRAME.registerComponent('shadowonly-plane', { 5 | schema: { 6 | width : { 7 | type: 'number', 8 | default: 1, 9 | }, 10 | height : { 11 | type: 'number', 12 | default: 1, 13 | }, 14 | opacity : { 15 | type: 'number', 16 | default: 0.7, 17 | }, 18 | }, 19 | init: function () { 20 | // add a transparent ground-plane shadow-receiver 21 | var material = new THREE.ShadowMaterial({ 22 | opacity: this.data.opacity, 23 | depthWrite: false, 24 | }) 25 | 26 | var geometry = new THREE.PlaneGeometry(this.data.width, this.data.height) 27 | 28 | var mesh = new THREE.Mesh( geometry, material); 29 | mesh.receiveShadow = true; 30 | mesh.rotation.x = -Math.PI/2 31 | 32 | this.el.object3D.add(mesh) 33 | }, 34 | }) --------------------------------------------------------------------------------