@vitessce/gl 3.3.1 → 3.3.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/dist/{deflate-73d5335b.js → deflate-8259e5d4.js} +1 -1
- package/dist/{index-0d084e33.js → index-901cd86d.js} +214 -136
- package/dist/index.js +2 -2
- package/dist/{jpeg-201a0839.js → jpeg-2919bc92.js} +1 -1
- package/dist/{lerc-4c2149fc.js → lerc-95858d36.js} +1 -1
- package/dist/{lzw-04637fdd.js → lzw-d020357b.js} +1 -1
- package/dist/{packbits-c3fd53d2.js → packbits-2ad8f627.js} +1 -1
- package/dist/{raw-c78b844f.js → raw-93e6f264.js} +1 -1
- package/dist/{webimage-2dd56bbe.js → webimage-33d58a8b.js} +1 -1
- package/dist-tsc/BitmaskLayerBeta.d.ts +14 -6
- package/dist-tsc/BitmaskLayerBeta.d.ts.map +1 -1
- package/dist-tsc/BitmaskLayerBeta.js +21 -7
- package/dist-tsc/bitmask-utils.d.ts +1 -1
- package/dist-tsc/bitmask-utils.d.ts.map +1 -1
- package/dist-tsc/bitmask-utils.js +44 -8
- package/dist-tsc/bitmask-utils.test.js +5 -1
- package/package.json +2 -2
- package/src/BitmaskLayerBeta.js +32 -5
- package/src/bitmask-utils.js +50 -8
- package/src/bitmask-utils.test.js +6 -0
|
@@ -10767,8 +10767,8 @@ function acos$1(radians2, result) {
|
|
|
10767
10767
|
function atan$1(radians2, result) {
|
|
10768
10768
|
return map(radians2, (angle2) => Math.atan(angle2), result);
|
|
10769
10769
|
}
|
|
10770
|
-
function clamp$1(value, min,
|
|
10771
|
-
return map(value, (value2) => Math.max(min, Math.min(
|
|
10770
|
+
function clamp$1(value, min, max2) {
|
|
10771
|
+
return map(value, (value2) => Math.max(min, Math.min(max2, value2)));
|
|
10772
10772
|
}
|
|
10773
10773
|
function lerp$6(a2, b, t2) {
|
|
10774
10774
|
if (isArray$3(a2)) {
|
|
@@ -11055,9 +11055,9 @@ class MathArray extends _extendableBuiltin(Array) {
|
|
|
11055
11055
|
divideScalar(a2) {
|
|
11056
11056
|
return this.multiplyByScalar(1 / a2);
|
|
11057
11057
|
}
|
|
11058
|
-
clampScalar(min,
|
|
11058
|
+
clampScalar(min, max2) {
|
|
11059
11059
|
for (let i2 = 0; i2 < this.ELEMENTS; ++i2) {
|
|
11060
|
-
this[i2] = Math.min(Math.max(this[i2], min),
|
|
11060
|
+
this[i2] = Math.min(Math.max(this[i2], min), max2);
|
|
11061
11061
|
}
|
|
11062
11062
|
return this.check();
|
|
11063
11063
|
}
|
|
@@ -17190,8 +17190,8 @@ function mod$1(value, divisor) {
|
|
|
17190
17190
|
function lerp$1(start, end, step) {
|
|
17191
17191
|
return step * end + (1 - step) * start;
|
|
17192
17192
|
}
|
|
17193
|
-
function clamp(x2, min,
|
|
17194
|
-
return x2 < min ? min : x2 >
|
|
17193
|
+
function clamp(x2, min, max2) {
|
|
17194
|
+
return x2 < min ? min : x2 > max2 ? max2 : x2;
|
|
17195
17195
|
}
|
|
17196
17196
|
function ieLog2(x2) {
|
|
17197
17197
|
return Math.log(x2) * Math.LOG2E;
|
|
@@ -26945,17 +26945,17 @@ class DataColumn {
|
|
|
26945
26945
|
const len2 = numInstances * size;
|
|
26946
26946
|
if (value && len2 && value.length >= len2) {
|
|
26947
26947
|
const min = new Array(size).fill(Infinity);
|
|
26948
|
-
const
|
|
26948
|
+
const max2 = new Array(size).fill(-Infinity);
|
|
26949
26949
|
for (let i2 = 0; i2 < len2; ) {
|
|
26950
26950
|
for (let j = 0; j < size; j++) {
|
|
26951
26951
|
const v = value[i2++];
|
|
26952
26952
|
if (v < min[j])
|
|
26953
26953
|
min[j] = v;
|
|
26954
|
-
if (v >
|
|
26955
|
-
|
|
26954
|
+
if (v > max2[j])
|
|
26955
|
+
max2[j] = v;
|
|
26956
26956
|
}
|
|
26957
26957
|
}
|
|
26958
|
-
result = [min,
|
|
26958
|
+
result = [min, max2];
|
|
26959
26959
|
}
|
|
26960
26960
|
}
|
|
26961
26961
|
this.state.bounds = result;
|
|
@@ -53039,10 +53039,10 @@ class GroupNode extends ScenegraphNode {
|
|
|
53039
53039
|
if (!bounds2) {
|
|
53040
53040
|
return;
|
|
53041
53041
|
}
|
|
53042
|
-
const [min,
|
|
53043
|
-
const center2 = new Vector3(min).add(
|
|
53042
|
+
const [min, max2] = bounds2;
|
|
53043
|
+
const center2 = new Vector3(min).add(max2).divide([2, 2, 2]);
|
|
53044
53044
|
worldMatrix.transformAsPoint(center2, center2);
|
|
53045
|
-
const halfSize = new Vector3(
|
|
53045
|
+
const halfSize = new Vector3(max2).subtract(min).divide([2, 2, 2]);
|
|
53046
53046
|
worldMatrix.transformAsVector(halfSize, halfSize);
|
|
53047
53047
|
for (let v = 0; v < 8; v++) {
|
|
53048
53048
|
const position = new Vector3(v & 1 ? -1 : 1, v & 2 ? -1 : 1, v & 4 ? -1 : 1).multiply(halfSize).add(center2);
|
|
@@ -61991,7 +61991,7 @@ class Tile {
|
|
|
61991
61991
|
const { errors } = this;
|
|
61992
61992
|
let numVertices = 0;
|
|
61993
61993
|
let numTriangles = 0;
|
|
61994
|
-
const
|
|
61994
|
+
const max2 = size - 1;
|
|
61995
61995
|
indices.fill(0);
|
|
61996
61996
|
function countElements(ax, ay, bx, by, cx, cy) {
|
|
61997
61997
|
const mx = ax + bx >> 1;
|
|
@@ -62006,8 +62006,8 @@ class Tile {
|
|
|
62006
62006
|
numTriangles++;
|
|
62007
62007
|
}
|
|
62008
62008
|
}
|
|
62009
|
-
countElements(0, 0,
|
|
62010
|
-
countElements(
|
|
62009
|
+
countElements(0, 0, max2, max2, max2, 0);
|
|
62010
|
+
countElements(max2, max2, 0, 0, 0, max2);
|
|
62011
62011
|
const vertices = new Uint16Array(numVertices * 2);
|
|
62012
62012
|
const triangles = new Uint32Array(numTriangles * 3);
|
|
62013
62013
|
let triIndex = 0;
|
|
@@ -62032,8 +62032,8 @@ class Tile {
|
|
|
62032
62032
|
triangles[triIndex++] = c;
|
|
62033
62033
|
}
|
|
62034
62034
|
}
|
|
62035
|
-
processTriangle(0, 0,
|
|
62036
|
-
processTriangle(
|
|
62035
|
+
processTriangle(0, 0, max2, max2, max2, 0);
|
|
62036
|
+
processTriangle(max2, max2, 0, 0, 0, max2);
|
|
62037
62037
|
return { vertices, triangles };
|
|
62038
62038
|
}
|
|
62039
62039
|
}
|
|
@@ -103842,24 +103842,24 @@ const geoKeyNames = {
|
|
|
103842
103842
|
4098: "VerticalDatumGeoKey",
|
|
103843
103843
|
4099: "VerticalUnitsGeoKey"
|
|
103844
103844
|
};
|
|
103845
|
-
function fromWhiteIsZero(raster,
|
|
103845
|
+
function fromWhiteIsZero(raster, max2) {
|
|
103846
103846
|
const { width, height } = raster;
|
|
103847
103847
|
const rgbRaster = new Uint8Array(width * height * 3);
|
|
103848
103848
|
let value;
|
|
103849
103849
|
for (let i2 = 0, j = 0; i2 < raster.length; ++i2, j += 3) {
|
|
103850
|
-
value = 256 - raster[i2] /
|
|
103850
|
+
value = 256 - raster[i2] / max2 * 256;
|
|
103851
103851
|
rgbRaster[j] = value;
|
|
103852
103852
|
rgbRaster[j + 1] = value;
|
|
103853
103853
|
rgbRaster[j + 2] = value;
|
|
103854
103854
|
}
|
|
103855
103855
|
return rgbRaster;
|
|
103856
103856
|
}
|
|
103857
|
-
function fromBlackIsZero(raster,
|
|
103857
|
+
function fromBlackIsZero(raster, max2) {
|
|
103858
103858
|
const { width, height } = raster;
|
|
103859
103859
|
const rgbRaster = new Uint8Array(width * height * 3);
|
|
103860
103860
|
let value;
|
|
103861
103861
|
for (let i2 = 0, j = 0; i2 < raster.length; ++i2, j += 3) {
|
|
103862
|
-
value = raster[i2] /
|
|
103862
|
+
value = raster[i2] / max2 * 256;
|
|
103863
103863
|
rgbRaster[j] = value;
|
|
103864
103864
|
rgbRaster[j + 1] = value;
|
|
103865
103865
|
rgbRaster[j + 2] = value;
|
|
@@ -103952,16 +103952,16 @@ async function getDecoder(fileDirectory) {
|
|
|
103952
103952
|
const Decoder = await importFn();
|
|
103953
103953
|
return new Decoder(fileDirectory);
|
|
103954
103954
|
}
|
|
103955
|
-
addDecoder([void 0, 1], () => import("./raw-
|
|
103956
|
-
addDecoder(5, () => import("./lzw-
|
|
103955
|
+
addDecoder([void 0, 1], () => import("./raw-93e6f264.js").then((m) => m.default));
|
|
103956
|
+
addDecoder(5, () => import("./lzw-d020357b.js").then((m) => m.default));
|
|
103957
103957
|
addDecoder(6, () => {
|
|
103958
103958
|
throw new Error("old style JPEG compression is not supported.");
|
|
103959
103959
|
});
|
|
103960
|
-
addDecoder(7, () => import("./jpeg-
|
|
103961
|
-
addDecoder([8, 32946], () => import("./deflate-
|
|
103962
|
-
addDecoder(32773, () => import("./packbits-
|
|
103963
|
-
addDecoder(34887, () => import("./lerc-
|
|
103964
|
-
addDecoder(50001, () => import("./webimage-
|
|
103960
|
+
addDecoder(7, () => import("./jpeg-2919bc92.js").then((m) => m.default));
|
|
103961
|
+
addDecoder([8, 32946], () => import("./deflate-8259e5d4.js").then((m) => m.default));
|
|
103962
|
+
addDecoder(32773, () => import("./packbits-2ad8f627.js").then((m) => m.default));
|
|
103963
|
+
addDecoder(34887, () => import("./lerc-95858d36.js").then((m) => m.default));
|
|
103964
|
+
addDecoder(50001, () => import("./webimage-33d58a8b.js").then((m) => m.default));
|
|
103965
103965
|
function copyNewSize(array, width, height, samplesPerPixel = 1) {
|
|
103966
103966
|
return new (Object.getPrototypeOf(array)).constructor(width * height * samplesPerPixel);
|
|
103967
103967
|
}
|
|
@@ -104672,14 +104672,14 @@ class GeoTIFFImage {
|
|
|
104672
104672
|
};
|
|
104673
104673
|
const { fileDirectory } = this;
|
|
104674
104674
|
const raster = await this.readRasters(subOptions);
|
|
104675
|
-
const
|
|
104675
|
+
const max2 = 2 ** this.fileDirectory.BitsPerSample[0];
|
|
104676
104676
|
let data;
|
|
104677
104677
|
switch (pi2) {
|
|
104678
104678
|
case photometricInterpretations.WhiteIsZero:
|
|
104679
|
-
data = fromWhiteIsZero(raster,
|
|
104679
|
+
data = fromWhiteIsZero(raster, max2);
|
|
104680
104680
|
break;
|
|
104681
104681
|
case photometricInterpretations.BlackIsZero:
|
|
104682
|
-
data = fromBlackIsZero(raster,
|
|
104682
|
+
data = fromBlackIsZero(raster, max2);
|
|
104683
104683
|
break;
|
|
104684
104684
|
case photometricInterpretations.Palette:
|
|
104685
104685
|
data = fromPalette(raster, fileDirectory.ColorMap);
|
|
@@ -110180,9 +110180,9 @@ const buf2binstring = (buf, len2) => {
|
|
|
110180
110180
|
}
|
|
110181
110181
|
return result;
|
|
110182
110182
|
};
|
|
110183
|
-
var buf2string = (buf,
|
|
110183
|
+
var buf2string = (buf, max2) => {
|
|
110184
110184
|
let i2, out;
|
|
110185
|
-
const len2 =
|
|
110185
|
+
const len2 = max2 || buf.length;
|
|
110186
110186
|
const utf16buf = new Array(len2 * 2);
|
|
110187
110187
|
for (out = 0, i2 = 0; i2 < len2; ) {
|
|
110188
110188
|
let c = buf[i2++];
|
|
@@ -110215,22 +110215,22 @@ var buf2string = (buf, max) => {
|
|
|
110215
110215
|
}
|
|
110216
110216
|
return buf2binstring(utf16buf, out);
|
|
110217
110217
|
};
|
|
110218
|
-
var utf8border = (buf,
|
|
110219
|
-
|
|
110220
|
-
if (
|
|
110221
|
-
|
|
110218
|
+
var utf8border = (buf, max2) => {
|
|
110219
|
+
max2 = max2 || buf.length;
|
|
110220
|
+
if (max2 > buf.length) {
|
|
110221
|
+
max2 = buf.length;
|
|
110222
110222
|
}
|
|
110223
|
-
let pos =
|
|
110223
|
+
let pos = max2 - 1;
|
|
110224
110224
|
while (pos >= 0 && (buf[pos] & 192) === 128) {
|
|
110225
110225
|
pos--;
|
|
110226
110226
|
}
|
|
110227
110227
|
if (pos < 0) {
|
|
110228
|
-
return
|
|
110228
|
+
return max2;
|
|
110229
110229
|
}
|
|
110230
110230
|
if (pos === 0) {
|
|
110231
|
-
return
|
|
110231
|
+
return max2;
|
|
110232
110232
|
}
|
|
110233
|
-
return pos + _utf8len[buf[pos]] >
|
|
110233
|
+
return pos + _utf8len[buf[pos]] > max2 ? pos : max2;
|
|
110234
110234
|
};
|
|
110235
110235
|
var strings = {
|
|
110236
110236
|
string2buf,
|
|
@@ -110780,7 +110780,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
110780
110780
|
const bits = opts2.bits;
|
|
110781
110781
|
let len2 = 0;
|
|
110782
110782
|
let sym = 0;
|
|
110783
|
-
let min = 0,
|
|
110783
|
+
let min = 0, max2 = 0;
|
|
110784
110784
|
let root2 = 0;
|
|
110785
110785
|
let curr = 0;
|
|
110786
110786
|
let drop = 0;
|
|
@@ -110807,21 +110807,21 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
110807
110807
|
count2[lens2[lens_index + sym]]++;
|
|
110808
110808
|
}
|
|
110809
110809
|
root2 = bits;
|
|
110810
|
-
for (
|
|
110811
|
-
if (count2[
|
|
110810
|
+
for (max2 = MAXBITS; max2 >= 1; max2--) {
|
|
110811
|
+
if (count2[max2] !== 0) {
|
|
110812
110812
|
break;
|
|
110813
110813
|
}
|
|
110814
110814
|
}
|
|
110815
|
-
if (root2 >
|
|
110816
|
-
root2 =
|
|
110815
|
+
if (root2 > max2) {
|
|
110816
|
+
root2 = max2;
|
|
110817
110817
|
}
|
|
110818
|
-
if (
|
|
110818
|
+
if (max2 === 0) {
|
|
110819
110819
|
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
110820
110820
|
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
110821
110821
|
opts2.bits = 1;
|
|
110822
110822
|
return 0;
|
|
110823
110823
|
}
|
|
110824
|
-
for (min = 1; min <
|
|
110824
|
+
for (min = 1; min < max2; min++) {
|
|
110825
110825
|
if (count2[min] !== 0) {
|
|
110826
110826
|
break;
|
|
110827
110827
|
}
|
|
@@ -110837,7 +110837,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
110837
110837
|
return -1;
|
|
110838
110838
|
}
|
|
110839
110839
|
}
|
|
110840
|
-
if (left > 0 && (type === CODES ||
|
|
110840
|
+
if (left > 0 && (type === CODES || max2 !== 1)) {
|
|
110841
110841
|
return -1;
|
|
110842
110842
|
}
|
|
110843
110843
|
offs[1] = 0;
|
|
@@ -110906,7 +110906,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
110906
110906
|
}
|
|
110907
110907
|
sym++;
|
|
110908
110908
|
if (--count2[len2] === 0) {
|
|
110909
|
-
if (len2 ===
|
|
110909
|
+
if (len2 === max2) {
|
|
110910
110910
|
break;
|
|
110911
110911
|
}
|
|
110912
110912
|
len2 = lens2[lens_index + work[sym]];
|
|
@@ -110918,7 +110918,7 @@ const inflate_table = (type, lens2, lens_index, codes, table, table_index, work,
|
|
|
110918
110918
|
next3 += min;
|
|
110919
110919
|
curr = len2 - drop;
|
|
110920
110920
|
left = 1 << curr;
|
|
110921
|
-
while (curr + drop <
|
|
110921
|
+
while (curr + drop < max2) {
|
|
110922
110922
|
left -= count2[curr + drop];
|
|
110923
110923
|
if (left <= 0) {
|
|
110924
110924
|
break;
|
|
@@ -113452,14 +113452,14 @@ const DTYPE_LOOKUP$1 = {
|
|
|
113452
113452
|
function getChannelStats(arr) {
|
|
113453
113453
|
let len2 = arr.length;
|
|
113454
113454
|
let min = Infinity;
|
|
113455
|
-
let
|
|
113455
|
+
let max2 = -Infinity;
|
|
113456
113456
|
let total = 0;
|
|
113457
113457
|
while (len2--) {
|
|
113458
113458
|
if (arr[len2] < min) {
|
|
113459
113459
|
min = arr[len2];
|
|
113460
113460
|
}
|
|
113461
|
-
if (arr[len2] >
|
|
113462
|
-
|
|
113461
|
+
if (arr[len2] > max2) {
|
|
113462
|
+
max2 = arr[len2];
|
|
113463
113463
|
}
|
|
113464
113464
|
total += arr[len2];
|
|
113465
113465
|
}
|
|
@@ -113497,7 +113497,7 @@ function getChannelStats(arr) {
|
|
|
113497
113497
|
q1,
|
|
113498
113498
|
q3,
|
|
113499
113499
|
median,
|
|
113500
|
-
domain: [min,
|
|
113500
|
+
domain: [min, max2],
|
|
113501
113501
|
contrastLimits
|
|
113502
113502
|
};
|
|
113503
113503
|
}
|
|
@@ -120966,14 +120966,14 @@ class ZodString extends ZodType {
|
|
|
120966
120966
|
return min;
|
|
120967
120967
|
}
|
|
120968
120968
|
get maxLength() {
|
|
120969
|
-
let
|
|
120969
|
+
let max2 = null;
|
|
120970
120970
|
for (const ch of this._def.checks) {
|
|
120971
120971
|
if (ch.kind === "max") {
|
|
120972
|
-
if (
|
|
120973
|
-
|
|
120972
|
+
if (max2 === null || ch.value < max2)
|
|
120973
|
+
max2 = ch.value;
|
|
120974
120974
|
}
|
|
120975
120975
|
}
|
|
120976
|
-
return
|
|
120976
|
+
return max2;
|
|
120977
120977
|
}
|
|
120978
120978
|
}
|
|
120979
120979
|
ZodString.create = (params) => {
|
|
@@ -121188,20 +121188,20 @@ class ZodNumber extends ZodType {
|
|
|
121188
121188
|
return min;
|
|
121189
121189
|
}
|
|
121190
121190
|
get maxValue() {
|
|
121191
|
-
let
|
|
121191
|
+
let max2 = null;
|
|
121192
121192
|
for (const ch of this._def.checks) {
|
|
121193
121193
|
if (ch.kind === "max") {
|
|
121194
|
-
if (
|
|
121195
|
-
|
|
121194
|
+
if (max2 === null || ch.value < max2)
|
|
121195
|
+
max2 = ch.value;
|
|
121196
121196
|
}
|
|
121197
121197
|
}
|
|
121198
|
-
return
|
|
121198
|
+
return max2;
|
|
121199
121199
|
}
|
|
121200
121200
|
get isInt() {
|
|
121201
121201
|
return !!this._def.checks.find((ch) => ch.kind === "int" || ch.kind === "multipleOf" && util.isInteger(ch.value));
|
|
121202
121202
|
}
|
|
121203
121203
|
get isFinite() {
|
|
121204
|
-
let
|
|
121204
|
+
let max2 = null, min = null;
|
|
121205
121205
|
for (const ch of this._def.checks) {
|
|
121206
121206
|
if (ch.kind === "finite" || ch.kind === "int" || ch.kind === "multipleOf") {
|
|
121207
121207
|
return true;
|
|
@@ -121209,11 +121209,11 @@ class ZodNumber extends ZodType {
|
|
|
121209
121209
|
if (min === null || ch.value > min)
|
|
121210
121210
|
min = ch.value;
|
|
121211
121211
|
} else if (ch.kind === "max") {
|
|
121212
|
-
if (
|
|
121213
|
-
|
|
121212
|
+
if (max2 === null || ch.value < max2)
|
|
121213
|
+
max2 = ch.value;
|
|
121214
121214
|
}
|
|
121215
121215
|
}
|
|
121216
|
-
return Number.isFinite(min) && Number.isFinite(
|
|
121216
|
+
return Number.isFinite(min) && Number.isFinite(max2);
|
|
121217
121217
|
}
|
|
121218
121218
|
}
|
|
121219
121219
|
ZodNumber.create = (params) => {
|
|
@@ -121371,14 +121371,14 @@ class ZodBigInt extends ZodType {
|
|
|
121371
121371
|
return min;
|
|
121372
121372
|
}
|
|
121373
121373
|
get maxValue() {
|
|
121374
|
-
let
|
|
121374
|
+
let max2 = null;
|
|
121375
121375
|
for (const ch of this._def.checks) {
|
|
121376
121376
|
if (ch.kind === "max") {
|
|
121377
|
-
if (
|
|
121378
|
-
|
|
121377
|
+
if (max2 === null || ch.value < max2)
|
|
121378
|
+
max2 = ch.value;
|
|
121379
121379
|
}
|
|
121380
121380
|
}
|
|
121381
|
-
return
|
|
121381
|
+
return max2;
|
|
121382
121382
|
}
|
|
121383
121383
|
}
|
|
121384
121384
|
ZodBigInt.create = (params) => {
|
|
@@ -121506,14 +121506,14 @@ class ZodDate extends ZodType {
|
|
|
121506
121506
|
return min != null ? new Date(min) : null;
|
|
121507
121507
|
}
|
|
121508
121508
|
get maxDate() {
|
|
121509
|
-
let
|
|
121509
|
+
let max2 = null;
|
|
121510
121510
|
for (const ch of this._def.checks) {
|
|
121511
121511
|
if (ch.kind === "max") {
|
|
121512
|
-
if (
|
|
121513
|
-
|
|
121512
|
+
if (max2 === null || ch.value < max2)
|
|
121513
|
+
max2 = ch.value;
|
|
121514
121514
|
}
|
|
121515
121515
|
}
|
|
121516
|
-
return
|
|
121516
|
+
return max2 != null ? new Date(max2) : null;
|
|
121517
121517
|
}
|
|
121518
121518
|
}
|
|
121519
121519
|
ZodDate.create = (params) => {
|
|
@@ -125872,7 +125872,7 @@ var toComparators_1 = toComparators$1;
|
|
|
125872
125872
|
const SemVer$4 = semver;
|
|
125873
125873
|
const Range$7 = requireRange();
|
|
125874
125874
|
const maxSatisfying$1 = (versions, range2, options) => {
|
|
125875
|
-
let
|
|
125875
|
+
let max2 = null;
|
|
125876
125876
|
let maxSV = null;
|
|
125877
125877
|
let rangeObj = null;
|
|
125878
125878
|
try {
|
|
@@ -125882,13 +125882,13 @@ const maxSatisfying$1 = (versions, range2, options) => {
|
|
|
125882
125882
|
}
|
|
125883
125883
|
versions.forEach((v) => {
|
|
125884
125884
|
if (rangeObj.test(v)) {
|
|
125885
|
-
if (!
|
|
125886
|
-
|
|
125887
|
-
maxSV = new SemVer$4(
|
|
125885
|
+
if (!max2 || maxSV.compare(v) === -1) {
|
|
125886
|
+
max2 = v;
|
|
125887
|
+
maxSV = new SemVer$4(max2, options);
|
|
125888
125888
|
}
|
|
125889
125889
|
}
|
|
125890
125890
|
});
|
|
125891
|
-
return
|
|
125891
|
+
return max2;
|
|
125892
125892
|
};
|
|
125893
125893
|
var maxSatisfying_1 = maxSatisfying$1;
|
|
125894
125894
|
const SemVer$3 = semver;
|
|
@@ -126073,17 +126073,17 @@ var simplify = (versions, range2, options) => {
|
|
|
126073
126073
|
set.push([first, null]);
|
|
126074
126074
|
}
|
|
126075
126075
|
const ranges2 = [];
|
|
126076
|
-
for (const [min,
|
|
126077
|
-
if (min ===
|
|
126076
|
+
for (const [min, max2] of set) {
|
|
126077
|
+
if (min === max2) {
|
|
126078
126078
|
ranges2.push(min);
|
|
126079
|
-
} else if (!
|
|
126079
|
+
} else if (!max2 && min === v[0]) {
|
|
126080
126080
|
ranges2.push("*");
|
|
126081
|
-
} else if (!
|
|
126081
|
+
} else if (!max2) {
|
|
126082
126082
|
ranges2.push(`>=${min}`);
|
|
126083
126083
|
} else if (min === v[0]) {
|
|
126084
|
-
ranges2.push(`<=${
|
|
126084
|
+
ranges2.push(`<=${max2}`);
|
|
126085
126085
|
} else {
|
|
126086
|
-
ranges2.push(`${min} - ${
|
|
126086
|
+
ranges2.push(`${min} - ${max2}`);
|
|
126087
126087
|
}
|
|
126088
126088
|
}
|
|
126089
126089
|
const simplified = ranges2.join(" || ");
|
|
@@ -126377,7 +126377,9 @@ const FileType$1 = {
|
|
|
126377
126377
|
OBS_SEGMENTATIONS_JSON: "obsSegmentations.json",
|
|
126378
126378
|
OBS_SETS_CSV: "obsSets.csv",
|
|
126379
126379
|
OBS_SETS_JSON: "obsSets.json",
|
|
126380
|
+
// OME-Zarr
|
|
126380
126381
|
IMAGE_OME_ZARR: "image.ome-zarr",
|
|
126382
|
+
OBS_SEGMENTATIONS_OME_ZARR: "obsSegmentations.ome-zarr",
|
|
126381
126383
|
// AnnData
|
|
126382
126384
|
OBS_FEATURE_MATRIX_ANNDATA_ZARR: "obsFeatureMatrix.anndata.zarr",
|
|
126383
126385
|
OBS_SETS_ANNDATA_ZARR: "obsSets.anndata.zarr",
|
|
@@ -126830,30 +126832,39 @@ const omeCoordinateTransformations = z.array(z.union([
|
|
|
126830
126832
|
scale: z.array(z.number())
|
|
126831
126833
|
})
|
|
126832
126834
|
]));
|
|
126833
|
-
z.object({
|
|
126835
|
+
const imageOmeTiffSchema = z.object({
|
|
126834
126836
|
offsetsUrl: z.string().optional(),
|
|
126835
126837
|
coordinateTransformations: omeCoordinateTransformations.optional()
|
|
126836
126838
|
});
|
|
126839
|
+
imageOmeTiffSchema.extend({
|
|
126840
|
+
obsTypesFromChannelNames: z.boolean().optional()
|
|
126841
|
+
});
|
|
126837
126842
|
const imageOmeZarrSchema = z.object({
|
|
126838
126843
|
coordinateTransformations: omeCoordinateTransformations.optional()
|
|
126839
126844
|
});
|
|
126840
126845
|
imageOmeZarrSchema.extend({
|
|
126846
|
+
obsTypesFromChannelNames: z.boolean().optional()
|
|
126847
|
+
});
|
|
126848
|
+
const imageSpatialdataSchema = imageOmeZarrSchema.extend({
|
|
126841
126849
|
path: z.string()
|
|
126842
126850
|
});
|
|
126843
|
-
z.object({
|
|
126851
|
+
const obsSegmentationsSpatialdataSchema = z.object({
|
|
126852
|
+
// TODO: should this also extend the imageOmeZarrSchema?
|
|
126853
|
+
// TODO: should this be renamed labelsSpatialdataSchema?
|
|
126854
|
+
// TODO: support obsTypesFromChannelNames?
|
|
126844
126855
|
path: z.string()
|
|
126845
126856
|
});
|
|
126846
126857
|
z.object({
|
|
126847
126858
|
path: z.string()
|
|
126848
126859
|
});
|
|
126849
|
-
z.object({
|
|
126860
|
+
const obsSpotsSpatialdataSchema = z.object({
|
|
126850
126861
|
path: z.string(),
|
|
126851
126862
|
tablePath: z.string().optional().describe("The path to a table which annotates the spots. If available but not specified, the spot identifiers may not be aligned with associated tabular data as expected.")
|
|
126852
126863
|
});
|
|
126853
|
-
annDataObsFeatureMatrix.extend({
|
|
126864
|
+
const obsFeatureMatrixSpatialdataSchema = annDataObsFeatureMatrix.extend({
|
|
126854
126865
|
region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional()
|
|
126855
126866
|
});
|
|
126856
|
-
z.object({
|
|
126867
|
+
const obsSetsSpatialdataSchema = z.object({
|
|
126857
126868
|
region: z.string().describe("The name of a region to use to filter instances (i.e., rows) in the table").optional(),
|
|
126858
126869
|
tablePath: z.string().optional().describe("The path to a table which contains the index for the set values."),
|
|
126859
126870
|
obsSets: annDataObsSets
|
|
@@ -126916,6 +126927,19 @@ z.object({
|
|
|
126916
126927
|
z.array(annDataConvenienceObsEmbeddingItem)
|
|
126917
126928
|
])
|
|
126918
126929
|
}).partial();
|
|
126930
|
+
z.object({
|
|
126931
|
+
// TODO: should `image` be a special schema
|
|
126932
|
+
// to allow specifying fileUid (like for embeddingType)?
|
|
126933
|
+
image: imageSpatialdataSchema,
|
|
126934
|
+
// TODO: should this be a special schema
|
|
126935
|
+
// to allow specifying fileUid (like for embeddingType)?
|
|
126936
|
+
labels: obsSegmentationsSpatialdataSchema,
|
|
126937
|
+
obsFeatureMatrix: obsFeatureMatrixSpatialdataSchema,
|
|
126938
|
+
obsSpots: obsSpotsSpatialdataSchema,
|
|
126939
|
+
// TODO: obsPoints
|
|
126940
|
+
// TODO: obsLocations
|
|
126941
|
+
obsSets: obsSetsSpatialdataSchema
|
|
126942
|
+
}).partial();
|
|
126919
126943
|
z.object({
|
|
126920
126944
|
obsLabelsTypes: z.array(z.string()).optional(),
|
|
126921
126945
|
embeddingTypes: z.array(z.string()).optional()
|
|
@@ -127284,14 +127308,14 @@ var tinycolor = { exports: {} };
|
|
|
127284
127308
|
r2 = bound01(r2, 255);
|
|
127285
127309
|
g2 = bound01(g2, 255);
|
|
127286
127310
|
b = bound01(b, 255);
|
|
127287
|
-
var
|
|
127288
|
-
var h, s2, l2 = (
|
|
127289
|
-
if (
|
|
127311
|
+
var max2 = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
|
|
127312
|
+
var h, s2, l2 = (max2 + min) / 2;
|
|
127313
|
+
if (max2 == min) {
|
|
127290
127314
|
h = s2 = 0;
|
|
127291
127315
|
} else {
|
|
127292
|
-
var d =
|
|
127293
|
-
s2 = l2 > 0.5 ? d / (2 -
|
|
127294
|
-
switch (
|
|
127316
|
+
var d = max2 - min;
|
|
127317
|
+
s2 = l2 > 0.5 ? d / (2 - max2 - min) : d / (max2 + min);
|
|
127318
|
+
switch (max2) {
|
|
127295
127319
|
case r2:
|
|
127296
127320
|
h = (g2 - b) / d + (g2 < b ? 6 : 0);
|
|
127297
127321
|
break;
|
|
@@ -127339,14 +127363,14 @@ var tinycolor = { exports: {} };
|
|
|
127339
127363
|
r2 = bound01(r2, 255);
|
|
127340
127364
|
g2 = bound01(g2, 255);
|
|
127341
127365
|
b = bound01(b, 255);
|
|
127342
|
-
var
|
|
127343
|
-
var h, s2, v =
|
|
127344
|
-
var d =
|
|
127345
|
-
s2 =
|
|
127346
|
-
if (
|
|
127366
|
+
var max2 = mathMax(r2, g2, b), min = mathMin(r2, g2, b);
|
|
127367
|
+
var h, s2, v = max2;
|
|
127368
|
+
var d = max2 - min;
|
|
127369
|
+
s2 = max2 === 0 ? 0 : d / max2;
|
|
127370
|
+
if (max2 == min) {
|
|
127347
127371
|
h = 0;
|
|
127348
127372
|
} else {
|
|
127349
|
-
switch (
|
|
127373
|
+
switch (max2) {
|
|
127350
127374
|
case r2:
|
|
127351
127375
|
h = (g2 - b) / d + (g2 < b ? 6 : 0);
|
|
127352
127376
|
break;
|
|
@@ -127743,19 +127767,19 @@ var tinycolor = { exports: {} };
|
|
|
127743
127767
|
}
|
|
127744
127768
|
return a2;
|
|
127745
127769
|
}
|
|
127746
|
-
function bound01(n2,
|
|
127770
|
+
function bound01(n2, max2) {
|
|
127747
127771
|
if (isOnePointZero(n2)) {
|
|
127748
127772
|
n2 = "100%";
|
|
127749
127773
|
}
|
|
127750
127774
|
var processPercent = isPercentage(n2);
|
|
127751
|
-
n2 = mathMin(
|
|
127775
|
+
n2 = mathMin(max2, mathMax(0, parseFloat(n2)));
|
|
127752
127776
|
if (processPercent) {
|
|
127753
|
-
n2 = parseInt(n2 *
|
|
127777
|
+
n2 = parseInt(n2 * max2, 10) / 100;
|
|
127754
127778
|
}
|
|
127755
|
-
if (Math2.abs(n2 -
|
|
127779
|
+
if (Math2.abs(n2 - max2) < 1e-6) {
|
|
127756
127780
|
return 1;
|
|
127757
127781
|
}
|
|
127758
|
-
return n2 %
|
|
127782
|
+
return n2 % max2 / parseFloat(max2);
|
|
127759
127783
|
}
|
|
127760
127784
|
function clamp01(val) {
|
|
127761
127785
|
return mathMin(1, mathMax(0, val));
|
|
@@ -128814,10 +128838,10 @@ var json2csv_umd = { exports: {} };
|
|
|
128814
128838
|
};
|
|
128815
128839
|
Buffer3.prototype.inspect = function inspect2() {
|
|
128816
128840
|
var str = "";
|
|
128817
|
-
var
|
|
128841
|
+
var max2 = INSPECT_MAX_BYTES;
|
|
128818
128842
|
if (this.length > 0) {
|
|
128819
|
-
str = this.toString("hex", 0,
|
|
128820
|
-
if (this.length >
|
|
128843
|
+
str = this.toString("hex", 0, max2).match(/.{2}/g).join(" ");
|
|
128844
|
+
if (this.length > max2)
|
|
128821
128845
|
str += " ... ";
|
|
128822
128846
|
}
|
|
128823
128847
|
return "<Buffer " + str + ">";
|
|
@@ -129383,10 +129407,10 @@ var json2csv_umd = { exports: {} };
|
|
|
129383
129407
|
checkOffset(offset, 8, this.length);
|
|
129384
129408
|
return read(this, offset, false, 52, 8);
|
|
129385
129409
|
};
|
|
129386
|
-
function checkInt(buf, value, offset, ext,
|
|
129410
|
+
function checkInt(buf, value, offset, ext, max2, min) {
|
|
129387
129411
|
if (!internalIsBuffer(buf))
|
|
129388
129412
|
throw new TypeError('"buffer" argument must be a Buffer instance');
|
|
129389
|
-
if (value >
|
|
129413
|
+
if (value > max2 || value < min)
|
|
129390
129414
|
throw new RangeError('"value" argument is out of bounds');
|
|
129391
129415
|
if (offset + ext > buf.length)
|
|
129392
129416
|
throw new RangeError("Index out of range");
|
|
@@ -129611,7 +129635,7 @@ var json2csv_umd = { exports: {} };
|
|
|
129611
129635
|
}
|
|
129612
129636
|
return offset + 4;
|
|
129613
129637
|
};
|
|
129614
|
-
function checkIEEE754(buf, value, offset, ext,
|
|
129638
|
+
function checkIEEE754(buf, value, offset, ext, max2, min) {
|
|
129615
129639
|
if (offset + ext > buf.length)
|
|
129616
129640
|
throw new RangeError("Index out of range");
|
|
129617
129641
|
if (offset < 0)
|
|
@@ -133668,18 +133692,18 @@ void main() {
|
|
|
133668
133692
|
`;
|
|
133669
133693
|
function extent(values2, valueof) {
|
|
133670
133694
|
let min;
|
|
133671
|
-
let
|
|
133695
|
+
let max2;
|
|
133672
133696
|
if (valueof === void 0) {
|
|
133673
133697
|
for (const value of values2) {
|
|
133674
133698
|
if (value != null) {
|
|
133675
133699
|
if (min === void 0) {
|
|
133676
133700
|
if (value >= value)
|
|
133677
|
-
min =
|
|
133701
|
+
min = max2 = value;
|
|
133678
133702
|
} else {
|
|
133679
133703
|
if (min > value)
|
|
133680
133704
|
min = value;
|
|
133681
|
-
if (
|
|
133682
|
-
|
|
133705
|
+
if (max2 < value)
|
|
133706
|
+
max2 = value;
|
|
133683
133707
|
}
|
|
133684
133708
|
}
|
|
133685
133709
|
}
|
|
@@ -133689,36 +133713,54 @@ function extent(values2, valueof) {
|
|
|
133689
133713
|
if ((value = valueof(value, ++index2, values2)) != null) {
|
|
133690
133714
|
if (min === void 0) {
|
|
133691
133715
|
if (value >= value)
|
|
133692
|
-
min =
|
|
133716
|
+
min = max2 = value;
|
|
133693
133717
|
} else {
|
|
133694
133718
|
if (min > value)
|
|
133695
133719
|
min = value;
|
|
133696
|
-
if (
|
|
133697
|
-
|
|
133720
|
+
if (max2 < value)
|
|
133721
|
+
max2 = value;
|
|
133698
133722
|
}
|
|
133699
133723
|
}
|
|
133700
133724
|
}
|
|
133701
133725
|
}
|
|
133702
|
-
return [min,
|
|
133726
|
+
return [min, max2];
|
|
133727
|
+
}
|
|
133728
|
+
function max(values2, valueof) {
|
|
133729
|
+
let max2;
|
|
133730
|
+
if (valueof === void 0) {
|
|
133731
|
+
for (const value of values2) {
|
|
133732
|
+
if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
|
|
133733
|
+
max2 = value;
|
|
133734
|
+
}
|
|
133735
|
+
}
|
|
133736
|
+
} else {
|
|
133737
|
+
let index2 = -1;
|
|
133738
|
+
for (let value of values2) {
|
|
133739
|
+
if ((value = valueof(value, ++index2, values2)) != null && (max2 < value || max2 === void 0 && value >= value)) {
|
|
133740
|
+
max2 = value;
|
|
133741
|
+
}
|
|
133742
|
+
}
|
|
133743
|
+
}
|
|
133744
|
+
return max2;
|
|
133703
133745
|
}
|
|
133704
133746
|
function normalize(arr) {
|
|
133705
|
-
const [min,
|
|
133706
|
-
const ratio = 255 / (
|
|
133747
|
+
const [min, max2] = extent(arr);
|
|
133748
|
+
const ratio = 255 / (max2 - min);
|
|
133707
133749
|
const data = new Uint8Array(
|
|
133708
133750
|
arr.map((i2) => Math.floor((i2 - min) * ratio))
|
|
133709
133751
|
);
|
|
133710
133752
|
return data;
|
|
133711
133753
|
}
|
|
133712
|
-
function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSetColorMode, texSize) {
|
|
133754
|
+
function multiSetsToTextureData(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode, texSize) {
|
|
133713
133755
|
let totalValuesLength = 0;
|
|
133714
133756
|
let totalColorsLength = 0;
|
|
133715
133757
|
channelIsSetColorMode.forEach((isSetColorMode, channelIndex) => {
|
|
133716
|
-
var _a2, _b, _c, _d
|
|
133758
|
+
var _a2, _b, _c, _d;
|
|
133717
133759
|
if (isSetColorMode) {
|
|
133718
|
-
|
|
133719
|
-
|
|
133760
|
+
totalColorsLength += (((_b = (_a2 = setColorValues[channelIndex]) == null ? void 0 : _a2.setColors) == null ? void 0 : _b.length) || 0) * 3;
|
|
133761
|
+
totalValuesLength += ((_c = setColorValues[channelIndex]) == null ? void 0 : _c.obsIndex) ? max(setColorValues[channelIndex].obsIndex.map((d) => parseInt(d))) : 0;
|
|
133720
133762
|
} else {
|
|
133721
|
-
totalValuesLength += ((
|
|
133763
|
+
totalValuesLength += multiMatrixObsIndex[channelIndex] ? max(multiMatrixObsIndex[channelIndex].map((d) => parseInt(d))) : ((_d = multiFeatureValues[channelIndex]) == null ? void 0 : _d.length) || 0;
|
|
133722
133764
|
}
|
|
133723
133765
|
});
|
|
133724
133766
|
const valueTexHeight = Math.max(2, Math.ceil(totalValuesLength / texSize));
|
|
@@ -133736,12 +133778,20 @@ function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSet
|
|
|
133736
133778
|
let indexOffset = 0;
|
|
133737
133779
|
let colorOffset = 0;
|
|
133738
133780
|
channelIsSetColorMode.forEach((isSetColorMode, channelIndex) => {
|
|
133781
|
+
const matrixObsIndex = multiMatrixObsIndex[channelIndex];
|
|
133782
|
+
const bitmaskValueIsIndex = matrixObsIndex === null;
|
|
133739
133783
|
if (isSetColorMode) {
|
|
133740
133784
|
const { setColorIndices, setColors, obsIndex } = setColorValues[channelIndex] || {};
|
|
133741
133785
|
if (setColorIndices && setColors && obsIndex) {
|
|
133742
133786
|
for (let i2 = 0; i2 < obsIndex.length; i2++) {
|
|
133743
|
-
|
|
133744
|
-
|
|
133787
|
+
let obsId = String(i2 + 1);
|
|
133788
|
+
let obsI = i2;
|
|
133789
|
+
if (!bitmaskValueIsIndex) {
|
|
133790
|
+
obsId = obsIndex[i2];
|
|
133791
|
+
obsI = parseInt(obsId) - 1;
|
|
133792
|
+
}
|
|
133793
|
+
const colorIndex = setColorIndices.get(obsId);
|
|
133794
|
+
totalData[indexOffset + obsI] = colorIndex === void 0 ? 0 : colorIndex + 1;
|
|
133745
133795
|
}
|
|
133746
133796
|
for (let i2 = 0; i2 < setColors.length; i2++) {
|
|
133747
133797
|
const { color: [r2, g2, b] } = setColors[i2];
|
|
@@ -133756,7 +133806,16 @@ function multiSetsToTextureData(multiFeatureValues, setColorValues, channelIsSet
|
|
|
133756
133806
|
colorOffset += (setColors == null ? void 0 : setColors.length) || 0;
|
|
133757
133807
|
} else {
|
|
133758
133808
|
const featureArr = multiFeatureValues[channelIndex];
|
|
133759
|
-
|
|
133809
|
+
const normalizedFeatureArr = normalize(featureArr);
|
|
133810
|
+
if (!bitmaskValueIsIndex && matrixObsIndex) {
|
|
133811
|
+
for (let i2 = 0; i2 < matrixObsIndex.length; i2++) {
|
|
133812
|
+
const obsId = matrixObsIndex[i2];
|
|
133813
|
+
const obsI = parseInt(obsId) - 1;
|
|
133814
|
+
totalData[indexOffset + obsI] = normalizedFeatureArr[i2];
|
|
133815
|
+
}
|
|
133816
|
+
} else {
|
|
133817
|
+
totalData.set(normalizedFeatureArr, indexOffset);
|
|
133818
|
+
}
|
|
133760
133819
|
indicesOffsets.push(indexOffset);
|
|
133761
133820
|
indexOffset += featureArr.length;
|
|
133762
133821
|
colorsOffsets.push(colorOffset);
|
|
@@ -133783,6 +133842,17 @@ function padWithDefault(arr, defaultValue2, padWidth) {
|
|
|
133783
133842
|
function getColor(arr) {
|
|
133784
133843
|
return arr ? arr.map((v) => v / 255) : [0, 0, 0];
|
|
133785
133844
|
}
|
|
133845
|
+
function isEqualShallow(prevArr, nextArr) {
|
|
133846
|
+
if (prevArr === nextArr) {
|
|
133847
|
+
return true;
|
|
133848
|
+
}
|
|
133849
|
+
if (Array.isArray(prevArr) && Array.isArray(nextArr)) {
|
|
133850
|
+
if (prevArr.length === nextArr.length) {
|
|
133851
|
+
return !prevArr.some((v, i2) => v !== nextArr[i2] && (!Array.isArray(v) && !Array.isArray(nextArr[i2]) || (v.length > 0 || nextArr[i2].length > 0)));
|
|
133852
|
+
}
|
|
133853
|
+
}
|
|
133854
|
+
return prevArr === nextArr;
|
|
133855
|
+
}
|
|
133786
133856
|
const defaultProps = {
|
|
133787
133857
|
channelStrokeWidths: { type: "array", value: null, compare: true },
|
|
133788
133858
|
channelsFilled: { type: "array", value: null, compare: true },
|
|
@@ -133792,6 +133862,7 @@ const defaultProps = {
|
|
|
133792
133862
|
colormap: { type: "string", value: GLSL_COLORMAP_DEFAULT, compare: true },
|
|
133793
133863
|
expressionData: { type: "object", value: null, compare: true },
|
|
133794
133864
|
multiFeatureValues: { type: "array", value: null, compare: true },
|
|
133865
|
+
multiMatrixObsIndex: { type: "array", value: null, compare: true },
|
|
133795
133866
|
setColorValues: { type: "array", value: null, compare: true },
|
|
133796
133867
|
channelFeatureValueColormaps: { type: "array", value: null, compare: true },
|
|
133797
133868
|
channelFeatureValueColormapRanges: { type: "array", value: null, compare: true },
|
|
@@ -133842,8 +133913,13 @@ class BitmaskLayer2 extends XRLayer {
|
|
|
133842
133913
|
}
|
|
133843
133914
|
updateState({ props: props2, oldProps, changeFlags }) {
|
|
133844
133915
|
super.updateState({ props: props2, oldProps, changeFlags });
|
|
133845
|
-
if (props2.multiFeatureValues
|
|
133846
|
-
const {
|
|
133916
|
+
if (!isEqualShallow(props2.multiFeatureValues, oldProps.multiFeatureValues) || !isEqualShallow(props2.multiMatrixObsIndex, oldProps.multiMatrixObsIndex) || !isEqualShallow(props2.setColorValues, oldProps.setColorValues) || !isEqualShallow(props2.channelIsSetColorMode, oldProps.channelIsSetColorMode)) {
|
|
133917
|
+
const {
|
|
133918
|
+
multiFeatureValues,
|
|
133919
|
+
multiMatrixObsIndex,
|
|
133920
|
+
setColorValues,
|
|
133921
|
+
channelIsSetColorMode
|
|
133922
|
+
} = this.props;
|
|
133847
133923
|
const [
|
|
133848
133924
|
valueTex,
|
|
133849
133925
|
colorTex,
|
|
@@ -133853,6 +133929,7 @@ class BitmaskLayer2 extends XRLayer {
|
|
|
133853
133929
|
colorTexHeight
|
|
133854
133930
|
] = this.multiSetsToTexture(
|
|
133855
133931
|
multiFeatureValues,
|
|
133932
|
+
multiMatrixObsIndex,
|
|
133856
133933
|
setColorValues,
|
|
133857
133934
|
channelIsSetColorMode
|
|
133858
133935
|
);
|
|
@@ -134017,7 +134094,7 @@ class BitmaskLayer2 extends XRLayer {
|
|
|
134017
134094
|
type: GL$1.FLOAT
|
|
134018
134095
|
});
|
|
134019
134096
|
}
|
|
134020
|
-
multiSetsToTexture(multiFeatureValues, setColorValues, channelIsSetColorMode) {
|
|
134097
|
+
multiSetsToTexture(multiFeatureValues, multiMatrixObsIndex, setColorValues, channelIsSetColorMode) {
|
|
134021
134098
|
const isWebGL2On = isWebGL2$1(this.context.gl);
|
|
134022
134099
|
const [
|
|
134023
134100
|
totalData,
|
|
@@ -134028,6 +134105,7 @@ class BitmaskLayer2 extends XRLayer {
|
|
|
134028
134105
|
colorsOffsets
|
|
134029
134106
|
] = multiSetsToTextureData(
|
|
134030
134107
|
multiFeatureValues,
|
|
134108
|
+
multiMatrixObsIndex,
|
|
134031
134109
|
setColorValues,
|
|
134032
134110
|
channelIsSetColorMode,
|
|
134033
134111
|
MULTI_FEATURE_TEX_SIZE
|