whitebox-wasm 0.1.0 → 0.2.0
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/README.md +151 -0
- package/package.json +2 -2
- package/whitebox_wasm.d.ts +322 -11
- package/whitebox_wasm.js +1276 -15
- package/whitebox_wasm_bg.wasm +0 -0
package/whitebox_wasm.js
CHANGED
|
@@ -1,8 +1,1001 @@
|
|
|
1
1
|
/* @ts-self-types="./whitebox_wasm.d.ts" */
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Builder for encoding a Cloud Optimized GeoTIFF (tiled, with overviews and
|
|
5
|
+
* GDAL ghost metadata) to bytes. A COG is also a valid plain GeoTIFF.
|
|
6
|
+
*
|
|
7
|
+
* Configure with the `set_*` methods, then call one of `write_*` with the
|
|
8
|
+
* pixel data to get a `Uint8Array` of the encoded file.
|
|
9
|
+
*/
|
|
10
|
+
export class CogBuilder {
|
|
11
|
+
__destroy_into_raw() {
|
|
12
|
+
const ptr = this.__wbg_ptr;
|
|
13
|
+
this.__wbg_ptr = 0;
|
|
14
|
+
CogBuilderFinalization.unregister(this);
|
|
15
|
+
return ptr;
|
|
16
|
+
}
|
|
17
|
+
free() {
|
|
18
|
+
const ptr = this.__destroy_into_raw();
|
|
19
|
+
wasm.__wbg_cogbuilder_free(ptr, 0);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* New builder for a `width` x `height` raster with `bands` bands.
|
|
23
|
+
* @param {number} width
|
|
24
|
+
* @param {number} height
|
|
25
|
+
* @param {number} bands
|
|
26
|
+
*/
|
|
27
|
+
constructor(width, height, bands) {
|
|
28
|
+
const ret = wasm.cogbuilder_new(width, height, bands);
|
|
29
|
+
this.__wbg_ptr = ret;
|
|
30
|
+
CogBuilderFinalization.register(this, this.__wbg_ptr, this);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Force BigTIFF (64-bit offsets) for very large outputs.
|
|
35
|
+
* @param {boolean} on
|
|
36
|
+
*/
|
|
37
|
+
set_bigtiff(on) {
|
|
38
|
+
wasm.cogbuilder_set_bigtiff(this.__wbg_ptr, on);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Compression: `none`, `lzw`, `deflate`, `packbits`, `webp`, `jpeg`, `jpegxl`.
|
|
42
|
+
* @param {string} name
|
|
43
|
+
*/
|
|
44
|
+
set_compression(name) {
|
|
45
|
+
try {
|
|
46
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
47
|
+
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
|
|
48
|
+
const len0 = WASM_VECTOR_LEN;
|
|
49
|
+
wasm.cogbuilder_set_compression(retptr, this.__wbg_ptr, ptr0, len0);
|
|
50
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
51
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
52
|
+
if (r1) {
|
|
53
|
+
throw takeObject(r0);
|
|
54
|
+
}
|
|
55
|
+
} finally {
|
|
56
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Set the EPSG code (1..=65535).
|
|
61
|
+
* @param {number} epsg
|
|
62
|
+
*/
|
|
63
|
+
set_epsg(epsg) {
|
|
64
|
+
wasm.cogbuilder_set_epsg(this.__wbg_ptr, epsg);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Set the full affine geo-transform:
|
|
68
|
+
* `[x_origin, pixel_width, row_rotation, y_origin, col_rotation, pixel_height]`.
|
|
69
|
+
* @param {Float64Array} gt
|
|
70
|
+
*/
|
|
71
|
+
set_geo_transform(gt) {
|
|
72
|
+
try {
|
|
73
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
74
|
+
const ptr0 = passArrayF64ToWasm0(gt, wasm.__wbindgen_export2);
|
|
75
|
+
const len0 = WASM_VECTOR_LEN;
|
|
76
|
+
wasm.cogbuilder_set_geo_transform(retptr, this.__wbg_ptr, ptr0, len0);
|
|
77
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
78
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
79
|
+
if (r1) {
|
|
80
|
+
throw takeObject(r0);
|
|
81
|
+
}
|
|
82
|
+
} finally {
|
|
83
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Set the no-data sentinel value.
|
|
88
|
+
* @param {number} v
|
|
89
|
+
*/
|
|
90
|
+
set_nodata(v) {
|
|
91
|
+
wasm.cogbuilder_set_nodata(this.__wbg_ptr, v);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Convenience: north-up geo-transform from upper-left origin and pixel size.
|
|
95
|
+
* @param {number} x_min
|
|
96
|
+
* @param {number} y_max
|
|
97
|
+
* @param {number} pixel_size
|
|
98
|
+
*/
|
|
99
|
+
set_origin(x_min, y_max, pixel_size) {
|
|
100
|
+
wasm.cogbuilder_set_origin(this.__wbg_ptr, x_min, y_max, pixel_size);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Explicit overview decimation factors (e.g. `[2,4,8]`); empty disables overviews.
|
|
104
|
+
* @param {Uint32Array} levels
|
|
105
|
+
*/
|
|
106
|
+
set_overview_levels(levels) {
|
|
107
|
+
const ptr0 = passArray32ToWasm0(levels, wasm.__wbindgen_export2);
|
|
108
|
+
const len0 = WASM_VECTOR_LEN;
|
|
109
|
+
wasm.cogbuilder_set_overview_levels(this.__wbg_ptr, ptr0, len0);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Internal tile size in pixels (default 512).
|
|
113
|
+
* @param {number} px
|
|
114
|
+
*/
|
|
115
|
+
set_tile_size(px) {
|
|
116
|
+
wasm.cogbuilder_set_tile_size(this.__wbg_ptr, px);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Encode `f32` pixel data to a COG. `Uint8Array`.
|
|
120
|
+
* @param {Float32Array} data
|
|
121
|
+
* @returns {Uint8Array}
|
|
122
|
+
*/
|
|
123
|
+
write_f32(data) {
|
|
124
|
+
try {
|
|
125
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
126
|
+
const ptr0 = passArrayF32ToWasm0(data, wasm.__wbindgen_export2);
|
|
127
|
+
const len0 = WASM_VECTOR_LEN;
|
|
128
|
+
wasm.cogbuilder_write_f32(retptr, this.__wbg_ptr, ptr0, len0);
|
|
129
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
130
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
131
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
132
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
133
|
+
if (r3) {
|
|
134
|
+
throw takeObject(r2);
|
|
135
|
+
}
|
|
136
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
137
|
+
wasm.__wbindgen_export(r0, r1 * 1, 1);
|
|
138
|
+
return v2;
|
|
139
|
+
} finally {
|
|
140
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Encode `f64` pixel data to a COG. `Uint8Array`.
|
|
145
|
+
* @param {Float64Array} data
|
|
146
|
+
* @returns {Uint8Array}
|
|
147
|
+
*/
|
|
148
|
+
write_f64(data) {
|
|
149
|
+
try {
|
|
150
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
151
|
+
const ptr0 = passArrayF64ToWasm0(data, wasm.__wbindgen_export2);
|
|
152
|
+
const len0 = WASM_VECTOR_LEN;
|
|
153
|
+
wasm.cogbuilder_write_f64(retptr, this.__wbg_ptr, ptr0, len0);
|
|
154
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
155
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
156
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
157
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
158
|
+
if (r3) {
|
|
159
|
+
throw takeObject(r2);
|
|
160
|
+
}
|
|
161
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
162
|
+
wasm.__wbindgen_export(r0, r1 * 1, 1);
|
|
163
|
+
return v2;
|
|
164
|
+
} finally {
|
|
165
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Encode `u8` pixel data to a COG. `Uint8Array`.
|
|
170
|
+
* @param {Uint8Array} data
|
|
171
|
+
* @returns {Uint8Array}
|
|
172
|
+
*/
|
|
173
|
+
write_u8(data) {
|
|
174
|
+
try {
|
|
175
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
176
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
|
|
177
|
+
const len0 = WASM_VECTOR_LEN;
|
|
178
|
+
wasm.cogbuilder_write_u8(retptr, this.__wbg_ptr, ptr0, len0);
|
|
179
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
180
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
181
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
182
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
183
|
+
if (r3) {
|
|
184
|
+
throw takeObject(r2);
|
|
185
|
+
}
|
|
186
|
+
var v2 = getArrayU8FromWasm0(r0, r1).slice();
|
|
187
|
+
wasm.__wbindgen_export(r0, r1 * 1, 1);
|
|
188
|
+
return v2;
|
|
189
|
+
} finally {
|
|
190
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (Symbol.dispose) CogBuilder.prototype[Symbol.dispose] = CogBuilder.prototype.free;
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Range-request reader for a (tiled) Cloud Optimized GeoTIFF.
|
|
198
|
+
*
|
|
199
|
+
* The wasm module does no network I/O itself; this class parses the header and
|
|
200
|
+
* tells the JS host exactly which byte ranges to fetch, then decodes the tiles
|
|
201
|
+
* the host fetches. Typical flow:
|
|
202
|
+
*
|
|
203
|
+
* 1. Range-fetch the first chunk of the file (e.g. 0..1 MiB) and
|
|
204
|
+
* `new CogStream(headerBytes)`. If it throws "need more header bytes", fetch
|
|
205
|
+
* a larger prefix and retry.
|
|
206
|
+
* 2. Pick a level (0 = full res, higher = overviews) and a pixel window.
|
|
207
|
+
* 3. `tiles_for_window(level, x, y, w, h)` returns the tiles and their byte
|
|
208
|
+
* ranges; range-fetch each, then `decode_tile_f64(level, bytes)`.
|
|
209
|
+
*/
|
|
210
|
+
export class CogStream {
|
|
211
|
+
__destroy_into_raw() {
|
|
212
|
+
const ptr = this.__wbg_ptr;
|
|
213
|
+
this.__wbg_ptr = 0;
|
|
214
|
+
CogStreamFinalization.unregister(this);
|
|
215
|
+
return ptr;
|
|
216
|
+
}
|
|
217
|
+
free() {
|
|
218
|
+
const ptr = this.__destroy_into_raw();
|
|
219
|
+
wasm.__wbg_cogstream_free(ptr, 0);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Bounding box `[min_x, min_y, max_x, max_y]` in the dataset CRS, or empty.
|
|
223
|
+
* @returns {Float64Array}
|
|
224
|
+
*/
|
|
225
|
+
bounding_box() {
|
|
226
|
+
try {
|
|
227
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
228
|
+
wasm.cogstream_bounding_box(retptr, this.__wbg_ptr);
|
|
229
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
230
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
231
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
232
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
233
|
+
return v1;
|
|
234
|
+
} finally {
|
|
235
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Bounds `[min_lon, min_lat, max_lon, max_lat]` in WGS84 degrees, or empty.
|
|
240
|
+
* @returns {Float64Array}
|
|
241
|
+
*/
|
|
242
|
+
bounds_lonlat() {
|
|
243
|
+
try {
|
|
244
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
245
|
+
wasm.cogstream_bounds_lonlat(retptr, this.__wbg_ptr);
|
|
246
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
247
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
248
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
249
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
250
|
+
return v1;
|
|
251
|
+
} finally {
|
|
252
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Image center `[x, y]` in the dataset CRS, or empty.
|
|
257
|
+
* @returns {Float64Array}
|
|
258
|
+
*/
|
|
259
|
+
center() {
|
|
260
|
+
try {
|
|
261
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
262
|
+
wasm.cogstream_center(retptr, this.__wbg_ptr);
|
|
263
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
264
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
265
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
266
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
267
|
+
return v1;
|
|
268
|
+
} finally {
|
|
269
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Image center `[lon, lat]` in WGS84 degrees, or empty if not convertible.
|
|
274
|
+
* @returns {Float64Array}
|
|
275
|
+
*/
|
|
276
|
+
center_lonlat() {
|
|
277
|
+
try {
|
|
278
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
279
|
+
wasm.cogstream_center_lonlat(retptr, this.__wbg_ptr);
|
|
280
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
281
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
282
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
283
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
284
|
+
return v1;
|
|
285
|
+
} finally {
|
|
286
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Decode one tile's fetched (compressed) bytes into an `f64` `Float64Array`,
|
|
291
|
+
* pixel-interleaved, length `tile_width * tile_height * bands`. Edge tiles
|
|
292
|
+
* come back full-size; clip to the image/window on the JS side.
|
|
293
|
+
* @param {number} level
|
|
294
|
+
* @param {Uint8Array} tile_bytes
|
|
295
|
+
* @returns {Float64Array}
|
|
296
|
+
*/
|
|
297
|
+
decode_tile_f64(level, tile_bytes) {
|
|
298
|
+
try {
|
|
299
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
300
|
+
const ptr0 = passArray8ToWasm0(tile_bytes, wasm.__wbindgen_export2);
|
|
301
|
+
const len0 = WASM_VECTOR_LEN;
|
|
302
|
+
wasm.cogstream_decode_tile_f64(retptr, this.__wbg_ptr, level, ptr0, len0);
|
|
303
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
304
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
305
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
306
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
307
|
+
if (r3) {
|
|
308
|
+
throw takeObject(r2);
|
|
309
|
+
}
|
|
310
|
+
var v2 = getArrayF64FromWasm0(r0, r1).slice();
|
|
311
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
312
|
+
return v2;
|
|
313
|
+
} finally {
|
|
314
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* EPSG code of the full-resolution level, if any.
|
|
319
|
+
* @returns {number | undefined}
|
|
320
|
+
*/
|
|
321
|
+
get epsg() {
|
|
322
|
+
const ret = wasm.cogstream_epsg(this.__wbg_ptr);
|
|
323
|
+
return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Level-0 geo-transform `[x_origin, pixel_width, row_rot, y_origin, col_rot,
|
|
327
|
+
* pixel_height]`, or empty if not georeferenced.
|
|
328
|
+
* @returns {Float64Array}
|
|
329
|
+
*/
|
|
330
|
+
geo_transform() {
|
|
331
|
+
try {
|
|
332
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
333
|
+
wasm.cogstream_geo_transform(retptr, this.__wbg_ptr);
|
|
334
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
335
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
336
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
337
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
338
|
+
return v1;
|
|
339
|
+
} finally {
|
|
340
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* JSON array describing every level: `[{level,width,height,tile_width,
|
|
345
|
+
* tile_height,tiles_x,tiles_y,bands,bits_per_sample,sample_format,compression}]`.
|
|
346
|
+
* @returns {string}
|
|
347
|
+
*/
|
|
348
|
+
levels_json() {
|
|
349
|
+
let deferred1_0;
|
|
350
|
+
let deferred1_1;
|
|
351
|
+
try {
|
|
352
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
353
|
+
wasm.cogstream_levels_json(retptr, this.__wbg_ptr);
|
|
354
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
355
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
356
|
+
deferred1_0 = r0;
|
|
357
|
+
deferred1_1 = r1;
|
|
358
|
+
return getStringFromWasm0(r0, r1);
|
|
359
|
+
} finally {
|
|
360
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
361
|
+
wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Parse a COG's tile layout from front-of-file header bytes.
|
|
366
|
+
* @param {Uint8Array} header_bytes
|
|
367
|
+
*/
|
|
368
|
+
constructor(header_bytes) {
|
|
369
|
+
try {
|
|
370
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
371
|
+
const ptr0 = passArray8ToWasm0(header_bytes, wasm.__wbindgen_export2);
|
|
372
|
+
const len0 = WASM_VECTOR_LEN;
|
|
373
|
+
wasm.cogstream_new(retptr, ptr0, len0);
|
|
374
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
375
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
376
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
377
|
+
if (r2) {
|
|
378
|
+
throw takeObject(r1);
|
|
379
|
+
}
|
|
380
|
+
this.__wbg_ptr = r0;
|
|
381
|
+
CogStreamFinalization.register(this, this.__wbg_ptr, this);
|
|
382
|
+
return this;
|
|
383
|
+
} finally {
|
|
384
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* No-data sentinel, if declared.
|
|
389
|
+
* @returns {number | undefined}
|
|
390
|
+
*/
|
|
391
|
+
get nodata() {
|
|
392
|
+
try {
|
|
393
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
394
|
+
wasm.cogstream_nodata(retptr, this.__wbg_ptr);
|
|
395
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
396
|
+
var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
|
|
397
|
+
return r0 === 0 ? undefined : r2;
|
|
398
|
+
} finally {
|
|
399
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Number of resolution levels (1 + overview count).
|
|
404
|
+
* @returns {number}
|
|
405
|
+
*/
|
|
406
|
+
get num_levels() {
|
|
407
|
+
const ret = wasm.cogstream_num_levels(this.__wbg_ptr);
|
|
408
|
+
return ret >>> 0;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* `[offset, length]` byte range of the tile at `(col, row)` on `level`.
|
|
412
|
+
* @param {number} level
|
|
413
|
+
* @param {number} col
|
|
414
|
+
* @param {number} row
|
|
415
|
+
* @returns {Float64Array}
|
|
416
|
+
*/
|
|
417
|
+
tile_range(level, col, row) {
|
|
418
|
+
try {
|
|
419
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
420
|
+
wasm.cogstream_tile_range(retptr, this.__wbg_ptr, level, col, row);
|
|
421
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
422
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
423
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
424
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
425
|
+
if (r3) {
|
|
426
|
+
throw takeObject(r2);
|
|
427
|
+
}
|
|
428
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
429
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
430
|
+
return v1;
|
|
431
|
+
} finally {
|
|
432
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Tiles covering a pixel window on `level`, as a JSON array of
|
|
437
|
+
* `{col,row,offset,length}`. Fetch each byte range, then `decode_tile_f64`.
|
|
438
|
+
* @param {number} level
|
|
439
|
+
* @param {number} x
|
|
440
|
+
* @param {number} y
|
|
441
|
+
* @param {number} w
|
|
442
|
+
* @param {number} h
|
|
443
|
+
* @returns {string}
|
|
444
|
+
*/
|
|
445
|
+
tiles_for_window(level, x, y, w, h) {
|
|
446
|
+
let deferred2_0;
|
|
447
|
+
let deferred2_1;
|
|
448
|
+
try {
|
|
449
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
450
|
+
wasm.cogstream_tiles_for_window(retptr, this.__wbg_ptr, level, x, y, w, h);
|
|
451
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
452
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
453
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
454
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
455
|
+
var ptr1 = r0;
|
|
456
|
+
var len1 = r1;
|
|
457
|
+
if (r3) {
|
|
458
|
+
ptr1 = 0; len1 = 0;
|
|
459
|
+
throw takeObject(r2);
|
|
460
|
+
}
|
|
461
|
+
deferred2_0 = ptr1;
|
|
462
|
+
deferred2_1 = len1;
|
|
463
|
+
return getStringFromWasm0(ptr1, len1);
|
|
464
|
+
} finally {
|
|
465
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
466
|
+
wasm.__wbindgen_export(deferred2_0, deferred2_1, 1);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
if (Symbol.dispose) CogStream.prototype[Symbol.dispose] = CogStream.prototype.free;
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* A parsed GeoTIFF held in memory. Construct once, then call the accessor and
|
|
474
|
+
* `read_*` methods many times without re-parsing the file.
|
|
475
|
+
*/
|
|
476
|
+
export class GeoTiffReader {
|
|
477
|
+
__destroy_into_raw() {
|
|
478
|
+
const ptr = this.__wbg_ptr;
|
|
479
|
+
this.__wbg_ptr = 0;
|
|
480
|
+
GeoTiffReaderFinalization.unregister(this);
|
|
481
|
+
return ptr;
|
|
482
|
+
}
|
|
483
|
+
free() {
|
|
484
|
+
const ptr = this.__destroy_into_raw();
|
|
485
|
+
wasm.__wbg_geotiffreader_free(ptr, 0);
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* @returns {number}
|
|
489
|
+
*/
|
|
490
|
+
get bands() {
|
|
491
|
+
const ret = wasm.geotiffreader_bands(this.__wbg_ptr);
|
|
492
|
+
return ret >>> 0;
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* @returns {number}
|
|
496
|
+
*/
|
|
497
|
+
get bits_per_sample() {
|
|
498
|
+
const ret = wasm.geotiffreader_bits_per_sample(this.__wbg_ptr);
|
|
499
|
+
return ret;
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Bounding box as `[min_x, min_y, max_x, max_y]`, or empty if not georeferenced.
|
|
503
|
+
* @returns {Float64Array}
|
|
504
|
+
*/
|
|
505
|
+
bounding_box() {
|
|
506
|
+
try {
|
|
507
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
508
|
+
wasm.geotiffreader_bounding_box(retptr, this.__wbg_ptr);
|
|
509
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
510
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
511
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
512
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
513
|
+
return v1;
|
|
514
|
+
} finally {
|
|
515
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Bounds `[min_lon, min_lat, max_lon, max_lat]` in WGS84 degrees, or empty
|
|
520
|
+
* if not convertible.
|
|
521
|
+
* @returns {Float64Array}
|
|
522
|
+
*/
|
|
523
|
+
bounds_lonlat() {
|
|
524
|
+
try {
|
|
525
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
526
|
+
wasm.geotiffreader_bounds_lonlat(retptr, this.__wbg_ptr);
|
|
527
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
528
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
529
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
530
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
531
|
+
return v1;
|
|
532
|
+
} finally {
|
|
533
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* Image center `[x, y]` in the dataset CRS, or empty if not georeferenced.
|
|
538
|
+
* @returns {Float64Array}
|
|
539
|
+
*/
|
|
540
|
+
center() {
|
|
541
|
+
try {
|
|
542
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
543
|
+
wasm.geotiffreader_center(retptr, this.__wbg_ptr);
|
|
544
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
545
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
546
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
547
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
548
|
+
return v1;
|
|
549
|
+
} finally {
|
|
550
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* Image center `[lon, lat]` in WGS84 degrees, or empty if not georeferenced
|
|
555
|
+
* or the CRS is not convertible.
|
|
556
|
+
* @returns {Float64Array}
|
|
557
|
+
*/
|
|
558
|
+
center_lonlat() {
|
|
559
|
+
try {
|
|
560
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
561
|
+
wasm.geotiffreader_center_lonlat(retptr, this.__wbg_ptr);
|
|
562
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
563
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
564
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
565
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
566
|
+
return v1;
|
|
567
|
+
} finally {
|
|
568
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
572
|
+
* @returns {string}
|
|
573
|
+
*/
|
|
574
|
+
get compression() {
|
|
575
|
+
let deferred1_0;
|
|
576
|
+
let deferred1_1;
|
|
577
|
+
try {
|
|
578
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
579
|
+
wasm.geotiffreader_compression(retptr, this.__wbg_ptr);
|
|
580
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
581
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
582
|
+
deferred1_0 = r0;
|
|
583
|
+
deferred1_1 = r1;
|
|
584
|
+
return getStringFromWasm0(r0, r1);
|
|
585
|
+
} finally {
|
|
586
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
587
|
+
wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
/**
|
|
591
|
+
* EPSG code, or `undefined` if the file is not georeferenced by EPSG.
|
|
592
|
+
* @returns {number | undefined}
|
|
593
|
+
*/
|
|
594
|
+
get epsg() {
|
|
595
|
+
const ret = wasm.geotiffreader_epsg(this.__wbg_ptr);
|
|
596
|
+
return ret === Number.MAX_SAFE_INTEGER ? undefined : ret;
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Affine geo-transform as `[x_origin, pixel_width, row_rotation,
|
|
600
|
+
* y_origin, col_rotation, pixel_height]`, or an empty array if absent.
|
|
601
|
+
* @returns {Float64Array}
|
|
602
|
+
*/
|
|
603
|
+
geo_transform() {
|
|
604
|
+
try {
|
|
605
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
606
|
+
wasm.geotiffreader_geo_transform(retptr, this.__wbg_ptr);
|
|
607
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
608
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
609
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
610
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
611
|
+
return v1;
|
|
612
|
+
} finally {
|
|
613
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
/**
|
|
617
|
+
* @returns {number}
|
|
618
|
+
*/
|
|
619
|
+
get height() {
|
|
620
|
+
const ret = wasm.geotiffreader_height(this.__wbg_ptr);
|
|
621
|
+
return ret >>> 0;
|
|
622
|
+
}
|
|
623
|
+
/**
|
|
624
|
+
* Full metadata as a JSON string (same shape as [`geotiff_info`]).
|
|
625
|
+
* @returns {string}
|
|
626
|
+
*/
|
|
627
|
+
info_json() {
|
|
628
|
+
let deferred1_0;
|
|
629
|
+
let deferred1_1;
|
|
630
|
+
try {
|
|
631
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
632
|
+
wasm.geotiffreader_info_json(retptr, this.__wbg_ptr);
|
|
633
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
634
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
635
|
+
deferred1_0 = r0;
|
|
636
|
+
deferred1_1 = r1;
|
|
637
|
+
return getStringFromWasm0(r0, r1);
|
|
638
|
+
} finally {
|
|
639
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
640
|
+
wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* @returns {boolean}
|
|
645
|
+
*/
|
|
646
|
+
get is_bigtiff() {
|
|
647
|
+
const ret = wasm.geotiffreader_is_bigtiff(this.__wbg_ptr);
|
|
648
|
+
return ret !== 0;
|
|
649
|
+
}
|
|
650
|
+
/**
|
|
651
|
+
* Parse a GeoTIFF / BigTIFF / COG from raw bytes.
|
|
652
|
+
* @param {Uint8Array} data
|
|
653
|
+
*/
|
|
654
|
+
constructor(data) {
|
|
655
|
+
try {
|
|
656
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
657
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
|
|
658
|
+
const len0 = WASM_VECTOR_LEN;
|
|
659
|
+
wasm.geotiffreader_new(retptr, ptr0, len0);
|
|
660
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
661
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
662
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
663
|
+
if (r2) {
|
|
664
|
+
throw takeObject(r1);
|
|
665
|
+
}
|
|
666
|
+
this.__wbg_ptr = r0;
|
|
667
|
+
GeoTiffReaderFinalization.register(this, this.__wbg_ptr, this);
|
|
668
|
+
return this;
|
|
669
|
+
} finally {
|
|
670
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* No-data sentinel, or `undefined` if none is declared.
|
|
675
|
+
* @returns {number | undefined}
|
|
676
|
+
*/
|
|
677
|
+
get nodata() {
|
|
678
|
+
try {
|
|
679
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
680
|
+
wasm.geotiffreader_nodata(retptr, this.__wbg_ptr);
|
|
681
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
682
|
+
var r2 = getDataViewMemory0().getFloat64(retptr + 8 * 1, true);
|
|
683
|
+
return r0 === 0 ? undefined : r2;
|
|
684
|
+
} finally {
|
|
685
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
/**
|
|
689
|
+
* Read every band as `f64`, interleaved per pixel (`band0,band1,...`).
|
|
690
|
+
* @returns {Float64Array}
|
|
691
|
+
*/
|
|
692
|
+
read_all_f64() {
|
|
693
|
+
try {
|
|
694
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
695
|
+
wasm.geotiffreader_read_all_f64(retptr, this.__wbg_ptr);
|
|
696
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
697
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
698
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
699
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
700
|
+
if (r3) {
|
|
701
|
+
throw takeObject(r2);
|
|
702
|
+
}
|
|
703
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
704
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
705
|
+
return v1;
|
|
706
|
+
} finally {
|
|
707
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
/**
|
|
711
|
+
* Read a band's raw, undecoded-to-native bytes. `Uint8Array`.
|
|
712
|
+
* @param {number} band
|
|
713
|
+
* @returns {Uint8Array}
|
|
714
|
+
*/
|
|
715
|
+
read_band_bytes(band) {
|
|
716
|
+
try {
|
|
717
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
718
|
+
wasm.geotiffreader_read_band_bytes(retptr, this.__wbg_ptr, band);
|
|
719
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
720
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
721
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
722
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
723
|
+
if (r3) {
|
|
724
|
+
throw takeObject(r2);
|
|
725
|
+
}
|
|
726
|
+
var v1 = getArrayU8FromWasm0(r0, r1).slice();
|
|
727
|
+
wasm.__wbindgen_export(r0, r1 * 1, 1);
|
|
728
|
+
return v1;
|
|
729
|
+
} finally {
|
|
730
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
/**
|
|
734
|
+
* Native `f32` band. `Float32Array`.
|
|
735
|
+
* @param {number} band
|
|
736
|
+
* @returns {Float32Array}
|
|
737
|
+
*/
|
|
738
|
+
read_band_f32(band) {
|
|
739
|
+
try {
|
|
740
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
741
|
+
wasm.geotiffreader_read_band_f32(retptr, this.__wbg_ptr, band);
|
|
742
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
743
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
744
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
745
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
746
|
+
if (r3) {
|
|
747
|
+
throw takeObject(r2);
|
|
748
|
+
}
|
|
749
|
+
var v1 = getArrayF32FromWasm0(r0, r1).slice();
|
|
750
|
+
wasm.__wbindgen_export(r0, r1 * 4, 4);
|
|
751
|
+
return v1;
|
|
752
|
+
} finally {
|
|
753
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
/**
|
|
757
|
+
* Read a band as `f64`, converting from any on-disk type. `Float64Array`.
|
|
758
|
+
* @param {number} band
|
|
759
|
+
* @returns {Float64Array}
|
|
760
|
+
*/
|
|
761
|
+
read_band_f64(band) {
|
|
762
|
+
try {
|
|
763
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
764
|
+
wasm.geotiffreader_read_band_f64(retptr, this.__wbg_ptr, band);
|
|
765
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
766
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
767
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
768
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
769
|
+
if (r3) {
|
|
770
|
+
throw takeObject(r2);
|
|
771
|
+
}
|
|
772
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
773
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
774
|
+
return v1;
|
|
775
|
+
} finally {
|
|
776
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
/**
|
|
780
|
+
* Native `i16` band. `Int16Array`.
|
|
781
|
+
* @param {number} band
|
|
782
|
+
* @returns {Int16Array}
|
|
783
|
+
*/
|
|
784
|
+
read_band_i16(band) {
|
|
785
|
+
try {
|
|
786
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
787
|
+
wasm.geotiffreader_read_band_i16(retptr, this.__wbg_ptr, band);
|
|
788
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
789
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
790
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
791
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
792
|
+
if (r3) {
|
|
793
|
+
throw takeObject(r2);
|
|
794
|
+
}
|
|
795
|
+
var v1 = getArrayI16FromWasm0(r0, r1).slice();
|
|
796
|
+
wasm.__wbindgen_export(r0, r1 * 2, 2);
|
|
797
|
+
return v1;
|
|
798
|
+
} finally {
|
|
799
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Native `i32` band. `Int32Array`.
|
|
804
|
+
* @param {number} band
|
|
805
|
+
* @returns {Int32Array}
|
|
806
|
+
*/
|
|
807
|
+
read_band_i32(band) {
|
|
808
|
+
try {
|
|
809
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
810
|
+
wasm.geotiffreader_read_band_i32(retptr, this.__wbg_ptr, band);
|
|
811
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
812
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
813
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
814
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
815
|
+
if (r3) {
|
|
816
|
+
throw takeObject(r2);
|
|
817
|
+
}
|
|
818
|
+
var v1 = getArrayI32FromWasm0(r0, r1).slice();
|
|
819
|
+
wasm.__wbindgen_export(r0, r1 * 4, 4);
|
|
820
|
+
return v1;
|
|
821
|
+
} finally {
|
|
822
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
/**
|
|
826
|
+
* Native `i8` band. `Int8Array`.
|
|
827
|
+
* @param {number} band
|
|
828
|
+
* @returns {Int8Array}
|
|
829
|
+
*/
|
|
830
|
+
read_band_i8(band) {
|
|
831
|
+
try {
|
|
832
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
833
|
+
wasm.geotiffreader_read_band_i8(retptr, this.__wbg_ptr, band);
|
|
834
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
835
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
836
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
837
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
838
|
+
if (r3) {
|
|
839
|
+
throw takeObject(r2);
|
|
840
|
+
}
|
|
841
|
+
var v1 = getArrayI8FromWasm0(r0, r1).slice();
|
|
842
|
+
wasm.__wbindgen_export(r0, r1 * 1, 1);
|
|
843
|
+
return v1;
|
|
844
|
+
} finally {
|
|
845
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
/**
|
|
849
|
+
* Native `u16` band. `Uint16Array`.
|
|
850
|
+
* @param {number} band
|
|
851
|
+
* @returns {Uint16Array}
|
|
852
|
+
*/
|
|
853
|
+
read_band_u16(band) {
|
|
854
|
+
try {
|
|
855
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
856
|
+
wasm.geotiffreader_read_band_u16(retptr, this.__wbg_ptr, band);
|
|
857
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
858
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
859
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
860
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
861
|
+
if (r3) {
|
|
862
|
+
throw takeObject(r2);
|
|
863
|
+
}
|
|
864
|
+
var v1 = getArrayU16FromWasm0(r0, r1).slice();
|
|
865
|
+
wasm.__wbindgen_export(r0, r1 * 2, 2);
|
|
866
|
+
return v1;
|
|
867
|
+
} finally {
|
|
868
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
/**
|
|
872
|
+
* Native `u32` band. `Uint32Array`.
|
|
873
|
+
* @param {number} band
|
|
874
|
+
* @returns {Uint32Array}
|
|
875
|
+
*/
|
|
876
|
+
read_band_u32(band) {
|
|
877
|
+
try {
|
|
878
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
879
|
+
wasm.geotiffreader_read_band_u32(retptr, this.__wbg_ptr, band);
|
|
880
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
881
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
882
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
883
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
884
|
+
if (r3) {
|
|
885
|
+
throw takeObject(r2);
|
|
886
|
+
}
|
|
887
|
+
var v1 = getArrayU32FromWasm0(r0, r1).slice();
|
|
888
|
+
wasm.__wbindgen_export(r0, r1 * 4, 4);
|
|
889
|
+
return v1;
|
|
890
|
+
} finally {
|
|
891
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
892
|
+
}
|
|
893
|
+
}
|
|
894
|
+
/**
|
|
895
|
+
* Native `u8` band. `Uint8Array`.
|
|
896
|
+
* @param {number} band
|
|
897
|
+
* @returns {Uint8Array}
|
|
898
|
+
*/
|
|
899
|
+
read_band_u8(band) {
|
|
900
|
+
try {
|
|
901
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
902
|
+
wasm.geotiffreader_read_band_u8(retptr, this.__wbg_ptr, band);
|
|
903
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
904
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
905
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
906
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
907
|
+
if (r3) {
|
|
908
|
+
throw takeObject(r2);
|
|
909
|
+
}
|
|
910
|
+
var v1 = getArrayU8FromWasm0(r0, r1).slice();
|
|
911
|
+
wasm.__wbindgen_export(r0, r1 * 1, 1);
|
|
912
|
+
return v1;
|
|
913
|
+
} finally {
|
|
914
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
/**
|
|
918
|
+
* @returns {string}
|
|
919
|
+
*/
|
|
920
|
+
get sample_format() {
|
|
921
|
+
let deferred1_0;
|
|
922
|
+
let deferred1_1;
|
|
923
|
+
try {
|
|
924
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
925
|
+
wasm.geotiffreader_sample_format(retptr, this.__wbg_ptr);
|
|
926
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
927
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
928
|
+
deferred1_0 = r0;
|
|
929
|
+
deferred1_1 = r1;
|
|
930
|
+
return getStringFromWasm0(r0, r1);
|
|
931
|
+
} finally {
|
|
932
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
933
|
+
wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
|
|
934
|
+
}
|
|
935
|
+
}
|
|
936
|
+
/**
|
|
937
|
+
* Band-0 statistics as a JSON string (same shape as [`geotiff_stats`]).
|
|
938
|
+
* @returns {string}
|
|
939
|
+
*/
|
|
940
|
+
stats_json() {
|
|
941
|
+
let deferred1_0;
|
|
942
|
+
let deferred1_1;
|
|
943
|
+
try {
|
|
944
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
945
|
+
wasm.geotiffreader_stats_json(retptr, this.__wbg_ptr);
|
|
946
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
947
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
948
|
+
deferred1_0 = r0;
|
|
949
|
+
deferred1_1 = r1;
|
|
950
|
+
return getStringFromWasm0(r0, r1);
|
|
951
|
+
} finally {
|
|
952
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
953
|
+
wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
/**
|
|
957
|
+
* GDAL value transform as `[scale, offset]` (physical = raw*scale+offset),
|
|
958
|
+
* or empty if none. Apply to `read_*` outputs to get physical values.
|
|
959
|
+
* @returns {Float64Array}
|
|
960
|
+
*/
|
|
961
|
+
value_transform() {
|
|
962
|
+
try {
|
|
963
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
964
|
+
wasm.geotiffreader_value_transform(retptr, this.__wbg_ptr);
|
|
965
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
966
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
967
|
+
var v1 = getArrayF64FromWasm0(r0, r1).slice();
|
|
968
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
969
|
+
return v1;
|
|
970
|
+
} finally {
|
|
971
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
/**
|
|
975
|
+
* @returns {number}
|
|
976
|
+
*/
|
|
977
|
+
get width() {
|
|
978
|
+
const ret = wasm.geotiffreader_width(this.__wbg_ptr);
|
|
979
|
+
return ret >>> 0;
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
if (Symbol.dispose) GeoTiffReader.prototype[Symbol.dispose] = GeoTiffReader.prototype.free;
|
|
983
|
+
|
|
984
|
+
/**
|
|
985
|
+
* Install a panic hook so Rust panics surface as readable `console.error`
|
|
986
|
+
* messages instead of an opaque `RuntimeError: unreachable`.
|
|
987
|
+
*/
|
|
988
|
+
export function __start() {
|
|
989
|
+
wasm.__start();
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
/**
|
|
993
|
+
* Decode only a GeoTIFF's header and return its metadata as JSON. O(header)
|
|
994
|
+
* memory, so it works on multi-gigabyte rasters that whole-image reads cannot
|
|
995
|
+
* fit in WASM's 4 GiB address space.
|
|
996
|
+
*
|
|
997
|
+
* `{"ok":true,"width","height","bands","epsg"|null,"nodata"|null,
|
|
998
|
+
* "bits_per_sample","sample_format","compression","tiled","bigtiff"}`
|
|
6
999
|
* @param {Uint8Array} data
|
|
7
1000
|
* @returns {string}
|
|
8
1001
|
*/
|
|
@@ -11,7 +1004,7 @@ export function geotiff_info(data) {
|
|
|
11
1004
|
let deferred2_1;
|
|
12
1005
|
try {
|
|
13
1006
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
14
|
-
const ptr0 = passArray8ToWasm0(data, wasm.
|
|
1007
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
|
|
15
1008
|
const len0 = WASM_VECTOR_LEN;
|
|
16
1009
|
wasm.geotiff_info(retptr, ptr0, len0);
|
|
17
1010
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
@@ -21,19 +1014,41 @@ export function geotiff_info(data) {
|
|
|
21
1014
|
return getStringFromWasm0(r0, r1);
|
|
22
1015
|
} finally {
|
|
23
1016
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
24
|
-
wasm.
|
|
1017
|
+
wasm.__wbindgen_export(deferred2_0, deferred2_1, 1);
|
|
25
1018
|
}
|
|
26
1019
|
}
|
|
27
1020
|
|
|
28
1021
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
1022
|
+
* Read a single band of pixel values as an `f64` `Float64Array` (any on-disk
|
|
1023
|
+
* sample format is converted), row-major, length `width * height`.
|
|
1024
|
+
* @param {Uint8Array} data
|
|
1025
|
+
* @param {number} band
|
|
1026
|
+
* @returns {Float64Array}
|
|
1027
|
+
*/
|
|
1028
|
+
export function geotiff_read_band_f64(data, band) {
|
|
1029
|
+
try {
|
|
1030
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1031
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
|
|
1032
|
+
const len0 = WASM_VECTOR_LEN;
|
|
1033
|
+
wasm.geotiff_read_band_f64(retptr, ptr0, len0, band);
|
|
1034
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1035
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1036
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1037
|
+
var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
|
|
1038
|
+
if (r3) {
|
|
1039
|
+
throw takeObject(r2);
|
|
1040
|
+
}
|
|
1041
|
+
var v2 = getArrayF64FromWasm0(r0, r1).slice();
|
|
1042
|
+
wasm.__wbindgen_export(r0, r1 * 8, 8);
|
|
1043
|
+
return v2;
|
|
1044
|
+
} finally {
|
|
1045
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* Decode a GeoTIFF and return band-0 summary statistics as JSON:
|
|
1051
|
+
* `{"ok":true,"width","height","bands","epsg","valid","min","max","mean"}`.
|
|
37
1052
|
* @param {Uint8Array} data
|
|
38
1053
|
* @returns {string}
|
|
39
1054
|
*/
|
|
@@ -42,7 +1057,7 @@ export function geotiff_stats(data) {
|
|
|
42
1057
|
let deferred2_1;
|
|
43
1058
|
try {
|
|
44
1059
|
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
45
|
-
const ptr0 = passArray8ToWasm0(data, wasm.
|
|
1060
|
+
const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export2);
|
|
46
1061
|
const len0 = WASM_VECTOR_LEN;
|
|
47
1062
|
wasm.geotiff_stats(retptr, ptr0, len0);
|
|
48
1063
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
@@ -52,7 +1067,7 @@ export function geotiff_stats(data) {
|
|
|
52
1067
|
return getStringFromWasm0(r0, r1);
|
|
53
1068
|
} finally {
|
|
54
1069
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
55
|
-
wasm.
|
|
1070
|
+
wasm.__wbindgen_export(deferred2_0, deferred2_1, 1);
|
|
56
1071
|
}
|
|
57
1072
|
}
|
|
58
1073
|
|
|
@@ -73,12 +1088,45 @@ export function version() {
|
|
|
73
1088
|
return getStringFromWasm0(r0, r1);
|
|
74
1089
|
} finally {
|
|
75
1090
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
76
|
-
wasm.
|
|
1091
|
+
wasm.__wbindgen_export(deferred1_0, deferred1_1, 1);
|
|
77
1092
|
}
|
|
78
1093
|
}
|
|
79
1094
|
function __wbg_get_imports() {
|
|
80
1095
|
const import0 = {
|
|
81
1096
|
__proto__: null,
|
|
1097
|
+
__wbg___wbindgen_throw_ea4887a5f8f9a9db: function(arg0, arg1) {
|
|
1098
|
+
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
1099
|
+
},
|
|
1100
|
+
__wbg_error_a6fa202b58aa1cd3: function(arg0, arg1) {
|
|
1101
|
+
let deferred0_0;
|
|
1102
|
+
let deferred0_1;
|
|
1103
|
+
try {
|
|
1104
|
+
deferred0_0 = arg0;
|
|
1105
|
+
deferred0_1 = arg1;
|
|
1106
|
+
console.error(getStringFromWasm0(arg0, arg1));
|
|
1107
|
+
} finally {
|
|
1108
|
+
wasm.__wbindgen_export(deferred0_0, deferred0_1, 1);
|
|
1109
|
+
}
|
|
1110
|
+
},
|
|
1111
|
+
__wbg_new_227d7c05414eb861: function() {
|
|
1112
|
+
const ret = new Error();
|
|
1113
|
+
return addHeapObject(ret);
|
|
1114
|
+
},
|
|
1115
|
+
__wbg_stack_3b0d974bbf31e44f: function(arg0, arg1) {
|
|
1116
|
+
const ret = getObject(arg1).stack;
|
|
1117
|
+
const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export2, wasm.__wbindgen_export3);
|
|
1118
|
+
const len1 = WASM_VECTOR_LEN;
|
|
1119
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
1120
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
1121
|
+
},
|
|
1122
|
+
__wbindgen_cast_0000000000000001: function(arg0, arg1) {
|
|
1123
|
+
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
1124
|
+
const ret = getStringFromWasm0(arg0, arg1);
|
|
1125
|
+
return addHeapObject(ret);
|
|
1126
|
+
},
|
|
1127
|
+
__wbindgen_object_drop_ref: function(arg0) {
|
|
1128
|
+
takeObject(arg0);
|
|
1129
|
+
},
|
|
82
1130
|
};
|
|
83
1131
|
return {
|
|
84
1132
|
__proto__: null,
|
|
@@ -86,6 +1134,71 @@ function __wbg_get_imports() {
|
|
|
86
1134
|
};
|
|
87
1135
|
}
|
|
88
1136
|
|
|
1137
|
+
const CogBuilderFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
1138
|
+
? { register: () => {}, unregister: () => {} }
|
|
1139
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_cogbuilder_free(ptr, 1));
|
|
1140
|
+
const CogStreamFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
1141
|
+
? { register: () => {}, unregister: () => {} }
|
|
1142
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_cogstream_free(ptr, 1));
|
|
1143
|
+
const GeoTiffReaderFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
1144
|
+
? { register: () => {}, unregister: () => {} }
|
|
1145
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_geotiffreader_free(ptr, 1));
|
|
1146
|
+
|
|
1147
|
+
function addHeapObject(obj) {
|
|
1148
|
+
if (heap_next === heap.length) heap.push(heap.length + 1);
|
|
1149
|
+
const idx = heap_next;
|
|
1150
|
+
heap_next = heap[idx];
|
|
1151
|
+
|
|
1152
|
+
heap[idx] = obj;
|
|
1153
|
+
return idx;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
function dropObject(idx) {
|
|
1157
|
+
if (idx < 1028) return;
|
|
1158
|
+
heap[idx] = heap_next;
|
|
1159
|
+
heap_next = idx;
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
function getArrayF32FromWasm0(ptr, len) {
|
|
1163
|
+
ptr = ptr >>> 0;
|
|
1164
|
+
return getFloat32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
1165
|
+
}
|
|
1166
|
+
|
|
1167
|
+
function getArrayF64FromWasm0(ptr, len) {
|
|
1168
|
+
ptr = ptr >>> 0;
|
|
1169
|
+
return getFloat64ArrayMemory0().subarray(ptr / 8, ptr / 8 + len);
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
function getArrayI16FromWasm0(ptr, len) {
|
|
1173
|
+
ptr = ptr >>> 0;
|
|
1174
|
+
return getInt16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1177
|
+
function getArrayI32FromWasm0(ptr, len) {
|
|
1178
|
+
ptr = ptr >>> 0;
|
|
1179
|
+
return getInt32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
1180
|
+
}
|
|
1181
|
+
|
|
1182
|
+
function getArrayI8FromWasm0(ptr, len) {
|
|
1183
|
+
ptr = ptr >>> 0;
|
|
1184
|
+
return getInt8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
function getArrayU16FromWasm0(ptr, len) {
|
|
1188
|
+
ptr = ptr >>> 0;
|
|
1189
|
+
return getUint16ArrayMemory0().subarray(ptr / 2, ptr / 2 + len);
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
function getArrayU32FromWasm0(ptr, len) {
|
|
1193
|
+
ptr = ptr >>> 0;
|
|
1194
|
+
return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len);
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1197
|
+
function getArrayU8FromWasm0(ptr, len) {
|
|
1198
|
+
ptr = ptr >>> 0;
|
|
1199
|
+
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
|
1200
|
+
}
|
|
1201
|
+
|
|
89
1202
|
let cachedDataViewMemory0 = null;
|
|
90
1203
|
function getDataViewMemory0() {
|
|
91
1204
|
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
|
|
@@ -94,10 +1207,66 @@ function getDataViewMemory0() {
|
|
|
94
1207
|
return cachedDataViewMemory0;
|
|
95
1208
|
}
|
|
96
1209
|
|
|
1210
|
+
let cachedFloat32ArrayMemory0 = null;
|
|
1211
|
+
function getFloat32ArrayMemory0() {
|
|
1212
|
+
if (cachedFloat32ArrayMemory0 === null || cachedFloat32ArrayMemory0.byteLength === 0) {
|
|
1213
|
+
cachedFloat32ArrayMemory0 = new Float32Array(wasm.memory.buffer);
|
|
1214
|
+
}
|
|
1215
|
+
return cachedFloat32ArrayMemory0;
|
|
1216
|
+
}
|
|
1217
|
+
|
|
1218
|
+
let cachedFloat64ArrayMemory0 = null;
|
|
1219
|
+
function getFloat64ArrayMemory0() {
|
|
1220
|
+
if (cachedFloat64ArrayMemory0 === null || cachedFloat64ArrayMemory0.byteLength === 0) {
|
|
1221
|
+
cachedFloat64ArrayMemory0 = new Float64Array(wasm.memory.buffer);
|
|
1222
|
+
}
|
|
1223
|
+
return cachedFloat64ArrayMemory0;
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
let cachedInt16ArrayMemory0 = null;
|
|
1227
|
+
function getInt16ArrayMemory0() {
|
|
1228
|
+
if (cachedInt16ArrayMemory0 === null || cachedInt16ArrayMemory0.byteLength === 0) {
|
|
1229
|
+
cachedInt16ArrayMemory0 = new Int16Array(wasm.memory.buffer);
|
|
1230
|
+
}
|
|
1231
|
+
return cachedInt16ArrayMemory0;
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
let cachedInt32ArrayMemory0 = null;
|
|
1235
|
+
function getInt32ArrayMemory0() {
|
|
1236
|
+
if (cachedInt32ArrayMemory0 === null || cachedInt32ArrayMemory0.byteLength === 0) {
|
|
1237
|
+
cachedInt32ArrayMemory0 = new Int32Array(wasm.memory.buffer);
|
|
1238
|
+
}
|
|
1239
|
+
return cachedInt32ArrayMemory0;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
let cachedInt8ArrayMemory0 = null;
|
|
1243
|
+
function getInt8ArrayMemory0() {
|
|
1244
|
+
if (cachedInt8ArrayMemory0 === null || cachedInt8ArrayMemory0.byteLength === 0) {
|
|
1245
|
+
cachedInt8ArrayMemory0 = new Int8Array(wasm.memory.buffer);
|
|
1246
|
+
}
|
|
1247
|
+
return cachedInt8ArrayMemory0;
|
|
1248
|
+
}
|
|
1249
|
+
|
|
97
1250
|
function getStringFromWasm0(ptr, len) {
|
|
98
1251
|
return decodeText(ptr >>> 0, len);
|
|
99
1252
|
}
|
|
100
1253
|
|
|
1254
|
+
let cachedUint16ArrayMemory0 = null;
|
|
1255
|
+
function getUint16ArrayMemory0() {
|
|
1256
|
+
if (cachedUint16ArrayMemory0 === null || cachedUint16ArrayMemory0.byteLength === 0) {
|
|
1257
|
+
cachedUint16ArrayMemory0 = new Uint16Array(wasm.memory.buffer);
|
|
1258
|
+
}
|
|
1259
|
+
return cachedUint16ArrayMemory0;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
let cachedUint32ArrayMemory0 = null;
|
|
1263
|
+
function getUint32ArrayMemory0() {
|
|
1264
|
+
if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
|
|
1265
|
+
cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
|
|
1266
|
+
}
|
|
1267
|
+
return cachedUint32ArrayMemory0;
|
|
1268
|
+
}
|
|
1269
|
+
|
|
101
1270
|
let cachedUint8ArrayMemory0 = null;
|
|
102
1271
|
function getUint8ArrayMemory0() {
|
|
103
1272
|
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
@@ -106,6 +1275,20 @@ function getUint8ArrayMemory0() {
|
|
|
106
1275
|
return cachedUint8ArrayMemory0;
|
|
107
1276
|
}
|
|
108
1277
|
|
|
1278
|
+
function getObject(idx) { return heap[idx]; }
|
|
1279
|
+
|
|
1280
|
+
let heap = new Array(1024).fill(undefined);
|
|
1281
|
+
heap.push(undefined, null, true, false);
|
|
1282
|
+
|
|
1283
|
+
let heap_next = heap.length;
|
|
1284
|
+
|
|
1285
|
+
function passArray32ToWasm0(arg, malloc) {
|
|
1286
|
+
const ptr = malloc(arg.length * 4, 4) >>> 0;
|
|
1287
|
+
getUint32ArrayMemory0().set(arg, ptr / 4);
|
|
1288
|
+
WASM_VECTOR_LEN = arg.length;
|
|
1289
|
+
return ptr;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
109
1292
|
function passArray8ToWasm0(arg, malloc) {
|
|
110
1293
|
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
|
111
1294
|
getUint8ArrayMemory0().set(arg, ptr / 1);
|
|
@@ -113,6 +1296,63 @@ function passArray8ToWasm0(arg, malloc) {
|
|
|
113
1296
|
return ptr;
|
|
114
1297
|
}
|
|
115
1298
|
|
|
1299
|
+
function passArrayF32ToWasm0(arg, malloc) {
|
|
1300
|
+
const ptr = malloc(arg.length * 4, 4) >>> 0;
|
|
1301
|
+
getFloat32ArrayMemory0().set(arg, ptr / 4);
|
|
1302
|
+
WASM_VECTOR_LEN = arg.length;
|
|
1303
|
+
return ptr;
|
|
1304
|
+
}
|
|
1305
|
+
|
|
1306
|
+
function passArrayF64ToWasm0(arg, malloc) {
|
|
1307
|
+
const ptr = malloc(arg.length * 8, 8) >>> 0;
|
|
1308
|
+
getFloat64ArrayMemory0().set(arg, ptr / 8);
|
|
1309
|
+
WASM_VECTOR_LEN = arg.length;
|
|
1310
|
+
return ptr;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
function passStringToWasm0(arg, malloc, realloc) {
|
|
1314
|
+
if (realloc === undefined) {
|
|
1315
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
1316
|
+
const ptr = malloc(buf.length, 1) >>> 0;
|
|
1317
|
+
getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
|
|
1318
|
+
WASM_VECTOR_LEN = buf.length;
|
|
1319
|
+
return ptr;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1322
|
+
let len = arg.length;
|
|
1323
|
+
let ptr = malloc(len, 1) >>> 0;
|
|
1324
|
+
|
|
1325
|
+
const mem = getUint8ArrayMemory0();
|
|
1326
|
+
|
|
1327
|
+
let offset = 0;
|
|
1328
|
+
|
|
1329
|
+
for (; offset < len; offset++) {
|
|
1330
|
+
const code = arg.charCodeAt(offset);
|
|
1331
|
+
if (code > 0x7F) break;
|
|
1332
|
+
mem[ptr + offset] = code;
|
|
1333
|
+
}
|
|
1334
|
+
if (offset !== len) {
|
|
1335
|
+
if (offset !== 0) {
|
|
1336
|
+
arg = arg.slice(offset);
|
|
1337
|
+
}
|
|
1338
|
+
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
|
|
1339
|
+
const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
|
|
1340
|
+
const ret = cachedTextEncoder.encodeInto(arg, view);
|
|
1341
|
+
|
|
1342
|
+
offset += ret.written;
|
|
1343
|
+
ptr = realloc(ptr, len, offset, 1) >>> 0;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
WASM_VECTOR_LEN = offset;
|
|
1347
|
+
return ptr;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
function takeObject(idx) {
|
|
1351
|
+
const ret = getObject(idx);
|
|
1352
|
+
dropObject(idx);
|
|
1353
|
+
return ret;
|
|
1354
|
+
}
|
|
1355
|
+
|
|
116
1356
|
let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
|
117
1357
|
cachedTextDecoder.decode();
|
|
118
1358
|
const MAX_SAFARI_DECODE_BYTES = 2146435072;
|
|
@@ -127,6 +1367,19 @@ function decodeText(ptr, len) {
|
|
|
127
1367
|
return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
|
|
128
1368
|
}
|
|
129
1369
|
|
|
1370
|
+
const cachedTextEncoder = new TextEncoder();
|
|
1371
|
+
|
|
1372
|
+
if (!('encodeInto' in cachedTextEncoder)) {
|
|
1373
|
+
cachedTextEncoder.encodeInto = function (arg, view) {
|
|
1374
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
1375
|
+
view.set(buf);
|
|
1376
|
+
return {
|
|
1377
|
+
read: arg.length,
|
|
1378
|
+
written: buf.length
|
|
1379
|
+
};
|
|
1380
|
+
};
|
|
1381
|
+
}
|
|
1382
|
+
|
|
130
1383
|
let WASM_VECTOR_LEN = 0;
|
|
131
1384
|
|
|
132
1385
|
let wasmModule, wasmInstance, wasm;
|
|
@@ -135,7 +1388,15 @@ function __wbg_finalize_init(instance, module) {
|
|
|
135
1388
|
wasm = instance.exports;
|
|
136
1389
|
wasmModule = module;
|
|
137
1390
|
cachedDataViewMemory0 = null;
|
|
1391
|
+
cachedFloat32ArrayMemory0 = null;
|
|
1392
|
+
cachedFloat64ArrayMemory0 = null;
|
|
1393
|
+
cachedInt16ArrayMemory0 = null;
|
|
1394
|
+
cachedInt32ArrayMemory0 = null;
|
|
1395
|
+
cachedInt8ArrayMemory0 = null;
|
|
1396
|
+
cachedUint16ArrayMemory0 = null;
|
|
1397
|
+
cachedUint32ArrayMemory0 = null;
|
|
138
1398
|
cachedUint8ArrayMemory0 = null;
|
|
1399
|
+
wasm.__wbindgen_start();
|
|
139
1400
|
return wasm;
|
|
140
1401
|
}
|
|
141
1402
|
|