lingo3d-vanilla
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
1 lines • 1.01 kB
JavaScript
;(self.webpackChunklingo3d_vanilla=self.webpackChunklingo3d_vanilla||[]).push([[81],{3081:(t,n,a)=>{a.r(n);var o=a(5394),e=a(7321),c=a(8155),s=a(9401),l=a(110),r=a(8753),i=a(1722);(0,o.GW)((()=>{const t=(0,s.j0)();if(!t.length){const t=(0,c.W)(e.g);return()=>{t.cancel()}}const n=(0,c.W)((()=>{(0,e.g)();for(const n of i.l){const a=.5;n.updateMatrixWorld();const o=(0,l.Z)(n),{start:e,end:c}=r.V;c.copy(e.copy(n.position)),r.PK.makeEmpty(),r.PK.expandByPoint(e),r.PK.min.addScalar(-a),r.PK.max.addScalar(a);const s=r.dW,i=r.cA;let d=0,p=0;for(const n of t)n.shapecast({intersectsBounds:t=>t.intersectsBox(r.PK),intersectsTriangle:t=>{d=t.closestPointToSegment(r.V,s,i),d<a&&(p=a-d,e.addScaledVector(o,p),c.addScaledVector(o,p))}});const u=e.sub(n.position),P=Math.max(0,u.length()-1e-5);u.normalize().multiplyScalar(P),n.position.add(u)}}));return()=>{n.cancel()}}),[s.j0])},9401:(t,n,a)=>{a.d(n,{ES:()=>s,Pf:()=>l,j0:()=>c});var o=a(5394);const[e,c]=(0,o.ZP)([]),s=(0,o.VF)(e,c),l=(0,o.X4)(e,c)}}]);