@woosh/meep-engine 2.100.1 → 2.100.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/meep.cjs +109 -78
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +109 -78
- package/package.json +1 -1
- package/src/core/binary/downloadUrlAsFile.d.ts.map +1 -1
- package/src/core/binary/downloadUrlAsFile.js +3 -1
- package/src/core/color/oklab/Okhsv.spec.d.ts +2 -0
- package/src/core/color/oklab/Okhsv.spec.d.ts.map +1 -0
- package/src/core/color/oklab/Okhsv.spec.js +17 -0
- package/src/core/color/oklab/XYZ.spec.js +2 -2
- package/src/core/color/oklab/compute_max_saturation.d.ts +11 -0
- package/src/core/color/oklab/compute_max_saturation.d.ts.map +1 -0
- package/src/core/color/oklab/compute_max_saturation.js +84 -0
- package/src/core/color/oklab/find_cusp.d.ts +10 -0
- package/src/core/color/oklab/find_cusp.d.ts.map +1 -0
- package/src/core/color/oklab/find_cusp.js +27 -0
- package/src/core/color/oklab/find_gamut_intersection.d.ts +15 -0
- package/src/core/color/oklab/find_gamut_intersection.d.ts.map +1 -0
- package/src/core/color/oklab/find_gamut_intersection.js +101 -0
- package/src/core/color/oklab/linear_srgb_to_okhsv.d.ts +9 -0
- package/src/core/color/oklab/linear_srgb_to_okhsv.d.ts.map +1 -0
- package/src/core/color/oklab/linear_srgb_to_okhsv.js +74 -0
- package/src/core/color/oklab/linear_srgb_to_oklab.d.ts +9 -0
- package/src/core/color/oklab/linear_srgb_to_oklab.d.ts.map +1 -0
- package/src/core/color/oklab/linear_srgb_to_oklab.js +20 -0
- package/src/core/color/oklab/okhsv_to_linear_srgb.d.ts +9 -0
- package/src/core/color/oklab/okhsv_to_linear_srgb.d.ts.map +1 -0
- package/src/core/color/oklab/okhsv_to_linear_srgb.js +59 -0
- package/src/core/color/oklab/oklab_to_linear_srgb.d.ts +10 -0
- package/src/core/color/oklab/oklab_to_linear_srgb.d.ts.map +1 -0
- package/src/core/color/oklab/oklab_to_linear_srgb.js +21 -0
- package/src/core/color/oklab/oklab_to_xyz.d.ts +5 -2
- package/src/core/color/oklab/oklab_to_xyz.d.ts.map +1 -1
- package/src/core/color/oklab/oklab_to_xyz.js +5 -5
- package/src/core/color/oklab/oklab_to_xyz.spec.js +4 -4
- package/src/core/color/oklab/toe.d.ts +13 -0
- package/src/core/color/oklab/toe.d.ts.map +1 -0
- package/src/core/color/oklab/toe.js +22 -0
- package/src/core/color/oklab/xyz_to_oklab.d.ts +5 -2
- package/src/core/color/oklab/xyz_to_oklab.d.ts.map +1 -1
- package/src/core/color/oklab/xyz_to_oklab.js +5 -5
- package/src/core/color/oklab/xyz_to_oklab.spec.js +4 -4
- package/src/engine/asset/AssetManager.d.ts.map +1 -1
- package/src/engine/asset/AssetManager.js +6 -1
- package/src/engine/asset/loaders/ArrayBufferLoader.d.ts +2 -1
- package/src/engine/asset/loaders/ArrayBufferLoader.d.ts.map +1 -1
- package/src/engine/asset/loaders/ArrayBufferLoader.js +107 -79
- package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.d.ts +1 -1
- package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/HarmonicDiffusionGrid.js +4 -4
- package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts +1 -2
- package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D2Canvas.js +1 -2
- package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.js +8 -0
package/build/meep.cjs
CHANGED
|
@@ -67748,6 +67748,83 @@ class AssetLoader {
|
|
|
67748
67748
|
}
|
|
67749
67749
|
}
|
|
67750
67750
|
|
|
67751
|
+
/**
|
|
67752
|
+
*
|
|
67753
|
+
* @param {Response} input
|
|
67754
|
+
* @param {function} progress
|
|
67755
|
+
* @return {Response}
|
|
67756
|
+
*/
|
|
67757
|
+
function observeResponseProgress(input, progress) {
|
|
67758
|
+
let response = input;
|
|
67759
|
+
|
|
67760
|
+
|
|
67761
|
+
if (typeof ReadableStream === 'undefined' || response.body.getReader === undefined) {
|
|
67762
|
+
|
|
67763
|
+
return response;
|
|
67764
|
+
|
|
67765
|
+
}
|
|
67766
|
+
|
|
67767
|
+
/**
|
|
67768
|
+
* @type {ReadableStreamDefaultReader<Uint8Array>}
|
|
67769
|
+
*/
|
|
67770
|
+
const reader = response.body.getReader();
|
|
67771
|
+
|
|
67772
|
+
const contentLength = response.headers.get('Content-Length');
|
|
67773
|
+
const total = contentLength ? parseInt(contentLength) : 0;
|
|
67774
|
+
let loaded = 0;
|
|
67775
|
+
|
|
67776
|
+
// periodically read data into the new stream tracking while download progress
|
|
67777
|
+
const stream_prototype = {
|
|
67778
|
+
type: "bytes",
|
|
67779
|
+
start(controller) {
|
|
67780
|
+
|
|
67781
|
+
pump();
|
|
67782
|
+
|
|
67783
|
+
function pump() {
|
|
67784
|
+
|
|
67785
|
+
reader.read().then(({ done, value }) => {
|
|
67786
|
+
|
|
67787
|
+
if (done) {
|
|
67788
|
+
// no more data, we're done
|
|
67789
|
+
controller.close();
|
|
67790
|
+
return;
|
|
67791
|
+
}
|
|
67792
|
+
|
|
67793
|
+
loaded += value.byteLength;
|
|
67794
|
+
|
|
67795
|
+
progress(loaded, total);
|
|
67796
|
+
|
|
67797
|
+
controller.enqueue(value);
|
|
67798
|
+
pump();
|
|
67799
|
+
|
|
67800
|
+
});
|
|
67801
|
+
|
|
67802
|
+
}
|
|
67803
|
+
|
|
67804
|
+
}
|
|
67805
|
+
|
|
67806
|
+
};
|
|
67807
|
+
|
|
67808
|
+
/**
|
|
67809
|
+
* @type {ReadableStream}
|
|
67810
|
+
*/
|
|
67811
|
+
let stream;
|
|
67812
|
+
|
|
67813
|
+
try {
|
|
67814
|
+
stream = new ReadableStream(stream_prototype);
|
|
67815
|
+
|
|
67816
|
+
response = new Response(stream);
|
|
67817
|
+
} catch (e) {
|
|
67818
|
+
/*
|
|
67819
|
+
Workaround for Safari bug: "TypeError: ReadableByteStreamController is not implemented"
|
|
67820
|
+
By not wrapping the response we lose the ability to track progress, but that's not a critical issue in most cases
|
|
67821
|
+
*/
|
|
67822
|
+
}
|
|
67823
|
+
|
|
67824
|
+
return response;
|
|
67825
|
+
|
|
67826
|
+
}
|
|
67827
|
+
|
|
67751
67828
|
class ArrayBufferLoader extends AssetLoader {
|
|
67752
67829
|
/**
|
|
67753
67830
|
*
|
|
@@ -67766,7 +67843,13 @@ class ArrayBufferLoader extends AssetLoader {
|
|
|
67766
67843
|
this.__fetch_priority = fetch_priority;
|
|
67767
67844
|
}
|
|
67768
67845
|
|
|
67769
|
-
load(
|
|
67846
|
+
async load(
|
|
67847
|
+
scope,
|
|
67848
|
+
path,
|
|
67849
|
+
success,
|
|
67850
|
+
failure = console.error,
|
|
67851
|
+
progress = noop
|
|
67852
|
+
) {
|
|
67770
67853
|
const coc = this.assetManager !== null ? this.assetManager.crossOriginConfig : CrossOriginConfig.default;
|
|
67771
67854
|
|
|
67772
67855
|
const headers = new Headers();
|
|
@@ -67781,93 +67864,36 @@ class ArrayBufferLoader extends AssetLoader {
|
|
|
67781
67864
|
request.priority = this.__fetch_priority;
|
|
67782
67865
|
}
|
|
67783
67866
|
|
|
67784
|
-
fetch(request)
|
|
67785
|
-
.then(handle_response)
|
|
67786
|
-
.then(response_to_asset)
|
|
67787
|
-
.catch(failure);
|
|
67867
|
+
let response = await fetch(request);
|
|
67788
67868
|
|
|
67789
|
-
|
|
67790
|
-
*
|
|
67791
|
-
* @param {Response} response
|
|
67792
|
-
* @return {Promise<void>}
|
|
67793
|
-
*/
|
|
67794
|
-
async function response_to_asset(response) {
|
|
67795
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
67869
|
+
if (!(response.status === 200 || response.status === 0)) {
|
|
67796
67870
|
|
|
67797
|
-
|
|
67798
|
-
function () {
|
|
67799
|
-
return arrayBuffer;
|
|
67800
|
-
},
|
|
67801
|
-
arrayBuffer.byteSize
|
|
67802
|
-
);
|
|
67871
|
+
throw Error(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`);
|
|
67803
67872
|
|
|
67804
|
-
success(asset);
|
|
67805
67873
|
}
|
|
67806
67874
|
|
|
67807
|
-
|
|
67808
|
-
|
|
67809
|
-
* @param {Response} response
|
|
67810
|
-
* @return {Response}
|
|
67811
|
-
*/
|
|
67812
|
-
function handle_response(response) {
|
|
67813
|
-
if (!(response.status === 200 || response.status === 0)) {
|
|
67814
|
-
|
|
67815
|
-
throw Error(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`);
|
|
67816
|
-
|
|
67817
|
-
}
|
|
67818
|
-
|
|
67819
|
-
// Some browsers return HTTP Status 0 when using non-http protocol
|
|
67820
|
-
// e.g. 'file://' or 'data://'. Handle as success.
|
|
67821
|
-
|
|
67822
|
-
if (response.status === 0) ;
|
|
67823
|
-
|
|
67824
|
-
if (typeof ReadableStream === 'undefined' || response.body.getReader === undefined) {
|
|
67825
|
-
|
|
67826
|
-
return response;
|
|
67827
|
-
|
|
67828
|
-
}
|
|
67829
|
-
|
|
67830
|
-
const reader = response.body.getReader();
|
|
67831
|
-
const contentLength = response.headers.get('Content-Length');
|
|
67832
|
-
const total = contentLength ? parseInt(contentLength) : 0;
|
|
67833
|
-
let loaded = 0;
|
|
67834
|
-
|
|
67835
|
-
// periodically read data into the new stream tracking while download progress
|
|
67836
|
-
const stream = new ReadableStream({
|
|
67837
|
-
type: "bytes",
|
|
67838
|
-
start(controller) {
|
|
67839
|
-
|
|
67840
|
-
pump();
|
|
67841
|
-
|
|
67842
|
-
function pump() {
|
|
67843
|
-
|
|
67844
|
-
reader.read().then(({ done, value }) => {
|
|
67845
|
-
|
|
67846
|
-
if (done) {
|
|
67847
|
-
// no more data, we're done
|
|
67848
|
-
controller.close();
|
|
67849
|
-
return;
|
|
67850
|
-
}
|
|
67851
|
-
|
|
67852
|
-
loaded += value.byteLength;
|
|
67875
|
+
// Some browsers return HTTP Status 0 when using non-http protocol
|
|
67876
|
+
// e.g. 'file://' or 'data://'. Handle as success.
|
|
67853
67877
|
|
|
67854
|
-
|
|
67878
|
+
if (response.status === 0) ;
|
|
67855
67879
|
|
|
67856
|
-
|
|
67857
|
-
|
|
67858
|
-
|
|
67859
|
-
|
|
67860
|
-
|
|
67861
|
-
}
|
|
67862
|
-
|
|
67863
|
-
}
|
|
67880
|
+
try {
|
|
67881
|
+
response = observeResponseProgress(response, progress);
|
|
67882
|
+
} catch (e) {
|
|
67883
|
+
}
|
|
67864
67884
|
|
|
67865
|
-
|
|
67885
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
67866
67886
|
|
|
67867
|
-
|
|
67868
|
-
|
|
67887
|
+
const asset = new Asset(
|
|
67888
|
+
function () {
|
|
67889
|
+
return arrayBuffer;
|
|
67890
|
+
},
|
|
67891
|
+
arrayBuffer.byteSize
|
|
67892
|
+
);
|
|
67869
67893
|
|
|
67894
|
+
success(asset);
|
|
67870
67895
|
|
|
67896
|
+
return asset;
|
|
67871
67897
|
}
|
|
67872
67898
|
}
|
|
67873
67899
|
|
|
@@ -86225,7 +86251,12 @@ class AssetManager {
|
|
|
86225
86251
|
try {
|
|
86226
86252
|
|
|
86227
86253
|
|
|
86228
|
-
loader.load(scope, full_path, success, failure, progress);
|
|
86254
|
+
const result = loader.load(scope, full_path, success, failure, progress);
|
|
86255
|
+
|
|
86256
|
+
if (result instanceof Promise) {
|
|
86257
|
+
// allow promise responses
|
|
86258
|
+
result.catch(failure);
|
|
86259
|
+
}
|
|
86229
86260
|
|
|
86230
86261
|
} catch (e) {
|
|
86231
86262
|
failure(e);
|