@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) • 2.14 kB
JavaScript
import{V as e,bs as t,aL as n,i as s,bo as o,bp as i}from"./index-BPURObVq.esm.min.js";import{P as a}from"./pointLight.pure-BNtejoTr.esm.min.js";import{S as r}from"./spotLight.pure-5s2DDDIt.esm.min.js";import{A as l,b as h}from"./glTFLoader.pure-Bdyl6AcK.esm.min.js";import"./morphTargetManager-CdEb1BHc.esm.min.js";import"./bone.pure-BcPT5kCP.esm.min.js";import"./skeleton-DinTjF3y.esm.min.js";import"./assetContainer-CAncviZo.esm.min.js";import"./objectModelMapping-ClgDmo5Q.esm.min.js";const m="KHR_lights_punctual";class d{constructor(e){this.name=m,this._loader=e,this.enabled=this._loader.isExtensionUsed(m)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights,l.Assign(this._lights)}}loadNodeAsync(o,i,m){return h.LoadExtensionAsync(o,i,this.name,async(d,c)=>(this._loader._allMaterialsDirtyRequired=!0,await this._loader.loadNodeAsync(o,i,o=>{let i;const p=l.Get(d,this._lights,c.light),_=p.name||o.name;switch(this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,p.type){case"directional":{const n=new t(_,e.Backward(),this._loader.babylonScene);n.position.setAll(0),i=n;break}case"point":i=new a(_,e.Zero(),this._loader.babylonScene);break;case"spot":{const t=new r(_,e.Zero(),e.Backward(),0,1,this._loader.babylonScene);t.angle=2*(p.spot&&p.spot.outerConeAngle||Math.PI/4),t.innerAngle=2*(p.spot&&p.spot.innerConeAngle||0),i=t;break}default:throw this._loader.babylonScene._blockEntityCollection=!1,new Error(`${d}: Invalid light type (${p.type})`)}i._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,p._babylonLight=i,i.falloffType=n.FALLOFF_GLTF,i.diffuse=p.color?s.FromArray(p.color):s.White(),i.intensity=null==p.intensity?1:p.intensity,i.range=null==p.range?Number.MAX_VALUE:p.range,i.parent=o,this._loader._babylonLights.push(i),h.AddPointerMetadata(i,d),m(o)})))}}let c=!1;function p(){c||(c=!0,o(m),i(m,!0,e=>new d(e)))}p();export{d as KHR_lights,p as RegisterKHR_lights};
//# sourceMappingURL=KHR_lights_punctual-Dme5jWnq.esm.min.js.map