1"use strict";(globalThis.webpackChunklwjgl_org=globalThis.webpackChunklwjgl_org||[]).push([["103"],{1170(e,t,r){r.r(t),r.d(t,{default:()=>s});var n=r(7311),u=r(2647),o=r(9210),i=r(5319),l=r(7038);let c=(0,o.i7)({to:{opacity:.175}}),a=(0,o.I4)("canvas",{position:"absolute",zIndex:0,width:"100%",height:"100%",opacity:0,animation:`${c} 2s ease 0.5s forwards`}),s=e=>{let{width:t,height:r}=e,o=(0,u.useRef)(null),c=(0,u.useRef)(null),s=(0,u.useRef)(null),d=(0,u.useRef)(null),f=(0,u.useRef)(null),w=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{rootMargin:"0px"},n=(0,u.useRef)(t),[o,i,c]=(0,u.useMemo)(()=>[t=>{let u;return l.uJ&&e.current&&(u=new IntersectionObserver(e=>{let[r]=e;n.current=r.isIntersecting,t()},r)).observe(e.current),()=>{u&&e.current&&u.unobserve(e.current)}},()=>n.current,()=>t],[e,r,t]);return(0,u.useSyncExternalStore)(o,i,c)}(o,!0);return(0,u.useEffect)(()=>{let{WebGLRenderer:e,Scene:n,PerspectiveCamera:u,BoxGeometry:l,MeshNormalMaterial:a,Group:w,Mesh:h}=THREE,p=o.current;if(null===p)return;let x=p.getContext("webgl",i.u)||p.getContext("experimental-webgl",i.u);if(null===x)return;c.current=new u(60,t/r,100,1e4),c.current.position.z=1500;let g=new l(60,60,60),m=new a;f.current=new w;for(let e=0;e<300;e+=1){let e=new h(g,m);e.position.x=2e3*Math.random()-1e3,e.position.y=2e3*Math.random()-1e3,e.position.z=2e3*Math.random()-1e3,e.rotation.x=2*Math.random()*Math.PI,e.rotation.y=2*Math.random()*Math.PI,e.matrixAutoUpdate=!1,e.updateMatrix(),f.current.add(e)}return d.current=new n,d.current.add(f.current),s.current=new e({canvas:p,context:x}),void 0!==window.devicePixelRatio&&s.current.setPixelRatio(Math.min(window.devicePixelRatio,2)),s.current.setSize(t,r,!1),s.current.sortObjects=!1,()=>{void 0!==d.current&&(d.current.remove(f.current),g.dispose(),m.dispose())}},[]),(0,u.useEffect)(()=>{null!==c.current&&null!==s.current&&(c.current.aspect=t/r,c.current.updateProjectionMatrix(),s.current.setSize(t,r,!1))},[t,r]),(0,u.useEffect)(()=>{let e=null;function t(){null!==e&&(cancelAnimationFrame(e),e=null)}if(w){if(null===e)return!function t(){e=requestAnimationFrame(t);let r=15e-6*Date.now();f.current&&(f.current.rotation.x=r,f.current.rotation.y=r),s.current&&d.current&&c.current&&s.current.render(d.current,c.current)}(),t}else null!==e&&t()},[w]),(0,n.jsx)(a,{ref:o})}}}]);
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.