@playcanvas/web-components 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/app.d.ts +1 -0
- package/dist/components/particlesystem-component.d.ts +52 -0
- package/dist/index.d.ts +3 -2
- package/dist/pwc.cjs +468 -93
- package/dist/pwc.cjs.map +1 -1
- package/dist/pwc.js +468 -93
- package/dist/pwc.js.map +1 -1
- package/dist/pwc.min.js +1 -1
- package/dist/pwc.min.js.map +1 -1
- package/dist/pwc.mjs +468 -94
- package/dist/pwc.mjs.map +1 -1
- package/dist/scene.d.ts +15 -1
- package/package.json +13 -12
- package/src/app.ts +21 -11
- package/src/asset.ts +53 -1
- package/src/components/particlesystem-component.ts +155 -0
- package/src/index.ts +4 -2
- package/src/scene.ts +35 -4
package/dist/pwc.js
CHANGED
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
}
|
|
18
18
|
get closestApp() {
|
|
19
19
|
var _a;
|
|
20
|
-
return (_a = this.parentElement) === null || _a ===
|
|
20
|
+
return (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.closest('pc-app');
|
|
21
21
|
}
|
|
22
22
|
get closestEntity() {
|
|
23
23
|
var _a;
|
|
24
|
-
return (_a = this.parentElement) === null || _a ===
|
|
24
|
+
return (_a = this.parentElement) === null || _a === void 0 ? void 0 : _a.closest('pc-entity');
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* Called when the element is fully initialized and ready.
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
this._antialias = true;
|
|
104
104
|
this._depth = true;
|
|
105
105
|
this._stencil = true;
|
|
106
|
-
this._highResolution =
|
|
106
|
+
this._highResolution = true;
|
|
107
107
|
this._hierarchyReady = false;
|
|
108
108
|
this._picker = null;
|
|
109
109
|
this._hasPointerListeners = {
|
|
@@ -230,15 +230,26 @@
|
|
|
230
230
|
pointerup: null
|
|
231
231
|
};
|
|
232
232
|
}
|
|
233
|
+
// New helper to convert CSS coordinates to canvas (picker) coordinates
|
|
234
|
+
_getPickerCoordinates(event) {
|
|
235
|
+
// Get the canvas' bounding rectangle in CSS pixels.
|
|
236
|
+
const canvasRect = this._canvas.getBoundingClientRect();
|
|
237
|
+
// Compute scale factors based on canvas actual resolution vs. its CSS display size.
|
|
238
|
+
const scaleX = this._canvas.width / canvasRect.width;
|
|
239
|
+
const scaleY = this._canvas.height / canvasRect.height;
|
|
240
|
+
// Convert the client coordinates accordingly.
|
|
241
|
+
const x = (event.clientX - canvasRect.left) * scaleX;
|
|
242
|
+
const y = (event.clientY - canvasRect.top) * scaleY;
|
|
243
|
+
return { x, y };
|
|
244
|
+
}
|
|
233
245
|
_onPointerMove(event) {
|
|
234
246
|
if (!this._picker || !this.app)
|
|
235
247
|
return;
|
|
236
248
|
const camera = this.app.root.findComponent('camera');
|
|
237
249
|
if (!camera)
|
|
238
250
|
return;
|
|
239
|
-
|
|
240
|
-
const x
|
|
241
|
-
const y = event.clientY - canvasRect.top;
|
|
251
|
+
// Use the helper to convert event coordinates into canvas/picker coordinates.
|
|
252
|
+
const { x, y } = this._getPickerCoordinates(event);
|
|
242
253
|
this._picker.prepare(camera, this.app.scene);
|
|
243
254
|
const selection = this._picker.getSelection(x, y);
|
|
244
255
|
// Get the currently hovered entity by walking up the hierarchy
|
|
@@ -276,9 +287,8 @@
|
|
|
276
287
|
const camera = this.app.root.findComponent('camera');
|
|
277
288
|
if (!camera)
|
|
278
289
|
return;
|
|
279
|
-
|
|
280
|
-
const x
|
|
281
|
-
const y = event.clientY - canvasRect.top;
|
|
290
|
+
// Convert the event's pointer coordinates
|
|
291
|
+
const { x, y } = this._getPickerCoordinates(event);
|
|
282
292
|
this._picker.prepare(camera, this.app.scene);
|
|
283
293
|
const selection = this._picker.getSelection(x, y);
|
|
284
294
|
if (selection.length > 0) {
|
|
@@ -299,9 +309,8 @@
|
|
|
299
309
|
const camera = this.app.root.findComponent('camera');
|
|
300
310
|
if (!camera)
|
|
301
311
|
return;
|
|
302
|
-
|
|
303
|
-
const x
|
|
304
|
-
const y = event.clientY - canvasRect.top;
|
|
312
|
+
// Convert CSS coordinates to picker coordinates
|
|
313
|
+
const { x, y } = this._getPickerCoordinates(event);
|
|
305
314
|
this._picker.prepare(camera, this.app.scene);
|
|
306
315
|
const selection = this._picker.getSelection(x, y);
|
|
307
316
|
if (selection.length > 0) {
|
|
@@ -750,7 +759,7 @@
|
|
|
750
759
|
if (!this.entity)
|
|
751
760
|
return;
|
|
752
761
|
const closestEntity = this.closestEntity;
|
|
753
|
-
if (closestEntity === null || closestEntity ===
|
|
762
|
+
if (closestEntity === null || closestEntity === void 0 ? void 0 : closestEntity.entity) {
|
|
754
763
|
closestEntity.entity.addChild(this.entity);
|
|
755
764
|
}
|
|
756
765
|
else {
|
|
@@ -972,11 +981,187 @@
|
|
|
972
981
|
}
|
|
973
982
|
hasListeners(type) {
|
|
974
983
|
var _a;
|
|
975
|
-
return Boolean((_a = this._listeners[type]) === null || _a ===
|
|
984
|
+
return Boolean((_a = this._listeners[type]) === null || _a === void 0 ? void 0 : _a.length);
|
|
976
985
|
}
|
|
977
986
|
}
|
|
978
987
|
customElements.define('pc-entity', EntityElement);
|
|
979
988
|
|
|
989
|
+
// This file is part of meshoptimizer library and is distributed under the terms of MIT License.
|
|
990
|
+
// Copyright (C) 2016-2022, by Arseny Kapoulkine (arseny.kapoulkine@gmail.com)
|
|
991
|
+
var MeshoptDecoder = (function() {
|
|
992
|
+
|
|
993
|
+
// Built with clang version 14.0.4
|
|
994
|
+
// Built from meshoptimizer 0.18
|
|
995
|
+
var wasm_base = "b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q;iekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq:P8Yqdbk;3sezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhDcbhqinaqae9pmeaDaeaq9RaqaDfae6Egkcsfgocl4cifcd4hxdndndndnaoc9WGgmTmbcbhPcehsawcjdfhzalhHinaraH9Rax6midnaraHaxfgl9RcK6mbczhoinawcj;cbfaogifgoc9WfhOdndndndndnaHaic9WfgAco4fRbbaAci4coG4ciGPlbedibkaO9cb83ibaOcwf9cb83ibxikaOalRblalRbbgAco4gCaCciSgCE86bbaocGfalclfaCfgORbbaAcl4ciGgCaCciSgCE86bbaocVfaOaCfgORbbaAcd4ciGgCaCciSgCE86bbaoc7faOaCfgORbbaAciGgAaAciSgAE86bbaoctfaOaAfgARbbalRbegOco4gCaCciSgCE86bbaoc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc93faAaCfgARbbaOciGgOaOciSgOE86bbaoc94faAaOfgARbbalRbdgOco4gCaCciSgCE86bbaoc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbaoc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbaoc97faAaCfgARbbaOciGgOaOciSgOE86bbaoc98faAaOfgORbbalRbiglco4gAaAciSgAE86bbaoc99faOaAfgORbbalcl4ciGgAaAciSgAE86bbaoc9:faOaAfgORbbalcd4ciGgAaAciSgAE86bbaocufaOaAfgoRbbalciGglalciSglE86bbaoalfhlxdkaOalRbwalRbbgAcl4gCaCcsSgCE86bbaocGfalcwfaCfgORbbaAcsGgAaAcsSgAE86bbaocVfaOaAfgORbbalRbegAcl4gCaCcsSgCE86bbaoc7faOaCfgORbbaAcsGgAaAcsSgAE86bbaoctfaOaAfgORbbalRbdgAcl4gCaCcsSgCE86bbaoc91faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc4faOaAfgORbbalRbigAcl4gCaCcsSgCE86bbaoc93faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc94faOaAfgORbbalRblgAcl4gCaCcsSgCE86bbaoc95faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc96faOaAfgORbbalRbvgAcl4gCaCcsSgCE86bbaoc97faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc98faOaAfgORbbalRbogAcl4gCaCcsSgCE86bbaoc99faOaCfgORbbaAcsGgAaAcsSgAE86bbaoc9:faOaAfgORbbalRbrglcl4gAaAcsSgAE86bbaocufaOaAfgoRbbalcsGglalcsSglE86bbaoalfhlxekaOal8Pbb83bbaOcwfalcwf8Pbb83bbalczfhlkdnaiam9pmbaiczfhoaral9RcL0mekkaiam6mialTmidnakTmbawaPfRbbhOcbhoazhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkkazcefhzaPcefgPad6hsalhHaPad9hmexvkkcbhlasceGmdxikalaxad2fhCdnakTmbcbhHcehsawcjdfhminaral9Rax6mialTmdalaxfhlawaHfRbbhOcbhoamhiinaiawcj;cbfaofRbbgAce4cbaAceG9R7aOfgO86bbaiadfhiaocefgoak9hmbkamcefhmaHcefgHad6hsaHad9hmbkaChlxikcbhocehsinaral9Rax6mdalTmealaxfhlaocefgoad6hsadao9hmbkaChlxdkcbhlasceGTmekc9:hoxikabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqalmbkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;ebf8Kjjjjbaok;yzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;siliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabavcefciGaiVcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:Ohkxekcjjjj94hkkabavcdfciGaiVcetfak87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:Ohqxekcjjjj94hqkabavcufciGaiVcetfaq87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohqxekcjjjj94hqkabavciGaiVcetfaq87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2geTmbinababydbgdcwtcw91:Yadce91cjjj;8ifcjjj98G::NUdbabclfhbaecufgembkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaiczfhiaeczfheadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklz9Kbb";
|
|
996
|
+
var wasm_simd = "b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q;Aekr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq;t9tqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk;h8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhoaicefhldnadTmbaoc;WFbGgocjdaocjd6EhwcbhDinaDae9pmeawaeaD9RaDawfae6Egqcsfgoc9WGgkci2hxakcethmaocl4cifcd4hPabaDad2fhscbhzdnincehHalhOcbhAdninaraO9RaP6miavcj;cbfaAak2fhCaOaPfhlcbhidnakc;ab6mbaral9Rc;Gb6mbcbhoinaCaofhidndndndndnaOaoco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklbalczfhlkdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklzalczfhlkdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaialpbbbpklaalczfhlkdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaialpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalclfaYpQbfaXc:q:yjjbfRbbfhlxdkaialpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WalcwfaYpQbfaXc:q:yjjbfRbbfhlxekaialpbbbpkl8Walczfhlkaoc;abfhiaocjefak0meaihoaral9Rc;Fb0mbkkdndnaiak9pmbaici4hoinaral9RcK6mdaCaifhXdndndndndnaOaico4fRbbaocoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpklbxikaXalpbblalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalclfaYpQbfaKc:q:yjjbfRbbfhlxdkaXalpbbwalpbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbalcwfaYpQbfaKc:q:yjjbfRbbfhlxekaXalpbbbpklbalczfhlkaocdfhoaiczfgiak6mbkkalTmbaAci6hHalhOaAcefgohAaoclSmdxekkcbhlaHceGmdkdnakTmbavcjdfazfhiavazfpbdbhYcbhXinaiavcj;cbfaXfgopblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLaoakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEaoamfpblbg3cep9Ta3aQp9op9Hp9rg3aoaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfgoaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaoadfgoaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaoadfgoaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaoadfgoaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaoadfhiaXczfgXak6mbkkazclfgzad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfhDc9:hoalmexikkc9:hoxekcbc99aral9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk;uzeHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgDce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhqaicefgwarfhodnaeTmbcmcsaDceSEhkcbhxcbhmcbhDcbhicbhlindnaoaq9nmbc9:hoxikdndnawRbbgrc;Ve0mbavc;abfalarcl4cu7fcsGcitfgPydlhsaPydbhzdnarcsGgPak9pmbavaiarcu7fcsGcdtfydbaxaPEhraPThPdndnadcd9hmbabaDcetfgHaz87ebaHcdfas87ebaHclfar87ebxekabaDcdtfgHazBdbaHclfasBdbaHcwfarBdbkaxaPfhxavc;abfalcitfgHarBdbaHasBdlavaicdtfarBdbavc;abfalcefcsGglcitfgHazBdbaHarBdlaiaPfhialcefhlxdkdndnaPcsSmbamaPfaPc987fcefhmxekaocefhrao8SbbgPcFeGhHdndnaPcu9mmbarhoxekaocvfhoaHcFbGhHcrhPdninar8SbbgOcFbGaPtaHVhHaOcu9kmearcefhraPcrfgPc8J9hmbxdkkarcefhokaHce4cbaHceG9R7amfhmkdndnadcd9hmbabaDcetfgraz87ebarcdfas87ebarclfam87ebxekabaDcdtfgrazBdbarclfasBdbarcwfamBdbkavc;abfalcitfgramBdbarasBdlavaicdtfamBdbavc;abfalcefcsGglcitfgrazBdbaramBdlaicefhialcefhlxekdnarcpe0mbaxcefgOavaiaqarcsGfRbbgPcl49RcsGcdtfydbaPcz6gHEhravaiaP9RcsGcdtfydbaOaHfgsaPcsGgOEhPaOThOdndnadcd9hmbabaDcetfgzax87ebazcdfar87ebazclfaP87ebxekabaDcdtfgzaxBdbazclfarBdbazcwfaPBdbkavaicdtfaxBdbavc;abfalcitfgzarBdbazaxBdlavaicefgicsGcdtfarBdbavc;abfalcefcsGcitfgzaPBdbazarBdlavaiaHfcsGgicdtfaPBdbavc;abfalcdfcsGglcitfgraxBdbaraPBdlalcefhlaiaOfhiasaOfhxxekaxcbaoRbbgzEgAarc;:eSgrfhsazcsGhCazcl4hXdndnazcs0mbascefhOxekashOavaiaX9RcsGcdtfydbhskdndnaCmbaOcefhxxekaOhxavaiaz9RcsGcdtfydbhOkdndnarTmbaocefhrxekaocdfhrao8SbegHcFeGhPdnaHcu9kmbaocofhAaPcFbGhPcrhodninar8SbbgHcFbGaotaPVhPaHcu9kmearcefhraocrfgoc8J9hmbkaAhrxekarcefhrkaPce4cbaPceG9R7amfgmhAkdndnaXcsSmbarhPxekarcefhPar8SbbgocFeGhHdnaocu9kmbarcvfhsaHcFbGhHcrhodninaP8SbbgrcFbGaotaHVhHarcu9kmeaPcefhPaocrfgoc8J9hmbkashPxekaPcefhPkaHce4cbaHceG9R7amfgmhskdndnaCcsSmbaPhoxekaPcefhoaP8SbbgrcFeGhHdnarcu9kmbaPcvfhOaHcFbGhHcrhrdninao8SbbgPcFbGartaHVhHaPcu9kmeaocefhoarcrfgrc8J9hmbkaOhoxekaocefhokaHce4cbaHceG9R7amfgmhOkdndnadcd9hmbabaDcetfgraA87ebarcdfas87ebarclfaO87ebxekabaDcdtfgraABdbarclfasBdbarcwfaOBdbkavc;abfalcitfgrasBdbaraABdlavaicdtfaABdbavc;abfalcefcsGcitfgraOBdbarasBdlavaicefgicsGcdtfasBdbavc;abfalcdfcsGcitfgraABdbaraOBdlavaiazcz6aXcsSVfgicsGcdtfaOBdbaiaCTaCcsSVfhialcifhlkawcefhwalcsGhlaicsGhiaDcifgDae6mbkkcbc99aoaqSEhokavc;aef8Kjjjjbaok:llevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaicd4cbaice4ceG9R7avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:EPliuo97eue978Jjjjjbca9Rhidndnadcl9hmbdnaec98GglTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalae9pmeaiaeciGgvcdtgdVcbczad9R;8kbaiabalcdtfglad;8qbbdnavTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkalaiad;8qbbskdnaec98GgxTmbcbhvabhdinadczfglalpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oawaopmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgvax6mbkkaxae9pmbaiaeciGgvcitgdfcbcaad9R;8kbaiabaxcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eaDaopmbediwDqkzHOAKY8AEgoczp:Sep;6egrp;Geaoczp:Reczp:Sep;6egwp;Gep;Kep;Legopxb;:FSb;:FSb;:FSb;:FSawaopxbbbbbbbbbbbbbbbbp:2egqawpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegwawp;Meaoaop;Mearaqaramp9op9rp;Kegoaop;Mep;Kep;Kep;Jep;Negrp;Mepxbbn0bbn0bbn0bbn0gqp;Keczp:Reawarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9op9qgwaoarp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogopmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oawaopmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalae9pmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaqakp;Mearp;Keczp:ReaDakp;Mearp;Keamp9op9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbhdabheinaeaepbbbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepkbbaeczfheadclfgdav6mbkkdnaval9pmbaialciGgdcdtgeVcbc;abae9R;8kbaiabavcdtfgvae;8qbbdnadTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjZbbjZbbjZbbjZp:UepxbbjFbbjFbbjFbbjFp9op;Mepklbkavaiae;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz9Tbb";
|
|
997
|
+
|
|
998
|
+
var detector = new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]);
|
|
999
|
+
var wasmpack = new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);
|
|
1000
|
+
|
|
1001
|
+
if (typeof WebAssembly !== 'object') {
|
|
1002
|
+
return {
|
|
1003
|
+
supported: false,
|
|
1004
|
+
};
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
var wasm = WebAssembly.validate(detector) ? wasm_simd : wasm_base;
|
|
1008
|
+
|
|
1009
|
+
var instance;
|
|
1010
|
+
|
|
1011
|
+
var ready =
|
|
1012
|
+
WebAssembly.instantiate(unpack(wasm), {})
|
|
1013
|
+
.then(function(result) {
|
|
1014
|
+
instance = result.instance;
|
|
1015
|
+
instance.exports.__wasm_call_ctors();
|
|
1016
|
+
});
|
|
1017
|
+
|
|
1018
|
+
function unpack(data) {
|
|
1019
|
+
var result = new Uint8Array(data.length);
|
|
1020
|
+
for (var i = 0; i < data.length; ++i) {
|
|
1021
|
+
var ch = data.charCodeAt(i);
|
|
1022
|
+
result[i] = ch > 96 ? ch - 97 : ch > 64 ? ch - 39 : ch + 4;
|
|
1023
|
+
}
|
|
1024
|
+
var write = 0;
|
|
1025
|
+
for (var i = 0; i < data.length; ++i) {
|
|
1026
|
+
result[write++] = (result[i] < 60) ? wasmpack[result[i]] : (result[i] - 60) * 64 + result[++i];
|
|
1027
|
+
}
|
|
1028
|
+
return result.buffer.slice(0, write);
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
function decode(fun, target, count, size, source, filter) {
|
|
1032
|
+
var sbrk = instance.exports.sbrk;
|
|
1033
|
+
var count4 = (count + 3) & -4;
|
|
1034
|
+
var tp = sbrk(count4 * size);
|
|
1035
|
+
var sp = sbrk(source.length);
|
|
1036
|
+
var heap = new Uint8Array(instance.exports.memory.buffer);
|
|
1037
|
+
heap.set(source, sp);
|
|
1038
|
+
var res = fun(tp, count, size, sp, source.length);
|
|
1039
|
+
if (res == 0 && filter) {
|
|
1040
|
+
filter(tp, count4, size);
|
|
1041
|
+
}
|
|
1042
|
+
target.set(heap.subarray(tp, tp + count * size));
|
|
1043
|
+
sbrk(tp - sbrk(0));
|
|
1044
|
+
if (res != 0) {
|
|
1045
|
+
throw new Error("Malformed buffer data: " + res);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
var filters = {
|
|
1050
|
+
NONE: "",
|
|
1051
|
+
OCTAHEDRAL: "meshopt_decodeFilterOct",
|
|
1052
|
+
QUATERNION: "meshopt_decodeFilterQuat",
|
|
1053
|
+
EXPONENTIAL: "meshopt_decodeFilterExp",
|
|
1054
|
+
};
|
|
1055
|
+
|
|
1056
|
+
var decoders = {
|
|
1057
|
+
ATTRIBUTES: "meshopt_decodeVertexBuffer",
|
|
1058
|
+
TRIANGLES: "meshopt_decodeIndexBuffer",
|
|
1059
|
+
INDICES: "meshopt_decodeIndexSequence",
|
|
1060
|
+
};
|
|
1061
|
+
|
|
1062
|
+
var workers = [];
|
|
1063
|
+
var requestId = 0;
|
|
1064
|
+
|
|
1065
|
+
function createWorker(url) {
|
|
1066
|
+
var worker = {
|
|
1067
|
+
object: new Worker(url),
|
|
1068
|
+
pending: 0,
|
|
1069
|
+
requests: {}
|
|
1070
|
+
};
|
|
1071
|
+
|
|
1072
|
+
worker.object.onmessage = function(event) {
|
|
1073
|
+
var data = event.data;
|
|
1074
|
+
|
|
1075
|
+
worker.pending -= data.count;
|
|
1076
|
+
worker.requests[data.id][data.action](data.value);
|
|
1077
|
+
|
|
1078
|
+
delete worker.requests[data.id];
|
|
1079
|
+
};
|
|
1080
|
+
|
|
1081
|
+
return worker;
|
|
1082
|
+
}
|
|
1083
|
+
|
|
1084
|
+
function initWorkers(count) {
|
|
1085
|
+
var source =
|
|
1086
|
+
"var instance; var ready = WebAssembly.instantiate(new Uint8Array([" + new Uint8Array(unpack(wasm)) + "]), {})" +
|
|
1087
|
+
".then(function(result) { instance = result.instance; instance.exports.__wasm_call_ctors(); });" +
|
|
1088
|
+
"self.onmessage = workerProcess;" +
|
|
1089
|
+
decode.toString() + workerProcess.toString();
|
|
1090
|
+
|
|
1091
|
+
var blob = new Blob([source], {type: 'text/javascript'});
|
|
1092
|
+
var url = URL.createObjectURL(blob);
|
|
1093
|
+
|
|
1094
|
+
for (var i = 0; i < count; ++i) {
|
|
1095
|
+
workers[i] = createWorker(url);
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
URL.revokeObjectURL(url);
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
function decodeWorker(count, size, source, mode, filter) {
|
|
1102
|
+
var worker = workers[0];
|
|
1103
|
+
|
|
1104
|
+
for (var i = 1; i < workers.length; ++i) {
|
|
1105
|
+
if (workers[i].pending < worker.pending) {
|
|
1106
|
+
worker = workers[i];
|
|
1107
|
+
}
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
return new Promise(function (resolve, reject) {
|
|
1111
|
+
var data = new Uint8Array(source);
|
|
1112
|
+
var id = requestId++;
|
|
1113
|
+
|
|
1114
|
+
worker.pending += count;
|
|
1115
|
+
worker.requests[id] = { resolve: resolve, reject: reject };
|
|
1116
|
+
worker.object.postMessage({ id: id, count: count, size: size, source: data, mode: mode, filter: filter }, [ data.buffer ]);
|
|
1117
|
+
});
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
function workerProcess(event) {
|
|
1121
|
+
ready.then(function() {
|
|
1122
|
+
var data = event.data;
|
|
1123
|
+
try {
|
|
1124
|
+
var target = new Uint8Array(data.count * data.size);
|
|
1125
|
+
decode(instance.exports[data.mode], target, data.count, data.size, data.source, instance.exports[data.filter]);
|
|
1126
|
+
self.postMessage({ id: data.id, count: data.count, action: "resolve", value: target }, [ target.buffer ]);
|
|
1127
|
+
} catch (error) {
|
|
1128
|
+
self.postMessage({ id: data.id, count: data.count, action: "reject", value: error });
|
|
1129
|
+
}
|
|
1130
|
+
});
|
|
1131
|
+
}
|
|
1132
|
+
|
|
1133
|
+
return {
|
|
1134
|
+
ready: ready,
|
|
1135
|
+
supported: true,
|
|
1136
|
+
useWorkers: function(count) {
|
|
1137
|
+
initWorkers(count);
|
|
1138
|
+
},
|
|
1139
|
+
decodeVertexBuffer: function(target, count, size, source, filter) {
|
|
1140
|
+
decode(instance.exports.meshopt_decodeVertexBuffer, target, count, size, source, instance.exports[filters[filter]]);
|
|
1141
|
+
},
|
|
1142
|
+
decodeIndexBuffer: function(target, count, size, source) {
|
|
1143
|
+
decode(instance.exports.meshopt_decodeIndexBuffer, target, count, size, source);
|
|
1144
|
+
},
|
|
1145
|
+
decodeIndexSequence: function(target, count, size, source) {
|
|
1146
|
+
decode(instance.exports.meshopt_decodeIndexSequence, target, count, size, source);
|
|
1147
|
+
},
|
|
1148
|
+
decodeGltfBuffer: function(target, count, size, source, mode, filter) {
|
|
1149
|
+
decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
|
|
1150
|
+
},
|
|
1151
|
+
decodeGltfBufferAsync: function(count, size, source, mode, filter) {
|
|
1152
|
+
if (workers.length > 0) {
|
|
1153
|
+
return decodeWorker(count, size, source, decoders[mode], filters[filter]);
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
return ready.then(function() {
|
|
1157
|
+
var target = new Uint8Array(count * size);
|
|
1158
|
+
decode(instance.exports[decoders[mode]], target, count, size, source, instance.exports[filters[filter]]);
|
|
1159
|
+
return target;
|
|
1160
|
+
});
|
|
1161
|
+
}
|
|
1162
|
+
};
|
|
1163
|
+
})();
|
|
1164
|
+
|
|
980
1165
|
const extToType = new Map([
|
|
981
1166
|
['bin', 'binary'],
|
|
982
1167
|
['css', 'css'],
|
|
@@ -996,6 +1181,27 @@
|
|
|
996
1181
|
['vert', 'shader'],
|
|
997
1182
|
['webp', 'texture']
|
|
998
1183
|
]);
|
|
1184
|
+
// provide buffer view callback so we can handle models compressed with MeshOptimizer
|
|
1185
|
+
// https://github.com/zeux/meshoptimizer
|
|
1186
|
+
const processBufferView = (gltfBuffer, buffers, continuation) => {
|
|
1187
|
+
if (gltfBuffer.extensions && gltfBuffer.extensions.EXT_meshopt_compression) {
|
|
1188
|
+
const extensionDef = gltfBuffer.extensions.EXT_meshopt_compression;
|
|
1189
|
+
Promise.all([MeshoptDecoder.ready, buffers[extensionDef.buffer]]).then((promiseResult) => {
|
|
1190
|
+
const buffer = promiseResult[1];
|
|
1191
|
+
const byteOffset = extensionDef.byteOffset || 0;
|
|
1192
|
+
const byteLength = extensionDef.byteLength || 0;
|
|
1193
|
+
const count = extensionDef.count;
|
|
1194
|
+
const stride = extensionDef.byteStride;
|
|
1195
|
+
const result = new Uint8Array(count * stride);
|
|
1196
|
+
const source = new Uint8Array(buffer.buffer, buffer.byteOffset + byteOffset, byteLength);
|
|
1197
|
+
MeshoptDecoder.decodeGltfBuffer(result, count, stride, source, extensionDef.mode, extensionDef.filter);
|
|
1198
|
+
continuation(null, result);
|
|
1199
|
+
});
|
|
1200
|
+
}
|
|
1201
|
+
else {
|
|
1202
|
+
continuation(null, null);
|
|
1203
|
+
}
|
|
1204
|
+
};
|
|
999
1205
|
/**
|
|
1000
1206
|
* The AssetElement interface provides properties and methods for manipulating
|
|
1001
1207
|
* {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-asset/ | `<pc-asset>`} elements.
|
|
@@ -1022,13 +1228,23 @@
|
|
|
1022
1228
|
// If no type is specified, try to infer it from the file extension.
|
|
1023
1229
|
if (!type) {
|
|
1024
1230
|
const ext = src.split('.').pop();
|
|
1025
|
-
type = (_a = extToType.get(ext || '')) !== null && _a !==
|
|
1231
|
+
type = (_a = extToType.get(ext || '')) !== null && _a !== void 0 ? _a : null;
|
|
1026
1232
|
}
|
|
1027
1233
|
if (!type) {
|
|
1028
1234
|
console.warn(`Unsupported asset type: ${src}`);
|
|
1029
1235
|
return;
|
|
1030
1236
|
}
|
|
1031
|
-
|
|
1237
|
+
if (type === 'container') {
|
|
1238
|
+
this.asset = new playcanvas.Asset(id, type, { url: src }, undefined, {
|
|
1239
|
+
// @ts-ignore TODO no definition in pc
|
|
1240
|
+
bufferView: {
|
|
1241
|
+
processAsync: processBufferView.bind(this)
|
|
1242
|
+
}
|
|
1243
|
+
});
|
|
1244
|
+
}
|
|
1245
|
+
else {
|
|
1246
|
+
this.asset = new playcanvas.Asset(id, type, { url: src });
|
|
1247
|
+
}
|
|
1032
1248
|
this.asset.preload = !this._lazy;
|
|
1033
1249
|
}
|
|
1034
1250
|
destroyAsset() {
|
|
@@ -1056,7 +1272,7 @@
|
|
|
1056
1272
|
}
|
|
1057
1273
|
static get(id) {
|
|
1058
1274
|
const assetElement = document.querySelector(`pc-asset[id="${id}"]`);
|
|
1059
|
-
return assetElement === null || assetElement ===
|
|
1275
|
+
return assetElement === null || assetElement === void 0 ? void 0 : assetElement.asset;
|
|
1060
1276
|
}
|
|
1061
1277
|
static get observedAttributes() {
|
|
1062
1278
|
return ['lazy'];
|
|
@@ -1103,7 +1319,7 @@
|
|
|
1103
1319
|
initComponent() { }
|
|
1104
1320
|
async connectedCallback() {
|
|
1105
1321
|
var _a;
|
|
1106
|
-
await ((_a = this.closestApp) === null || _a ===
|
|
1322
|
+
await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
|
|
1107
1323
|
await this.addComponent();
|
|
1108
1324
|
this.initComponent();
|
|
1109
1325
|
this._onReady();
|
|
@@ -1234,7 +1450,7 @@
|
|
|
1234
1450
|
}
|
|
1235
1451
|
get xrAvailable() {
|
|
1236
1452
|
var _a;
|
|
1237
|
-
const xrManager = (_a = this.component) === null || _a ===
|
|
1453
|
+
const xrManager = (_a = this.component) === null || _a === void 0 ? void 0 : _a.system.app.xr;
|
|
1238
1454
|
return xrManager && xrManager.supported && xrManager.isAvailable(playcanvas.XRTYPE_VR);
|
|
1239
1455
|
}
|
|
1240
1456
|
/**
|
|
@@ -1565,7 +1781,7 @@
|
|
|
1565
1781
|
var _a;
|
|
1566
1782
|
this._tonemap = value;
|
|
1567
1783
|
if (this.component) {
|
|
1568
|
-
this.component.toneMapping = (_a = tonemaps.get(value)) !== null && _a !==
|
|
1784
|
+
this.component.toneMapping = (_a = tonemaps.get(value)) !== null && _a !== void 0 ? _a : playcanvas.TONEMAP_NONE;
|
|
1569
1785
|
}
|
|
1570
1786
|
}
|
|
1571
1787
|
/**
|
|
@@ -2101,64 +2317,6 @@
|
|
|
2101
2317
|
}
|
|
2102
2318
|
customElements.define('pc-element', ElementComponentElement);
|
|
2103
2319
|
|
|
2104
|
-
/**
|
|
2105
|
-
* The SplatComponentElement interface provides properties and methods for manipulating
|
|
2106
|
-
* {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-splat/ | `<pc-splat>`} elements.
|
|
2107
|
-
* The SplatComponentElement interface also inherits the properties and methods of the
|
|
2108
|
-
* {@link HTMLElement} interface.
|
|
2109
|
-
*
|
|
2110
|
-
* @category Components
|
|
2111
|
-
*/
|
|
2112
|
-
class SplatComponentElement extends ComponentElement {
|
|
2113
|
-
/** @ignore */
|
|
2114
|
-
constructor() {
|
|
2115
|
-
super('gsplat');
|
|
2116
|
-
this._asset = '';
|
|
2117
|
-
}
|
|
2118
|
-
getInitialComponentData() {
|
|
2119
|
-
return {
|
|
2120
|
-
asset: AssetElement.get(this._asset)
|
|
2121
|
-
};
|
|
2122
|
-
}
|
|
2123
|
-
/**
|
|
2124
|
-
* Gets the underlying PlayCanvas splat component.
|
|
2125
|
-
* @returns The splat component.
|
|
2126
|
-
*/
|
|
2127
|
-
get component() {
|
|
2128
|
-
return super.component;
|
|
2129
|
-
}
|
|
2130
|
-
/**
|
|
2131
|
-
* Sets id of the `pc-asset` to use for the splat.
|
|
2132
|
-
* @param value - The asset ID.
|
|
2133
|
-
*/
|
|
2134
|
-
set asset(value) {
|
|
2135
|
-
this._asset = value;
|
|
2136
|
-
const asset = AssetElement.get(value);
|
|
2137
|
-
if (this.component && asset) {
|
|
2138
|
-
this.component.asset = asset;
|
|
2139
|
-
}
|
|
2140
|
-
}
|
|
2141
|
-
/**
|
|
2142
|
-
* Gets the id of the `pc-asset` to use for the splat.
|
|
2143
|
-
* @returns The asset ID.
|
|
2144
|
-
*/
|
|
2145
|
-
get asset() {
|
|
2146
|
-
return this._asset;
|
|
2147
|
-
}
|
|
2148
|
-
static get observedAttributes() {
|
|
2149
|
-
return [...super.observedAttributes, 'asset'];
|
|
2150
|
-
}
|
|
2151
|
-
attributeChangedCallback(name, _oldValue, newValue) {
|
|
2152
|
-
super.attributeChangedCallback(name, _oldValue, newValue);
|
|
2153
|
-
switch (name) {
|
|
2154
|
-
case 'asset':
|
|
2155
|
-
this.asset = newValue;
|
|
2156
|
-
break;
|
|
2157
|
-
}
|
|
2158
|
-
}
|
|
2159
|
-
}
|
|
2160
|
-
customElements.define('pc-splat', SplatComponentElement);
|
|
2161
|
-
|
|
2162
2320
|
const shadowTypes = new Map([
|
|
2163
2321
|
['pcf1-16f', playcanvas.SHADOW_PCF1_16F],
|
|
2164
2322
|
['pcf1-32f', playcanvas.SHADOW_PCF1_32F],
|
|
@@ -2427,7 +2585,7 @@
|
|
|
2427
2585
|
var _a;
|
|
2428
2586
|
this._shadowType = value;
|
|
2429
2587
|
if (this.component) {
|
|
2430
|
-
this.component.shadowType = (_a = shadowTypes.get(value)) !== null && _a !==
|
|
2588
|
+
this.component.shadowType = (_a = shadowTypes.get(value)) !== null && _a !== void 0 ? _a : playcanvas.SHADOW_PCF3_32F;
|
|
2431
2589
|
}
|
|
2432
2590
|
}
|
|
2433
2591
|
/**
|
|
@@ -2544,6 +2702,138 @@
|
|
|
2544
2702
|
}
|
|
2545
2703
|
customElements.define('pc-light', LightComponentElement);
|
|
2546
2704
|
|
|
2705
|
+
/**
|
|
2706
|
+
* The ParticleSystemComponentElement interface provides properties and methods for manipulating
|
|
2707
|
+
* {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-particles/ | `<pc-particles>`} elements.
|
|
2708
|
+
* The ParticleSystemComponentElement interface also inherits the properties and methods of the
|
|
2709
|
+
* {@link HTMLElement} interface.
|
|
2710
|
+
*
|
|
2711
|
+
* @category Components
|
|
2712
|
+
*/
|
|
2713
|
+
class ParticleSystemComponentElement extends ComponentElement {
|
|
2714
|
+
/** @ignore */
|
|
2715
|
+
constructor() {
|
|
2716
|
+
super('particlesystem');
|
|
2717
|
+
this._asset = '';
|
|
2718
|
+
}
|
|
2719
|
+
getInitialComponentData() {
|
|
2720
|
+
var _a;
|
|
2721
|
+
const asset = AssetElement.get(this._asset);
|
|
2722
|
+
if (!asset) {
|
|
2723
|
+
return {};
|
|
2724
|
+
}
|
|
2725
|
+
if (asset.resource.colorMapAsset) {
|
|
2726
|
+
const id = asset.resource.colorMapAsset;
|
|
2727
|
+
const colorMapAsset = (_a = AssetElement.get(id)) === null || _a === void 0 ? void 0 : _a.id;
|
|
2728
|
+
if (colorMapAsset) {
|
|
2729
|
+
asset.resource.colorMapAsset = colorMapAsset;
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2732
|
+
return asset.resource;
|
|
2733
|
+
}
|
|
2734
|
+
/**
|
|
2735
|
+
* Gets the underlying PlayCanvas particle system component.
|
|
2736
|
+
* @returns The particle system component.
|
|
2737
|
+
*/
|
|
2738
|
+
get component() {
|
|
2739
|
+
return super.component;
|
|
2740
|
+
}
|
|
2741
|
+
applyConfig(resource) {
|
|
2742
|
+
if (!this.component) {
|
|
2743
|
+
return;
|
|
2744
|
+
}
|
|
2745
|
+
// Set all the config properties on the component
|
|
2746
|
+
for (const key in resource) {
|
|
2747
|
+
if (resource.hasOwnProperty(key)) {
|
|
2748
|
+
this.component[key] = resource[key];
|
|
2749
|
+
}
|
|
2750
|
+
}
|
|
2751
|
+
}
|
|
2752
|
+
async _loadAsset() {
|
|
2753
|
+
var _a;
|
|
2754
|
+
const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
|
|
2755
|
+
const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
|
|
2756
|
+
const asset = AssetElement.get(this._asset);
|
|
2757
|
+
if (!asset) {
|
|
2758
|
+
return;
|
|
2759
|
+
}
|
|
2760
|
+
if (asset.loaded) {
|
|
2761
|
+
this.applyConfig(asset.resource);
|
|
2762
|
+
}
|
|
2763
|
+
else {
|
|
2764
|
+
asset.once('load', () => {
|
|
2765
|
+
this.applyConfig(asset.resource);
|
|
2766
|
+
});
|
|
2767
|
+
app.assets.load(asset);
|
|
2768
|
+
}
|
|
2769
|
+
}
|
|
2770
|
+
/**
|
|
2771
|
+
* Sets the id of the `pc-asset` to use for the model.
|
|
2772
|
+
* @param value - The asset ID.
|
|
2773
|
+
*/
|
|
2774
|
+
set asset(value) {
|
|
2775
|
+
this._asset = value;
|
|
2776
|
+
if (this.isConnected) {
|
|
2777
|
+
this._loadAsset();
|
|
2778
|
+
}
|
|
2779
|
+
}
|
|
2780
|
+
/**
|
|
2781
|
+
* Gets the id of the `pc-asset` to use for the model.
|
|
2782
|
+
* @returns The asset ID.
|
|
2783
|
+
*/
|
|
2784
|
+
get asset() {
|
|
2785
|
+
return this._asset;
|
|
2786
|
+
}
|
|
2787
|
+
// Control methods
|
|
2788
|
+
/**
|
|
2789
|
+
* Starts playing the particle system
|
|
2790
|
+
*/
|
|
2791
|
+
play() {
|
|
2792
|
+
if (this.component) {
|
|
2793
|
+
this.component.play();
|
|
2794
|
+
}
|
|
2795
|
+
}
|
|
2796
|
+
/**
|
|
2797
|
+
* Pauses the particle system
|
|
2798
|
+
*/
|
|
2799
|
+
pause() {
|
|
2800
|
+
if (this.component) {
|
|
2801
|
+
this.component.pause();
|
|
2802
|
+
}
|
|
2803
|
+
}
|
|
2804
|
+
/**
|
|
2805
|
+
* Resets the particle system
|
|
2806
|
+
*/
|
|
2807
|
+
reset() {
|
|
2808
|
+
if (this.component) {
|
|
2809
|
+
this.component.reset();
|
|
2810
|
+
}
|
|
2811
|
+
}
|
|
2812
|
+
/**
|
|
2813
|
+
* Stops the particle system
|
|
2814
|
+
*/
|
|
2815
|
+
stop() {
|
|
2816
|
+
if (this.component) {
|
|
2817
|
+
this.component.stop();
|
|
2818
|
+
}
|
|
2819
|
+
}
|
|
2820
|
+
static get observedAttributes() {
|
|
2821
|
+
return [
|
|
2822
|
+
...super.observedAttributes,
|
|
2823
|
+
'asset'
|
|
2824
|
+
];
|
|
2825
|
+
}
|
|
2826
|
+
attributeChangedCallback(name, _oldValue, newValue) {
|
|
2827
|
+
super.attributeChangedCallback(name, _oldValue, newValue);
|
|
2828
|
+
switch (name) {
|
|
2829
|
+
case 'asset':
|
|
2830
|
+
this.asset = newValue;
|
|
2831
|
+
break;
|
|
2832
|
+
}
|
|
2833
|
+
}
|
|
2834
|
+
}
|
|
2835
|
+
customElements.define('pc-particles', ParticleSystemComponentElement);
|
|
2836
|
+
|
|
2547
2837
|
/**
|
|
2548
2838
|
* The MaterialElement interface provides properties and methods for manipulating
|
|
2549
2839
|
* {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-material/ | `<pc-material>`} elements.
|
|
@@ -2634,7 +2924,7 @@
|
|
|
2634
2924
|
}
|
|
2635
2925
|
static get(id) {
|
|
2636
2926
|
const materialElement = document.querySelector(`pc-material[id="${id}"]`);
|
|
2637
|
-
return materialElement === null || materialElement ===
|
|
2927
|
+
return materialElement === null || materialElement === void 0 ? void 0 : materialElement.material;
|
|
2638
2928
|
}
|
|
2639
2929
|
static get observedAttributes() {
|
|
2640
2930
|
return ['diffuse', 'diffuse-map', 'metalness-map', 'normal-map', 'roughness-map'];
|
|
@@ -3314,7 +3604,7 @@
|
|
|
3314
3604
|
disconnectedCallback() {
|
|
3315
3605
|
var _a;
|
|
3316
3606
|
this.observer.disconnect();
|
|
3317
|
-
(_a = super.disconnectedCallback) === null || _a ===
|
|
3607
|
+
(_a = super.disconnectedCallback) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
3318
3608
|
}
|
|
3319
3609
|
/**
|
|
3320
3610
|
* Gets the underlying PlayCanvas script component.
|
|
@@ -3629,7 +3919,7 @@
|
|
|
3629
3919
|
}
|
|
3630
3920
|
async connectedCallback() {
|
|
3631
3921
|
var _a;
|
|
3632
|
-
await ((_a = this.soundElement) === null || _a ===
|
|
3922
|
+
await ((_a = this.soundElement) === null || _a === void 0 ? void 0 : _a.ready());
|
|
3633
3923
|
const options = {
|
|
3634
3924
|
autoPlay: this._autoPlay,
|
|
3635
3925
|
loop: this._loop,
|
|
@@ -3665,7 +3955,7 @@
|
|
|
3665
3955
|
var _a;
|
|
3666
3956
|
this._asset = value;
|
|
3667
3957
|
if (this.soundSlot) {
|
|
3668
|
-
const id = (_a = AssetElement.get(value)) === null || _a ===
|
|
3958
|
+
const id = (_a = AssetElement.get(value)) === null || _a === void 0 ? void 0 : _a.id;
|
|
3669
3959
|
if (id) {
|
|
3670
3960
|
this.soundSlot.asset = id;
|
|
3671
3961
|
}
|
|
@@ -3848,6 +4138,64 @@
|
|
|
3848
4138
|
}
|
|
3849
4139
|
customElements.define('pc-sound', SoundSlotElement);
|
|
3850
4140
|
|
|
4141
|
+
/**
|
|
4142
|
+
* The SplatComponentElement interface provides properties and methods for manipulating
|
|
4143
|
+
* {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-splat/ | `<pc-splat>`} elements.
|
|
4144
|
+
* The SplatComponentElement interface also inherits the properties and methods of the
|
|
4145
|
+
* {@link HTMLElement} interface.
|
|
4146
|
+
*
|
|
4147
|
+
* @category Components
|
|
4148
|
+
*/
|
|
4149
|
+
class SplatComponentElement extends ComponentElement {
|
|
4150
|
+
/** @ignore */
|
|
4151
|
+
constructor() {
|
|
4152
|
+
super('gsplat');
|
|
4153
|
+
this._asset = '';
|
|
4154
|
+
}
|
|
4155
|
+
getInitialComponentData() {
|
|
4156
|
+
return {
|
|
4157
|
+
asset: AssetElement.get(this._asset)
|
|
4158
|
+
};
|
|
4159
|
+
}
|
|
4160
|
+
/**
|
|
4161
|
+
* Gets the underlying PlayCanvas splat component.
|
|
4162
|
+
* @returns The splat component.
|
|
4163
|
+
*/
|
|
4164
|
+
get component() {
|
|
4165
|
+
return super.component;
|
|
4166
|
+
}
|
|
4167
|
+
/**
|
|
4168
|
+
* Sets id of the `pc-asset` to use for the splat.
|
|
4169
|
+
* @param value - The asset ID.
|
|
4170
|
+
*/
|
|
4171
|
+
set asset(value) {
|
|
4172
|
+
this._asset = value;
|
|
4173
|
+
const asset = AssetElement.get(value);
|
|
4174
|
+
if (this.component && asset) {
|
|
4175
|
+
this.component.asset = asset;
|
|
4176
|
+
}
|
|
4177
|
+
}
|
|
4178
|
+
/**
|
|
4179
|
+
* Gets the id of the `pc-asset` to use for the splat.
|
|
4180
|
+
* @returns The asset ID.
|
|
4181
|
+
*/
|
|
4182
|
+
get asset() {
|
|
4183
|
+
return this._asset;
|
|
4184
|
+
}
|
|
4185
|
+
static get observedAttributes() {
|
|
4186
|
+
return [...super.observedAttributes, 'asset'];
|
|
4187
|
+
}
|
|
4188
|
+
attributeChangedCallback(name, _oldValue, newValue) {
|
|
4189
|
+
super.attributeChangedCallback(name, _oldValue, newValue);
|
|
4190
|
+
switch (name) {
|
|
4191
|
+
case 'asset':
|
|
4192
|
+
this.asset = newValue;
|
|
4193
|
+
break;
|
|
4194
|
+
}
|
|
4195
|
+
}
|
|
4196
|
+
}
|
|
4197
|
+
customElements.define('pc-splat', SplatComponentElement);
|
|
4198
|
+
|
|
3851
4199
|
/**
|
|
3852
4200
|
* The ModelElement interface provides properties and methods for manipulating
|
|
3853
4201
|
* {@link https://developer.playcanvas.com/user-manual/engine/web-components/tags/pc-model/ | `<pc-model>`} elements.
|
|
@@ -3893,8 +4241,8 @@
|
|
|
3893
4241
|
async _loadModel() {
|
|
3894
4242
|
var _a;
|
|
3895
4243
|
this._unloadModel();
|
|
3896
|
-
const appElement = await ((_a = this.closestApp) === null || _a ===
|
|
3897
|
-
const app = appElement === null || appElement ===
|
|
4244
|
+
const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
|
|
4245
|
+
const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
|
|
3898
4246
|
const asset = AssetElement.get(this._asset);
|
|
3899
4247
|
if (!asset) {
|
|
3900
4248
|
return;
|
|
@@ -3911,7 +4259,7 @@
|
|
|
3911
4259
|
}
|
|
3912
4260
|
_unloadModel() {
|
|
3913
4261
|
var _a;
|
|
3914
|
-
(_a = this._entity) === null || _a ===
|
|
4262
|
+
(_a = this._entity) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
3915
4263
|
this._entity = null;
|
|
3916
4264
|
}
|
|
3917
4265
|
/**
|
|
@@ -3973,6 +4321,10 @@
|
|
|
3973
4321
|
* The end distance of the fog.
|
|
3974
4322
|
*/
|
|
3975
4323
|
this._fogEnd = 1000;
|
|
4324
|
+
/**
|
|
4325
|
+
* The gravity of the scene.
|
|
4326
|
+
*/
|
|
4327
|
+
this._gravity = new playcanvas.Vec3(0, -9.81, 0);
|
|
3976
4328
|
/**
|
|
3977
4329
|
* The PlayCanvas scene instance.
|
|
3978
4330
|
*/
|
|
@@ -3980,7 +4332,7 @@
|
|
|
3980
4332
|
}
|
|
3981
4333
|
async connectedCallback() {
|
|
3982
4334
|
var _a;
|
|
3983
|
-
await ((_a = this.closestApp) === null || _a ===
|
|
4335
|
+
await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
|
|
3984
4336
|
this.scene = this.closestApp.app.scene;
|
|
3985
4337
|
this.updateSceneSettings();
|
|
3986
4338
|
this._onReady();
|
|
@@ -3992,7 +4344,8 @@
|
|
|
3992
4344
|
this.scene.fog.density = this._fogDensity;
|
|
3993
4345
|
this.scene.fog.start = this._fogStart;
|
|
3994
4346
|
this.scene.fog.end = this._fogEnd;
|
|
3995
|
-
|
|
4347
|
+
const appElement = this.parentElement;
|
|
4348
|
+
appElement.app.systems.rigidbody.gravity.copy(this._gravity);
|
|
3996
4349
|
}
|
|
3997
4350
|
}
|
|
3998
4351
|
/**
|
|
@@ -4080,8 +4433,26 @@
|
|
|
4080
4433
|
get fogEnd() {
|
|
4081
4434
|
return this._fogEnd;
|
|
4082
4435
|
}
|
|
4436
|
+
/**
|
|
4437
|
+
* Sets the gravity of the scene.
|
|
4438
|
+
* @param value - The gravity.
|
|
4439
|
+
*/
|
|
4440
|
+
set gravity(value) {
|
|
4441
|
+
this._gravity = value;
|
|
4442
|
+
if (this.scene) {
|
|
4443
|
+
const appElement = this.parentElement;
|
|
4444
|
+
appElement.app.systems.rigidbody.gravity.copy(value);
|
|
4445
|
+
}
|
|
4446
|
+
}
|
|
4447
|
+
/**
|
|
4448
|
+
* Gets the gravity of the scene.
|
|
4449
|
+
* @returns The gravity.
|
|
4450
|
+
*/
|
|
4451
|
+
get gravity() {
|
|
4452
|
+
return this._gravity;
|
|
4453
|
+
}
|
|
4083
4454
|
static get observedAttributes() {
|
|
4084
|
-
return ['fog', 'fog-color', 'fog-density', 'fog-start', 'fog-end'];
|
|
4455
|
+
return ['fog', 'fog-color', 'fog-density', 'fog-start', 'fog-end', 'gravity'];
|
|
4085
4456
|
}
|
|
4086
4457
|
attributeChangedCallback(name, _oldValue, newValue) {
|
|
4087
4458
|
switch (name) {
|
|
@@ -4100,6 +4471,9 @@
|
|
|
4100
4471
|
case 'fog-end':
|
|
4101
4472
|
this.fogEnd = parseFloat(newValue);
|
|
4102
4473
|
break;
|
|
4474
|
+
case 'gravity':
|
|
4475
|
+
this.gravity = parseVec3(newValue);
|
|
4476
|
+
break;
|
|
4103
4477
|
// ... handle other attributes as well
|
|
4104
4478
|
}
|
|
4105
4479
|
}
|
|
@@ -4154,8 +4528,8 @@
|
|
|
4154
4528
|
}
|
|
4155
4529
|
async _loadSkybox() {
|
|
4156
4530
|
var _a;
|
|
4157
|
-
const appElement = await ((_a = this.closestApp) === null || _a ===
|
|
4158
|
-
const app = appElement === null || appElement ===
|
|
4531
|
+
const appElement = await ((_a = this.closestApp) === null || _a === void 0 ? void 0 : _a.ready());
|
|
4532
|
+
const app = appElement === null || appElement === void 0 ? void 0 : appElement.app;
|
|
4159
4533
|
if (!app) {
|
|
4160
4534
|
return;
|
|
4161
4535
|
}
|
|
@@ -4178,10 +4552,10 @@
|
|
|
4178
4552
|
var _a, _b;
|
|
4179
4553
|
if (!this._scene)
|
|
4180
4554
|
return;
|
|
4181
|
-
(_a = this._scene.skybox) === null || _a ===
|
|
4555
|
+
(_a = this._scene.skybox) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
4182
4556
|
// @ts-ignore
|
|
4183
4557
|
this._scene.skybox = null;
|
|
4184
|
-
(_b = this._scene.envAtlas) === null || _b ===
|
|
4558
|
+
(_b = this._scene.envAtlas) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
4185
4559
|
// @ts-ignore
|
|
4186
4560
|
this._scene.envAtlas = null;
|
|
4187
4561
|
this._scene = null;
|
|
@@ -4370,6 +4744,7 @@
|
|
|
4370
4744
|
exports.MaterialElement = MaterialElement;
|
|
4371
4745
|
exports.ModelElement = ModelElement;
|
|
4372
4746
|
exports.ModuleElement = ModuleElement;
|
|
4747
|
+
exports.ParticleSystemComponentElement = ParticleSystemComponentElement;
|
|
4373
4748
|
exports.RenderComponentElement = RenderComponentElement;
|
|
4374
4749
|
exports.RigidBodyComponentElement = RigidBodyComponentElement;
|
|
4375
4750
|
exports.SceneElement = SceneElement;
|