PageSourceSearch

https://cdn.meshy.ai/webapp-build-assets/production/_next/static/chunks/0fnyf31ywauz0.js

js meshy.ai collected 2026-09-24 08:41:08 UTC 26,224 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,476890,e=>{"use strict";var t=e.i(843476),r=e.i(135959),n=e.i(271645),o=e.i(931067),a=e.i(315080),i=e.i(771753),l=e.i(732009),s=e.i(443216),c=e.i(560099);let u=n.createContext(null),m=new l.Vector3,p=new l.Vector3,d=new l.Vector3(0,1,0),x=new l.Matrix4,f=({direction:e,axis:t})=>{let{translation:r,translationLimits:o,annotations:i,annotationsClass:f,depthTest:M,scale:y,lineWidth:g,fixed:h,axisColors:w,hoveredColor:b,opacity:v,renderOrder:P,onDragStart:E,onDrag:V,onDragEnd:C,userData:F}=n.useContext(u),R=(0,a.useThree)(e=>e.controls),S=n.useRef(null),T=n.useRef(null),k=n.useRef(null),O=n.useRef(0),[W,j]=n.useState(!1),D=n.useCallback(n=>{i&&(S.current.innerText=`${r.current[t].toFixed(2)}`,S.current.style.display="block"),n.stopPropagation();let o=new l.Matrix4().extractRotation(T.current.matrixWorld),a=n.point.clone(),s=new l.Vector3().setFromMatrixPosition(T.current.matrixWorld),c=e.clone().applyMatrix4(o).normalize();k.current={clickPoint:a,dir:c},O.current=r.current[t],E({component:"Arrow",axis:t,origin:s,directions:[c]}),R&&(R.enabled=!1),n.target.setPointerCapture(n.pointerId)},[i,e,R,E,r,t]),A=n.useCallback(e=>{if(e.stopPropagation(),W||j(!0),k.current){var n,a;let l,s,c,{clickPoint:u,dir:d}=k.current,[f,M]=(null==o?void 0:o[t])||[void 0,void 0],y=(n=e.ray.origin,a=e.ray.direction,l=d.dot(d),s=d.dot(u)-d.dot(n),0===(c=d.dot(a))?-s/l:(m.copy(a).multiplyScalar(l/c).sub(d),p.copy(a).multiplyScalar(s/c).add(n).sub(u),-m.dot(p)/m.dot(m)));void 0!==f&&(y=Math.max(y,f-O.current)),void 0!==M&&(y=Math.min(y,M-O.current)),r.current[t]=O.current+y,i&&(S.current.innerText=`${r.current[t].toFixed(2)}`),x.makeTranslation(d.x*y,d.y*y,d.z*y),V(x)}},[i,V,W,r,o,t]),z=n.useCallback(e=>{i&&(S.current.style.display="none"),e.stopPropagation(),k.current=null,C(),R&&(R.enabled=!0),e.target.releasePointerCapture(e.pointerId)},[i,R,C]),B=n.useCallback(e=>{e.stopPropagation(),j(!1)},[]),{cylinderLength:U,coneWidth:I,coneLength:L,matrixL:G}=n.useMemo(()=>{let t=h?g/y*1.6:y/20,r=h?.2:y/5,n=h?1-r:y-r,o=new l.Quaternion().setFromUnitVectors(d,e.clone().normalize());return{cylinderLength:n,coneWidth:t,coneLength:r,matrixL:new l.Matrix4().makeRotationFromQuaternion(o)}},[e,y,g,h]),$=W?b:w[t];return n.createElement("group",{ref:T},n.createElement("group",{matrix:G,matrixAutoUpdate:!1,onPointerDown:D,onPointerMove:A,onPointerUp:z,onPointerOut:B},i&&n.createElement(c.Html,{position:[0,-L,0]},n.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:f,ref:S})),n.createElement("mesh",{visible:!1,position:[0,(U+L)/2,0],userData:F},n.createElement("cylinderGeometry",{args:[1.4*I,1.4*I,U+L,8,1]})),n.createElement(s.Line,{transparent:!0,raycast:()=>null,depthTest:M,points:[0,0,0,0,U,0],lineWidth:g,side:l.DoubleSide,color:$,opacity:v,polygonOffset:!0,renderOrder:P,polygonOffsetFactor:-10,fog:!1}),n.createElement("mesh",{raycast:()=>null,position:[0,U+L/2,0],renderOrder:P},n.createElement("coneGeometry",{args:[I,L,24,1]}),n.createElement("meshBasicMaterial",{transparent:!0,depthTest:M,color:$,opacity:v,polygonOffset:!0,polygonOffsetFactor:-10,fog:!1}))))},M=new l.Vector3,y=new l.Vector3,g=e=>180*e/Math.PI,h=e=>{var t;let r,n=(r=Math.floor(e/(t=2*Math.PI)),e-(r=r<0?r+1:r)*t);return 1e-6>Math.abs(n)?0:(n<0&&(n+=2*Math.PI),n)},w=new l.Matrix4,b=new l.Vector3,v=new l.Ray,P=new l.Vector3,E=({dir1:e,dir2:t,axis:r})=>{let{rotationLimits:o,annotations:i,annotationsClass:m,depthTest:p,scale:d,lineWidth:x,fixed:f,axisColors:E,hoveredColor:V,renderOrder:C,opacity:F,onDragStart:R,onDrag:S,onDragEnd:T,userData:k}=n.useContext(u),O=(0,a.useThree)(e=>e.controls),W=n.useRef(null),j=n.useRef(null),D=n.useRef(0),A=n.useRef(0),z=n.useRef(null),[B,U]=n.useState(!1),I=n.useCallback(e=>{i&&(W.current.innerText=`${g(A.current).toFixed(0)}\xba`,W.current.style.display="block"),e.stopPropagation();let t=e.point.clone(),n=new l.Vector3().setFromMatrixPosition(j.current.matrixWorld),o=new l.Vector3().setFromMatrixColumn(j.current.matrixWorld,0).normalize(),a=new l.Vector3().setFromMatrixColumn(j.current.matrixWorld,
11).normalize(),s=new l.Vector3().setFromMatrixColumn(j.current.matrixWorld,2).normalize(),c=new l.Plane().setFromNormalAndCoplanarPoint(s,n);z.current={clickPoint:t,origin:n,e1:o,e2:a,normal:s,plane:c},R({component:"Rotator",axis:r,origin:n,directions:[o,a,s]}),O&&(O.enabled=!1),e.target.setPointerCapture(e.pointerId)},[i,O,R,r]),L=n.useCallback(e=>{if(e.stopPropagation(),B||U(!0),z.current){let t,n,a,s,c,{clickPoint:u,origin:m,e1:p,e2:d,normal:x,plane:f}=z.current,[E,V]=(null==o?void 0:o[r])||[void 0,void 0];v.copy(e.ray),v.intersectPlane(f,P),v.direction.negate(),v.intersectPlane(f,P);let C=(M.copy(u).sub(m),y.copy(P).sub(m),t=p.dot(p),n=d.dot(d),a=M.dot(p)/t,s=M.dot(d)/n,c=y.dot(p)/t,Math.atan2(y.dot(d)/n,c)-Math.atan2(s,a)),F=g(C);e.shiftKey&&(C=(F=10*Math.round(F/10))*Math.PI/180),void 0!==E&&void 0!==V&&V-E<2*Math.PI?(C=(C=h(C))>Math.PI?C-2*Math.PI:C,C=l.MathUtils.clamp(C,E-D.current,V-D.current),A.current=D.current+C):(A.current=h(D.current+C),A.current=A.current>Math.PI?A.current-2*Math.PI:A.current),i&&(F=g(A.current),W.current.innerText=`${F.toFixed(0)}\xba`),w.makeRotationAxis(x,C),b.copy(m).applyMatrix4(w).sub(m).negate(),w.setPosition(b),S(w)}},[i,S,B,o,r]),G=n.useCallback(e=>{i&&(W.current.style.display="none"),e.stopPropagation(),D.current=A.current,z.current=null,T(),O&&(O.enabled=!0),e.target.releasePointerCapture(e.pointerId)},[i,O,T]),$=n.useCallback(e=>{e.stopPropagation(),U(!1)},[]),N=n.useMemo(()=>{let r=e.clone().normalize(),n=t.clone().normalize();return new l.Matrix4().makeBasis(r,n,r.clone().cross(n))},[e,t]),H=f?.65:.65*d,Q=n.useMemo(()=>{let e=[];for(let t=0;t<=32;t++){let r=Math.PI/2*t/32;e.push(new l.Vector3(Math.cos(r)*H,Math.sin(r)*H,0))}return e},[H]);return n.createElement("group",{ref:j,onPointerDown:I,onPointerMove:L,onPointerUp:G,onPointerOut:$,matrix:N,matrixAutoUpdate:!1},i&&n.createElement(c.Html,{position:[H,H,0]},n.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:m,ref:W})),n.createElement(s.Line,{points:Q,lineWidth:4*x,visible:!1,userData:k}),n.createElement(s.Line,{transparent:!0,raycast:()=>null,depthTest:p,points:Q,lineWidth:x,side:l.DoubleSide,color:B?V:E[r],opacity:F,polygonOffset:!0,polygonOffsetFactor:-10,renderOrder:C,fog:!1}))},V=new l.Ray,C=new l.Vector3,F=new l.Matrix4,R=({dir1:e,dir2:t,axis:r})=>{let{translation:o,translationLimits:i,annotations:m,annotationsClass:p,depthTest:d,scale:x,lineWidth:f,fixed:M,axisColors:y,hoveredColor:g,opacity:h,renderOrder:w,onDragStart:b,onDrag:v,onDragEnd:P,userData:E}=n.useContext(u),R=(0,a.useThree)(e=>e.controls),S=n.useRef(null),T=n.useRef(null),k=n.useRef(null),O=n.useRef(0),W=n.useRef(0),[j,D]=n.useState(!1),A=n.useCallback(e=>{m&&(S.current.innerText=`${o.current[(r+1)%3].toFixed(2)}, ${o.current[(r+2)%3].toFixed(2)}`,S.current.style.display="block"),e.stopPropagation();let t=e.point.clone(),n=new l.Vector3().setFromMatrixPosition(T.current.matrixWorld),a=new l.Vector3().setFromMatrixColumn(T.current.matrixWorld,0).normalize(),i=new l.Vector3().setFromMatrixColumn(T.current.matrixWorld,1).normalize(),s=new l.Vector3().setFromMatrixColumn(T.current.matrixWorld,2).normalize();k.current={clickPoint:t,e1:a,e2:i,plane:new l.Plane().setFromNormalAndCoplanarPoint(s,n)},O.current=o.current[(r+1)%3],W.current=o.current[(r+2)%3],b({component:"Slider",axis:r,origin:n,directions:[a,i,s]}),R&&(R.enabled=!1),e.target.setPointerCapture(e.pointerId)},[m,R,b,r]),z=n.useCallback(e=>{if(e.stopPropagation(),j||D(!0),k.current){let t,n,a,l,s,c,u,p,d,{clickPoint:x,e1:f,e2:M,plane:y}=k.current,[g,h]=(null==i?void 0:i[(r+1)%3])||[void 0,void 0],[w,b]=(null==i?void 0:i[(r+2)%3])||[void 0,void 0];V.copy(e.ray),V.intersectPlane(y,C),V.direction.negate(),V.intersectPlane(y,C),C.sub(x);let[P,E]=(t=Math.abs(f.x)>=Math.abs(f.y)&&Math.abs(f.x)>=Math.abs(f.z)?0:Math.abs(f.y)>=Math.abs(f.x)&&Math.abs(f.y)>=Math.abs(f.z)?1:2,a=t===(n=[0,1,2].sort((e,t)=>Math.abs(M.getComponent(t))-Math.abs(M.getComponent(e))))[0]?n[1]:n[0],l=f.getComponent(t),s=f.getComponent(a),c=M.getComponent(t),u=M.getComponent(a),p=C.getComponent(t),d=(C.getComponent(a)-s/l*p)/(u-s/l*c),[(p-d*c)/l,d]);void 0!==g&&(P=Math.max(P,g-O.current)),void 0!==h&&(P=Math.min(P,h-O.current)),void 0!==w&&(E=Math.max(E,w-W.current)),void 0!==b&&(E=Math.min(E,b-W.current)),o.current[(r+1)%3]=O.current+P,o.current[(r+2)%3]=W.current+E,m&&(S.current.innerText=`${o.current[(r+1)%3].toFixed(2)}, ${o.current[(r+2)%3].toFixed(2)}`),F.makeTranslation(P*f.x+E*M.x,P*f.y+E*M.y,P*f.z+E*M.z),v(F)}},[m,v,j,o,i,r]),B=n.useCallback(e=>{m&&(S.current.style.display="none"),e.stopPropagation(),k.current=null,P(),R&&(R.enabled=!0),e.target.releasePointerCapture(e.pointerId)},[m,R,P]),U=n.useCallback(e=>{e.stopPropagation(),D(!1)},[]),I=n.useMemo(()=>{let r=e.clone().normalize(),n=t.clone().normalize();
1return new l.Matrix4().makeBasis(r,n,r.clone().cross(n))},[e,t]),L=M?1/7:x/7,G=M?.225:.225*x,$=j?g:y[r],N=n.useMemo(()=>[new l.Vector3(0,0,0),new l.Vector3(0,G,0),new l.Vector3(G,G,0),new l.Vector3(G,0,0),new l.Vector3(0,0,0)],[G]);return n.createElement("group",{ref:T,matrix:I,matrixAutoUpdate:!1},m&&n.createElement(c.Html,{position:[0,0,0]},n.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:p,ref:S})),n.createElement("group",{position:[1.7*L,1.7*L,0]},n.createElement("mesh",{visible:!0,onPointerDown:A,onPointerMove:z,onPointerUp:B,onPointerOut:U,scale:G,userData:E,renderOrder:w},n.createElement("planeGeometry",null),n.createElement("meshBasicMaterial",{transparent:!0,depthTest:d,color:$,polygonOffset:!0,polygonOffsetFactor:-10,side:l.DoubleSide,fog:!1})),n.createElement(s.Line,{position:[-G/2,-G/2,0],transparent:!0,depthTest:d,points:N,lineWidth:f,color:$,opacity:h,polygonOffset:!0,polygonOffsetFactor:-10,userData:E,fog:!1,renderOrder:w})))};var S=e.i(507573);let T=new l.Vector3,k=new l.Vector3,O=new l.Vector3(0,1,0),W=new l.Vector3,j=new l.Matrix4,D=({direction:e,axis:t})=>{let{scaleLimits:r,annotations:o,annotationsClass:i,depthTest:s,scale:m,lineWidth:p,fixed:d,axisColors:x,hoveredColor:f,opacity:M,renderOrder:y,onDragStart:g,onDrag:h,onDragEnd:w,userData:b}=n.useContext(u),v=(0,a.useThree)(e=>e.size),P=(0,a.useThree)(e=>e.controls),E=n.useRef(null),V=n.useRef(null),C=n.useRef(null),F=n.useRef(1),R=n.useRef(1),D=n.useRef(null),[A,z]=n.useState(!1),B=d?1.2:1.2*m,U=n.useCallback(r=>{o&&(E.current.innerText=`${R.current.toFixed(2)}`,E.current.style.display="block"),r.stopPropagation();let n=new l.Matrix4().extractRotation(V.current.matrixWorld),a=r.point.clone(),i=new l.Vector3().setFromMatrixPosition(V.current.matrixWorld),s=e.clone().applyMatrix4(n).normalize(),c=V.current.matrixWorld.clone(),u=c.clone().invert();D.current={clickPoint:a,dir:s,mPLG:c,mPLGInv:u,offsetMultiplier:d?1/(0,S.calculateScaleFactor)(V.current.getWorldPosition(T),m,r.camera,v):1},g({component:"Sphere",axis:t,origin:i,directions:[s]}),P&&(P.enabled=!1),r.target.setPointerCapture(r.pointerId)},[o,P,e,g,t,d,m,v]),I=n.useCallback(e=>{if(e.stopPropagation(),A||z(!0),D.current){var n,a;let i,l,s,{clickPoint:c,dir:u,mPLG:p,mPLGInv:x,offsetMultiplier:f}=D.current,[M,y]=(null==r?void 0:r[t])||[1e-5,void 0],g=(n=e.ray.origin,a=e.ray.direction,i=u.dot(u),l=u.dot(c)-u.dot(n),(0===(s=u.dot(a))?-l/i:(T.copy(a).multiplyScalar(i/s).sub(u),k.copy(a).multiplyScalar(l/s).add(n).sub(c),-T.dot(k)/T.dot(T)))*f),w=Math.pow(2,.2*(d?g:g/m));e.shiftKey&&(w=Math.round(10*w)/10),w=Math.max(w,M/F.current),void 0!==y&&(w=Math.min(w,y/F.current)),R.current=F.current*w,C.current.position.set(0,B+g,0),o&&(E.current.innerText=`${R.current.toFixed(2)}`),W.set(1,1,1),W.setComponent(t,w),j.makeScale(W.x,W.y,W.z).premultiply(
1p).multiply(x),h(j)}},[o,B,h,A,r,t]),L=n.useCallback(e=>{o&&(E.current.style.display="none"),e.stopPropagation(),F.current=R.current,D.current=null,C.current.position.set(0,B,0),w(),P&&(P.enabled=!0),e.target.releasePointerCapture(e.pointerId)},[o,P,w,B]),G=n.useCallback(e=>{e.stopPropagation(),z(!1)},[]),{radius:$,matrixL:N}=n.useMemo(()=>{let t=d?p/m*1.8:m/22.5,r=new l.Quaternion().setFromUnitVectors(O,e.clone().normalize());return{radius:t,matrixL:new l.Matrix4().makeRotationFromQuaternion(r)}},[e,m,p,d]),H=A?f:x[t];return n.createElement("group",{ref:V},n.createElement("group",{matrix:N,matrixAutoUpdate:!1,onPointerDown:U,onPointerMove:I,onPointerUp:L,onPointerOut:G},o&&n.createElement(c.Html,{position:[0,B/2,0]},n.createElement("div",{style:{display:"none",background:"#151520",color:"white",padding:"6px 8px",borderRadius:7,whiteSpace:"nowrap"},className:i,ref:E})),n.createElement("mesh",{ref:C,position:[0,B,0],renderOrder:y,userData:b},n.createElement("sphereGeometry",{args:[$,12,12]}),n.createElement("meshBasicMaterial",{transparent:!0,depthTest:s,color:H,opacity:M,polygonOffset:!0,polygonOffsetFactor:-10}))))},A=new l.Matrix4,z=new l.Matrix4,B=new l.Matrix4,U=new l.Matrix4,I=new l.Matrix4,L=new l.Matrix4,G=new l.Matrix4,$=new l.Matrix4,N=new l.Matrix4,H=new l.Box3,Q=new l.Box3,K=new l.Vector3,X=new l.Vector3,_=new l.Vector3,J=new l.Vector3,q=new l.Vector3,Y=new l.Vector3(1,0,0),Z=new l.Vector3(0,1,0),ee=new l.Vector3(0,0,1),et=n.forwardRef(({enabled:e=!0,matrix:t,onDragStart:r,onDrag:s,onDragEnd:c,autoTransform:m=!0,anchor:p,disableAxes:d=!1,disableSliders:x=!1,disableRotations:M=!1,disableScaling:y=!1,activeAxes:g=[!0,!0,!0],offset:h=[0,0,0],rotation:w=[0,0,0],scale:b=1,lineWidth:v
1=4,fixed:P=!1,translationLimits:V,rotationLimits:C,scaleLimits:F,depthTest:T=!0,renderOrder:k=500,axisColors:O=["#ff2060","#20df80","#2080ff"],hoveredColor:W="#ffff40",annotations:j=!1,annotationsClass:et,opacity:er=1,visible:en=!0,userData:eo,children:ea,...ei},el)=>{let es=(0,a.useThree)(e=>e.invalidate),ec=n.useRef(null),eu=n.useRef(null),em=n.useRef(null),ep=n.useRef(null),ed=n.useRef([0,0,0]),ex=n.useRef(new l.Vector3(1,1,1)),ef=n.useRef(new l.Vector3(1,1,1));n.useLayoutEffect(()=>{p&&(ep.current.updateWorldMatrix(!0,!0),U.copy(ep.current.matrixWorld).invert(),H.makeEmpty(),ep.current.traverse(e=>{e.geometry&&(e.geometry.boundingBox||e.geometry.computeBoundingBox(),L.copy(e.matrixWorld).premultiply(U),Q.copy(e.geometry.boundingBox),Q.applyMatrix4(L),H.union(Q))}),K.copy(H.max).add(H.min).multiplyScalar(.5),X.copy(H.max).sub(H.min).multiplyScalar(.5),_.copy(X).multiply(new l.Vector3(...p)).add(K),J.set(...h).add(_),em.current.position.copy(J),es())});let eM=n.useMemo(()=>({onDragStart:e=>{A.copy(eu.current.matrix),z.copy(eu.current.matrixWorld),r&&r(e),es()},onDrag:e=>{B.copy(ec.current.matrixWorld),U.copy(B).invert(),I.copy(z).premultiply(e),L.copy(I).premultiply(U),G.copy(A).invert(),$.copy(L).multiply(G),m&&eu.current.matrix.copy(L),s&&s(L,$,I,e),es()},onDragEnd:()=>{c&&c(),es()},translation:ed,translationLimits:V,rotationLimits:C,axisColors:O,hoveredColor:W,opacity:er,scale:b,lineWidth:v,fixed:P,depthTest:T,renderOrder:k,userData:eo,annotations:j,annotationsClass:et}),[r,s,c,ed,V,C,F,T,b,v,P,...O,W,er,eo,m,j,et]),ey=new l.Vector3;return(0,i.useFrame)(e=>{if(P){let t=(0,S.calculateScaleFactor)(em.current.getWorldPosition(ey),b,e.camera,e.size);ex.current.setScalar(t)}t&&t instanceof l.Matrix4&&(eu.current.matrix=t),eu.current.updateWorldMatrix(!0,!0),N.makeRotationFromEuler(em.current.rotation).setPosition(em.current.position).premultiply(eu.current.matrixWorld),ef.current.setFromMatrixScale(N),q.copy(ex.current).divide(ef.current),(Math.abs(em.current.scale.x-q.x)>1e-4||Math.abs(em.current.scale.y-q.y)>1e-4||Math.abs(em.current.scale.z-q.z)>1e-4)&&(em.current.scale.copy(q),e.invalidate())}),n.useImperativeHandle(el,()=>eu.current,[]),n.createElement(u.Provider,{value:eM},n.createElement("group",{ref:ec},n.createElement("group",(0,o.default)({ref:eu,matrix:t,matrixAutoUpdate:!1},ei),n.createElement("group",{visible:en,ref:em,position:h,rotation:w},e&&n.createElement(n.Fragment,null,!d&&g[0]&&n.createElement(f,{axis:0,direction:Y}),!d&&g[1]&&n.createElement(f,{axis:1,direction:Z}),!d&&g[2]&&n.createElement(f,{axis:2,direction:ee}),!x&&g[0]&&g[1]&&n.createElement(R,{axis:2,dir1:Y,dir2:Z}),!x&&g[0]&&g[2]&&n.createElement(R,{axis:1,dir1:ee,dir2:Y}),!x&&g[2]&&g[1]&&n.createElement(R,{axis:0,dir1:Z,dir2:ee}),!M&&g[0]&&g[1]&&n.createElement(E,{axis:2,dir1:Y,dir2:Z}),!M&&g[0]&&g[2]&&n.createElement(E,{axis:1,dir1:ee,dir2:Y}),!M&&g[2]&&g[1]&&n.createElement(E,{axis:0,dir1:Z,dir2:ee}),!y&&g[0]&&n.createElement(D,{axis:0,direction:Y}),!y&&g[1]&&n.createElement(D,{axis:1,direction:Z}),!y&&g[2]&&n.createElement(D,{axis:2,direction:ee}))),n.createElement("group",{ref:ep},ea))))});var er=e.i(470905),en=e.i(58517),eo=e.i(491858),ea=e.i(952035);let ei="__addBaseHighlightSourceUuid";function el(e){return Array.isArray(e)?e:[e]}var es=e.i(139902),ec=e.i(118542),eu=e.i(819784);let em=["map","normalMap","aoMap","roughnessMap","metalnessMap","emissiveMap","alphaMap","bumpMap","displacementMap"];function ep(e){return em.some(t=>null!=e[t])}function ed(e){let t=(0,eu.readMaterialMap)(e);return!!(t&&!(0,eu.isUvTransformPlaceholderMap)(t))}function ex(e,t,r){let n=[];return e.traverse(e=>{e instanceof l.Mesh&&r(e)&&(e.geometry.getAttribute("normal")||(e.geometry=e.geometry.clone(),(0,ec.ensureNormals)(e.geometry),n.push(e.geometry)),e.material=t)}),n}var ef=e.i(464150);function eM({url:e,children:t}){let{scene:r}=(0,eo.useGLTFWithProgress)(e);return t(r)}function ey({url:e,children:t}){return t((0,ef.useFBXWithProgress)(e))}function eg({url:e,children:t}){return t((0,ef.useOBJWithProgress)(e))}function eh({url:e,children:t}){let r=(0,ef.useSTLWithProgress)(e),o=(0,n.useMemo)(()=>{let e,t;return(e=r.clone()).rotateX(-Math.PI/2),(0,ec.ensureNormals)(e),(t=new l.Group).name="AddBaseStlPlatform",t.add(new l.Mesh(e,new l.MeshStandardMaterial({color:8421504,roughness:.5,metalness:.1}))),t},[r]);return(0,n.useEffect)(()=>()=>{o.traverse(e=>{e instanceof l.Mesh&&(e.geometry.dispose(),(Array.isArray(e.material)?e.material:[e.material]).forEac
1h(e=>e.dispose()))})},[o]),t(o)}function ew({url:e,format:r="glb",children:n}){switch(r){case"fbx":return(0,t.jsx)(ey,{url:e,children:n});case"obj":return(0,t.jsx)(eg,{url:e,children:n});case"stl":return(0,t.jsx)(eh,{url:e,children:n});default:return(0,t.jsx)(eM,{url:e,children:n})}}new l.Vector3(0,0,0);let eb=new l.Vector3(1,1,1),ev=new l.Vector3(0,1,0),eP=new l.Quaternion;function eE(e){e.updateMatrixWorld(!0);let t=new l.Box3,r=!1;return e.traverse(e=>{if(!(e instanceof l.Mesh)||!e.geometry)return;let n=new l.Box3().setFromObject(e);n.isEmpty()||(r?t.union(n):(t.copy(n),r=!0))}),r?t:null}function eV(e){if(!e)return new l.Matrix4;let t=e.getCenter(new l.Vector3);return new l.Matrix4().makeTranslation(-t.x,-e.max.y,-t.z)}function eC(e){if(!e)return 0;let t=e.getSize(new l.Vector3);return Math.max(t.x,t.z)}function eF(e){return e.toArray().map(e=>Math.round(1e8*e)/1e8)}let eR=new l.Raycaster;function eS(e){e.forEach(e=>{e.dispose()})}function eT(e){e.forEach(e=>{e.dispose()})}function ek({modelUrl:e,platformUrl:r,platformFormat:n,autoFitPlatform:o=!1,translate:a,rotation:i,scale:l,onTranslateChange:s,onMatricesChange:c,readOnly:u=!1}){let m=(0,eo.useGLTFWithProgress)(e);return(0,t.jsx)(ew,{url:r,format:n,children:e=>(0,t.jsx)(eO,{modelScene:m.scene,platformScene:e,platformFormat:n,autoFitPlatform:o,translate:a,rotation:i,scale:l,onTranslateChange:s,onMatricesChange:c,readOnly:u})})}function eO({modelScene:e,platformScene:r,platformFormat:o,autoFitPlatform:i=!1,translate:s,rotation:c,scale:u,onTranslateChange:m,onMatricesChange:p,readOnly:d=!1}){let x=(0,n.useRef)(null),[f,M]=(0,n.useState)(!1),{camera:y,gl:g,scene:h,invalidate:w}=(0,a.useThree)(),b=(0,ea.useMatcapMaterial)(),v=(0,n.useMemo)(()=>{var t,r;let n,o=(0,en.cloneSceneWithMaterials)(e);return{...o,disposablePreviewGeometries:(t=o.scene,r=b,(n=!1,t.traverse(e=>{!n&&e instanceof l.Mesh&&(n=(0,eu.getMaterialList)(e.material).some(ed)||(0,es.meshHasVertexColors)(e))}),n)?[]:ex(t,r,()=>!0))}},[b,e]),P="fbx"===o||"obj"===o||"stl"===o,E=(0,n.useMemo)(()=>{let e=(0,en.cloneSceneWithMaterials)(r),t=P?function(e,t,r={}){let n=r.preserveTextureMaps??!0;return ex(e,t,e=>!(n&&(0,eu.getMaterialList)(e.material).some(ep)))}(e.scene,b,{preserveTextureMaps:"fbx"!==o}):[];return{...e,disposablePreviewGeometries:t}},[b,o,r,P]),V=(0,n.useMemo)(()=>new l.MeshBasicMaterial({color:"#6BEBD6",transparent:!0,opacity:.32,side:l.DoubleSide,depthWrite:!1,polygonOffset:!0,polygonOffsetFactor:-2,polygonOffsetUnits:-1,toneMapped:!1}),[]),C=(0,n.useMemo)(()=>(function(e,t){let r,n=new Map,o=[];e.traverse(e=>{e instanceof l.Mesh&&(n.set(e.uuid,e),o.push({hadValue:ei in e.userData,mesh:e,value:e.userData[ei]}),e.userData[ei]=e.uuid)});try{r=e.clone(!0)}finally{o.forEach(({hadValue:e,mesh:t,value:r})=>{e?t.userData[ei]=r:delete t.userData[ei]})}let a=new Set,i=new Set;return r.traverse(e=>{if(!(e instanceof l.Mesh))return;let r=e.userData[ei];delete e.userData[ei];let o="string"==typeof r?n.get(r):void 0;if(o&&e.geometry!==o.geometry&&a.add(e.geometry),o){let t=new Set(el(o.material));el(e.material).forEach(e=>{t.has(e)||i.add(e)})}e.material=t,e.renderOrder=10}),{scene:r,disposableGeometries:[...a],disposableMaterials:[...i]}})(r,V),[r,V]);(0,n.useEffect)(()=>()=>
1{eS(v.materials),eT(v.disposablePreviewGeometries)},[v]),(0,n.useEffect)(()=>()=>{eS(E.materials),eT(E.disposablePreviewGeometries)},[E]),(0,n.useEffect)(()=>()=>{b.dispose()},[b]),(0,n.useEffect)(()=>()=>{eS(C.disposableMaterials),eT(C.disposableGeometries)},[C]),(0,n.useEffect)(()=>()=>{V.dispose()},[V]);let F=(0,n.useMemo)(()=>eE(e),[e]),R=(0,n.useMemo)(()=>(function(e){if(!e)return new l.Matrix4;let t=e.getCenter(new l.Vector3);return new l.Matrix4().makeTranslation(-t.x,-e.min.y,-t.z)})(F),[F]),S=(0,n.useMemo)(()=>eE(r),[r]),T=(0,n.useMemo)(()=>eV(S),[S]),k=(0,n.useMemo)(()=>S?S.getCenter(new l.Vector3).applyMatrix4(eV(S)):new l.Vector3,[S]),O=u*(0,n.useMemo)(()=>(function({enabled:e,modelBox:t,platformBox:r,fitRatio:n=2}){if(!e)return 1;let o=eC(t),a=eC(r);return!Number.isFinite(o)||!Number.isFinite(a)||o<=1e-6||a<=1e-6?1:o*n/a})({enabled:i,modelBox:F,platformBox:S}),[i,F,S]),W=(0,n.useMemo)(()=>(function({alignmentMatrix:e,translate:t,rotationDegrees:r,scale:n}){return new l.Matrix4().compose(new l.Vector3(...t),new l.Quaternion().setFromAxisAngle(new l.Vector3(0,1,0),(0,er.degToRad)(r)),new l.Vector3(n,n,n)).multiply(e)})({alignmentMatrix:T,translate:s,rotationDegrees:c,scale:O}),[O,T,c,s]),j=(0,n.useMemo)(()=>{var e;return e={translate:s,rotationDegrees:c,scale:O,pivotOffset:k},new l.Matrix4().compose(function({translate:e,rotationDegrees:t,scale:r,pivotOffset:n}){let o=n.clone().multiplyScalar(r).applyAxisAngle(ev,(0,er.degToRad)(t));return new l.Vector3(...e).add(o)}(e),eP,eb)},[O,k,c,s]);return((0,n.useLayoutEffect)(()=>{p?.(function({modelBox:e,platformBox:t,modelAlignmentMatrix:r,platformMatrix:n}){return e&&t?{modelMatrix:eF(r),platformMatrix:eF(n)}:{modelMatrix:void 0,platformMatrix:void 0}}({modelBox:F,platformBox:S,modelAlignmentMatrix:R,platformMatrix:W})),w()},[w,R,F,p,S,W]),(0,n.useEffect)(()=>{w()},[w,f]),(0,n.useEffect)(()=>{if(d)return;let e=g.domElement;function t(t){let r=x.current;if(!r)return;let{clientX:n,clientY:o}=t,{left:a,top:i,width:s,height:c}=e.getBoundingClientRect(),u=new l.Vector2((n-a)/s*2-1,-(o-i)/c*2+1);eR.setFromCamera(u,y),h.updateMatrixWorld(!0),M(eR.intersectObjects(r.children,!0).some(e=>(function(e,t){let r=e;for(;r;){if(r===t)return!0;r=r.parent}return!1})(e.object,r)))}return e.addEventListener("click",t),()=>{e.removeEventListener("click",t)}},[y,g.domElement,h,d]),F&&S)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("group",{matrixAutoUpdate:!1,matrix:R,children:(0,t.jsx)("primitive",{object:v.scene,dispose:null})}),!d&&(0,t.jsx)(et,{enabled:f,fixed:!0,matrix:j,onDrag:e=>{m?.(function(e,{rotationDegrees:t,scale:r,pivotOffset:n}){let o=new l.Vector3().setFromMatrixPosition(e),a=n.clone().multiplyScalar(r).applyAxisAngle(ev,(0,er.degToRad)(t));return o.sub(a).toArray()}(e,{rotationDegrees:c,scale:O,pivotOffset:k})),w()},scale:100,depthTest:!1,disableRotations:!0,disableScaling:!0,disableSliders:!0}),(0,t.jsxs)("group",{ref:x,position:s,rotation:[0,(0,er.degToRad)(c),0],scale:O,children:[(0,t.jsx)("group",{matrixAutoUpdate:!1,matrix:T,children:(0,t.jsx)("primitive",{object:E.scene,dispose:null})}),f&&(0,t.jsx)("group",{matrixAutoUpdate:!1,matrix:T,children:(0,t.jsx)("primitive",{object:C.scene,dispose:null})})]})]}):null}var eW=e.i(20710);e.i(210493);var ej=e.i(847673),eD=e.i(621161),eA=e.i(839567),ez=e.i(803068),eB=e.i(8585),eU=e.i(442357);e.s(["AddBaseViewerPreset",0,function({modelUrl:e,platformUrl:o,platformFormat:a,autoFitPlatform:i,translate:l,rotation:s,scale:c,onTranslateChange:u,onMatricesChange:m,slots:p,onError:d,onReady:x,readOnly:f=!1,transparent:M=!1,autoRotate:y=!1,autoRotateSpeed:g=1.2,errorFallback:h,onModelFramed:w,fitMargin:b=1.1}){let[v,P]=(0,n.useState)(!1);return(0,t.jsx)(eB.ViewerCore,{children:(0,t.jsx)(eU.ViewerFrame,{slots:p,onError:d,onReady:x,transparent:M,errorFallback:h,children:(0,t.jsxs)(ez.ViewerCanvas,{config:{camera:{fov:35,position:[5,3,5]},...M?{transparent:!0}:{}},canvasProps:{frameloop:y?"always":"demand"},children:[(0,t.jsx)(eA.OrbitControlsLayer,{enableDamping:!1,target:[0,.5,0],maxDistance:10,minDistance:1,...y?{autoRotate:!v,autoRotateSpeed:g,onStart:()=>P(!0),onEnd:()=>P(!1)}:{}}),(0,t.jsx)(ej.EnvironmentLayer,{backdropPreset:"noToneMapping",...M?{showFallbackBackdrop:!1}:{}}),(0,t.jsx)("ambientLight",{intensity:Math.PI}),f?(0,t.jsxs)(r.Bounds,{fit:!1,clip:!0,observe:!1,margin:b,children:[(0,t.jsx)(ek,{modelUrl:e,platformUrl:o,platformFormat:a,autoFitPlatform:i,translate:l,rotation:s,scale:c,readOnly:!0}),(0,t.jsx)(eW.BoundsRefitOnLoad,{trigger:`${e}|${o}`}),w&&(0,t.jsx)(eD.ModelFramedSignal,{onFramed:w})]}):(0,t.jsx)(ek,{modelUrl:e,platformUrl:o,platformFormat:a,autoFitPlatform:i,translate:l,rotation:s,scale:c,onTranslateChange:u,onMatricesChange:m})]})})})}],476890)}]);

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.