Buckets:
ktongue/docker_container / simsite /frontend /node_modules /three-stdlib /loaders /HDRCubeTextureLoader.js
| import { Loader, HalfFloatType, CubeTexture, LinearFilter, FloatType, FileLoader, DataTexture } from "three"; | |
| import { RGBELoader } from "./RGBELoader.js"; | |
| class HDRCubeTextureLoader extends Loader { | |
| constructor(manager) { | |
| super(manager); | |
| this.hdrLoader = new RGBELoader(); | |
| this.type = HalfFloatType; | |
| } | |
| load(urls, onLoad, onProgress, onError) { | |
| if (typeof urls === "string") { | |
| urls = [urls]; | |
| } else if (!Array.isArray(urls)) { | |
| console.warn("THREE.HDRCubeTextureLoader signature has changed. Use .setDataType() instead."); | |
| this.setDataType(urls); | |
| urls = onLoad; | |
| onLoad = onProgress; | |
| onProgress = onError; | |
| onError = arguments[4]; | |
| } | |
| const texture = new CubeTexture(); | |
| texture.type = this.type; | |
| switch (texture.type) { | |
| case FloatType: | |
| case HalfFloatType: | |
| if ("colorSpace" in texture) | |
| texture.colorSpace = "srgb-linear"; | |
| else | |
| texture.encoding = 3e3; | |
| texture.minFilter = LinearFilter; | |
| texture.magFilter = LinearFilter; | |
| texture.generateMipmaps = false; | |
| break; | |
| } | |
| const scope = this; | |
| let loaded = 0; | |
| function loadHDRData(i, onLoad2, onProgress2, onError2) { | |
| new FileLoader(scope.manager).setPath(scope.path).setResponseType("arraybuffer").setWithCredentials(scope.withCredentials).load( | |
| urls[i], | |
| function(buffer) { | |
| loaded++; | |
| const texData = scope.hdrLoader.parse(buffer); | |
| if (!texData) | |
| return; | |
| if (texData.data !== void 0) { | |
| const dataTexture = new DataTexture(texData.data, texData.width, texData.height); | |
| dataTexture.type = texture.type; | |
| if ("colorSpace" in dataTexture) | |
| dataTexture.colorSpace = texture.SRGBColorSpace; | |
| else | |
| dataTexture.encoding = texture.encoding; | |
| dataTexture.format = texture.format; | |
| dataTexture.minFilter = texture.minFilter; | |
| dataTexture.magFilter = texture.magFilter; | |
| dataTexture.generateMipmaps = texture.generateMipmaps; | |
| texture.images[i] = dataTexture; | |
| } | |
| if (loaded === 6) { | |
| texture.needsUpdate = true; | |
| if (onLoad2) | |
| onLoad2(texture); | |
| } | |
| }, | |
| onProgress2, | |
| onError2 | |
| ); | |
| } | |
| for (let i = 0; i < urls.length; i++) { | |
| loadHDRData(i, onLoad, onProgress, onError); | |
| } | |
| return texture; | |
| } | |
| setDataType(value) { | |
| this.type = value; | |
| this.hdrLoader.setDataType(value); | |
| return this; | |
| } | |
| } | |
| export { | |
| HDRCubeTextureLoader | |
| }; | |
| //# sourceMappingURL=HDRCubeTextureLoader.js.map | |
Xet Storage Details
- Size:
- 2.69 kB
- Xet hash:
- 7212880d35c0723a13308076575c5a11e808af2541332b9adaeb09d2374a9f99
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.