<!-- SOLID-PLAYTIME · part 83 -->
unt=1}raycast(t,e){if(t.camera===null)console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.');if(Do.setFromMatrixScale(this.matrixWorld),OE.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),Po.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&&this.material.sizeAttenuation===!1)Do.multiplyScalar(-Po.z);let n=this.material.rotation,i,s;if(n!==0)s=Math.cos(n),i=Math.sin(n);let a=this.center;nf(tf.set(-0.5,-0.5,0),Po,a,Do,i,s),nf(xc.set(0.5,-0.5,0),Po,a,Do,i,s),nf(ef.set(0.5,0.5,0),Po,a,Do,i,s),xb.set(0,0),Mm.set(1,0),bb.set(1,1);let r=t.ray.intersectTriangle(tf,xc,ef,!1,vc);if(r===null){if(nf(xc.set(-0.5,0.5,0),Po,a,Do,i,s),Mm.set(0,1),r=t.ray.intersectTriangle(tf,ef,xc,!1,vc),r===null)return}let o=t.ray.origin.distanceTo(vc);if(o<t.near||o>t.far)return;e.push({distance:o,point:vc.clone(),uv:hi.getInterpolation(vc,tf,xc,ef,xb,Mm,bb,new Nt),face:null,object:this})}copy(t,e){if(super.copy(t,e),t.center!==void 0)this.center.copy(t.center);return this.material=t.material,this}}function nf(t,e,n,i,s,a){if(Ho.subVectors(t,n).addScalar(0.5).multiply(i),s!==void 0)yc.x=a*Ho.x-s*Ho.y,yc.y=s*Ho.x+a*Ho.y;else yc.copy(Ho);t.copy(e),t.x+=yc.x,t.y+=yc.y,t.applyMatrix4(OE)}class AU extends bn{constructor(t=null,e=1,n=1,i,s,a,r,o,l=1003,c=1003,u,f){super(null,a,r,o,l,c,i,s,u,f);this.isDataTexture=!0,this.image={data:t,width:e,height:n},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class df extends tn{constructor(t,e,n,i=1){super(t,e,n);this.isInstancedBufferAttribute=!0,this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){let t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}}var Io=new ie,Eb=new ie,sf=[],Mb=new Fs,FS=new ie,bc=new At,Ec=new Ns;class Ki extends At{constructor(t,e,n){super(t,e);this.isInstancedMesh=!0,this.instanceMatrix=new df(new Float32Array(n*16),16),this.instanceColor=null,this.morphTexture=null,this.count=n,this.boundingBox=null,this.boundingSphere=null;for(let i=0;i<n;i++)this.setMatrixAt(i,FS)}computeBoundingBox(){let t=this.geometry,e=this.count;if(this.boundingBox===null)this.boundingBox=new Fs;if(t.boundingBox===null)t.computeBoundingBox();this.boundingBox.makeEmpty();for(let n=0;n<e;n++)this.getMatrixAt(n,Io),Mb.copy(t.boundingBox).applyMatrix4(Io),this.boundingBox.union(Mb)}computeBoundingSphere(){let t=this.geometry,e=this.count;if(this.boundingSphere===null)this.boundingSphere=new Ns;if(t.boundingSphere===null)t.computeBoundingSphere();this.boundingSphere.makeEmpty();for(let n=0;n<e;n++)this.getMatrixAt(n,Io),Ec.copy(t.boundingSphere).applyMatrix4(Io),this.boundingSphere.union(Ec)}copy(t,e){if(super.copy(t,e),this.instanceMatrix.copy(t.instanceMatrix),t.morphTexture!==null)this.morphTexture=t.morphTexture.clone();if(t.instanceColor!==null)this.instanceColor=t.instanceColor.clone();if(this.count=t.count,t.boundingBox!==null)this.boundingBox=t.boundingBox.clone();if(t.boundingSphere!==null)this.boundingSphere=t.boundingSphere.clone();return this}getColorAt(t,e){e.fromArray(this.instanceColor.array,t*3)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,t*16)}getMorphAt(t,e){let n=e.morphTargetInfluences,i=this.morphTexture.source.data.data,s=n.length+1,a=t*s+1;for(let r=0;r<n.length;r++)n[r]=i[a+r]}raycast(t,e){let n=this.matrixWorld,i=this.count;if(bc.geometry=this.geometry,bc.material=this.material,bc.material===void 0)return;if(this.boundingSphere===null)this.computeBoundingSphere();if(Ec.copy(this.boundingSphere),Ec.applyMatrix4(n),t.ray.intersectsSphere(Ec)===!1)return;for(let s=0;s<i;s++){this.getMatrixAt(s,Io),Eb.multiplyMatrices(n,Io),bc.matrixWorld=Eb,bc.raycast(t,sf);for(let a=0,r=sf.length;a<r;a++){let o=sf[a];o.instanceId=s,o.object=this,e.push(o)}sf.length=0}}setColorAt(t,e){if(this.instanceColor===null)this.instanceColor=new df(new Float32Array(this.instanceMatrix.count*3).fill(1),3);e.toArray(this.instanceColor.array,t*3)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,t*16)}setMorphAt(t,e){let n=e.morphTargetInfluences,i=n.length+1;if(this.morphTexture===null)this.morphTexture=new AU(new Float32Array(i*this.count),i,this.count,1028,1015);let s=this.morphTexture.source.data.data,a=0;for(let l=0;l<n.length;l++)a+=n[l];let r=this.geometry.morphTargetsRelative?1:1-a,o=i*t;s[o]=r,s.set(n,o+1)}updateMorphTargets(){}dispose(){if(this.dispatchEvent({type:"dispose"}),this.morphTexture!==null)this.morphTexture.dispose(),this.morphTexture=null}}var _m=new C,NS=new C,BS=new qt;class Cs{constructor(t=new C(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,n,i){return this.normal.set(t,e,n),this.constant=i,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCopl