1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2132],{62132:(t,e,s)=>{s.r(e),s.d(e,{CyberTriangleShatterEffectScene:()=>l});var i=s(28567),n=s(366),r=s(62544),a=s(87347),h=s(35036);let o=["#00FA4F","#FFF52E","#1AFF00","#F500E9","#001CF0","#FA1D00"];class c{constructor(t,e,s,i,n){this.centerX=(t[0]+e[0]+s[0])/3,this.centerY=(t[1]+e[1]+s[1])/3;const r=new Float32Array([t[0]-this.centerX,t[1]-this.centerY,0,e[0]-this.centerX,e[1]-this.centerY,0,s[0]-this.centerX,s[1]-this.centerY,0]),h=new Float32Array([...[,,,].keys()].map(()=>{let t=Math.floor(Math.random()*o.length),e=new a.Q1f(o[t]);return[e.r,e.g,e.b]}).flat()),c=new a.TDQ;c.setAttribute("position",new a.THS(r,3)),c.setAttribute("color",new a.THS(h,3));const l=new a.V9B({side:a.$EB,vertexColors:!0,opacity:.8,blending:a.EZo});this.mesh=new a.eaF(c,l),this.distRatio=this.distFromCenter(this.centerX,this.centerY)/this.distFromCenter(i/2,n/2),this.isRotateX=.5>Math.random(),this.isRotateY=!this.isRotateX,this.mesh.position.x=this.centerX,this.mesh.position.y=this.centerY}update(t,e,s){this.mesh.position.x+=100*Math.pow(this.distRatio,1.4)*(this.centerX>=0?1:-1)*s/30,this.centerY>0?this.mesh.position.y=this.centerY+(this.calcDeltaY(e/15)-this.calcDeltaY(0))*(this.centerY>=0?1:-1):this.mesh.position.y-=.025*Math.pow(e/15,1.7)*(1-this.distRatio),this.mesh.position.y<-t&&(this.mesh.position.z=-1e4);let i=2e-4*(1/Math.pow(2*this.distRatio,1.6))*s/10;this.mesh.scale.add(new a.Pq0(i,i,i)),this.isRotateX&&(this.mesh.rotation.x+=.03*(1/Math.pow(3*this.distRatio,1.4))*(.5*Math.random()+.5)*s/20),this.isRotateY&&(this.mesh.rotation.y+=.03*(1/Math.pow(3*this.distRatio,1.4))*(.5*Math.random()+.5)*s/20),this.mesh.rotation.z+=.1*s/50}calcDeltaY(t){return 750*Math.sin((t%360*5*(1-this.distRatio)+110)*Math.PI/180/2)}distFromCenter(t,e){return Math.sqrt(Math.pow(t,2)+Math.pow(e,2))}}let l=({sceneWidth:t,sceneHeight:e,waitingTime:s,...o})=>{let l=(0,r.useRef)(null),m=(0,r.useRef)(null),f=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let i;if(!l.current)return;let r=new a.Z58,o=new h.JeP({canvas:l.current,alpha:!0});o.setSize(t,e),o.setClearColor(0xffffff,0),o.shadowMap.enabled=!0,o.toneMapping=a.Mjd,o.toneMappingExposure=1.3;let p=new a.qUd(-t/2,t/2,e/2,-e/2,-200,Math.max(t,e)),u=new a.ZyN(0xffffff,1);u.position.set(0,0,1e3),r.add(u);let d=[[0,0]];[{r:.1*t,c:6},{r:.3*t,c:8},{r:.6*t,c:10},{r:1.2*t,c:12}].forEach(s=>{let i=s.r,n=s.c,r=.25*i;for(let s=0;s<n;s++){let a=Math.max(-t/2,Math.min(Math.cos(s/n*2*Math.PI)*i+(2*r*Math.random()-r),t/2)),h=Math.max(-e/2,Math.min(Math.sin(s/n*2*Math.PI)*i+(2*r*Math.random()-r),e/2));d.push([a,h])}});let M=n.A.from(d).triangles,w=[];for(let s=0;s<M.length;s+=3){let i=new c(d[M[s]],d[M[s+1]],d[M[s+2]],t,e);r.add(i.mesh),w.push(i)}let F=performance.now(),R=F;return i=requestAnimationFrame(function t(){let n=performance.now(),a=n-R,h=n-F;R=n,(s??0)<=h&&w.forEach(t=>t.update(e,h-(s??0),a)),o.render(r,p),i=requestAnimationFrame(t)}),m.current=o,f.current=p,()=>{cancelAnimationFrame(i),o.dispose()}},[]),(0,r.useEffect)(()=>{m.current&&m.current.setSize(t,e)},[t,e]),(0,i.Y)("canvas",{...o,ref:l})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.