jolt-physics
Version:
A WebAssembly port of JoltPhysics, a rigid body physics and collision detection library, suitable for games and VR applications
64 lines (62 loc) • 4.48 MB
JavaScript
// SPDX-FileCopyrightText: 2022-2024 Jorrit Rouwe
// SPDX-License-Identifier: MIT
// This is Web Assembly version of Jolt Physics, see: https://github.com/jrouwe/JoltPhysics.js
var Jolt = (() => {
var _scriptName = import.meta.url;
return (
async function(moduleArg = {}) {
var moduleRtn;
var b=moduleArg,aa,ba,aaa=new Promise((a,c)=>{aa=a;ba=c}),ca="object"==typeof window,da="undefined"!=typeof WorkerGlobalScope,ea="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,fa=da&&self.name?.startsWith("em-pthread");if(ea){const {createRequire:a}=await import("module");var require=a(import.meta.url),ha=require("worker_threads");global.Worker=ha.Worker;fa=(da=!ha.nQa)&&"em-pthread"==ha.workerData}
var ia={...b},ja="./this.program",ka=(a,c)=>{throw c;},la="",ma;
if(ea){var fs=require("fs"),baa=require("path");import.meta.url.startsWith("data:")||(la=baa.dirname(require("url").fileURLToPath(import.meta.url))+"/");ma=a=>{a=caa(a)?new URL(a):a;return fs.readFileSync(a)};!b.thisProgram&&1<process.argv.length&&(ja=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);ka=(a,c)=>{process.exitCode=a;throw c;}}else if(ca||da)da?la=self.location.href:"undefined"!=typeof document&&document.currentScript&&(la=document.currentScript.src),_scriptName&&
(la=_scriptName),la.startsWith("blob:")?la="":la=la.slice(0,la.replace(/[?#].*/,"").lastIndexOf("/")+1),ea||da&&(ma=a=>{var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)});var na=console.log.bind(console),oa=console.error.bind(console);ea&&(na=(...a)=>fs.writeSync(1,a.join(" ")+"\n"),oa=(...a)=>fs.writeSync(2,a.join(" ")+"\n"));var pa=b.print||na,qa=b.printErr||oa;Object.assign(b,ia);ia=null;b.thisProgram&&(ja=b.thisProgram);
var ra=b.wasmBinary,sa,ta,ua=!1,va,wa,xa,ya,za,Aa,Ba=!1,caa=a=>a.startsWith("file://");
if(fa){var Ca;if(ea){var Da=ha.parentPort;Da.on("message",e=>onmessage({data:e}));Object.assign(globalThis,{self:global,postMessage:e=>Da.postMessage(e)})}var Ea=!1;function a(...e){ea?fs.writeSync(2,e.join(" ")+"\n"):console.error(...e)}b.printErr||(qa=a);self.onunhandledrejection=e=>{throw e.reason||e;};function c(e){try{var f=e.data,h=f.eDa;if("load"===h){let k=[];self.onmessage=n=>k.push(n);self.startWorker=()=>{postMessage({eDa:"loaded"});for(let n of k)c(n);self.onmessage=c};for(const n of f.iMa)if(!b[n]||
b[n].proxy)b[n]=(...y)=>{postMessage({eDa:"callHandler",hMa:n,args:y})},"print"==n&&(pa=b[n]),"printErr"==n&&(qa=b[n]);sa=f.lQa;Fa();Ca(f.mQa)}else if("run"===h){daa(f.VCa);Ga(f.VCa,0,0,1,0,0);Ha();Ia(f.VCa);Ea||=!0;try{Ja(f.iQa,f.DDa)}catch(k){if("unwind"!=k)throw k;}}else"setimmediate"!==f.target&&("checkMailbox"===h?Ea&&Ka():h&&(qa(`worker: received unknown command ${h}`),qa(f)))}catch(k){throw La(),k;}}self.onmessage=c}
function Fa(){var a=sa.buffer;b.HEAP8=wa=new Int8Array(a);b.HEAP16=new Int16Array(a);b.HEAPU8=xa=new Uint8Array(a);b.HEAPU16=new Uint16Array(a);b.HEAP32=ya=new Int32Array(a);b.HEAPU32=za=new Uint32Array(a);b.HEAPF32=new Float32Array(a);b.HEAPF64=Aa=new Float64Array(a)}if(!fa){if(b.wasmMemory)sa=b.wasmMemory;else{var Ma=b.INITIAL_MEMORY||134217728;sa=new WebAssembly.Memory({initial:Ma/65536,maximum:Ma/65536,shared:!0})}Fa()}function Na(){Ba=!0;fa?startWorker(b):(Oa(Pa),d.A())}var Qa=0,Ra=null;
function Sa(){Qa++;b.monitorRunDependencies?.(Qa)}function Ta(){Qa--;b.monitorRunDependencies?.(Qa);if(0==Qa&&Ra){var a=Ra;Ra=null;a()}}function Ua(a){b.onAbort?.(a);a="Aborted("+a+")";qa(a);ua=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");ba(a);throw a;}var Wa;async function eaa(a){if(!ArrayBuffer.isView(a))if(a==Wa&&ra)a=new Uint8Array(ra);else if(ma)a=ma(a);else throw"both async and sync fetching of the wasm failed";return a}
async function faa(a){var c=Wa;try{var e=await eaa(c);return await WebAssembly.instantiate(e,a)}catch(f){qa(`failed to asynchronously prepare wasm: ${f}`),Ua(f)}}async function gaa(a){return faa(a)}function Xa(){Ya={x:Za,l:haa,j:iaa,v:jaa,k:kaa,g:laa,i:Ia,h:maa,p:naa,d:oaa,b:paa,z:qaa,e:raa,y:saa,n:taa,c:uaa,o:vaa,u:waa,q:$a,r:ab,w:bb,s:cb,t:db,m:eb,f:fb,a:sa};return{a:Ya}}class gb{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}
var hb=a=>{a.terminate();a.onmessage=()=>{}},Oa=a=>{for(;0<a.length;)a.shift()(b)},ib=[],ob=a=>{0==jb.length&&(kb(),lb(jb[0]));var c=jb.pop();if(!c)return 6;mb.push(c);nb[a.VCa]=c;c.VCa=a.VCa;var e={eDa:"run",iQa:a.hQa,DDa:a.DDa,VCa:a.VCa};ea&&c.unref();c.postMessage(e,a.fIa);return 0},pb=0,ub=(a,c,...e)=>{for(var f=e.length,h=qb(),k=rb(8*f),n=k>>3,y=0;y<e.length;y++)Aa[n+y]=e[y];a=sb(a,0,f,k,c);tb(h);return a};
function vb(a){if(fa)return ub(0,1,a);va=a;if(!(wb||0<pb)){for(var c of mb)hb(c);for(c of jb)hb(c);jb=[];mb=[];nb={};b.onExit?.(a);ua=!0}ka(a,new gb(a))}function xb(a){if(fa)return ub(1,0,a);bb(a)}var bb=a=>{va=a;if(fa)throw xb(a),"unwind";vb(a)},jb=[],mb=[],yb=[],nb={};function xaa(){for(var a=16;a--;)kb();ib.unshift(()=>{Sa();yaa(()=>Ta())})}var Ab=a=>{var c=a.VCa;delete nb[c];jb.push(a);mb.splice(mb.indexOf(a),1);a.VCa=0;zb(c)};function Ha(){yb.forEach(a=>a())}
var lb=a=>new Promise(c=>{a.onmessage=k=>{k=k.data;var n=k.eDa;if(k.fFa&&k.fFa!=Bb()){var y=nb[k.fFa];y?y.postMessage(k,k.fIa):qa(`Internal error! Worker sent a message "${n}" to target pthread ${k.fFa}, but that thread no longer exists!`)}else if("checkMailbox"===n)Ka();else if("spawnThread"===n)ob(k);else if("cleanupThread"===n)Ab(nb[k.jQa]);else if("loaded"===n)a.loaded=!0,ea&&!a.VCa&&a.unref(),c(a);else if("setimmediate"===k.target)a.postMessage(k);else if("callHandler"===n)b[k.hMa](...k.args);
else n&&qa(`worker sent an unknown command ${n}`)};a.onerror=k=>{qa(`${"worker sent an error!"} ${k.filename}:${k.lineno}: ${k.message}`);throw k;};ea&&(a.on("message",k=>a.onmessage({data:k})),a.on("error",k=>a.onerror(k)));var e=[],f=["onExit","onAbort","print","printErr"],h;for(h of f)b.propertyIsEnumerable(h)&&e.push(h);a.postMessage({eDa:"load",iMa:e,lQa:sa,mQa:ta})});function yaa(a){fa?a():Promise.all(jb.map(lb)).then(a)}
function kb(){if(b.mainScriptUrlOrBlob){var a=b.mainScriptUrlOrBlob;"string"!=typeof a&&(a=URL.createObjectURL(a));a=new Worker(a,{type:"module",workerData:"em-pthread",name:"em-pthread"})}else a=new Worker(new URL("jolt-physics.multithread.wasm-compat.js",import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});jb.push(a)}
var Cb=[],zaa=a=>{if(ea)return a=Buffer.from(a,"base64"),new Uint8Array(a.buffer,a.byteOffset,a.length);for(var c,e,f=0,h=0,k=a.length,n=new Uint8Array((3*k>>2)-("="==a[k-2])-("="==a[k-1]));f<k;f+=4,h+=3)c=Db[a.charCodeAt(f+1)],e=Db[a.charCodeAt(f+2)],n[h]=Db[a.charCodeAt(f)]<<2|c>>4,n[h+1]=c<<4|e>>2,n[h+2]=e<<6|Db[a.charCodeAt(f+3)];return n},daa=a=>{var c=za[a+52>>2];Eb(c,c-za[a+56>>2]);tb(c)},Fb=[],Gb,Ja=(a,c)=>{wb=pb=0;var e=Fb[a];e||(Fb[a]=e=Gb.get(a));a=e(c);wb||0<pb?va=a:Hb(a)},wb=b.noExitRuntime||
!0;function Ib(a,c,e,f){return fa?ub(2,1,a,c,e,f):Za(a,c,e,f)}
var Za=(a,c,e,f)=>{if("undefined"==typeof SharedArrayBuffer)return 6;var h=[];if(fa&&0===h.length)return Ib(a,c,e,f);a={hQa:e,VCa:a,DDa:f,fIa:h};return fa?(a.eDa="spawnThread",postMessage(a,h),0):ob(a)},haa=()=>Ua(""),iaa=a=>{Ga(a,!da,1,!ca,1048576,!1);Ha()},Ia=a=>{"function"===typeof Atomics.kQa&&(Atomics.kQa(ya,a>>2,a).value.then(Ka),Atomics.store(ya,a+128>>2,1))},Ka=()=>{var a=Bb();if(a&&(Ia(a),a=Jb,!ua))try{if(a(),!(wb||0<pb))try{fa?Hb(va):bb(va)}catch(c){c instanceof gb||"unwind"==c||ka(1,c)}}catch(c){c instanceof
gb||"unwind"==c||ka(1,c)}},jaa=(a,c)=>{a==c?setTimeout(Ka):fa?postMessage({fFa:a,eDa:"checkMailbox"}):(a=nb[a])&&a.postMessage({eDa:"checkMailbox"})},Kb=[],kaa=(a,c,e,f,h)=>{Kb.length=f;e=h>>3;for(h=0;h<f;h++)Kb[h]=Aa[e+h];return(c?Lb[c]:Aaa[a])(...Kb)},laa=a=>{fa?postMessage({eDa:"cleanupThread",jQa:a}):Ab(nb[a])},maa=a=>{ea&&nb[a].ref()},Mb=(a,c,e,f)=>{if(0<f){f=e+f-1;for(var h=0;h<a.length;++h){var k=a.charCodeAt(h);if(55296<=k&&57343>=k){var n=a.charCodeAt(++h);k=65536+((k&1023)<<10)|n&1023}if(127>=
k){if(e>=f)break;c[e++]=k}else{if(2047>=k){if(e+1>=f)break;c[e++]=192|k>>6}else{if(65535>=k){if(e+2>=f)break;c[e++]=224|k>>12}else{if(e+3>=f)break;c[e++]=240|k>>18;c[e++]=128|k>>12&63}c[e++]=128|k>>6&63}c[e++]=128|k&63}}c[e]=0}},naa=(a,c,e,f)=>{var h=(new Date).getFullYear(),k=(new Date(h,0,1)).getTimezoneOffset();h=(new Date(h,6,1)).getTimezoneOffset();za[a>>2]=60*Math.max(k,h);ya[c>>2]=Number(k!=h);c=n=>{var y=Math.abs(n);return`UTC${0<=n?"-":"+"}${String(Math.floor(y/60)).padStart(2,"0")}${String(y%
60).padStart(2,"0")}`};a=c(k);c=c(h);h<k?(Mb(a,xa,e,17),Mb(c,xa,f,17)):(Mb(a,xa,f,17),Mb(c,xa,e,17))},uaa=()=>performance.timeOrigin+performance.now(),Nb=[],Ob=(a,c,e)=>{Nb.length=0;for(var f;f=xa[c++];){var h=105!=f;h&=112!=f;e+=h&&e%8?4:0;Nb.push(112==f?za[e>>2]:105==f?ya[e>>2]:Aa[e>>3]);e+=h?8:4}return Lb[a](...Nb)},oaa=(a,c,e)=>Ob(a,c,e),paa=(a,c,e)=>Ob(a,c,e),qaa=(a,c,e)=>Ob(a,c,e),raa=()=>{},saa=()=>{pb+=1;throw"unwind";},taa=()=>xa.length,vaa=()=>ea?require("os").cpus().length:navigator.hardwareConcurrency,
waa=()=>{Ua("OOM")},Pb={},Rb=()=>{if(!Qb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ja||"./this.program"},c;for(c in Pb)void 0===Pb[c]?delete a[c]:a[c]=Pb[c];var e=[];for(c in a)e.push(`${c}=${a[c]}`);Qb=e}return Qb},Qb;
function $a(a,c){if(fa)return ub(3,1,a,c);var e=0;Rb().forEach((f,h)=>{var k=c+e;h=za[a+4*h>>2]=k;for(k=0;k<f.length;++k)wa[h++]=f.charCodeAt(k);wa[h]=0;e+=f.length+1});return 0}function ab(a,c){if(fa)return ub(4,1,a,c);var e=Rb();za[a>>2]=e.length;var f=0;e.forEach(h=>f+=h.length+1);za[c>>2]=f;return 0}function cb(a){return fa?ub(5,1,a):52}function db(a,c,e,f){return fa?ub(6,1,a,c,e,f):52}function eb(a,c,e,f,h){return fa?ub(7,1,a,c,e,f,h):70}
var Baa=[null,[],[]],Sb="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Tb=(a,c=0)=>{for(var e=c+NaN,f=c;a[f]&&!(f>=e);)++f;if(16<f-c&&a.buffer&&Sb)return Sb.decode(a.buffer instanceof ArrayBuffer?a.subarray(c,f):a.slice(c,f));for(e="";c<f;){var h=a[c++];if(h&128){var k=a[c++]&63;if(192==(h&224))e+=String.fromCharCode((h&31)<<6|k);else{var n=a[c++]&63;h=224==(h&240)?(h&15)<<12|k<<6|n:(h&7)<<18|k<<12|n<<6|a[c++]&63;65536>h?e+=String.fromCharCode(h):(h-=65536,e+=String.fromCharCode(55296|h>>
10,56320|h&1023))}}else e+=String.fromCharCode(h)}return e};function fb(a,c,e,f){if(fa)return ub(8,1,a,c,e,f);for(var h=0,k=0;k<e;k++){var n=za[c>>2],y=za[c+4>>2];c+=8;for(var R=0;R<y;R++){var Va=a,Sd=xa[n+R],Jg=Baa[Va];0===Sd||10===Sd?((1===Va?pa:qa)(Tb(Jg)),Jg.length=0):Jg.push(Sd)}h+=y}za[f>>2]=h;return 0}var Pa=[];fa||xaa();for(var Db=new Uint8Array(123),Ub=25;0<=Ub;--Ub)Db[48+Ub]=52+Ub,Db[65+Ub]=Ub,Db[97+Ub]=26+Ub;Db[43]=62;Db[47]=63;
var Aaa=[vb,xb,Ib,$a,ab,cb,db,eb,fb],Lb={58810:a=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetPathMaxFraction"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetPathMaxFraction.";return a.GetPathMaxFraction()},59077:(a,c,e)=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetClosestPoint"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetClosestPoint.";return a.GetClosestPoint(c,
e)},59340:(a,c,e,f,h,k)=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetPointOnPath"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetPointOnPath.";a.GetPointOnPath(c,e,f,h,k)},59602:(a,c,e)=>{a=b.getCache(b.GroupFilterJS)[a];if(!a.hasOwnProperty("CanCollide"))throw"a JSImplementation must implement all functions, you forgot GroupFilterJS::CanCollide.";return a.CanCollide(c,e)},59836:(a,c)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveBody"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveBody.";
return a.ShouldSaveBody(c)},60095:(a,c)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveConstraint"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveConstraint.";return a.ShouldSaveConstraint(c)},60372:(a,c,e)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveContact"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveContact.";return a.ShouldSaveContact(c,
e)},60643:(a,c,e)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldRestoreContact"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldRestoreContact.";return a.ShouldRestoreContact(c,e)},60923:a=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("IsEOF"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::IsEOF.";return a.IsEOF()},61141:a=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("IsFailed"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::IsFailed.";
return a.IsFailed()},61368:(a,c,e)=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("WriteBytes"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::WriteBytes.";a.WriteBytes(c,e)},61599:(a,c,e)=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("ReadBytes"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::ReadBytes.";a.ReadBytes(c,e)},61827:(a,c,e,f,h)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactAdded"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactAdded.";
a.OnContactAdded(c,e,f,h)},62080:(a,c,e,f,h)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactPersisted"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactPersisted.";a.OnContactPersisted(c,e,f,h)},62345:(a,c)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactRemoved"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactRemoved.";a.OnContactRemoved(c)},62595:(a,c,e,f,h)=>
{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactValidate"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactValidate.";return a.OnContactValidate(c,e,f,h)},62864:(a,c,e)=>{a=b.getCache(b.SoftBodyContactListenerJS)[a];if(!a.hasOwnProperty("OnSoftBodyContactAdded"))throw"a JSImplementation must implement all functions, you forgot SoftBodyContactListenerJS::OnSoftBodyContactAdded.";a.OnSoftBodyContactAdded(c,e)},63151:(a,c,e,f)=>{a=b.getCache(b.SoftBodyContactListenerJS)[a];
if(!a.hasOwnProperty("OnSoftBodyContactValidate"))throw"a JSImplementation must implement all functions, you forgot SoftBodyContactListenerJS::OnSoftBodyContactValidate.";return a.OnSoftBodyContactValidate(c,e,f)},63457:a=>{a=b.getCache(b.RayCastBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot RayCastBodyCollectorJS::Reset.";a.Reset()},63682:(a,c)=>{a=b.getCache(b.RayCastBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot RayCastBodyCollectorJS::AddHit.";
a.AddHit(c)},63912:a=>{a=b.getCache(b.CollideShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollideShapeBodyCollectorJS::Reset.";a.Reset()},64147:(a,c)=>{a=b.getCache(b.CollideShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollideShapeBodyCollectorJS::AddHit.";a.AddHit(c)},64387:a=>{a=b.getCache(b.CastShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastShapeBodyCollectorJS::Reset.";
a.Reset()},64616:(a,c)=>{a=b.getCache(b.CastShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastShapeBodyCollectorJS::AddHit.";a.AddHit(c)},64850:a=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::Reset.";a.Reset()},65067:(a,c)=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::OnBody.";
a.OnBody(c)},65289:(a,c)=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::AddHit.";a.AddHit(c)},65511:a=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::Reset.";a.Reset()},65738:(a,c)=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::OnBody.";
a.OnBody(c)},65970:(a,c)=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::AddHit.";a.AddHit(c)},66202:a=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::Reset.";a.Reset()},66429:(a,c)=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::OnBody.";
a.OnBody(c)},66661:(a,c)=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::AddHit.";a.AddHit(c)},66893:a=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::Reset.";a.Reset()},67114:(a,c)=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::OnBody.";
a.OnBody(c)},67340:(a,c)=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::AddHit.";a.AddHit(c)},67566:a=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::Reset.";a.Reset()},67801:(a,c)=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::OnBody.";
a.OnBody(c)},68041:(a,c)=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::AddHit.";a.AddHit(c)},68281:(a,c)=>{a=b.getCache(b.PhysicsStepListenerJS)[a];if(!a.hasOwnProperty("OnStep"))throw"a JSImplementation must implement all functions, you forgot PhysicsStepListenerJS::OnStep.";a.OnStep(c)},68509:(a,c,e)=>{a=b.getCache(b.BodyActivationListenerJS)[a];if(!a.hasOwnProperty("OnBodyActivated"))throw"a JSImplementation must implement all functions, you forgot BodyActivationListenerJS::OnBodyActivated.";
a.OnBodyActivated(c,e)},68773:(a,c,e)=>{a=b.getCache(b.BodyActivationListenerJS)[a];if(!a.hasOwnProperty("OnBodyDeactivated"))throw"a JSImplementation must implement all functions, you forgot BodyActivationListenerJS::OnBodyDeactivated.";a.OnBodyDeactivated(c,e)},69043:(a,c,e,f,h)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnAdjustBodyVelocity"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnAdjustBodyVelocity.";a.OnAdjustBodyVelocity(c,
e,f,h)},69332:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactValidate"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactValidate.";return a.OnContactValidate(c,e,f)},69616:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactValidate"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactValidate.";
return a.OnCharacterContactValidate(c,e,f)},69927:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactRemoved"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactRemoved.";a.OnContactRemoved(c,e,f)},70201:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactRemoved"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactRemoved.";
a.OnCharacterContactRemoved(c,e,f)},70502:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactAdded"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactAdded.";a.OnContactAdded(c,e,f,h,k,n)},70779:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactPersisted"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactPersisted.";
a.OnContactPersisted(c,e,f,h,k,n)},71068:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactAdded"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactAdded.";a.OnCharacterContactAdded(c,e,f,h,k,n)},71372:(a,c,e,f,h,k,n)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactPersisted"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactPersisted.";
a.OnCharacterContactPersisted(c,e,f,h,k,n)},71688:(a,c,e,f,h,k,n,y,R,Va)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactSolve"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactSolve.";a.OnContactSolve(c,e,f,h,k,n,y,R,Va)},71974:(a,c,e,f,h,k,n,y,R,Va)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactSolve"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactSolve.";
a.OnCharacterContactSolve(c,e,f,h,k,n,y,R,Va)},72287:(a,c,e)=>{a=b.getCache(b.ObjectVsBroadPhaseLayerFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectVsBroadPhaseLayerFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},72566:(a,c)=>{a=b.getCache(b.ObjectLayerFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectLayerFilterJS::ShouldCollide.";return a.ShouldCollide(c)},
72818:(a,c,e)=>{a=b.getCache(b.ObjectLayerPairFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectLayerPairFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},73081:(a,c)=>{a=b.getCache(b.BodyFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot BodyFilterJS::ShouldCollide.";return a.ShouldCollide(c)},73319:(a,c)=>{a=b.getCache(b.BodyFilterJS)[a];if(!a.hasOwnProperty("ShouldCollideLocked"))throw"a JSImplementation must implement all functions, you forgot BodyFilterJS::ShouldCollideLocked.";
return a.ShouldCollideLocked(c)},73575:(a,c,e)=>{a=b.getCache(b.ShapeFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ShapeFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},73818:(a,c,e,f,h)=>{a=b.getCache(b.ShapeFilterJS2)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ShapeFilterJS2::ShouldCollide.";return a.ShouldCollide(c,e,f,h)},74069:(a,c,e,f,h,k,n)=>{a=b.getCache(b.SimShapeFilterJS)[a];
if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot SimShapeFilterJS::ShouldCollide.";return a.ShouldCollide(c,e,f,h,k,n)},74330:(a,c,e,f,h,k)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];if(!a.hasOwnProperty("GetCombinedFriction"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::GetCombinedFriction.";return a.GetCombinedFriction(c,e,f,h,k)},74630:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];
if(!a.hasOwnProperty("OnPreStepCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPreStepCallback.";a.OnPreStepCallback(c,e)},74908:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];if(!a.hasOwnProperty("OnPostCollideCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPostCollideCallback.";a.OnPostCollideCallback(c,e)},75198:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];
if(!a.hasOwnProperty("OnPostStepCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPostStepCallback.";a.OnPostStepCallback(c,e)},75479:(a,c,e,f,h,k,n,y,R)=>{a=b.getCache(b.WheeledVehicleControllerCallbacksJS)[a];if(!a.hasOwnProperty("OnTireMaxImpulseCallback"))throw"a JSImplementation must implement all functions, you forgot WheeledVehicleControllerCallbacksJS::OnTireMaxImpulseCallback.";a.OnTireMaxImpulseCallback(c,e,f,h,k,n,y,R)},75810:a=>
{a=b.getCache(b.BroadPhaseLayerInterfaceJS)[a];if(!a.hasOwnProperty("GetNumBroadPhaseLayers"))throw"a JSImplementation must implement all functions, you forgot BroadPhaseLayerInterfaceJS::GetNumBroadPhaseLayers.";return a.GetNumBroadPhaseLayers()},76101:(a,c)=>{a=b.getCache(b.BroadPhaseLayerInterfaceJS)[a];if(!a.hasOwnProperty("GetBPLayer"))throw"a JSImplementation must implement all functions, you forgot BroadPhaseLayerInterfaceJS::GetBPLayer.";return a.GetBPLayer(c)},76358:()=>wa.length},Ya,d=await (async function(){function a(f,
h){d=f.exports;yb.push(d.fCa);Gb=d.G;ta=h;Ta();return d}Sa();var c=Xa();if(b.instantiateWasm)return new Promise(f=>{b.instantiateWasm(c,(h,k)=>{a(h,k);f(h.exports)})});if(fa)return new Promise(f=>{Ca=h=>{var k=new WebAssembly.Instance(h,Xa());f(a(k,h))}});Wa??=zaa("AGFzbQEAAAAB/giFAWACf38AYAN/f38AYAF/AX9gAX8AYAJ/fwF/YAN/f38Bf2AAAX9gAX8BfWAEf39/fwBgBn9/f39/fwBgAn99AGAEf39/fwF/YAV/f39/fwBgBX9/f39/AX9gB39/f39/f38AYAZ/f39/f38Bf2ACf30Bf2ALf39/f39/f39/f38AYAl/f39/f39/f38AYAJ/fgBgCH9/f39/f39/AGAEf39/fwF9YAN/f30AYAAAYAh/f39/f39/fwF/YAd/f39/f39/AX9gAn9/AX1gCn9/f39/f39/f38AYAN/fX0Bf2ADf39/AX5gA39/fQF/YAN/fX8AYAN/f34AYAJ/fwF+YAF9AX9gA399fQBgA39/fQF9YAV/fn5+fgBgDH9/f39/f39/f39/fwF/YAF/AXxgBH9/f30AYAR/f31/AGAGf31/f39/AGADfX19AX9gBX9/f399AGAFf39+f38AYAZ/f399f38BfWAFf319fX0AYAJ/fABgBH9/f30Bf2AJf39/f39/f39/AX9gDH9/f39/f39/f39/fwBgBH19fX0Bf2ACf3wBf2ACfX0Bf2AFf39/f34Bf2AJf39/fX19fX19AGAEf35+fwBgAn99AX1gA39/fAF/YAV/f39/fQF/YAN/fn8BfmAFf319fX8AYAJ9fwF/YAZ/f31/f38AYAN/fX8Bf2AEfX19fwF/YAN/f38BfGAFf39/f38BfGAGf39/f319AX9gBH99fX0AYAp/f39/f39/f39/AX9gBH9/fX0Bf2AFf31/f38Bf2AFf39/fX0Bf2APf39/f39/f39/f39/f39/AGALf39/f39/f39/f38Bf2AEf39/fwF+YAd/f399f39/AGAGf39/f399AGAJf39/f39/f399AGALf31/f39/f39/f38Bf2AIf31/f39/f38AYAl/f399fX1/f30Bf2AEf319fwBgAn9/AXxgB39/f39/fn4Bf2AGf39/f35+AX9gBX9/f398AX9gA319fwF/YAABfGAHf39/f39/fQBgBX9/f31/AX9gB399f39/fX8AYAl/fX9/f39/fX8AYAR+fn5+AX9gBH9/f34BfmACfn8Bf2ACfX0BfWACfn4BfGAIf39/fX9/f38AYAd/fX19fX19AGALf399fX9/fX1/f30AYAZ/fX19fX8AYAR/f319AX1g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AwAAAAQAAAAAAAMAAAAEHgEEPDweCwYAAAA/ChYGAwIABQICAAAABQQIAQACAgICAwIAAgAAAAIBAAIEAgACAgAGBgACAAIOEhERDhQGBgYAAwYDAwAAAAQGAwACCgcGAAIAAgACAAIGBgYAAwYDAwAAAAQGAAIGBgYAAwYGAwAABAYGBgYAAwYABgACAAYMDAxABgYGBgACBAIEBAQEAAwDDQYCBgACBgMEAAIAAAAEBAMEAgYAAgACAAIAAgACAAIAAgYDBAMDBgICAgYFBgAFAwQBAggBggEMCAwIBAEEBAEaFhoWGhYEBAEFBAgEAAQBAAgBACwJBQQBCAEEAQgECAQEBAgECAgMDAQBDAwEAAsBCAwCBQUFBAABAQAIBAUEAAQEBQUEBAAABQMCAwICAwICAgICAgICAgICUygAAQADAgMDAgIAAQAAAAIAAAIDAAcCAgICAAIAAgACAAIAAgICAgICAgICAgMAAAUGAwUBAQIGBgICAgICAgUpBgICAgIFAQYHAgIAAAMCAgcjBQYDAgIAAAMCAgIHCgIABwoHAhYkBwYDCAMAAAIABQYCAgAAAwICAgICAgACAAACAgAAAgQBBAIaFgEEBAQCAgICGhoBAQEEAQQWGhYaAAIWGgWDAQQABAAGAgIAAAMCAgIHBwcCAgACAAIAAgACAAIKCgoKAgICAgACCgcAAgUGAgIAAAMCAgcCBwIAAgIHByMHCgcKAgAKBwUGAgIAAAMCAgcCCgUGAgICAAADAgIHBwICAAICIwcKAAcHAgICAgICBQYCAgAAAwICAgUGAwICAgAAAwICBwACBwcjAAUGBgIGBQIGAwQEBAQDDwIFBAICBQICAgYDAwIGAwMEBAMDDwUEAgIFAgIAHgQCAwUAAgMCHgQCAwMDBAQDDwUEAgICBAUCMg5QFA4HBwUEBQMAAAADAAIAAgACAw8CBgcDAwQEAwUPBQQCAgIFAgIEAwICAAIAAAIABQMCAwUEAgIGAwQEBAMPBQICBQICAgMCBQMEAwQEAw8FAgICBQIEAwIDBAMDBAQEBwMEDwUCBwQCBQICBAMDAwIEAwMEDwQDDwUCAgUCAwwFDAgADw0DAgYCAwMEBAMPBQICAgUCBQMCBgMAAgICAwMEBAcHAw8FAgcHAgUCAwoKBwADAgYDAwQEBwMPBQIHAgIFAgcDAkIr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AOoSAlVuAOkSAlZuAOgSAlduANAIAlhuAOcSAlluAM8IAlpuAOYSAl9uAM4IAiRuAOUSAmFvAOQSAmJvAOMSAmNvAOISAmVvAOESAmZvAOASAmdvAN8SAmhvAN4SAmlvAN0SAmpvAMsFAmtvAMoFAmxvAM0IAm1vAMwIAm5vANwSAm9vANsSAnBvANoSAnFvANkSAnJvANgSAnNvANcSAnRvANYSAnVvANUSAnZvANQSAndvANMSAnhvANISAnlvANESAnpvANASAkFvACYCQm8AjwQCQ28AzxICRG8AzhICRW8AzRICRm8AzBICR28AyxICSG8AyhICSW8AyRICSm8AyBICS28AxxICTG8AxhICTW8AxRICTm8A1wgCT28A1ggCUG8AxBICUW8AwxICUm8AwhICU28AwRICVG8AwBICVW8AvxICVm8AvhICV28AvRICWG8AvBICWW8AuxICWm8AuhICX28A0AgCJG8AuRICYXAAzwgCYnAAuBICY3AAzggCZHAAtxICZXAAthICZnAAtRICZ3AAtBICaHAAsxICaXAAywUCanAAygUCa3AAshICbHAAsRICbXAAsBICbnAArxICb3AArhICcHAArRICcXAArBICcnAAqxICc3AAqhICdHAAqRICdXAAJgJ2cACPBAJ3cACoEgJ4cACnEgJ5cACmEgJ6cAClEgJBcACkEgJCcACjEgJDcACiEgJEcAChEgJFcACgEgJGcACfEgJHcACeEgJIcACdEgJJcADVCAJKcADUCAJLcADTCAJMcACcEgJNcADSCAJOcADRCAJPcACbEgJQcADKCAJRcACaEgJScADYCAJTcACZEgJUcACYEgJVcACXEgJWcADHBQJXcADLBQJYcADKBQJZcADNCAJacADMCAJfcACWEgIkcACVEgJhcQCUEgJicQCTEgJjcQCSEgJkcQCREgJlcQAmAmZxAJASAmdxAI8SAmhxAI4SAmlxAI0SAmpxAIwSAmtxAIsSAmxxAIoSAm1xAIkSAm5xAIgSAm9xAIcSAnBxAIYSAnFxAIUSAnJxAIQSAnNxAIMSAnRxAIISAnVxAIESAnZxAIASAndxAP8RAnhxACYCeXEAjwQCenEA/hECQXEA/RECQnEA/BECQ3EA+xECRHEA+hECRXEA+RECRnEA+BECR3EA9xECSHEA9hECSXEA9REC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