UNPKG

@babylonjs/viewer

Version:

The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.

3 lines (2 loc) 1.94 kB
import{M as t,aK as e,aL as n}from"./index-DFZFpUG-.esm.min.js";import{s as i}from"./gltf-light-pointer-state-CO4s73Fg.esm.min.js";function o(t){const e=Object.getOwnPropertyDescriptor(t,"_lightVersion")?.get;let n=0;Object.defineProperty(t,"_lightVersion",{get:()=>(e?e.call(t):0)+(t.worldMatrixVersion??0)+n,enumerable:!1,configurable:!0}),Object.defineProperty(t,"_bumpLightVersion",{value:()=>{n++},enumerable:!1,configurable:!0})}const s={id:"KHR_lights_punctual",async applyAsset(s,r,a){const l=a._json.extensions?.KHR_lights_punctual?.lights;if(!l?.length)return{};const c=[],p=a._json.nodes??[];let u=0;for(let t=0;t<p.length;t++)void 0!==p[t]?.extensions?.KHR_lights_punctual?.light&&u++;u>t&&e(u);for(let t=0;t<p.length;t++){const e=p[t]?.extensions?.KHR_lights_punctual?.light;if(void 0===e)continue;const s=l[e];if(!s)continue;const r=a._nodeMap?.[t];let u,g,h,f;if(r)u=g=h=0,f=[0,0,-1];else{const e=n(a._json,t,a._parentMap,a._worldMatrixCache);u=e[12],g=e[13],h=e[14];const i=-e[8],o=-e[9],s=-e[10],r=Math.hypot(i,o,s)||1;f=[i/r,o/r,s/r]}const m=s.color?[s.color[0],s.color[1],s.color[2]]:[1,1,1],_=s.intensity??1,d=void 0!==s.range?s.range:Number.MAX_VALUE;if("point"===s.type){const{createPointLight:t}=await import("./point-light-3rbrmj2i.esm.min.js"),n=t([u,g,h],_);n.diffuse=m,n.specular=m,n.range=d,r&&(n.parent=r),o(n),c.push(n),i(a._json,e,n)}else if("directional"===s.type){const{createDirectionalLight:t}=await import("./index-DFZFpUG-.esm.min.js").then(function(t){return t.bm}),n=t(f,_);n.diffuse=m,n.specular=m,r&&(n.parent=r),o(n),c.push(n),i(a._json,e,n)}else if("spot"===s.type){const{createSpotLight:t}=await import("./spot-light-CRyyaCny.esm.min.js"),n=t([u,g,h],f,2*(s.spot?.outerConeAngle??Math.PI/4),1,_);n.diffuse=m,n.specular=m,n.range=d,r&&(n.parent=r),o(n),c.push(n),i(a._json,e,n)}}return{entities:c}}};export{s as default}; //# sourceMappingURL=gltf-feature-lights-punctual-DfdJ5AGt.esm.min.js.map