Files
AR-Menu/Needle/SampleScene/dist/assets/needle-engine.D6xdy26G.js
pelpanagiotis 6947303755 Commit Needle production dist and nginx-only Docker image
- Track Needle/MenuScene/dist and Needle/SampleScene/dist for container deploys
- Dockerfile copies pre-built dist (no npm in image); rebuild with npm run build before commit
- Fix Needle .gitignore: /assets/ so dist/assets is not ignored
- Git LFS: track *.wasm; relax .dockerignore so dist is sent as build context

Made-with: Cursor
2026-04-19 23:39:59 +03:00

1 line
8.2 KiB
JavaScript

import{Cn as e,Mr as t,Tn as n,Tt as r,dn as i,g as a,i as o,j as s,sr as c,wt as l}from"./three@0.169.19.js";var u={node:`node`,material:`material`,camera:`camera`,light:`light`},d=`KHR_animation_pointer`,f={CUBICSPLINE:void 0,LINEAR:r,STEP:l},p=class{constructor(e){this.name=d,this.parser=e,this.animationPointerResolver=null}setAnimationPointerResolver(e){return this.animationPointerResolver=e,this}loadAnimationTargetFromChannel(e){let t=e.target,n=t.node===void 0?t.id:t.node;return this.parser.getDependency(`node`,n)}loadAnimationTargetFromChannelWithAnimationPointer(e){g();let t=e.target,n=t.extensions&&t.extensions[d]&&t.path&&t.path===`pointer`;if(!n)return null;let r,i=u.node,a;if(n){let e=t.extensions[d],n=e.pointer;if(!n){console.warn(`Invalid path`,e,t);return}if(n.startsWith(`/materials/`)?i=u.material:n.startsWith(`/extensions/KHR_lights_punctual/lights/`)?i=u.light:n.startsWith(`/cameras/`)&&(i=u.camera),a=this._tryResolveTargetId(n,i),a===null||isNaN(a)){console.warn(`Failed resolving animation node id: `+a,n);return}switch(i){case u.material:let e=(`/materials/`+a.toString()+`/`).length,t=n.substring(0,e);switch(r=n.substring(e),r){case`pbrMetallicRoughness/baseColorFactor`:r=`color`;break;case`pbrMetallicRoughness/roughnessFactor`:r=`roughness`;break;case`pbrMetallicRoughness/metallicFactor`:r=`metalness`;break;case`emissiveFactor`:r=`emissive`;break;case`alphaCutoff`:r=`alphaTest`;break;case`occlusionTexture/strength`:r=`aoMapIntensity`;break;case`normalTexture/scale`:r=`normalScale`;break;case`pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/scale`:r=`map/repeat`;break;case`pbrMetallicRoughness/baseColorTexture/extensions/KHR_texture_transform/offset`:r=`map/offset`;break;case`emissiveTexture/extensions/KHR_texture_transform/scale`:r=`emissiveMap/repeat`;break;case`emissiveTexture/extensions/KHR_texture_transform/offset`:r=`emissiveMap/offset`;break;case`extensions/KHR_materials_emissive_strength/emissiveStrength`:r=`emissiveIntensity`;break;case`extensions/KHR_materials_transmission/transmissionFactor`:r=`transmission`;break;case`extensions/KHR_materials_ior/ior`:r=`ior`;break;case`extensions/KHR_materials_volume/thicknessFactor`:r=`thickness`;break;case`extensions/KHR_materials_volume/attenuationColor`:r=`attenuationColor`;break;case`extensions/KHR_materials_volume/attenuationDistance`:r=`attenuationDistance`;break;case`extensions/KHR_materials_iridescence/iridescenceFactor`:r=`iridescence`;break;case`extensions/KHR_materials_iridescence/iridescenceIor`:r=`iridescenceIOR`;break;case`extensions/KHR_materials_iridescence/iridescenceThicknessMinimum`:r=`iridescenceThicknessRange[0]`;break;case`extensions/KHR_materials_iridescence/iridescenceThicknessMaximum`:r=`iridescenceThicknessRange[1]`;break;case`extensions/KHR_materials_clearcoat/clearcoatFactor`:r=`clearcoat`;break;case`extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor`:r=`clearcoatRoughness`;break;case`extensions/KHR_materials_sheen/sheenColorFactor`:r=`sheenColor`;break;case`extensions/KHR_materials_sheen/sheenRoughnessFactor`:r=`sheenRoughness`;break;case`extensions/KHR_materials_specular/specularFactor`:r=`specularIntensity`;break;case`extensions/KHR_materials_specular/specularColorFactor`:r=`specularColor`;break}n=t+r;break;case u.node:let i=(`/nodes/`+a.toString()+`/`).length,o=n.substring(0,i);switch(r=n.substring(i),r){case`translation`:r=`position`;break;case`rotation`:r=`quaternion`;break;case`scale`:r=`scale`;break;case`weights`:r=`morphTargetInfluences`;break;case`extensions/KHR_node_visibility/visible`:r=`visible`;break}n=o+r;break;case u.light:let s=(`/extensions/KHR_lights_punctual/lights/`+a.toString()+`/`).length;switch(r=n.substring(s),r){case`color`:break;case`intensity`:break;case`spot/innerConeAngle`:r=`penumbra`;break;case`spot/outerConeAngle`:r=`angle`;break;case`range`:r=`distance`;break}n=`/lights/`+a.toString()+`/`+r;break;case u.camera:let c=(`/cameras/`+a.toString()+`/`).length,l=n.substring(0,c);switch(r=n.substring(c),r){case`perspective/yfov`:r=`fov`;break;case`perspective/znear`:case`orthographic/znear`:r=`near`;break;case`perspective/zfar`:case`orthographic/zfar`:r=`far`;break;case`perspective/aspect`:r=`aspect`;break;case`orthographic/xmag`:r=`zoom`;break;case`orthographic/ymag`:r=`zoom`;break}n=l+r;break}this.animationPointerResolver?.resolvePath&&(n=this.animationPointerResolver.resolvePath(n)),t.extensions[d].pointer=n}if(a==null||isNaN(a)){console.warn(`Failed resolving animation node id: `+a,t);return}let o;return i===u.node?o=this.parser.getDependency(`node`,a):i===u.material?o=this.parser.getDependency(`material`,a):i===u.light?o=this.parser.getDependency(`light`,a):i===u.camera?o=this.parser.getDependency(`camera`,a):console.error(`Unhandled type`,i),o}createAnimationTracksWithAnimationPointer(e,o,l,u,p){if(!(p.extensions&&p.extensions[d]&&p.path&&p.path===`pointer`))return null;let m=p.extensions[d].pointer;if(!m)return null;let h=[];m=m.replaceAll(`/`,`.`);let g=m.split(`.`);if(g[2]=e.name!==void 0&&e.name!==null?e.name:e.uuid,g[3]===`morphTargetInfluences`&&e.type===`Group`){for(let t of e.children)t instanceof c&&t.morphTargetInfluences&&(g[3]=t.name,g[4]=`morphTargetInfluences`,v(this.parser));return h}v(this.parser);function _(e,t){try{let n=t.split(`.`).filter(Boolean),r=n[n.length-1].replace(/\[.*\]$/,``);return r in e?typeof e[r]==`boolean`:!1}catch{return!1}}function v(c){m=g.join(`.`);let d,p=!1;switch(l.itemSize){case 1:Object.prototype.toString.call(l.array)===`[object Uint8Array]`&&_(e,m)?(d=a,p=!0):d=i;break;case 2:case 3:d=t;break;case 4:d=m.endsWith(`.quaternion`)?n:s;break}if(!d){console.warn(`Unsupported output accessor format`,l);return}let v=u.interpolation===void 0?r:f[u.interpolation],y=c._getArrayFromAccessor(l);m.endsWith(`.fov`)&&(y=y.map(e=>e/Math.PI*180)),p&&(y=y.map(e=>e>0));let b=new d(m,o.array,y,v);if(v===`CUBICSPLINE`&&c._createCubicSplineTrackInterpolant(b),h.push(b),m&&l.itemSize===4&&m.startsWith(`.materials.`)&&m.endsWith(`.color`)){let e=new Float32Array(y.length/4);for(let t=0,n=y.length/4;t<n;t+=1)e[t]=y[t*4+3];let t=new d(m.replace(`.color`,`.opacity`),o.array,e,v);v===`CUBICSPLINE`&&c._createCubicSplineTrackInterpolant(b),h.push(t)}}return h}_tryResolveTargetId(e,t){let n=``;return t===`node`?n=e.substring(7):t===`material`?n=e.substring(11):t===`light`?n=e.substring(39):t===`camera`&&(n=e.substring(9)),n=n.substring(0,n.indexOf(`/`)),Number.parseInt(n)}loadAnimation(e){let t=this,n=this.parser.json,r=this.parser,i=n.animations[e],a=i.name?i.name:`animation_`+e,s=[],c=[],l=[],u=[],d=[];for(let e=0,n=i.channels.length;e<n;e++){let n=i.channels[e],a=i.samplers[n.sampler],o=n.target,f=i.parameters===void 0?a.input:i.parameters[a.input],p=i.parameters===void 0?a.output:i.parameters[a.output],m=t.loadAnimationTargetFromChannelWithAnimationPointer(n);m||=t.loadAnimationTargetFromChannel(n),s.push(m),c.push(r.getDependency(`accessor`,f)),l.push(r.getDependency(`accessor`,p)),u.push(a),d.push(o)}return Promise.all([Promise.all(s),Promise.all(c),Promise.all(l),Promise.all(u),Promise.all(d)]).then(function(e){let n=e[0],i=e[1],s=e[2],c=e[3],l=e[4],u=[];for(let e=0,a=n.length;e<a;e++){let a=n[e],o=i[e],d=s[e],f=c[e],p=l[e];if(a===void 0)continue;a.updateMatrix&&(a.updateMatrix(),a.matrixAutoUpdate=!0);let m=t.createAnimationTracksWithAnimationPointer(a,o,d,f,p);if(m||=r._createAnimationTracks(a,o,d,f,p),m)for(let e=0;e<m.length;e++)u.push(m[e])}return new o(a,void 0,u)})}},m=!1,h=null;function g(){if(m)return;m=!0;let t=h||=e.findNode;e.findNode=function(e,n){if(!n)return t(e,n);if(n.startsWith(`.materials.`)){let t=n.substring(11).substring(n.indexOf(`.`)),r=t.indexOf(`.`),i=r<0?t:t.substring(0,r),a=null;return e.traverse(e=>{a!==null||e.type!==`Mesh`&&e.type!==`SkinnedMesh`||e.material&&(e.material.uuid===i||e.material.name===i)&&(a=e.material,a!==null&&(t.endsWith(`.map`)?a=a.map:t.endsWith(`.emissiveMap`)&&(a=a.emissiveMap)))}),a}else if(n.startsWith(`.nodes.`)||n.startsWith(`.lights.`)||n.startsWith(`.cameras.`)){let r=n.split(`.`),i;for(let t=1;t<r.length;t++){let n=r[t];if(n.length==36)i=e.getObjectByProperty(`uuid`,n);else if(i&&i[n]){let e=Number.parseInt(n),t=n;e>=0&&(t=e),i=i[t]}else{let t=e.getObjectByName(n);t&&(i=t)}}if(!i){let i=t(e,r[2]);return i||console.warn(d+`: Property binding not found`,n,e,e.name,r),i}return i}return t(e,n)}}export{p as t};