UNPKG

phy-engine

Version:

JavaScript 3D Physics for three.js

1 lines 2.44 MB
!function(A,I){"object"==typeof exports&&"undefined"!=typeof module?I(exports):"function"==typeof define&&define.amd?define(["exports"],I):I((A="undefined"!=typeof globalThis?globalThis:A||self).RAPIER={})}(this,(function(A){"use strict";const I=new Map,g=new Map,C={Ar:null,ArPos:{},world:null,timestep:1/60,tmpStep:0,delta:0,ms:0,invDelta:0,gravity:null,key:[],reflow:{ray:[],point:{},contact:{},velocity:{},stat:{fps:0,delta:0,ms:0}}};class B{static clear(){I.clear(),g.clear()}static byName(A){return I.has(A)?I.get(A):null}static add(A){I.set(A.name,A)}static remove(A){if("ray"!==A.type&&"contact"!==A.type)switch(A.type){case"joint":C.world.removeImpulseJoint(A);break;case"body":case"solid":if(A.isValid()){let I=A.numColliders();for(;I--;)g.delete(A.collider(I));C.world.removeRigidBody(A)}}I.delete(A.name)}static stats(){}}class Q{constructor(A=0,I=0,g=0){this.x=A,this.y=I,this.z=g}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this}toArray(A,I){let g=void 0!==A;if(g||(A=[]),A[I=I||0]=this.x,A[I+1]=this.y,A[I+2]=this.z,!g)return A}fromArray(A,I){return I=I||0,this.x=A[I],this.y=A[I+1],this.z=A[I+2],this}sub(A){return this.x-=A.x,this.y-=A.y,this.z-=A.z,this}add(A){return this.x+=A.x,this.y+=A.y,this.z+=A.z,this}set(A,I,g){return this.x=A,this.y=I,this.z=g,this}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}distanceTo(A){const I=this.x-A.x,g=this.y-A.y,C=this.z-A.z;return Math.sqrt(I*I+g*g+C*C)}multiplyScalar(A){return this.x*=A,this.y*=A,this.z*=A,this}divideScalar(A){return this.multiplyScalar(1/A)}normalize(){return this.divideScalar(this.length()||1)}}class E{constructor(A=0,I=0,g=0,C=1){this.x=A,this.y=I,this.z=g,this.w=C}copy(A){return this.x=A.x,this.y=A.y,this.z=A.z,this.w=A.w,this}toArray(A,I){let g=void 0!==A;if(g||(A=[]),A[I=I||0]=this.x,A[I+1]=this.y,A[I+2]=this.z,A[I+3]=this.w,!g)return A}fromArray(A,I){return I=I||0,this.x=A[I],this.y=A[I+1],this.z=A[I+2],this.w=A[I+3],this}set(A,I,g,C){return this.x=A,this.y=I,this.z=g,this.w=C,this}}const i=4e3,D=1e3,o=4e3,w=100,S=100,G={bodyFull:14,body:8,joint:16,contact:1,ray:11,character:16,vehicle:72,solver:128};class k{constructor(){this.id=0,this.list=[],this.type="item",this.Utils=null}reset(){let A=this.list.length;for(;A--;)this.dispose(this.list[A]);this.list=[],this.id=0}byName(A){return this.Utils.byName(A)}setName(A={}){let I=void 0!==A.name?A.name:this.type+this.id++;return A.id=this.remove(I,!0),A.name=I,I}addToWorld(A,I=-1){this.Utils.add(A),-1!==I?this.list[I]=A:this.list.push(A)}remove(A,I){let g=this.byName(A);return g?this.clear(g,I):-1}clear(A,I){let g=this.list.indexOf(A);return-1===g||I?this.list[g]=null:this.list.splice(g,1),this.dispose(A),g}dispose(A){null!==A&&this.Utils.remove(A)}add(A={}){}set(A={}){}step(A,I){}}const U=Math.PI,M=U/180,h=180/U,y=Number.EPSILON,J=.5*U,s={luminousPowers:{"110000 lm (1000W)":11e4,"3500 lm (300W)":3500,"1700 lm (100W)":1700,"800 lm (60W)":800,"400 lm (40W)":400,"180 lm (25W)":180,"20 lm (4W)":20,Off:0},luminousIrradiances:{"0.0001 lx (Moonless Night)":1e-4,"0.002 lx (Night Airglow)":.002,"0.5 lx (Full Moon)":.5,"3.4 lx (City Twilight)":3.4,"50 lx (Living Room)":50,"100 lx (Very Overcast)":100,"350 lx (Office Room)":350,"400 lx (Sunrise/Sunset)":400,"1000 lx (Overcast)":1e3,"18000 lx (Daylight)":18e3,"50000 lx (Direct Sun)":5e4},exposure:A=>Math.pow(A,5),candelaToLumens:A=>4*A*Math.PI,lumensToCandela:A=>A/(4*Math.PI),todeg:h,torad:M,toFixed:(A,I=3)=>1*A.toFixed(I),toRound:(A,I=3)=>Math.trunc(A),clamp:(A,I=0,g=1)=>A=(A=A<I?I:A)>g?g:A,clampA:(A,I,g)=>Math.max(I,Math.min(g,A)),smoothstep:(A,I,g)=>A*(g=-2*(g=s.clamp(g))*g*g+3*g*g)+I*(1-g),remap:(A,I,g,C,B)=>C+(A-I)*(B-C)/(g-I),lerp:(A,I,g)=>(1-g)*A+g*I,damp:(A,I,g,C)=>s.lerp(A,I,1-Math.exp(-g*C)),nearAngle:(A,I,g=!1)=>I+Math.atan2(Math.sin(A-I),Math.cos(A-I))*(g?h:1),unwrapDeg:A=>A-360*Math.floor((A+180)/360),unwrapRad:A=>Math.atan2(Math.sin(A),Math.cos(A)),nearEquals:(A,I,g=1e-4)=>Math.abs(A-I)<=g,autoSize:(A=[1,1,1],I="box")=>{1===A.length&&(A[1]=A[0]);let g=A[0],C=A[1];return"sphere"===I&&(A=[g,g,g]),"cylinder"!==I&&"wheel"!==I&&"capsule"!==I||(A=[g,C,g]),"cone"!==I&&"pyramid"!==I||(A=[g,C,g]),2===A.length&&(A[2]=A[0]),A},shuffle:A=>{let I=A.map((A=>({value:A,sort:Math.random()}))).sort(((A,I)=>A.sort-I.sort)).map((({value:A})=>A));return I},randomSign:()=>Math.random()<.5?-1:1,randSpread:A=>A*(.5-Math.random()),rand:(A=0,I=1)=>A+Math.random()*(I-A),randInt:(A,I)=>A+Math.floor(Math.random()*(I-A+1)),randIntUnic:(A,I,g)=>{for(var C=[];C.length<g;){var B=s.randInt(A,I);-1===C.indexOf(B)&&C.push(B)}return C},fromTransform:(A,I,g,C=[0,0,0,1],B=!1)=>{let Q=s.composeMatrixArray(A,I),E=s.composeMatrixArray(g,C);return B&&(Q=s.invertMatrixArray(Q)),Q=s.multiplyMatrixArray(Q,E),[Q[12],Q[13],Q[14]]},fromTransformToQ:(A,I,g=!1)=>{let C=s.composeMatrixArray(A,I),B=s.decomposeFullMatrixArray(C).q;return g&&(B=s.quatInvert(B)),B},lerpTransform:(A,I,g)=>{let C=A[0],B=A[1],Q=I[0],E=I[1];return Q=s.lerpArray(C,Q,g),E=s.slerpQuatArray(B,E,g),[Q,E]},composeMatrixArray:(A,I,g=[1,1,1])=>{const C=I[0],B=I[1],Q=I[2],E=I[3],i=C+C,D=B+B,o=Q+Q,w=C*i,S=C*D,G=C*o,k=B*D,U=B*o,M=Q*o,h=E*i,y=E*D,J=E*o,s=g[0],K=g[1],F=g[2];return[(1-(k+M))*s,(S+J)*s,(G-y)*s,0,(S-J)*K,(1-(w+M))*K,(U+h)*K,0,(G+y)*F,(U-h)*F,(1-(w+k))*F,0,A[0],A[1],A[2],1]},multiplyMatrixArray:(A,I)=>{const g=A,C=I,B=[],Q=g[0],E=g[4],i=g[8],D=g[12],o=g[1],w=g[5],S=g[9],G=g[13],k=g[2],U=g[6],M=g[10],h=g[14],y=g[3],J=g[7],s=g[11],K=g[15],F=C[0],N=C[4],a=C[8],R=C[12],Y=C[1],L=C[5],c=C[9],q=C[13],l=C[2],H=C[6],t=C[10],e=C[14],r=C[3],p=C[7],T=C[11],O=C[15];return B[0]=Q*F+E*Y+i*l+D*r,B[4]=Q*N+E*L+i*H+D*p,B[8]=Q*a+E*c+i*t+D*T,B[12]=Q*R+E*q+i*e+D*O,B[1]=o*F+w*Y+S*l+G*r,B[5]=o*N+w*L+S*H+G*p,B[9]=o*a+w*c+S*t+G*T,B[13]=o*R+w*q+S*e+G*O,B[2]=k*F+U*Y+M*l+h*r,B[6]=k*N+U*L+M*H+h*p,B[10]=k*a+U*c+M*t+h*T,B[14]=k*R+U*q+M*e+h*O,B[3]=y*F+J*Y+s*l+K*r,B[7]=y*N+J*L+s*H+K*p,B[11]=y*a+J*c+s*t+K*T,B[15]=y*R+J*q+s*e+K*O,B},invertMatrixArray:A=>{const I=A,g=I[0],C=I[1],B=I[2],Q=I[3],E=I[4],i=I[5],D=I[6],o=I[7],w=I[8],S=I[9],G=I[10],k=I[11],U=I[12],M=I[13],h=I[14],y=I[15],J=S*h*o-M*G*o+M*D*k-i*h*k-S*D*y+i*G*y,s=U*G*o-w*h*o-U*D*k+E*h*k+w*D*y-E*G*y,K=w*M*o-U*S*o+U*i*k-E*M*k-w*i*y+E*S*y,F=U*S*D-w*M*D-U*i*G+E*M*G+w*i*h-E*S*h,N=g*J+C*s+B*K+Q*F;if(0===N)return[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];const a=1/N;return I[0]=J*a,I[1]=(M*G*Q-S*h*Q-M*B*k+C*h*k+S*B*y-C*G*y)*a,I[2]=(i*h*Q-M*D*Q+M*B*o-C*h*o-i*B*y+C*D*y)*a,I[3]=(S*D*Q-i*G*Q-S*B*o+C*G*o+i*B*k-C*D*k)*a,I[4]=s*a,I[5]=(w*h*Q-U*G*Q+U*B*k-g*h*k-w*B*y+g*G*y)*a,I[6]=(U*D*Q-E*h*Q-U*B*o+g*h*o+E*B*y-g*D*y)*a,I[7]=(E*G*Q-w*D*Q+w*B*o-g*G*o-E*B*k+g*D*k)*a,I[8]=K*a,I[9]=(U*S*Q-w*M*Q-U*C*k+g*M*k+w*C*y-g*S*y)*a,I[10]=(E*M*Q-U*i*Q+U*C*o-g*M*o-E*C*y+g*i*y)*a,I[11]=(w*i*Q-E*S*Q-w*C*o+g*S*o+E*C*k-g*i*k)*a,I[12]=F*a,I[13]=(w*M*B-U*S*B+U*C*G-g*M*G-w*C*h+g*S*h)*a,I[14]=(U*i*B-E*M*B-U*C*D+g*M*D+E*C*h-g*i*h)*a,I[15]=(E*S*B-w*i*B+w*C*D-g*S*D-E*C*G+g*i*G)*a,I},matrixArrayDeterminant:A=>{const I=A,g=I[0],C=I[4],B=I[8],Q=I[12],E=I[1],i=I[5],D=I[9],o=I[13],w=I[2],S=I[6],G=I[10],k=I[14];return I[3]*(+Q*D*S-B*o*S-Q*i*G+C*o*G+B*i*k-C*D*k)+I[7]*(+g*D*k-g*o*G+Q*E*G-B*E*k+B*o*w-Q*D*w)+I[11]*(+g*o*S-g*i*k-Q*E*S+C*E*k+Q*i*w-C*o*w)+I[15]*(-B*i*w-g*D*S+g*i*G+B*E*S-C*E*G+C*D*w)},decomposeMatrixArray:A=>[A[12],A[13],A[14]],decomposeFullMatrixArray:A=>{const I=A;let g=s.lengthArray([I[0],I[1],I[2]]);const C=s.lengthArray([I[4],I[5],I[6]]),B=s.lengthArray([I[8],I[9],I[10]]);s.matrixArrayDeterminant(A)<0&&(g=-g);let Q=[...A];const E=1/g,i=1/C,D=1/B;Q[0]*=E,Q[1]*=E,Q[2]*=E,Q[4]*=i,Q[5]*=i,Q[6]*=i,Q[8]*=D,Q[9]*=D,Q[10]*=D;let o=s.quatFromRotationMatrix(Q);return{p:[A[12],A[13],A[14]],q:o,s:[g,C,B]}},applyTransformArray:(A,I,g,C=[1,1,1])=>{const B=s.composeMatrixArray(I,g,C),Q=A[0],E=A[1],i=A[2],D=1/(B[3]*Q+B[7]*E+B[11]*i+B[15]);return[(B[0]*Q+B[4]*E+B[8]*i+B[12])*D,(B[1]*Q+B[5]*E+B[9]*i+B[13])*D,(B[2]*Q+B[6]*E+B[10]*i+B[14])*D]},slerpQuatArray:(A,I,g)=>{if(0===g)return A;if(1===g)return I;let C=[...A];const B=A[0],Q=A[1],E=A[2],i=A[3],D=I[0],o=I[1],w=I[2],S=I[3];let G=i*S+B*D+Q*o+E*w;if(G<0?(C=[-D,-o,-w,-S],G=-G):C=[...I],G>=1)return A;const k=1-G*G;if(k<=y){const A=1-g;return C[3]=A*i+g*C[3],C[0]=A*B+g*C[0],C[1]=A*Q+g*C[1],C[2]=A*E+g*C[2],s.quatNomalize(C)}const U=Math.sqrt(k),M=Math.atan2(U,G),h=Math.sin((1-g)*M)/U,J=Math.sin(g*M)/U;return C[3]=i*h+C[3]*J,C[0]=B*h+C[0]*J,C[1]=Q*h+C[1]*J,C[2]=E*h+C[2]*J,C},toLocalQuatArray:(A=[0,0,0],I)=>{let g=s.quatFromEuler(A),C=s.quatInvert(I.quaternion.toArray());return s.quatMultiply(C,g)},quatFromRotationMatrix:A=>{let I=[0,0,0,1];const g=A,C=g[0],B=g[4],Q=g[8],E=g[1],i=g[5],D=g[9],o=g[2],w=g[6],S=g[10],G=C+i+S;if(G>0){const A=.5/Math.sqrt(G+1);I[3]=.25/A,I[0]=(w-D)*A,I[1]=(Q-o)*A,I[2]=(E-B)*A}else if(C>i&&C>S){const A=2*Math.sqrt(1+C-i-S);I[3]=(w-D)/A,I[0]=.25*A,I[1]=(B+E)/A,I[2]=(Q+o)/A}else if(i>S){const A=2*Math.sqrt(1+i-C-S);I[3]=(Q-o)/A,I[0]=(B+E)/A,I[1]=.25*A,I[2]=(D+w)/A}else{const A=2*Math.sqrt(1+S-C-i);I[3]=(E-B)/A,I[0]=(Q+o)/A,I[1]=(D+w)/A,I[2]=.25*A}return I},quatFromEuler:(A=[0,0,0],I=!0)=>{const g=Math.cos,C=Math.sin,B=I?M:1,Q=A[0]*B*.5,E=A[1]*B*.5,i=A[2]*B*.5,D=g(Q),o=g(E),w=g(i),S=C(Q),G=C(E),k=C(i);return[S*o*w+D*G*k,D*G*w-S*o*k,D*o*k+S*G*w,D*o*w-S*G*k]},quatFromAxis:(A=[0,0,0],I,g=!0)=>{const C=.5*I*(g?M:1),B=Math.sin(C);return[A[0]*B,A[1]*B,A[2]*B,Math.cos(C)]},quatNomalize:A=>{let I=s.lengthArray(A);return 0===I?[0,0,0,1]:(I=1/I,s.scaleArray(A,I,4))},quatInvert:A=>[-A[0],-A[1],-A[2],A[3]],quatMultiply:(A,I)=>{const g=A[0],C=A[1],B=A[2],Q=A[3],E=I[0],i=I[1],D=I[2],o=I[3];return[g*o+Q*E+C*D-B*i,C*o+Q*i+B*E-g*D,B*o+Q*D+g*i-C*E,Q*o-g*E-C*i-B*D]},quatToAxis:A=>{let I=2*Math.acos(A[3]);const g=Math.sqrt(1-A[3]*A[3]);return g<1e-4?[1,0,0]:[A[0]/g,A[1]/g,A[2]/g,I]},eulerFromMatrix:A=>{const I=A[0],g=A[4],C=A[8];A[1];const B=A[5],Q=A[9];A[2];const E=A[6],i=A[10];let D=[0,0,0];return D[1]=Math.asin(s.clamp(C,-1,1)),Math.abs(C)<.9999999?(D[0]=Math.atan2(-Q,i),D[2]=Math.atan2(-g,I)):(D[0]=Math.atan2(E,B),D[2]=0),D},angleTo:(A,I)=>2*Math.acos(Math.abs(s.clamp(s.dotArray(A,I),-1,1))),fixedArray:(A,I)=>{let g=A.length,C=[];for(;g--;)C[g]=s.toFixed(A[g],I);return C},getSize:A=>.001*A.byteLength+"kb",perpendicularArray:A=>{const I=Math.sqrt(A[0]*A[0]+A[1]*A[1]+A[2]*A[2]);let g=Math.acos(A[1]/I);const C=Math.atan2(A[2],A[0]);g>J?g-=J:g+=J;return[I*Math.sin(g)*Math.cos(C),I*Math.cos(g),I*Math.sin(g)*Math.sin(C)]},crossArray:(A,I)=>{const g=A[0],C=A[1],B=A[2],Q=I[0],E=I[1],i=I[2];return[C*i-B*E,B*Q-g*i,g*E-C*Q]},applyQuaternion:(A,I)=>{const g=A[0],C=A[1],B=A[2],Q=I[0],E=I[1],i=I[2],D=I[3],o=2*(E*B-i*C),w=2*(i*g-Q*B),S=2*(Q*C-E*g);return[g+D*o+E*S-i*w,C+D*w+i*o-Q*S,B+D*S+Q*w-E*o]},nullArray:(A,I,g)=>{let C=0;for(;g--;)C+=A[I+g];return C},equalArray:(A,I)=>{let g=A.length;for(;g--;)if(A[g]!==I[g])return!1;return!0},lerpArray:(A,I,g)=>{if(0===g)return A;if(1===g)return I;let C=A.length,B=[];for(;C--;)B[C]=A[C],B[C]+=(I[C]-B[C])*g;return B},zeroArray:(A,I=0,g)=>{for(g=g??A.length;g--;)A[I+g]=0;return A},lengthArray:A=>{let I=A.length,g=0;for(;I--;)g+=A[I]*A[I];return Math.sqrt(g)},dotArray:(A,I)=>{let g=A.length,C=0;for(;g--;)C+=A[g]*I[g];return C},addArray:(A,I,g)=>{g=g??A.length;let C=[];for(;g--;)C[g]=A[g]+I[g];return C},subArray:(A,I,g)=>{g=g??A.length;let C=[];for(;g--;)C[g]=A[g]-I[g];return C},mulArray:(A,I,g)=>{if(I instanceof Array){let C=[];for(g=g??A.length;g--;)C[g]=A[g]*I[g];return C}return A.map((A=>A*I))},worldscale:(A,I)=>A.map((A=>A*I)),divArray:(A,I,g)=>s.mulArray(A,1/I,g),scaleArray:(A,I,g)=>s.mulArray(A,I,g),fillArray:(A,I,g=0,C)=>{for(C=C??A.length;C--;)I[g+C]=A[C]},copyArray:(A,I)=>{},cloneArray:A=>[...A],distanceArray:(A,I=[0,0,0])=>s.lengthArray(s.subArray(A,I)),normalizeArray:A=>s.divArray(A,s.lengthArray(A)||1),normalArray:(A,I=[0,0,0])=>s.normalizeArray(s.subArray(I,A)),getCenter:(A,I)=>(A.computeBoundingBox(),A.boundingBox.getCenter(I)),getVolume:(A,I,g=null)=>{let C=1,B=I;switch(A){case"sphere":C=4*Math.PI*B[0]*B[0]*B[0]/3;break;case"cone":C=Math.PI*B[0]*(.5*B[1])*2;break;case"box":C=.5*B[0]*8*(.5*B[1])*(.5*B[2]);break;case"cylinder":C=Math.PI*B[0]*B[0]*(.5*B[1])*2;break;case"capsule":C=4*Math.PI*B[0]*B[0]*B[0]/3+Math.PI*B[0]*B[0]*(.5*B[1])*2;break;case"convex":case"mesh":C=s.getConvexVolume(g)}return C},getConvexVolume:A=>{let I,g=A.length/3,C=[0,0,0],B=[0,0,0];for(;g--;)I=3*g,A[I]<C[0]?C[0]=A[I]:A[I]>B[0]&&(B[0]=A[I]),A[I+1]<C[1]?C[1]=A[I+1]:A[I+1]>B[1]&&(B[1]=A[I+1]),A[I+2]<C[2]?C[2]=A[I+2]:A[I+2]>B[2]&&(B[2]=A[I+2]);let Q=[B[0]-C[0],B[1]-C[1],B[2]-C[2]];return.5*Q[0]*8*(.5*Q[1])*(.5*Q[2])},massFromDensity:(A,I)=>A*I,densityFromMass:(A,I)=>A/I,toNonIndexed:A=>A.index?A.clone().toNonIndexed():A,getIndex:(A,I)=>!A.index||I?null:A.index.array||null,getSameVertex:A=>{const I=A.getAttribute("position"),g=I.array,C=[],B=[],Q={};new THREE.Vector3;let E,i=0;s.getHash(A);let D,o,w=!1,S=0;for(let A=0;A<I.count;A++){i=3*A,D={x:g[i],y:g[i+1],z:g[i+2],id:A},w=!1,E=C.length;for(let I=0;I<E;I++)o=C[I],D.x===o.x&&D.y===o.y&&D.z===o.z&&(w=!0,Q[A]=o.id);w||(D.id=S++,C.push(D),B.push([D.x,D.y,D.z]))}return[B,Q]},getVertex:(A,I)=>{let g=A.attributes.position.array;return I&&A.index&&(g=(A=A.clone().toNonIndexed()).attributes.position.array),g},getNormal:A=>A.attributes.normal.array,getFaces:A=>{let I=[];if(A.index){let g=A.getIndex();for(let A=0;A<g.count;A+=3)I.push([g.getX(A),g.getX(A+1),g.getX(A+2)])}else{let g=A.getAttribute("position").count;for(let A=0;A<g;A+=3)I.push([A,A+1,A+2])}return I},getConnectedFaces:A=>{const I=[];let g,C,B,Q,E,i,D,o=A.length,w=o;for(;w--;)for(C=A[w],g=o;g--;)g!==w&&(B=A[g],Q=C.filter((A=>B.includes(A))),Q.length>1&&(D=[],E=[...C],i=E.indexOf(Q[0]),E.splice(i,1),i=E.indexOf(Q[1]),E.splice(i,1),D.push(E[0]),E=[...B],i=E.indexOf(Q[0]),E.splice(i,1),i=E.indexOf(Q[1]),E.splice(i,1),D.push(E[0]),I.push(D)));return I},reduce:A=>{},barycentric:(A,I)=>{},solve:(A,I)=>{},getHash:(A,I=1e-4)=>{I=Math.max(I,Number.EPSILON);const g={},C={},B=A.getAttribute("position"),Q=B.count,E=B.array,i=.5*I,D=Math.log10(1/I),o=Math.pow(10,D),w=i*o;let S;for(let A=0;A<Q;A++){S=3*A;let I=`${~~(E[S]*o+w)},${~~(E[S+1]*o+w)},${~~(E[S+2]*o+w)}`;g[I]?g[I].push(A):g[I]=[A]}let G=0;for(let A in g)C[G++]=g[A];return C}},K=s;class F extends k{constructor(){super(),this.Utils=B,this.type="ray",this.ray=new RAPIER.Ray({x:0,y:0,z:0},{x:0,y:0,z:0}),this.v1=new Q(0,0,0),this.v2=new Q(0,0,0)}step(){const A=C.Ar,I=C.ArPos[this.type];C.reflow.ray=[];let g,B,Q,E,i=this.list.length,D=0;for(;i--;){B=I+i*G.ray,g=this.list[i],Q=g.getPoint(),A[B]=0,this.v1.fromArray(Q[0]),this.v2.fromArray(Q[1]),D=K.distanceArray(Q[0],Q[1]),A[B+1]=D,this.v2.fromArray(K.normalArray(Q[0],Q[1])),this.ray.origin=this.v1,this.ray.dir=this.v2;let o=!0;C.world.intersectionsWithRay(this.ray,D,g.solid,(I=>{let D=I.collider._parent.name;if(!g.selfHit&&g.parent&&D===g.parent)return!0;if(!o)return!0;o=!1,A[B]=1;let w=this.ray.pointAt(I.toi);E=[w.x,w.y,w.z],A[B+1]=K.distanceArray(Q[0],E),A[B+2]=Q[0][0],A[B+3]=Q[0][1],A[B+4]=Q[0][2],A[B+5]=w.x,A[B+6]=w.y,A[B+7]=w.z,A[B+8]=I.normal.x,A[B+9]=I.normal.y,A[B+10]=I.normal.z,C.reflow.ray[i]=I.collider._parent.name}))}}add(A={}){this.setName(A);let I=new N(A);this.addToWorld(I,A.id)}set(A={},I=null){}}class N{constructor(A={}){this.type="ray",this.name=A.name,this.group=void 0!==A.group||68719476735,this.parent=A.parent||"",this.selfHit=A.selfHit||!1,this.noRotation=A.noRotation||!1,this.begin=A.begin||[0,0,0],this.end=A.end||[0,0,1],this.solid=!1}getPoint(){if(this.parent){const A=B.byName(this.parent);if(A){let I=A.translation(),g=A.rotation();const C=[I.x,I.y,I.z],B=this.noRotation?[0,0,0,1]:[g.x,g.y,g.z,g.w];return[K.applyTransformArray(this.begin,C,B),K.applyTransformArray(this.end,C,B)]}}return[this.begin,this.end]}}class a extends k{constructor(){super(),this.Utils=B,this.type="body",this.itype="body",this.num=G[this.type],this.full=!1,this.p=new Q,this.q=new E,this.v=new Q,this.v2=new Q,this.r=new Q}setFull(A){this.num=G[A?"bodyFull":"body"],this.full=A}step(){const A=C.Ar,I=C.ArPos[this.itype];let g,B,Q=this.list.length;for(;Q--;)g=this.list[Q],B=I+Q*this.num,A[B]=g.isSleeping()?0:1,this.p.copy(g.translation()).toArray(A,B+1),this.q.copy(g.rotation()).toArray(A,B+4),this.full&&(this.v.copy(g.linvel()).toArray(A,B+8),this.r.copy(g.angvel()).toArray(A,B+11),1===A[B]&&(A[B]=9.8*this.v.length()))}shape(A={}){let I,g,C=A.type||"box",B=A.size||[1,1,1];switch(C){case"plane":1===B[0]&&(B=[300,0,300]),g=[.5*B[0],0,.5*B[2],.5*B[0],0,.5*-B[2],.5*-B[0],0,.5*-B[2],.5*-B[0],0,.5*B[2]],I=RAPIER.ColliderDesc.convexHull(g);break;case"box":I=RAPIER.ColliderDesc.cuboid(.5*B[0],.5*B[1],.5*B[2]);break;case"ChamferBox":I=RAPIER.ColliderDesc.roundCuboid(.5*B[0],.5*B[1],.5*B[2],A.radius);break;case"sphere":I=RAPIER.ColliderDesc.ball(B[0]);break;case"cone":I=RAPIER.ColliderDesc.cone(.5*B[1],B[0]);break;case"ChamferCone":I=RAPIER.ColliderDesc.roundCone(.5*B[1],B[0],A.radius);break;case"cylinder":I=RAPIER.ColliderDesc.cylinder(.5*B[1],B[0]);break;case"ChamferCyl":I=RAPIER.ColliderDesc.roundCylinder(.5*B[1],B[0],A.radius);break;case"capsule":I=RAPIER.ColliderDesc.capsule(.5*B[1],B[0]);break;case"convex":I=RAPIER.ColliderDesc.convexHull(A.v,A.index||null);break;case"convexmesh":I=RAPIER.ColliderDesc.convexMesh(A.v,A.index||null);break;case"roundConvexHull":I=RAPIER.ColliderDesc.roundConvexHull(A.v,A.index||null,A.radius);break;case"roundConvexMesh":I=RAPIER.ColliderDesc.roundConvexMesh(A.v,A.index||null,A.radius);break;case"mesh":I=RAPIER.ColliderDesc.trimesh(A.v,A.index||null);break;case"heightfield":break;case"triangle":I=RAPIER.ColliderDesc.triangle((new Q).fromArray(A.v,0),(new Q).fromArray(A.v,3),(new Q).fromArray(A.v,6));break;case"roundTriangle":I=RAPIER.ColliderDesc.roundTriangle((new Q).fromArray(A.v,0),(new Q).fromArray(A.v,3),(new Q).fromArray(A.v,6),A.radius);break;case"segment":I=RAPIER.ColliderDesc.segment((new Q).fromArray(A.v,0),(new Q).fromArray(A.v,3));break;case"polyline":I=RAPIER.ColliderDesc.polyline(A.v,A.index||null)}let E=A.localPos||[0,0,0];I.setTranslation(E[0],E[1],E[2]),this.q.fromArray(A.localQuat||[0,0,0,1]),I.setRotation(this.q);let i=A.density||0;return void 0!==A.mass&&(i=K.densityFromMass(A.mass,K.getVolume(C,B,A.v))),I.setDensity(i),void 0!==A.friction&&(0===A.friction&&(A.friction=1e-5),I.setFriction(A.friction)),void 0!==A.restitution&&I.setRestitution(A.restitution),void 0!==A.sensor&&I.setSensor(A.sensor),void 0!==A.isTrigger&&I.setSensor(A.isTrigger),I}add(A={}){let I,B=this.setName(A);switch(this.type){case"body":I=A.kinematic?RAPIER.RigidBodyDesc.kinematicVelocityBased():RAPIER.RigidBodyDesc.dynamic();break;case"solid":I=RAPIER.RigidBodyDesc.fixed()}let Q,E=C.world.createRigidBody(I);switch(A.type){case"null":Q=C.world.createCollider(this.shape({type:"segment",v:[-.01,0,0,.01,0,0],sensor:!0}),E),g.set(Q.handle,Q);break;case"compound":let I;for(var i=0;i<A.shapes.length;i++)I=A.shapes[i],void 0!==A.density&&(I.density=A.density),void 0!==A.friction&&(I.friction=A.friction),void 0!==A.restitution&&(I.restitution=A.restitution),void 0!==A.mask&&(I.collisionMask=A.mask),void 0!==A.group&&(I.collisionGroup=A.group),I.pos&&(I.localPos=I.pos),I.quat&&(I.localQuat=I.quat),Q=C.world.createCollider(this.shape(I),E),g.set(Q.handle,Q);break;default:A.shapeType&&(A.type=A.shapeType),Q=C.world.createCollider(this.shape(A),E),g.set(Q.handle,Q)}E.name=B,E.type=this.type,E.first=!0,E.collid=Q,E.isSensor=!!A.isTrigger&&A.isTrigger,E.isKinematic=A.kinematic||!1,A.kinematic&&(E.pos=A.pos||[0,0,0],E.quat=A.quat||[0,0,0,1]),this.addToWorld(E,A.id),this.set(A,E)}set(A={},I=null){if(null===I&&(I=this.byName(A.name)),null===I)return;let g=!A.activate||A.activate;A.sleep&&(I.sleep(),g=!1),(A.activate||A.wake)&&I.wakeUp(),A.noGravity&&I.setGravityScale(0),(A.pos||A.quat)&&(A.pos&&I.setTranslation(this.v.fromArray(A.pos),g),A.quat&&I.setRotation(this.q.fromArray(A.quat),g)),A.force&&(A.force=K.scaleArray(A.force,C.timestep,3),I.addForce(this.v.fromArray(A.force),g)),A.worldForce&&I.addForceAtPoint(this.v.fromArray(A.worldForce),this.v.fromArray(A.worldForce,3),g),A.torque&&I.addTorque(this.v.fromArray(A.torque),g),A.impulse&&(A.impulseCenter?I.applyImpulseAtPoint(this.v.fromArray(A.impulse),this.v2.fromArray(A.impulseCenter),g):I.applyImpulse(this.v.fromArray(A.impulse),g)),A.angularImpulse&&I.applyTorqueImpulse(this.v.fromArray(A.angularImpulse),g),void 0!==A.linearFactor&&I.restrictTranslations(!!A.linearFactor[0],!!A.linearFactor[1],!!A.linearFactor[2],g),void 0!==A.angularFactor&&I.restrictRotations(0!==A.angularFactor[0],0!==A.angularFactor[1],0!==A.angularFactor[2],g),void 0!==A.lockPosition&&I.lockTranslations(A.lockRotation,g),void 0!==A.lockRotation&&I.lockRotations(A.lockRotation,g),A.linearVelocity&&I.setLinvel(this.v.fromArray(A.linearVelocity),g),A.angularVelocity&&I.setAngvel(this.v.fromArray(A.angularVelocity),g),void 0!==A.gravityScale&&I.setGravityScale(A.gravityScale,g),void 0!==A.gravity&&I.setGravityScale(A.gravity?1:0),A.dominance&&I.setDominanceGroup(A.dominance),A.damping&&(I.setLinearDamping(A.damping[0]),I.setAngularDamping(A.damping[1])),A.reset&&(I.setLinvel(this.v.set(0,0,0),!1),I.setAngvel(this.v.set(0,0,0),!1)),A.massInfo&&this.getMassInfo(I)}getMassInfo(A){if("string"==typeof A&&(A=this.byName(A)),null===A)return;if("body"!==this.type)return;const I={mass:A.mass()};console.log(I)}clearShapes(A={},I=null){let C=I.numColliders();for(;C--;)g.delete(I.collider(C))}setShapes(A={},I=null){let C,B=I.numColliders();for(;B--;)C=g.get(I.collider(B)),void 0!==A.density&&C.setDensity(A.density),void 0!==A.friction&&C.setFriction(A.friction),void 0!==A.restitution&&C.setRestitution(A.restitution)}}class R extends k{constructor(){super(),this.Utils=B,this.type="joint",this.v1=new Q,this.v2=new Q,this.p1=new Q,this.p2=new Q,this.q1=new E,this.q2=new E,this.q3=new E}step(){C.ArPos[this.type];let A,I=this.list.length;for(;I--;)A=this.list[I],A.visible}add(A={}){this.v;let I=this.setName(A);const g=this.byName(A.b1),B=this.byName(A.b2);g&&g.wakeUp(),B&&B.wakeUp();const Q=A.mode||"revolute";let E,i=this.v1.fromArray(A.pos1||[0,0,0]),D=this.v2.fromArray(A.pos2||[0,0,0]),o=this.q1.fromArray(A.quat1||[0,0,0,1]),w=this.q2.fromArray(A.quat2||[0,0,0,1]),S=this.p1.fromArray(A.axis1||[1,0,0]);switch(this.p2.fromArray(A.axis2||[1,0,0]),Q){case"spherical":default:E=RAPIER.JointData.spherical(i,D);break;case"hinge":case"revolute":E=RAPIER.JointData.revolute(i,D,S);break;case"slider":case"prismatic":E=RAPIER.JointData.prismatic(i,D,S);break;case"fixe":E=RAPIER.JointData.fixed(i,o,D,w)}let G=void 0!==A.collision&&A.collision;const k=C.world.createImpulseJoint(E,g,B,G);k.data=E,k.name=I,k.mode=Q,k.type=this.type,k.b1=g,k.b2=B,k.visible=!1,this.set(A,k),this.addToWorld(k,A.id)}limit(A,I=[0,0],g=!1){let C=g?1:M;A.limitsEnabled=!0,A.limits=[I[0]*C,I[1]*C]}set(A={},I=null){null===I&&(I=this.byName(A.name)),null!==I&&(void 0!==A.visible&&(I.visible=A.visible),A.lm&&this.limit(I.data,A.lm,"prismatic"===I.mode||"slider"===I.mode))}}class Y extends k{constructor(){super(),this.Utils=B,this.type="contact"}step(){const A=C.Ar,I=C.ArPos[this.type];let g,B,Q=this.list.length;for(;Q--;)g=this.list[Q],B=I+Q*G.contact,null!==g.b2?g.b1.isSensor||g.b2.isSensor?A[B]=C.world.intersectionPair(g.b1,g.b2)?1:0:(A[B]=0,C.world.contactPair(g.b1,g.b2,((I,g)=>{A[B]=1}))):g.b1.isSensor?C.world.contactsWith(g.c1,(A=>{})):C.world.contactsWith(collider,(A=>{}))}add(A={}){if(this.setName(A),A.b1=this.byName(A.b1),A.b2=this.byName(A.b2),null===A.b1)return;A.b1.collid.setActiveEvents(RAPIER.ActiveEvents.COLLISION_EVENTS);let I=new L(A);this.addToWorld(I,A.id)}}class L{constructor(A={}){this.type="contact",this.name=A.name,this.b1=A.b1||null,this.b2=A.b2||null,this.c1=null,this.c2=null,this.b1&&(this.c1=this.b1.collid),this.b2&&(this.c2=this.b2.collid),this.ignore=A.ignore||[],this.result={hit:!1,point:[0,0,0],normal:[0,0,0],distance:0}}update(){}}var c="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};let q;const l=new Array(128).fill(void 0);function H(A){return l[A]}l.push(void 0,null,!0,!1);let t=l.length;function e(A){t===l.length&&l.push(l.length+1);const I=t;return t=l[I],l[I]=A,I}function r(A,I){try{return A.apply(this,I)}catch(A){q.__wbindgen_export_0(e(A))}}const p="undefined"!=typeof TextDecoder?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};"undefined"!=typeof TextDecoder&&p.decode();let T=null;function O(A,I){return A>>>=0,p.decode((null!==T&&0!==T.byteLength||(T=new Uint8Array(q.memory.buffer)),T).subarray(A,A+I))}function n(A){return null==A}let d=null;function Z(){return(null===d||!0===d.buffer.detached||void 0===d.buffer.detached&&d.buffer!==q.memory.buffer)&&(d=new DataView(q.memory.buffer)),d}function f(A){const I=H(A);return(g=A)<132||(l[g]=t,t=g),I;var g}function b(A,I){if(!(A instanceof I))throw new Error(`expected instance of ${I.name}`)}let P=128;function x(A){if(1==P)throw new Error("out of js stack");return l[--P]=A,P}let W=null;let j=null;function m(){return null!==j&&0!==j.byteLength||(j=new Float32Array(q.memory.buffer)),j}function V(A,I){return A>>>=0,m().subarray(A/4,A/4+I)}let X=null;function v(){return null!==X&&0!==X.byteLength||(X=new Uint32Array(q.memory.buffer)),X}let u=0;function z(A,I){const g=I(4*A.length,4)>>>0;return v().set(A,g/4),u=A.length,g}function _(A,I){const g=I(4*A.length,4)>>>0;return m().set(A,g/4),u=A.length,g}const $=Object.freeze({LinX:0,0:"LinX",LinY:1,1:"LinY",LinZ:2,2:"LinZ",AngX:3,3:"AngX",AngY:4,4:"AngY",AngZ:5,5:"AngZ"}),AA=Object.freeze({Revolute:0,0:"Revolute",Fixed:1,1:"Fixed",Prismatic:2,2:"Prismatic",Rope:3,3:"Rope",Spring:4,4:"Spring",Spherical:5,5:"Spherical",Generic:6,6:"Generic"}),IA=Object.freeze({Ball:0,0:"Ball",Cuboid:1,1:"Cuboid",Capsule:2,2:"Capsule",Segment:3,3:"Segment",Polyline:4,4:"Polyline",Triangle:5,5:"Triangle",TriMesh:6,6:"TriMesh",HeightField:7,7:"HeightField",Compound:8,8:"Compound",ConvexPolyhedron:9,9:"ConvexPolyhedron",Cylinder:10,10:"Cylinder",Cone:11,11:"Cone",RoundCuboid:12,12:"RoundCuboid",RoundTriangle:13,13:"RoundTriangle",RoundCylinder:14,14:"RoundCylinder",RoundCone:15,15:"RoundCone",RoundConvexPolyhedron:16,16:"RoundConvexPolyhedron",HalfSpace:17,17:"HalfSpace",Voxels:18,18:"Voxels"}),gA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawbroadphase_free(A>>>0,1)));class CA{static __wrap(A){A>>>=0;const I=Object.create(CA.prototype);return I.__wbg_ptr=A,gA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,gA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawbroadphase_free(A,0)}constructor(){const A=q.rawbroadphase_new();return this.__wbg_ptr=A>>>0,gA.register(this,this.__wbg_ptr,this),this}castRay(A,I,g,C,B,Q,E,i,D,o,w,S){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,MI);const G=q.rawbroadphase_castRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q,E,i,n(D)?4294967297:D>>>0,!n(o),n(o)?0:o,!n(w),n(w)?0:w,x(S));return 0===G?void 0:vA.__wrap(G)}finally{l[P++]=void 0}}castRayAndGetNormal(A,I,g,C,B,Q,E,i,D,o,w,S){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,MI);const G=q.rawbroadphase_castRayAndGetNormal(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q,E,i,n(D)?4294967297:D>>>0,!n(o),n(o)?0:o,!n(w),n(w)?0:w,x(S));return 0===G?void 0:zA.__wrap(G)}finally{l[P++]=void 0}}intersectionsWithRay(A,I,g,C,B,Q,E,i,D,o,w,S,G){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,MI),q.rawbroadphase_intersectionsWithRay(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q,E,x(i),D,n(o)?4294967297:o>>>0,!n(w),n(w)?0:w,!n(S),n(S)?0:S,x(G))}finally{l[P++]=void 0,l[P++]=void 0}}intersectionWithShape(A,I,g,C,B,Q,E,i,D,o,w){try{const k=q.__wbindgen_add_to_stack_pointer(-16);b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,CI),b(Q,oI),q.rawbroadphase_intersectionWithShape(k,this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q.__wbg_ptr,E,n(i)?4294967297:i>>>0,!n(D),n(D)?0:D,!n(o),n(o)?0:o,x(w));var S=Z().getInt32(k+0,!0),G=Z().getFloat64(k+8,!0);return 0===S?void 0:G}finally{q.__wbindgen_add_to_stack_pointer(16),l[P++]=void 0}}projectPoint(A,I,g,C,B,Q,E,i,D,o){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI);const w=q.rawbroadphase_projectPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B,Q,n(E)?4294967297:E>>>0,!n(i),n(i)?0:i,!n(D),n(D)?0:D,x(o));return 0===w?void 0:jA.__wrap(w)}finally{l[P++]=void 0}}projectPointAndGetFeature(A,I,g,C,B,Q,E,i,D){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI);const o=q.rawbroadphase_projectPointAndGetFeature(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B,n(Q)?4294967297:Q>>>0,!n(E),n(E)?0:E,!n(i),n(i)?0:i,x(D));return 0===o?void 0:jA.__wrap(o)}finally{l[P++]=void 0}}intersectionsWithPoint(A,I,g,C,B,Q,E,i,D,o){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),q.rawbroadphase_intersectionsWithPoint(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,x(B),Q,n(E)?4294967297:E>>>0,!n(i),n(i)?0:i,!n(D),n(D)?0:D,x(o))}finally{l[P++]=void 0,l[P++]=void 0}}castShape(A,I,g,C,B,Q,E,i,D,o,w,S,G,k,U){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,CI),b(Q,MI),b(E,oI);const M=q.rawbroadphase_castShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q.__wbg_ptr,E.__wbg_ptr,i,D,o,w,n(S)?4294967297:S>>>0,!n(G),n(G)?0:G,!n(k),n(k)?0:k,x(U));return 0===M?void 0:SA.__wrap(M)}finally{l[P++]=void 0}}intersectionsWithShape(A,I,g,C,B,Q,E,i,D,o,w,S){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,CI),b(Q,oI),q.rawbroadphase_intersectionsWithShape(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q.__wbg_ptr,x(E),i,n(D)?4294967297:D>>>0,!n(o),n(o)?0:o,!n(w),n(w)?0:w,x(S))}finally{l[P++]=void 0,l[P++]=void 0}}collidersWithAabbIntersectingAabb(A,I,g,C,B,Q){try{b(A,ZA),b(I,II),b(g,oA),b(C,MI),b(B,MI),q.rawbroadphase_collidersWithAabbIntersectingAabb(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,x(Q))}finally{l[P++]=void 0}}}const BA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawccdsolver_free(A>>>0,1)));class QA{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,BA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawccdsolver_free(A,0)}constructor(){const A=q.rawccdsolver_new();return this.__wbg_ptr=A>>>0,BA.register(this,this.__wbg_ptr,this),this}}const EA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawcharactercollision_free(A>>>0,1)));class iA{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,EA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawcharactercollision_free(A,0)}constructor(){const A=q.rawcharactercollision_new();return this.__wbg_ptr=A>>>0,EA.register(this,this.__wbg_ptr,this),this}handle(){return q.rawcharactercollision_handle(this.__wbg_ptr)}translationDeltaApplied(){const A=q.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return MI.__wrap(A)}translationDeltaRemaining(){const A=q.rawcharactercollision_translationDeltaRemaining(this.__wbg_ptr);return MI.__wrap(A)}toi(){return q.rawcharactercollision_toi(this.__wbg_ptr)}worldWitness1(){const A=q.rawcharactercollision_worldWitness1(this.__wbg_ptr);return MI.__wrap(A)}worldWitness2(){const A=q.rawcharactercollision_worldWitness2(this.__wbg_ptr);return MI.__wrap(A)}worldNormal1(){const A=q.rawcharactercollision_worldNormal1(this.__wbg_ptr);return MI.__wrap(A)}worldNormal2(){const A=q.rawcharactercollision_worldNormal2(this.__wbg_ptr);return MI.__wrap(A)}}const DA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawcolliderset_free(A>>>0,1)));class oA{static __wrap(A){A>>>=0;const I=Object.create(oA.prototype);return I.__wbg_ptr=A,DA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,DA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawcolliderset_free(A,0)}coTranslation(A){const I=q.rawcolliderset_coTranslation(this.__wbg_ptr,A);return MI.__wrap(I)}coRotation(A){const I=q.rawcolliderset_coRotation(this.__wbg_ptr,A);return CI.__wrap(I)}coTranslationWrtParent(A){const I=q.rawcolliderset_coTranslationWrtParent(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}coRotationWrtParent(A){const I=q.rawcolliderset_coRotationWrtParent(this.__wbg_ptr,A);return 0===I?void 0:CI.__wrap(I)}coSetTranslation(A,I,g,C){q.rawcolliderset_coSetTranslation(this.__wbg_ptr,A,I,g,C)}coSetTranslationWrtParent(A,I,g,C){q.rawcolliderset_coSetTranslationWrtParent(this.__wbg_ptr,A,I,g,C)}coSetRotation(A,I,g,C,B){q.rawcolliderset_coSetRotation(this.__wbg_ptr,A,I,g,C,B)}coSetRotationWrtParent(A,I,g,C,B){q.rawcolliderset_coSetRotationWrtParent(this.__wbg_ptr,A,I,g,C,B)}coIsSensor(A){return 0!==q.rawcolliderset_coIsSensor(this.__wbg_ptr,A)}coShapeType(A){return q.rawcolliderset_coShapeType(this.__wbg_ptr,A)}coHalfspaceNormal(A){const I=q.rawcolliderset_coHalfspaceNormal(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}coHalfExtents(A){const I=q.rawcolliderset_coHalfExtents(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}coSetHalfExtents(A,I){b(I,MI),q.rawcolliderset_coSetHalfExtents(this.__wbg_ptr,A,I.__wbg_ptr)}coRadius(A){const I=q.rawcolliderset_coRadius(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coSetRadius(A,I){q.rawcolliderset_coSetRadius(this.__wbg_ptr,A,I)}coHalfHeight(A){const I=q.rawcolliderset_coHalfHeight(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coSetHalfHeight(A,I){q.rawcolliderset_coSetHalfHeight(this.__wbg_ptr,A,I)}coRoundRadius(A){const I=q.rawcolliderset_coRoundRadius(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coSetRoundRadius(A,I){q.rawcolliderset_coSetRoundRadius(this.__wbg_ptr,A,I)}coVoxelData(A){try{const C=q.__wbindgen_add_to_stack_pointer(-16);q.rawcolliderset_coVoxelData(C,this.__wbg_ptr,A);var I=Z().getInt32(C+0,!0),g=Z().getInt32(C+4,!0);let B;return 0!==I&&(B=function(A,I){return A>>>=0,(null!==W&&0!==W.byteLength||(W=new Int32Array(q.memory.buffer)),W).subarray(A/4,A/4+I)}(I,g).slice(),q.__wbindgen_export_1(I,4*g,4)),B}finally{q.__wbindgen_add_to_stack_pointer(16)}}coVoxelSize(A){const I=q.rawcolliderset_coVoxelSize(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}coSetVoxel(A,I,g,C,B){q.rawcolliderset_coSetVoxel(this.__wbg_ptr,A,I,g,C,B)}coPropagateVoxelChange(A,I,g,C,B,Q,E,i){q.rawcolliderset_coPropagateVoxelChange(this.__wbg_ptr,A,I,g,C,B,Q,E,i)}coCombineVoxelStates(A,I,g,C,B){q.rawcolliderset_coCombineVoxelStates(this.__wbg_ptr,A,I,g,C,B)}coVertices(A){try{const C=q.__wbindgen_add_to_stack_pointer(-16);q.rawcolliderset_coVertices(C,this.__wbg_ptr,A);var I=Z().getInt32(C+0,!0),g=Z().getInt32(C+4,!0);let B;return 0!==I&&(B=V(I,g).slice(),q.__wbindgen_export_1(I,4*g,4)),B}finally{q.__wbindgen_add_to_stack_pointer(16)}}coIndices(A){try{const Q=q.__wbindgen_add_to_stack_pointer(-16);q.rawcolliderset_coIndices(Q,this.__wbg_ptr,A);var I=Z().getInt32(Q+0,!0),g=Z().getInt32(Q+4,!0);let E;return 0!==I&&(E=(C=I,B=g,C>>>=0,v().subarray(C/4,C/4+B)).slice(),q.__wbindgen_export_1(I,4*g,4)),E}finally{q.__wbindgen_add_to_stack_pointer(16)}var C,B}coTriMeshFlags(A){const I=q.rawcolliderset_coTriMeshFlags(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coHeightFieldFlags(A){const I=q.rawcolliderset_coHeightFieldFlags(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coHeightfieldHeights(A){try{const C=q.__wbindgen_add_to_stack_pointer(-16);q.rawcolliderset_coHeightfieldHeights(C,this.__wbg_ptr,A);var I=Z().getInt32(C+0,!0),g=Z().getInt32(C+4,!0);let B;return 0!==I&&(B=V(I,g).slice(),q.__wbindgen_export_1(I,4*g,4)),B}finally{q.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldScale(A){const I=q.rawcolliderset_coHeightfieldScale(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}coHeightfieldNRows(A){const I=q.rawcolliderset_coHeightfieldNRows(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coHeightfieldNCols(A){const I=q.rawcolliderset_coHeightfieldNCols(this.__wbg_ptr,A);return 4294967297===I?void 0:I}coParent(A){try{const C=q.__wbindgen_add_to_stack_pointer(-16);q.rawcolliderset_coParent(C,this.__wbg_ptr,A);var I=Z().getInt32(C+0,!0),g=Z().getFloat64(C+8,!0);return 0===I?void 0:g}finally{q.__wbindgen_add_to_stack_pointer(16)}}coSetEnabled(A,I){q.rawcolliderset_coSetEnabled(this.__wbg_ptr,A,I)}coIsEnabled(A){return 0!==q.rawcolliderset_coIsEnabled(this.__wbg_ptr,A)}coSetContactSkin(A,I){q.rawcolliderset_coSetContactSkin(this.__wbg_ptr,A,I)}coContactSkin(A){return q.rawcolliderset_coContactSkin(this.__wbg_ptr,A)}coFriction(A){return q.rawcolliderset_coFriction(this.__wbg_ptr,A)}coRestitution(A){return q.rawcolliderset_coRestitution(this.__wbg_ptr,A)}coDensity(A){return q.rawcolliderset_coDensity(this.__wbg_ptr,A)}coMass(A){return q.rawcolliderset_coMass(this.__wbg_ptr,A)}coVolume(A){return q.rawcolliderset_coVolume(this.__wbg_ptr,A)}coCollisionGroups(A){return q.rawcolliderset_coCollisionGroups(this.__wbg_ptr,A)>>>0}coSolverGroups(A){return q.rawcolliderset_coSolverGroups(this.__wbg_ptr,A)>>>0}coActiveHooks(A){return q.rawcolliderset_coActiveHooks(this.__wbg_ptr,A)>>>0}coActiveCollisionTypes(A){return q.rawcolliderset_coActiveCollisionTypes(this.__wbg_ptr,A)}coActiveEvents(A){return q.rawcolliderset_coActiveEvents(this.__wbg_ptr,A)>>>0}coContactForceEventThreshold(A){return q.rawcolliderset_coContactForceEventThreshold(this.__wbg_ptr,A)}coContainsPoint(A,I){return b(I,MI),0!==q.rawcolliderset_coContainsPoint(this.__wbg_ptr,A,I.__wbg_ptr)}coCastShape(A,I,g,C,B,Q,E,i,D){b(I,MI),b(g,oI),b(C,MI),b(B,CI),b(Q,MI);const o=q.rawcolliderset_coCastShape(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q.__wbg_ptr,E,i,D);return 0===o?void 0:SI.__wrap(o)}coCastCollider(A,I,g,C,B,Q,E){b(I,MI),b(C,MI);const i=q.rawcolliderset_coCastCollider(this.__wbg_ptr,A,I.__wbg_ptr,g,C.__wbg_ptr,B,Q,E);return 0===i?void 0:SA.__wrap(i)}coIntersectsShape(A,I,g,C){return b(I,oI),b(g,MI),b(C,CI),0!==q.rawcolliderset_coIntersectsShape(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr)}coContactShape(A,I,g,C,B){b(I,oI),b(g,MI),b(C,CI);const Q=q.rawcolliderset_coContactShape(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B);return 0===Q?void 0:kI.__wrap(Q)}coContactCollider(A,I,g){const C=q.rawcolliderset_coContactCollider(this.__wbg_ptr,A,I,g);return 0===C?void 0:kI.__wrap(C)}coProjectPoint(A,I,g){b(I,MI);const C=q.rawcolliderset_coProjectPoint(this.__wbg_ptr,A,I.__wbg_ptr,g);return VA.__wrap(C)}coIntersectsRay(A,I,g,C){return b(I,MI),b(g,MI),0!==q.rawcolliderset_coIntersectsRay(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C)}coCastRay(A,I,g,C,B){return b(I,MI),b(g,MI),q.rawcolliderset_coCastRay(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C,B)}coCastRayAndGetNormal(A,I,g,C,B){b(I,MI),b(g,MI);const Q=q.rawcolliderset_coCastRayAndGetNormal(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C,B);return 0===Q?void 0:$A.__wrap(Q)}coSetSensor(A,I){q.rawcolliderset_coSetSensor(this.__wbg_ptr,A,I)}coSetRestitution(A,I){q.rawcolliderset_coSetRestitution(this.__wbg_ptr,A,I)}coSetFriction(A,I){q.rawcolliderset_coSetFriction(this.__wbg_ptr,A,I)}coFrictionCombineRule(A){return q.rawcolliderset_coFrictionCombineRule(this.__wbg_ptr,A)>>>0}coSetFrictionCombineRule(A,I){q.rawcolliderset_coSetFrictionCombineRule(this.__wbg_ptr,A,I)}coRestitutionCombineRule(A){return q.rawcolliderset_coRestitutionCombineRule(this.__wbg_ptr,A)>>>0}coSetRestitutionCombineRule(A,I){q.rawcolliderset_coSetRestitutionCombineRule(this.__wbg_ptr,A,I)}coSetCollisionGroups(A,I){q.rawcolliderset_coSetCollisionGroups(this.__wbg_ptr,A,I)}coSetSolverGroups(A,I){q.rawcolliderset_coSetSolverGroups(this.__wbg_ptr,A,I)}coSetActiveHooks(A,I){q.rawcolliderset_coSetActiveHooks(this.__wbg_ptr,A,I)}coSetActiveEvents(A,I){q.rawcolliderset_coSetActiveEvents(this.__wbg_ptr,A,I)}coSetActiveCollisionTypes(A,I){q.rawcolliderset_coSetActiveCollisionTypes(this.__wbg_ptr,A,I)}coSetShape(A,I){b(I,oI),q.rawcolliderset_coSetShape(this.__wbg_ptr,A,I.__wbg_ptr)}coSetContactForceEventThreshold(A,I){q.rawcolliderset_coSetContactForceEventThreshold(this.__wbg_ptr,A,I)}coSetDensity(A,I){q.rawcolliderset_coSetDensity(this.__wbg_ptr,A,I)}coSetMass(A,I){q.rawcolliderset_coSetMass(this.__wbg_ptr,A,I)}coSetMassProperties(A,I,g,C,B){b(g,MI),b(C,MI),b(B,CI),q.rawcolliderset_coSetMassProperties(this.__wbg_ptr,A,I,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr)}constructor(){const A=q.rawcolliderset_new();return this.__wbg_ptr=A>>>0,DA.register(this,this.__wbg_ptr,this),this}len(){return q.rawcolliderset_len(this.__wbg_ptr)>>>0}contains(A){return 0!==q.rawcolliderset_contains(this.__wbg_ptr,A)}createCollider(A,I,g,C,B,Q,E,i,D,o,w,S,G,k,U,M,h,y,J,s,K,F,N,a,R){try{const c=q.__wbindgen_add_to_stack_pointer(-16);b(I,oI),b(g,MI),b(C,CI),b(E,MI),b(i,MI),b(D,CI),b(R,II),q.rawcolliderset_createCollider(c,this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B,Q,E.__wbg_ptr,i.__wbg_ptr,D.__wbg_ptr,o,w,S,G,k,U,M,h,y,J,s,K,F,N,a,R.__wbg_ptr);var Y=Z().getInt32(c+0,!0),L=Z().getFloat64(c+8,!0);return 0===Y?void 0:L}finally{q.__wbindgen_add_to_stack_pointer(16)}}remove(A,I,g,C){b(I,rA),b(g,II),q.rawcolliderset_remove(this.__wbg_ptr,A,I.__wbg_ptr,g.__wbg_ptr,C)}isHandleValid(A){return 0!==q.rawcolliderset_contains(this.__wbg_ptr,A)}forEachColliderHandle(A){try{q.rawcolliderset_forEachColliderHandle(this.__wbg_ptr,x(A))}finally{l[P++]=void 0}}}const wA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawcollidershapecasthit_free(A>>>0,1)));class SA{static __wrap(A){A>>>=0;const I=Object.create(SA.prototype);return I.__wbg_ptr=A,wA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,wA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawcollidershapecasthit_free(A,0)}colliderHandle(){return q.rawcharactercollision_handle(this.__wbg_ptr)}time_of_impact(){return q.rawcollidershapecasthit_time_of_impact(this.__wbg_ptr)}witness1(){const A=q.rawcollidershapecasthit_witness1(this.__wbg_ptr);return MI.__wrap(A)}witness2(){const A=q.rawcollidershapecasthit_witness2(this.__wbg_ptr);return MI.__wrap(A)}normal1(){const A=q.rawcharactercollision_translationDeltaApplied(this.__wbg_ptr);return MI.__wrap(A)}normal2(){const A=q.rawcharactercollision_translationDeltaRemaining(this.__wbg_ptr);return MI.__wrap(A)}}const GA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawcontactforceevent_free(A>>>0,1)));class kA{static __wrap(A){A>>>=0;const I=Object.create(kA.prototype);return I.__wbg_ptr=A,GA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,GA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawcontactforceevent_free(A,0)}collider1(){return q.rawcharactercollision_handle(this.__wbg_ptr)}collider2(){return q.rawcontactforceevent_collider2(this.__wbg_ptr)}total_force(){const A=q.rawcontactforceevent_total_force(this.__wbg_ptr);return MI.__wrap(A)}total_force_magnitude(){return q.rawcontactforceevent_total_force_magnitude(this.__wbg_ptr)}max_force_direction(){const A=q.rawcontactforceevent_max_force_direction(this.__wbg_ptr);return MI.__wrap(A)}max_force_magnitude(){return q.rawcontactforceevent_max_force_magnitude(this.__wbg_ptr)}}const UA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawcontactmanifold_free(A>>>0,1)));class MA{static __wrap(A){A>>>=0;const I=Object.create(MA.prototype);return I.__wbg_ptr=A,UA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,UA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawcontactmanifold_free(A,0)}normal(){const A=q.rawcontactmanifold_normal(this.__wbg_ptr);return MI.__wrap(A)}local_n1(){const A=q.rawcontactmanifold_local_n1(this.__wbg_ptr);return MI.__wrap(A)}local_n2(){const A=q.rawcontactmanifold_local_n2(this.__wbg_ptr);return MI.__wrap(A)}subshape1(){return q.rawcontactmanifold_subshape1(this.__wbg_ptr)>>>0}subshape2(){return q.rawcontactmanifold_subshape2(this.__wbg_ptr)>>>0}num_contacts(){return q.rawcontactmanifold_num_contacts(this.__wbg_ptr)>>>0}contact_local_p1(A){const I=q.rawcontactmanifold_contact_local_p1(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}contact_local_p2(A){const I=q.rawcontactmanifold_contact_local_p2(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}contact_dist(A){return q.rawcontactmanifold_contact_dist(this.__wbg_ptr,A)}contact_fid1(A){return q.rawcontactmanifold_contact_fid1(this.__wbg_ptr,A)>>>0}contact_fid2(A){return q.rawcontactmanifold_contact_fid2(this.__wbg_ptr,A)>>>0}contact_impulse(A){return q.rawcontactmanifold_contact_impulse(this.__wbg_ptr,A)}contact_tangent_impulse_x(A){return q.rawcontactmanifold_contact_tangent_impulse_x(this.__wbg_ptr,A)}contact_tangent_impulse_y(A){return q.rawcontactmanifold_contact_tangent_impulse_y(this.__wbg_ptr,A)}num_solver_contacts(){return q.rawcontactmanifold_num_solver_contacts(this.__wbg_ptr)>>>0}solver_contact_point(A){const I=q.rawcontactmanifold_solver_contact_point(this.__wbg_ptr,A);return 0===I?void 0:MI.__wrap(I)}solver_contact_dist(A){return q.rawcontactmanifold_solver_contact_dist(this.__wbg_ptr,A)}solver_contact_friction(A){return q.rawcontactmanifold_solver_contact_friction(this.__wbg_ptr,A)}solver_contact_restitution(A){return q.rawcontactmanifold_solver_contact_restitution(this.__wbg_ptr,A)}solver_contact_tangent_velocity(A){const I=q.rawcontactmanifold_solver_contact_tangent_velocity(this.__wbg_ptr,A);return MI.__wrap(I)}}const hA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawcontactpair_free(A>>>0,1)));class yA{static __wrap(A){A>>>=0;const I=Object.create(yA.prototype);return I.__wbg_ptr=A,hA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,hA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawcontactpair_free(A,0)}collider1(){return q.rawcontactpair_collider1(this.__wbg_ptr)}collider2(){return q.rawcontactpair_collider2(this.__wbg_ptr)}numContactManifolds(){return q.rawcontactpair_numContactManifolds(this.__wbg_ptr)>>>0}contactManifold(A){const I=q.rawcontactpair_contactManifold(this.__wbg_ptr,A);return 0===I?void 0:MA.__wrap(I)}}const JA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawdebugrenderpipeline_free(A>>>0,1)));class sA{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,JA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawdebugrenderpipeline_free(A,0)}constructor(){const A=q.rawdebugrenderpipeline_new();return this.__wbg_ptr=A>>>0,JA.register(this,this.__wbg_ptr,this),this}vertices(){return f(q.rawdebugrenderpipeline_vertices(this.__wbg_ptr))}colors(){return f(q.rawdebugrenderpipeline_colors(this.__wbg_ptr))}render(A,I,g,C,B,Q,E){try{b(A,II),b(I,oA),b(g,lA),b(C,nA),b(B,ZA),q.rawdebugrenderpipeline_render(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C.__wbg_ptr,B.__wbg_ptr,Q,x(E))}finally{l[P++]=void 0}}}const KA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawdeserializedworld_free(A>>>0,1)));class FA{static __wrap(A){A>>>=0;const I=Object.create(FA.prototype);return I.__wbg_ptr=A,KA.register(I,I.__wbg_ptr,I),I}__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,KA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawdeserializedworld_free(A,0)}takeGravity(){const A=q.rawdeserializedworld_takeGravity(this.__wbg_ptr);return 0===A?void 0:MI.__wrap(A)}takeIntegrationParameters(){const A=q.rawdeserializedworld_takeIntegrationParameters(this.__wbg_ptr);return 0===A?void 0:tA.__wrap(A)}takeIslandManager(){const A=q.rawdeserializedworld_takeIslandManager(this.__wbg_ptr);return 0===A?void 0:rA.__wrap(A)}takeBroadPhase(){const A=q.rawdeserializedworld_takeBroadPhase(this.__wbg_ptr);return 0===A?void 0:CA.__wrap(A)}takeNarrowPhase(){const A=q.rawdeserializedworld_takeNarrowPhase(this.__wbg_ptr);return 0===A?void 0:ZA.__wrap(A)}takeBodies(){const A=q.rawdeserializedworld_takeBodies(this.__wbg_ptr);return 0===A?void 0:II.__wrap(A)}takeColliders(){const A=q.rawdeserializedworld_takeColliders(this.__wbg_ptr);return 0===A?void 0:oA.__wrap(A)}takeImpulseJoints(){const A=q.rawdeserializedworld_takeImpulseJoints(this.__wbg_ptr);return 0===A?void 0:lA.__wrap(A)}takeMultibodyJoints(){const A=q.rawdeserializedworld_takeMultibodyJoints(this.__wbg_ptr);return 0===A?void 0:nA.__wrap(A)}}const NA="undefined"==typeof FinalizationRegistry?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry((A=>q.__wbg_rawdynamicraycastvehiclecontroller_free(A>>>0,1)));class aA{__destroy_into_raw(){const A=this.__wbg_ptr;return this.__wbg_ptr=0,NA.unregister(this),A}free(){const A=this.__destroy_into_raw();q.__wbg_rawdynamicraycastvehiclecontroller_free(A,0)}constructor(A){const I=q.rawdynamicraycastvehiclecontroller_new(A);return this.__wbg_ptr=I>>>0,NA.register(this,this.__wbg_ptr,this),this}current_vehicle_speed(){return q.rawdynamicraycastvehiclecontroller_current_vehicle_speed(this.__wbg_ptr)}chassis(){return q.rawdynamicraycastvehiclecontroller_chassis(this.__wbg_ptr)}index_up_axis(){return q.rawdynamicraycastvehiclecontroller_index_up_axis(this.__wbg_ptr)>>>0}set_index_up_axis(A){q.rawdynamicraycastvehiclecontroller_set_index_up_axis(this.__wbg_ptr,A)}index_forward_axis(){return q.rawdynamicraycastvehiclecontroller_index_forward_axis(this.__wbg_ptr)>>>0}set_index_forward_axis(A){q.rawdynamicraycastvehiclecontroller_set_index_forward_axis(this.__wbg_ptr,A)}add_wheel(A,I,g,C,B){b(A,MI),b(I,MI),b(g,MI),q.rawdynamicraycastvehiclecontroller_add_wheel(this.__wbg_ptr,A.__wbg_ptr,I.__wbg_ptr,g.__wbg_ptr,C,B)}num_wheels(){return q.rawdynamicraycastvehiclecontroller_num_wheels