@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) • 6.2 kB
JavaScript
import{B as e,C as t,M as i,O as s,V as n,T as r,aS as o,b as a,Y as l,bj as u,u as h,v as d,bk as _,bl as x,R as f}from"./index-Bw2N6w1y.esm.min.js";import"./abstractEngine.cubeTexture-DJ9DQfTr.esm.min.js";class p extends e{set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;const i=this.getScene();i&&i.markAllMaterialsAsDirty(t.MATERIAL_TextureDirtyFlag)}get boundingBoxSize(){return this._boundingBoxSize}set rotationY(e){this._rotationY=e,this.setReflectionTextureMatrix(i.RotationY(this._rotationY))}get rotationY(){return this._rotationY}get noMipmap(){return this._noMipmap}get forcedExtension(){return this._forcedExtension}static CreateFromImages(e,t,i){let s="";for(const t of e)s+=t;return new p(s,t,null,i,e)}static CreateFromPrefilteredData(e,t,i=null,s=!0){const n=t.useDelayedTextureLoading;t.useDelayedTextureLoading=!1;const r=new p(e,t,null,!1,null,null,null,void 0,!0,i,s);return t.useDelayedTextureLoading=n,r}constructor(e,o,a=null,l=!1,u=null,h=null,d=null,_=t.TEXTUREFORMAT_RGBA,x=!1,f=null,p=!1,c=.8,g=0,m,b){super(o),this.onLoadObservable=new s,this.boundingBoxPosition=n.Zero(),this._rotationY=0,this._files=null,this._forcedExtension=null,this._extensions=null,this._textureMatrixRefraction=new i,this._buffer=null,this.name=e,this.url=e,this._noMipmap=l,this.hasAlpha=!1,this.isCube=!0,this._textureMatrix=i.Identity(),this.coordinatesMode=r.CUBIC_MODE;let y=null,O=null;null===a||Array.isArray(a)?(this._noMipmap=l,this._format=_,this._createPolynomials=p,y=a,this._loaderOptions=m,this._useSRGBBuffer=b,this._lodScale=c,this._lodOffset=g):(y=a.extensions??null,this._noMipmap=a.noMipmap??!1,u=a.files??null,O=a.buffer??null,this._format=a.format??t.TEXTUREFORMAT_RGBA,x=a.prefiltered??!1,f=a.forcedExtension??null,this._createPolynomials=a.createPolynomials??!1,this._lodScale=a.lodScale??.8,this._lodOffset=a.lodOffset??0,this._loaderOptions=a.loaderOptions,this._useSRGBBuffer=a.useSRGBBuffer,h=a.onLoad??null,d=a.onError??null),(e||u)&&this.updateURL(e,f,h,x,d,y,this.getScene()?.useDelayedTextureLoading,u,O)}getClassName(){return"CubeTexture"}updateURL(e,i=null,s=null,n=!1,r=null,o=null,a=!1,l=null,u=null){this.name&&!this.name.startsWith("data:")||(this.name=e),this.url=e,i&&(this._forcedExtension=i);const h=e.lastIndexOf("."),d=i||(h>-1?e.substring(h).toLowerCase():""),_=0===d.indexOf(".dds"),x=0===d.indexOf(".env"),f=0===d.indexOf(".basis");if(x?(this.gammaSpace=!1,this._prefiltered=!1,this.anisotropicFilteringLevel=1):(this._prefiltered=n,n&&(this.gammaSpace=!1,this.anisotropicFilteringLevel=1)),l)this._files=l;else if(f||x||_||o||(o=["_px.jpg","_py.jpg","_pz.jpg","_nx.jpg","_ny.jpg","_nz.jpg"]),this._files=this._files||[],this._files.length=0,o){for(let t=0;t<o.length;t++)this._files.push(e+o[t]);this._extensions=o}this._buffer=u,a?(this.delayLoadState=t.DELAYLOADSTATE_NOTLOADED,this._delayedOnLoad=s,this._delayedOnError=r):this._loadTexture(s,r)}delayLoad(e){this.delayLoadState===t.DELAYLOADSTATE_NOTLOADED&&(e&&(this._forcedExtension=e),this.delayLoadState=t.DELAYLOADSTATE_LOADED,this._loadTexture(this._delayedOnLoad,this._delayedOnError))}getReflectionTextureMatrix(){return this._textureMatrix}setReflectionTextureMatrix(e){if(e.updateFlag===this._textureMatrix.updateFlag)return;if(e.isIdentity()!==this._textureMatrix.isIdentity()&&this.getScene()?.markAllMaterialsAsDirty(t.MATERIAL_TextureDirtyFlag,(e=>-1!==e.getActiveTextures().indexOf(this))),this._textureMatrix=e,!this.getScene()?.useRightHandedSystem)return;const s=o.Vector3[0],n=o.Quaternion[0],r=o.Vector3[1];this._textureMatrix.decompose(s,n,r),n.z*=-1,n.w*=-1,i.ComposeToRef(s,n,r,this._textureMatrixRefraction)}getRefractionTextureMatrix(){return this.getScene()?.useRightHandedSystem?this._textureMatrixRefraction:this._textureMatrix}_loadTexture(e=null,i=null){const s=this.getScene(),n=this._texture;this._texture=this._getFromCache(this.url,this._noMipmap,void 0,void 0,this._useSRGBBuffer,this.isCube);const o=()=>{this.onLoadObservable.notifyObservers(this),n&&(n.dispose(),this.getScene()?.markAllMaterialsAsDirty(t.MATERIAL_TextureDirtyFlag)),e&&e()},l=(e,t)=>{this._loadingError=!0,this._errorObject={message:e,exception:t},i&&i(e,t),r.OnTextureLoadErrorObservable.notifyObservers(this)};this._texture?this._texture.isReady?a.SetImmediate((()=>o())):this._texture.onLoadedObservable.add((()=>o())):(this._prefiltered?this._texture=this._getEngine().createPrefilteredCubeTexture(this.url,s,this._lodScale,this._lodOffset,e,l,this._format,this._forcedExtension,this._createPolynomials):this._texture=this._getEngine().createCubeTexture(this.url,s,this._files,this._noMipmap,e,l,this._format,this._forcedExtension,!1,this._lodScale,this._lodOffset,null,this._loaderOptions,!!this._useSRGBBuffer,this._buffer),this._texture?.onLoadedObservable.add((()=>this.onLoadObservable.notifyObservers(this))))}static Parse(e,t,i){const s=l.Parse((()=>{let s=!1;return e.prefiltered&&(s=e.prefiltered),new p(i+(e.url??e.name),t,e.extensions,!1,e.files||null,null,null,void 0,s,e.forcedExtension)}),e,t);if(e.boundingBoxPosition&&(s.boundingBoxPosition=n.FromArray(e.boundingBoxPosition)),e.boundingBoxSize&&(s.boundingBoxSize=n.FromArray(e.boundingBoxSize)),e.animations)for(let t=0;t<e.animations.length;t++){const i=e.animations[t],n=u("BABYLON.Animation");n&&s.animations.push(n.Parse(i))}return s}clone(){let e=0;const t=l.Clone((()=>{const t=new p(this.url,this.getScene()||this._getEngine(),this._extensions,this._noMipmap,this._files);return e=t.uniqueId,t}),this);return t.uniqueId=e,t}}h([d()],p.prototype,"url",void 0),h([_()],p.prototype,"boundingBoxPosition",void 0),h([_()],p.prototype,"boundingBoxSize",null),h([d("rotationY")],p.prototype,"rotationY",null),h([d("files")],p.prototype,"_files",void 0),h([d("forcedExtension")],p.prototype,"_forcedExtension",void 0),h([d("extensions")],p.prototype,"_extensions",void 0),h([x("textureMatrix")],p.prototype,"_textureMatrix",void 0),h([x("textureMatrixRefraction")],p.prototype,"_textureMatrixRefraction",void 0),r._CubeTextureParser=p.Parse,f("BABYLON.CubeTexture",p);export{p as CubeTexture};
//# sourceMappingURL=cubeTexture-CcDFa1kA.esm.min.js.map