1import{r as c,j as e}from"./react-vendor-CbWIbjn9.js";import{bn as L,br as P,bs as C,bx as V,by as $,bp as k,bJ as F,bv as I,bu as O,bK as U,bq as _,bz as N,bA as X,bB as J,bC as D,bD as Y,bE as K,bF as Q,bG as Z,bH as ee,bI as te}from"./vendor-DI073rEi.js";import{u as E,D as z}from"./IonEngineVisualization-DDbRycjq.js";import{H as t,S as w,A as se}from"./AdaptiveQuality-DXWtjhGc.js";import{m as ne,b as T,P as ae,c as oe,C as re}from"./CameraRig-ZfLgM6Xw.js";import"./router-DBB3cS5p.js";import"./index-C5gIAoJc.js";import"./theme-Cd23p_ls.js";import"./motion-CqcqwEuC.js";const ie=()=>{const{settings:p,setSettings:a}=E(),M=c.useMemo(ne,[]),l=p.cutaway?Math.PI*1.35:Math.PI*2,s=p.cutaway?Math.PI*.32:0,m=t.channelExit-t.channelBack,y=(t.channelBack+t.channelExit)/2,h=t.channelRadius+t.channelHalf,r=t.channelRadius-t.channelHalf,i=c.useMemo(()=>new L(h,h,m,64,1,!0,s,l),[s,l,m,h]),u=c.useMemo(()=>new L(r,r,m,48,1,!0,s,l),[s,l,m,r]),x=c.useMemo(()=>new L(t.radius,t.radius,t.channelExit-t.bodyBack,96,1,!0,s,l),[s,l]),d=g=>S=>{S.stopPropagation(),a({selectedComponent:g})},o=p.selectedComponent,n=g=>o===g?.9:0,f=c.useRef(null),j=c.useRef(null);P(g=>
1{if(p.paused)return;const S=g.clock.elapsedTime;f.current&&(f.current.material.emissiveIntensity=.9+Math.sin(S*4)*.4),j.current&&(j.current.material.emissiveIntensity=(2.4+Math.sin(S*5.2)*.5)*p.plasmaBrightness)});const b=g=>e.jsx("meshStandardMaterial",{color:"#b87333",emissive:w.magnetic,emissiveIntensity:.25+g,metalness:.9,roughness:.28});return e.jsxs("group",{children:[e.jsx("mesh",{geometry:x,rotation:[0,0,Math.PI/2],position:[(t.bodyBack+t.channelExit)/2,0,0],onClick:d("body"),children:e.jsx("meshPhysicalMaterial",{color:"#242a36",metalness:.85,roughness:.42,roughnessMap:M,clearcoat:.5,clearcoatRoughness:.35,side:C,emissive:"#5cc6ff",emissiveIntensity:n("body")*.5,envMapIntensity:1.2})}),e.jsx("group",{onClick:d("body"),children:Array.from({length:10},(g,S)=>{const v=s+.25+S/10*(l-.5),R=t.radius+.14;return e.jsxs("mesh",{position:[(t.bodyBack+t.channelExit)/2,Math.cos(v)*R,Math.sin(v)*R],rotation:[v,0,0],children:[e.jsx("boxGeometry",{args:[(t.channelExit-t.bodyBack)*.8,.26,.04]}),e.jsx("meshStandardMaterial",{color:"#2c313d",metalness:.9,roughness:.35})]},S)})}),e.jsxs("mesh",{position:[t.bodyBack,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("cylinderGeometry",{args:[t.radius,t.radius,.12,64]}),e.jsx("meshPhysicalMaterial",{color:"#20242e",metalness:.88,roughness:.4,roughnessMap:M,clearcoat:.4})]}),e.jsxs("group",{onClick:d("body"),children:[e.jsxs("mesh",{position:[t.channelExit+.02,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("torusGeometry",{args:[(h+t.radius)/2,(t.radius-h)/2+.03,4,72,l]}),e.jsx("meshStandardMaterial",{color:"#343b49",metalness:.92,roughness:.3})]}),e.jsxs("mesh",{position:[t.channelExit+.02,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("cylinderGeometry",{args:[r-.06,r-.06,.1,48]}),e.jsx("meshStandardMaterial",{color:"#343b49",metalness:.92,roughness:.3})]})]}),e.jsxs("group",{position:[y,0,0],onClick:d("channel"),children:[e.jsx("mesh",{geometry:i,rotation:[0,0,Math.PI/2],children:e.jsx("meshStandardMaterial",{color:"#2a2f3a",metalness:.7,roughness:.4,side:C,emissive:"#5cc6ff",emissiveIntensity:n("channel")})}),e.jsx("mesh",{geometry:u,rotation:[0,0,Math.PI/2],children:e.jsx("meshStandardMaterial",{color:"#2a2f3a",metalness:.7,roughness:.4,side:C})}),e.jsxs("mesh",{ref:f,rotation:[0,0,Math.PI/2],children:[e.jsx("cylinderGeometry",{args:[t.channelRadius,t.channelRadius,m*.9,48,1,!0,s,l]}),e.jsx("meshStandardMaterial",{color:"#123048",emissive:w.ion,emissiveIntensity:.9,transparent:!0,opacity:.5,side:C,depthWrite:!1})]})]}),e.jsxs("mesh",{ref:j,position:[t.channelExit+.04,0,0],rotation:[0,0,Math.PI/2],onClick:d("channel"),children:[e.jsx("torusGeometry",{args:[t.channelRadius,t.channelHalf*.85,12,72,l]}),e.jsx("meshStandardMaterial",{color:w.ionCore,emissive:w.ion,emissiveIntensity:2.4,transparent:!0,opacity:.85,depthWrite:!1})]}),e.jsxs("mesh",{position:[t.channelBack,0,0],rotation:[0,0,Math.PI/2],onClick:d("anode"),children:[e.jsx("torusGeometry",{args:[t.channelRadius,t.channelHalf*.8,12,48,l]}),e.jsx("meshStandardMaterial",{color:w.eField,emissive:w.eField,emissiveIntensity:.8+n("anode"),metalness:.5,roughness:.3})]}),e.jsxs("mesh",{position:[y,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("cylinderGeometry",{args:[r-.08,r-.08,m*1.4,32]}),e.jsx("meshStandardMaterial",{color:"#171b23",metalness:.85,roughness:.4})]}),e.jsxs("group",{onClick:d("coils"),children:[[-.34,.1].map(g=>[-.09,-.03,.03,.09].map(S=>e.jsxs("mesh",{position:[y+g+S,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("torusGeometry",{args:[t.radius-.12,.045,10,72]}),b(n("coils"))]},`o${g}-${S}`))),[-.34,.1].map(g=>[-.14,.14].map(S=>e.jsxs("mesh",{position:[y+g+S,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("torusGeometry",{args:[t.radius-.12,.07,6,72]}),e.jsx("meshStandardMaterial",{color:"#2c313d",metalness:.9,roughness:.32})]},`b${g}-${S}`))),[-.05,0,.05].map(g=>e.jsxs("mesh",{position:[y+g,0,0],rotation:[0,0,Math.PI/2],children:[e.jsx("torusGeometry",{args:[r-.16,.04,8,48]}),b(n("coils"))]},`i${g}`))]}),e.jsxs("group",{position:[t.cathode.x,t.cathode.y,0],onClick:d("cathode"),children:[e.jsxs("mesh",{rotation:[0,0,Math.PI/2.3],children:[e.jsx("cylinderGeometry",{args:[.14,.2,1,24]}),e.jsx("meshStandardMaterial",{color:"#2a2f3a",metalness:.9,roughness:.28,emissive:w.electron,emissiveIntensity:.5+n("cathode")})]}),e.jsxs("mesh",{position:[.3,-.38,0],rotation:[0,0,Math.PI/2.3],children:[e.jsx("cylinderGeometry",{args:[.16,.16,.16,20,1,!0]}),e.jsx("meshStandardMaterial",{color:"#39404e",metalness:.92,roughness:.3,side:C})]}),e.jsxs("mesh",{position:[.35,-.45,0],children:[e.jsx("sphereGeometry",{args:[.11,16,16]}),e.jsx("meshStandardMaterial",{color:w.electron,emissive:w.electron,emissiveIntensity:2+n("cathode")})]}),e.jsxs("mesh",{position:[-.55,-.35,0],rotation:[0,0,.35],children:[e.jsx("boxGeometry",{args:[.9,.1,.16]}),e.jsx("meshStandardMaterial",{color:"#39404e",metalness:.9,roughness:.32})]}),e.jsxs("mesh",{position:[-.45,.05,.05],rotation:[0,0,.9],children:[e.jsx("cylinderGeometry",{args:[.035,.035,.9,8]}),e.jsx("meshStandardMaterial",{color:"#4a5160",metalness:.85,roughness:.35})]})]})]})};function A(){const a=document.createElement("canvas");a.width=a.height=64;const M=a.getContext("2d"),l=M.createRadialGradient(64/2,64/2,0,64/2,64/2,64/2);l.addColorStop(0,"rgba(255,255,255,1)"),l.addColorStop(.35,"rgba(255,255,255,0.55)"),l.addColorStop(1,"rgba(255,255,255,0)"),M.fillStyle=l,M.fillRect(0,0,64,64);const s=new V(a);
1return s.colorSpace=$,s}const G=(p,a)=>p?0:a?.22:1,ce=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=Math.round(220*z[a.density]*a.particleCount*a.qualityScale),{positions:m,theta:y,rad:h}=c.useMemo(()=>{const r=new Float32Array(s*3),i=new Float32Array(s),u=new Float32Array(s);for(let x=0;x<s;x++){const d=Math.random()*Math.PI*2,o=t.channelRadius+(Math.random()-.5)*2*t.channelHalf;i[x]=d,u[x]=o,r[x*3]=-3.2+Math.random()*(t.channelExit+3.2),r[x*3+1]=Math.cos(d)*o,r[x*3+2]=Math.sin(d)*o}return{positions:r,theta:i,rad:u}},[s]);return P((r,i)=>{const u=p.current,x=l.current;if(!x)return;const d=G(u.paused,u.slowMotion)*u.xenonFlow,o=x.geometry.attributes.position.array;for(let n=0;n<s;n++)o[n*3]+=i*.6*d,o[n*3]>t.channelExit&&(o[n*3]=-3.2);x.geometry.attributes.position.needsUpdate=!0}),e.jsxs("points",{ref:l,children:[e.jsx("bufferGeometry",{children:e.jsx("bufferAttribute",{attach:"attributes-position",count:s,array:m,itemSize:3})}),e.jsx("pointsMaterial",{color:w.neutral,map:M,size:.14,transparent:!0,sizeAttenuation:!0,opacity:.9,depthWrite:!1})]},s)},le=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=Math.round(160*z[a.density]*a.electronDensity*a.qualityScale),m=c.useMemo(()=>Array.from({length:s},()=>({t:Math.random(),a:Math.random()*Math.PI*2})),[s]),y=c.useMemo(()=>new Float32Array(s*3),[s]);return P((h,r)=>{const i=p.current,u=l.current;if(!u||!i.showElectronPaths){u&&(u.visible=i.showElectronPaths);return}u.visible=!0;const x=G(i.paused,i.slowMotion)*i.electronDensity,d=u.geometry.attributes.position.array,o=new k(t.cathode.x+.35,t.cathode.y-.5,0);for(let n=0;n<s;n++){const f=m[n];f.t+=r*.5*x,f.t>1&&(f.t-=1);const j=Math.cos(f.a)*t.channelRadius,b=Math.sin(f.a)*t.channelRadius,g=new k(t.channelExit-.2,j,b);d[n*3]=F.lerp(o.x,g.x,f.t),d[n*3+1]=F.lerp(o.y,g.y,f.t)+Math.sin(f.t*20)*.05,d[n*3+2]=F.lerp(o.z,g.z,f.t)}u.geometry.attributes.position.needsUpdate=!0}),e.jsxs("points",{ref:l,children:[e.jsx("bufferGeometry",{children:e.jsx("bufferAttribute",{attach:"attributes-position",count:s,array:y,itemSize:3})}),e.jsx("pointsMaterial",{color:w.electron,map:M,size:.1,transparent:!0,sizeAttenuation:!0,blending:I,depthWrite:!1})]},s)},he=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=Math.round(260*z[a.density]*a.electronDensity*a.qualityScale),m=c.useMemo(()=>Array.from({length:s},()=>({a:Math.random()*Math.PI*2,x:t.channelExit-.15-Math.random()*.5,r:t.channelRadius+(Math.random()-.5)*2*(t.channelHalf*.7),w:.6+Math.random()*.5})),[s]),y=c.useMemo(()=>new Float32Array(s*3),[s]);return P((h,r)=>{const i=p.current,u=l.current;if(!u||(u.visible=i.showHallCurrent,!i.showHallCurrent))return;const x=G(i.paused,i.slowMotion)*(.6+.7*i.magneticStrength)*(.6+.4*i.electricStrength),d=u.geometry.attributes.position.array;for(let o=0;o<s;o++){const n=m[o];n.a+=r*n.w*1.6*x,d[o*3]=n.x,d[o*3+1]=Math.cos(n.a)*n.r,d[o*3+2]=Math.sin(n.a)*n.r}u.geometry.attributes.position.needsUpdate=!0}),e.jsxs("points",{ref:l,children:[e.jsx("bufferGeometry",{children:e.jsx("bufferAttribute",{attach:"attributes-position",count:s,array:y,itemSize:3})}),e.jsx("pointsMaterial",{color:w.hall,map:M,size:.12,transparent:!0,sizeAttenuation:!0,blending:I,depthWrite:!1})]},s)},ue=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=c.useMemo(()=>new O,[]),m=Math.round(520*z[a.density]*a.particleCount*a.qualityScale),y=a.qualityScale>=.7?1:0,h=c.useMemo(()=>Array.from({length:m},()=>({t:Math.random(),a:Math.random()*Math.PI*2,r:t.channelRadius+(Math.random()-.5)*2*t.channelHalf,speed:.3+Math.random()*.18})),[m]),r=t.channelBack+.3,i=t.channelExit,u=t.exhaustEnd;return P((x,d)=>{const o=p.current,n=l.current;if(!n||(n.visible=o.showIonPaths,!o.showIonPaths))return;const f=G(o.paused,o.slowMotion)*o.exhaustVelocity*(.6+.5*o.electricStrength);for(let j=0;j<m;j++){const b=h[j];b.t+=d*b.speed*f,b.t>1&&(b.t-=1);const g=b.t*b.t,S=r+(u-r)*g;let v=b.r;if(S>i){const R=(S-i)/(u-i);v=F.lerp(b.r,b.r*.35+.9*R*1.6,R)}s.position.set(S,Math.cos(b.a)*v,Math.sin(b.a)*v),s.scale.setScalar(.05),s.updateMatrix(),n.setMatrixAt(j,s.matrix)}n.instanceMatrix.needsUpdate=!0}),e.jsxs("instancedMesh",{ref:l,args:[void 0,void 0,m],frustumCulled:!1,children:[e.jsx("icosahedronGeometry",{args:[1,y]}),e.jsx("meshBasicMaterial",{color:w.ion,map:M,transparent:!0,blending:I,depthWrite:!1})]})},de=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=Math.round(60*z[a.density]*a.qualityScale),m=c.useMemo(()=>Array.from({length:s},()=>({a:Math.random()*Math.PI*2,x:t.channelBack+Math.random()*(t.channelExit-t.channelBack),r:t.channelRadius+(Math.random()-.5)*2*t.channelHalf,phase:Math.random()*Math.PI*2})),[s]),y=c.useMemo(()=>{const h=new Float32Array(s*3);for(let r=0;r<s;r++){const i=m[r];h[r*3]=i.x,h[r*3+1]=Math.cos(i.a)*i.r,h[r*3+2]=Math.sin(i.a)*i.r}return h},[s,m]);return P(h=>{const r=p.current,i=l.current;if(!i)return;const u=i.material;r.paused||(u.opacity=.4+.5*Math.abs(Math.sin(h.clock.elapsedTime*6)))}),e.jsxs("points",{ref:l,children:[e.jsx("bufferGeometry",{children:e.jsx("bufferAttribute",{attach:"attributes-position",count:s,array:y,itemSize:3})}),e.jsx("pointsMaterial",{color:"#eaf6ff",map:M,size:.22,transparent:!0,sizeAttenuation:!0,blending:I,depthWrite:!1})]},s)},me=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=Math.round(120*z[a.density]*a.electronDensity*a.qualityScale),m=c.useMemo(()=>{const y=new Float32Array(s*3);for(let h=0;h<s;h++){const r=Math.random()*Math.PI*2,i=Math.random()*1.6;y[h*3]=t.channelExit+Math.random()*(t.exhaustEnd-t.channelExit),y[h*3+1]=Math.cos(r)*i,y[h*3+2]=Math.sin(r)*i}return y},[s]);return P((y,h)=>{const r=p.current,i=l.current;if(!i)return;const u=G(r.paused,r.slowMotion)*r.exhaustVelocity,x=i.geometry.attributes.position.array;for(let d=0;d<s;d++)x[d*3]+=h*2.2*u,x[d*3]>t.exhaustEnd&&(x[d*3]=t.channelExit);i.geometry.attributes.position.needsUpdate=!0}),e.jsxs("points",{ref:l,children:[e.jsx("bufferGeometry",{children:e.jsx("bufferAttribute",{attach:"attributes-position",count:s,array:m,itemSize:3})}),e.jsx("pointsMaterial",{color:w.electron,map:M,size:.08,transparent:!0,sizeAttenuation:!0,blending:I,depthWrite:!1})]},s)},pe=()=>e.jsxs("group",{children:[e.jsx(ce,{}),e.jsx(le,{}),e.jsx(he,{}),e.jsx(de,{}),e.jsx(ue,{}),e.jsx(me,{})]}),xe=()=>{const{ref:p,settings:a}=E(),M=c.useMemo(A,[]),l=c.useRef(null),s=c.useRef(null),m=t.channelRadius-t.channelHalf,y=t.channelRadius+t.channelHalf,h=c.useMemo(()=>Array.from({length:16},(o,n)=>n/16*Math.PI*2),[]),r=t.channelExit-.35,i=c.useMemo(()=>h.map(o=>{const n=new k(0,Math.cos(o),Math.sin(o)),f=new k(r,0,0).addScaledVector(n,m-.05),j=new k(r,0,0).addScaledVector(n,y+.05),b=new U(f,j);return new _(b,1,.012,5,!1)}),[h,r,m,y]),u=6,x=c.useMemo(()=>{const o=h.length*u,n=new Float32Array(o*3),f=new Float32Array(o);for(let j=0;j<o;j++)f[j]=Math.random();return{positions:n,seeds:f,total:o}},[h.length]),d=c.useMemo(()=>{const o=[];for(const n of h.filter((f,j)=>j%2===0)){const f=Math.cos(n)*t.channelRadius,j=Math.sin(n)*t.channelRadius,b=new U(new k(t.channelBack+.2,f,j),new k(t.channelExit+.5,f,j));o.push(new _(b,1,.02,5,!1))}return o},[h]);return P(o=>{const n=p.current;l.current&&(l.current.visible=n.showMagneticField);const f=s.current;if(f&&(f.visible=n.showMagneticField,n.showMagneticField&&!n.paused)){const j=f.geometry.attributes.position.array,b=o.clock.elapsedTime*(n.slowMotion?.3:1)*(.5+n.magneticStrength);for(let g=0;g<h.length;g++){const S=h[g],v=Math.cos(S),R=Math.sin(S);for(let H=0;H<u;H++){const B=g*u+H,q=(x.seeds[B]+b*.25)%1,W=m+(y-m)*q;j[B*3]=r,j[B*3+1]=v*W,j[B*3+2]=R*W}}f.geometry.attributes.position.needsUpdate=!0}}),e.jsxs("group",{children:[e.jsxs("group",{ref:l,visible:a.showMagneticField,children:[i.map((o,n)=>e.jsx("mesh",{geometry:o,children:e.jsx("meshBasicMaterial",{color:w.magnetic,transparent:!0,opacity:.5,blending:I,depthWrite:!1})},n)),a.showLabels&&e.jsx(N,{position:[t.channelExit+.5,-2.05-.6,0],center:!0,distanceFactor:12,zIndexRange:[15,0],children:e.jsxs("div",{className:"pointer-events-none flex items-center gap-1.5 whitespace-nowrap rounded-full border border-violet-400/40 bg-slate-950/70 px-2.5 py-1 text-[11px] font-medium text-violet-200 backdrop-blur-sm",children:[e.jsx("span",{"aria-hidden":!0,
1className:"inline-block",children:"ð§"}),"B â radial"]})})]}),e.jsxs("points",{ref:s,visible:a.showMagneticField,children:[e.jsx("bufferGeometry",{children:e.jsx("bufferAttribute",{attach:"attributes-position",count:x.total,array:x.positions,itemSize:3})}),e.jsx("pointsMaterial",{color:w.magnetic,map:M,size:.1,transparent:!0,sizeAttenuation:!0,blending:I,depthWrite:!1})]},x.total),e.jsx("group",{visible:a.showFieldLines,children:d.map((o,n)=>e.jsx("mesh",{geometry:o,children:e.jsx("meshBasicMaterial",{color:w.eField,transparent:!0,opacity:.55*a.electricStrength,blending:I,depthWrite:!1})},n))})]})},fe=[{text:"Neutral Xenon",position:[t.channelBack-1.4,1.5,0],tone:"text-slate-200 border-slate-400/40"},{text:"Electron Drift",position:[t.cathode.x+.4,t.cathode.y-.2,0],tone:"text-cyan-200 border-cyan-400/40"},{text:"Hall Current",position:[t.channelExit-.2,t.channelRadius+.9,0],tone:"text-cyan-100 border-cyan-300/40"},{text:"Magnetic Field",position:[t.channelExit-.35,-1.15-.9,0],tone:"text-violet-200 border-violet-400/40"},{text:"Electric Field",position:[t.channelExit+1.2,.2,t.channelRadius],tone:"text-amber-200 border-amber-400/40"},{text:"Positive Ion Jet",position:[t.channelExit+3.5,-1.6,0],tone:"text-sky-200 border-sky-400/40"}],ge=()=>{const{settings:p}=E();return p.showLabels?e.jsx(e.Fragment,{children:fe.map(a=>e.jsx(N,{position:a.position,center:!0,distanceFactor:12,occlude:!1,zIndexRange:[20,0],children:e.jsxs("div",{className:`pointer-events-none flex items-center gap-1.5 whitespace-nowrap rounded-full border bg-slate-950/70 px-2.5 py-1 text-[11px] font-medium backdrop-blur-sm ${a.tone}`,children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-current"}),a.text]})},a.text))}):null},Me=()=>{const{ref:p}=E(),a=c.useRef(null),M=c.useRef(null),l=c.useMemo(()=>T({core:w.ionCore,edge:w.ion,radius:1.9,diamonds:.15,turbulence:.9}),[]),s=c.useMemo(()=>T({core:w.ion,edge:w.ion,radius:3.3,diamonds:0,turbulence:1}),[]);P((r,i)=>{const u=p.current,x=u.paused?0:i*(u.slowMotion?.25:1)*u.exhaustVelocity;for(const d of[a.current,M.current])d&&(d.uniforms.uTime.value+=x);a.current&&(a.current.uniforms.uBright.value=u.plasmaBrightness),M.current&&(M.current.uniforms.uBright.value=u.plasmaBrightness*.35)});const m=t.exhaustEnd-t.channelExit,y=t.channelExit+m/2,h={transparent:!0,depthWrite:!1,side:C,blending:I,vertexShader:oe,fragmentShader:ae};return e.jsxs("group",{position:[y,0,0],rotation:[0,0,-Math.PI/2],children:[e.jsxs("mesh",{children:[e.jsx("coneGeometry",{args:[1.9,m,48,32,!0]}),e.jsx("shaderMaterial",{ref:a,uniforms:l,...h})]}),e.jsxs("mesh",{children:[e.jsx("coneGeometry",{args:[3.3,m,48,24,!0]}),e.jsx("shaderMaterial",{ref:M,uniforms:s,...h})]})]})},ye=()=>{const p=c.useRef(null),{settings:a,setSettings:M}=E();return e.jsxs(e.Fragment,{children:[e.jsx(se,{}),e.jsx("color",{attach:"background",args:["#05070d"]}),e.jsx("fog",{attach:"fog",args:["#05070d",12,30]}),e.jsx("ambientLight",{intensity:.25}),e.jsx("directionalLight",{position:[6,8,6],intensity:1.1,castShadow:!0}),e.jsx("pointLight",{position:[t.channelExit,0,0],intensity:14,distance:8,color:"#5cc6ff"}),e.jsx("pointLight",{position:[t.channelExit+3,0,0],intensity:14,distance:12,color:"#2e9bff"}),e.jsxs(J,{resolution:256,children:[e.jsx(D,{intensity:2,position:[0,4,-6],scale:[10,4,1],color:"#3a6bff"}),e.jsx(D,{intensity:1.4,position:[-6,0,4],scale:[6,6,1],color:"#7fd4ff"}),e.jsx(D,{intensity:1,position:[6,-2,4],scale:[6,6,1],color:"#8a6bff"})]}),e.jsxs("group",{children:[e.jsx(ie,{}),e.jsx(pe,{}),e.jsx(xe,{}),e.jsx(Me,{}),e.jsx(ge,{})]}),e.jsx(Y,{position:[0,-2.4,0],opacity:.5,scale:26,blur:2.5,far:6,color:"#000000"}),e.jsx(K,{ref:p,enablePan:!1,minDistance:4,maxDistance:24,autoRotate:a.autoRotate&&a.cameraMode==="orbit",autoRotateSpeed:.6,target:[1,0,0]}),e.jsx(re,{controls:p}),e.jsxs(Q,{multisampling:0,children:[e.jsx(Z,{intensity:1.2*a.plasmaBrightness,luminanceThreshold:.15,luminanceSmoothing:.9,mipmapBlur:!0}),e.jsx(ee,{eskil:!1,offset:.2,darkness:.75}),e.jsx(te,{})]}),e.jsxs("mesh",{position:[0,0,-20],onClick:()=>M({selectedComponent:null}
1),visible:!1,children:[e.jsx("planeGeometry",{args:[200,200]}),e.jsx("meshBasicMaterial",{})]})]})},ke=()=>e.jsx(X,{role:"img","aria-label":"3D animation of a Hall-effect thruster: electrons trapped in a radial magnetic field ionizing xenon and accelerating plasma out of the annular channel.",dpr:[1,1.8],camera:{position:[-8,3,10],fov:42},gl:{antialias:!1,powerPreference:"high-performance",alpha:!1},shadows:!0,children:e.jsx(c.Suspense,{fallback:null,children:e.jsx(ye,{})})});export{ke as default};
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.