Initial project import
This commit is contained in:
81
node_modules/three-stdlib/loaders/HDRCubeTextureLoader.cjs
generated
vendored
Normal file
81
node_modules/three-stdlib/loaders/HDRCubeTextureLoader.cjs
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
||||
const THREE = require("three");
|
||||
const RGBELoader = require("./RGBELoader.cjs");
|
||||
class HDRCubeTextureLoader extends THREE.Loader {
|
||||
constructor(manager) {
|
||||
super(manager);
|
||||
this.hdrLoader = new RGBELoader.RGBELoader();
|
||||
this.type = THREE.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 THREE.CubeTexture();
|
||||
texture.type = this.type;
|
||||
switch (texture.type) {
|
||||
case THREE.FloatType:
|
||||
case THREE.HalfFloatType:
|
||||
if ("colorSpace" in texture)
|
||||
texture.colorSpace = "srgb-linear";
|
||||
else
|
||||
texture.encoding = 3e3;
|
||||
texture.minFilter = THREE.LinearFilter;
|
||||
texture.magFilter = THREE.LinearFilter;
|
||||
texture.generateMipmaps = false;
|
||||
break;
|
||||
}
|
||||
const scope = this;
|
||||
let loaded = 0;
|
||||
function loadHDRData(i, onLoad2, onProgress2, onError2) {
|
||||
new THREE.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 THREE.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;
|
||||
}
|
||||
}
|
||||
exports.HDRCubeTextureLoader = HDRCubeTextureLoader;
|
||||
//# sourceMappingURL=HDRCubeTextureLoader.cjs.map
|
||||
Reference in New Issue
Block a user