@math.gl/geometry-utils 4.2.0-alpha.5

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.
Files changed (60) hide show
  1. package/LICENSE +140 -0
  2. package/README.md +8 -0
  3. package/dist/attribute-compression.d.ts +50 -0
  4. package/dist/attribute-compression.d.ts.map +1 -0
  5. package/dist/attribute-compression.js +184 -0
  6. package/dist/attribute-compression.js.map +1 -0
  7. package/dist/attribute-iterator.d.ts +8 -0
  8. package/dist/attribute-iterator.d.ts.map +1 -0
  9. package/dist/attribute-iterator.js +25 -0
  10. package/dist/attribute-iterator.js.map +1 -0
  11. package/dist/compute-vertex-normals.d.ts +4 -0
  12. package/dist/compute-vertex-normals.d.ts.map +1 -0
  13. package/dist/compute-vertex-normals.js +54 -0
  14. package/dist/compute-vertex-normals.js.map +1 -0
  15. package/dist/constants.d.ts +52 -0
  16. package/dist/constants.d.ts.map +1 -0
  17. package/dist/constants.js +39 -0
  18. package/dist/constants.js.map +1 -0
  19. package/dist/coordinates.d.ts +3 -0
  20. package/dist/coordinates.d.ts.map +1 -0
  21. package/dist/coordinates.js +8 -0
  22. package/dist/coordinates.js.map +1 -0
  23. package/dist/geometry.d.ts +20 -0
  24. package/dist/geometry.d.ts.map +1 -0
  25. package/dist/geometry.js +31 -0
  26. package/dist/geometry.js.map +1 -0
  27. package/dist/gl-type.d.ts +17 -0
  28. package/dist/gl-type.d.ts.map +1 -0
  29. package/dist/gl-type.js +69 -0
  30. package/dist/gl-type.js.map +1 -0
  31. package/dist/index.cjs +535 -0
  32. package/dist/index.cjs.map +6 -0
  33. package/dist/index.d.ts +14 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +14 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/primitive-iterator.d.ts +21 -0
  38. package/dist/primitive-iterator.d.ts.map +1 -0
  39. package/dist/primitive-iterator.js +117 -0
  40. package/dist/primitive-iterator.js.map +1 -0
  41. package/dist/rgb565.d.ts +5 -0
  42. package/dist/rgb565.d.ts.map +1 -0
  43. package/dist/rgb565.js +24 -0
  44. package/dist/rgb565.js.map +1 -0
  45. package/dist/typed-array-utils.d.ts +3 -0
  46. package/dist/typed-array-utils.d.ts.map +1 -0
  47. package/dist/typed-array-utils.js +16 -0
  48. package/dist/typed-array-utils.js.map +1 -0
  49. package/package.json +40 -0
  50. package/src/attribute-compression.ts +232 -0
  51. package/src/attribute-iterator.ts +28 -0
  52. package/src/compute-vertex-normals.ts +63 -0
  53. package/src/constants.ts +42 -0
  54. package/src/coordinates.ts +8 -0
  55. package/src/geometry.ts +49 -0
  56. package/src/gl-type.ts +87 -0
  57. package/src/index.ts +38 -0
  58. package/src/primitive-iterator.ts +145 -0
  59. package/src/rgb565.ts +26 -0
  60. package/src/typed-array-utils.ts +16 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,535 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // dist/index.js
20
+ var index_exports = {};
21
+ __export(index_exports, {
22
+ GL: () => GL,
23
+ GLType: () => GLType,
24
+ GL_PRIMITIVE: () => GL_PRIMITIVE,
25
+ GL_PRIMITIVE_MODE: () => GL_PRIMITIVE_MODE,
26
+ GL_TYPE: () => GL_TYPE,
27
+ compressTextureCoordinates: () => compressTextureCoordinates,
28
+ computeVertexNormals: () => computeVertexNormals,
29
+ concatTypedArrays: () => concatTypedArrays,
30
+ decodeRGB565: () => decodeRGB565,
31
+ decompressTextureCoordinates: () => decompressTextureCoordinates,
32
+ emod: () => emod,
33
+ encodeRGB565: () => encodeRGB565,
34
+ isGeometry: () => isGeometry,
35
+ makeAttributeIterator: () => makeAttributeIterator,
36
+ makePrimitiveIterator: () => makePrimitiveIterator,
37
+ octDecode: () => octDecode,
38
+ octDecodeFloat: () => octDecodeFloat,
39
+ octDecodeFromVector4: () => octDecodeFromVector4,
40
+ octDecodeInRange: () => octDecodeInRange,
41
+ octEncode: () => octEncode,
42
+ octEncodeFloat: () => octEncodeFloat,
43
+ octEncodeInRange: () => octEncodeInRange,
44
+ octEncodeToVector4: () => octEncodeToVector4,
45
+ octPack: () => octPack,
46
+ octPackFloat: () => octPackFloat,
47
+ octUnpack: () => octUnpack,
48
+ zigZagDeltaDecode: () => zigZagDeltaDecode
49
+ });
50
+ module.exports = __toCommonJS(index_exports);
51
+
52
+ // dist/constants.js
53
+ var GL_PRIMITIVE = {
54
+ POINTS: 0,
55
+ LINES: 1,
56
+ TRIANGLES: 4
57
+ };
58
+ var GL_PRIMITIVE_MODE = {
59
+ POINTS: 0,
60
+ LINES: 1,
61
+ LINE_LOOP: 2,
62
+ LINE_STRIP: 3,
63
+ TRIANGLES: 4,
64
+ TRIANGLE_STRIP: 5,
65
+ TRIANGLE_FAN: 6
66
+ };
67
+ var GL_TYPE = {
68
+ BYTE: 5120,
69
+ UNSIGNED_BYTE: 5121,
70
+ SHORT: 5122,
71
+ UNSIGNED_SHORT: 5123,
72
+ INT: 5124,
73
+ UNSIGNED_INT: 5125,
74
+ FLOAT: 5126,
75
+ DOUBLE: 5130,
76
+ UNSIGNED_SHORT_4_4_4_4: 32819,
77
+ UNSIGNED_SHORT_5_5_5_1: 32820,
78
+ UNSIGNED_SHORT_5_6_5: 33635
79
+ };
80
+ var GL = {
81
+ ...GL_PRIMITIVE_MODE,
82
+ ...GL_TYPE
83
+ };
84
+
85
+ // dist/gl-type.js
86
+ var GL_TYPE_TO_ARRAY_TYPE = {
87
+ [GL_TYPE.DOUBLE]: Float64Array,
88
+ [GL_TYPE.FLOAT]: Float32Array,
89
+ [GL_TYPE.UNSIGNED_SHORT]: Uint16Array,
90
+ [GL_TYPE.UNSIGNED_INT]: Uint32Array,
91
+ [GL_TYPE.UNSIGNED_BYTE]: Uint8Array,
92
+ [GL_TYPE.BYTE]: Int8Array,
93
+ [GL_TYPE.SHORT]: Int16Array,
94
+ [GL_TYPE.INT]: Int32Array,
95
+ [GL_TYPE.UNSIGNED_SHORT_4_4_4_4]: Uint16Array,
96
+ [GL_TYPE.UNSIGNED_SHORT_5_5_5_1]: Uint16Array,
97
+ [GL_TYPE.UNSIGNED_SHORT_5_6_5]: Uint16Array
98
+ };
99
+ var NAME_TO_GL_TYPE = Object.fromEntries(Object.entries(GL_TYPE).map(([name, glType]) => [name, glType]));
100
+ var TYPE_CONVERSION_ERROR = "Failed to convert GL type";
101
+ var GLType = class _GLType {
102
+ /** Returns the WebGL component constant for a typed array or typed-array constructor. */
103
+ static fromTypedArray(arrayOrType) {
104
+ const arrayType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
105
+ if (arrayType === Uint8ClampedArray) {
106
+ return GL_TYPE.UNSIGNED_BYTE;
107
+ }
108
+ for (const [glType, candidateArrayType] of Object.entries(GL_TYPE_TO_ARRAY_TYPE)) {
109
+ if (candidateArrayType === arrayType) {
110
+ return Number(glType);
111
+ }
112
+ }
113
+ throw new Error(TYPE_CONVERSION_ERROR);
114
+ }
115
+ /** Returns a WebGL component constant from its uppercase name. */
116
+ static fromName(name) {
117
+ const glType = NAME_TO_GL_TYPE[name];
118
+ if (glType === void 0) {
119
+ throw new Error(TYPE_CONVERSION_ERROR);
120
+ }
121
+ return glType;
122
+ }
123
+ /** Returns the typed-array constructor for a WebGL component constant. */
124
+ static getArrayType(glType) {
125
+ const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];
126
+ if (!ArrayType) {
127
+ throw new Error(TYPE_CONVERSION_ERROR);
128
+ }
129
+ return ArrayType;
130
+ }
131
+ /** Returns the size in bytes of one element of a WebGL component type. */
132
+ static getByteSize(glType) {
133
+ return _GLType.getArrayType(glType).BYTES_PER_ELEMENT;
134
+ }
135
+ /** Returns whether a value is a supported WebGL component type. */
136
+ static validate(glType) {
137
+ return Boolean(GL_TYPE_TO_ARRAY_TYPE[glType]);
138
+ }
139
+ /** Creates a typed view over an ArrayBuffer or an existing ArrayBuffer view. */
140
+ static createTypedArray(glType, buffer, byteOffset = 0, length) {
141
+ const ArrayType = _GLType.getArrayType(glType);
142
+ const arrayBuffer = ArrayBuffer.isView(buffer) ? buffer.buffer : buffer;
143
+ const viewByteOffset = ArrayBuffer.isView(buffer) ? buffer.byteOffset : 0;
144
+ const resolvedByteOffset = viewByteOffset + byteOffset;
145
+ const resolvedLength = length ?? Math.floor((buffer.byteLength - byteOffset) / ArrayType.BYTES_PER_ELEMENT);
146
+ return new ArrayType(arrayBuffer, resolvedByteOffset, resolvedLength);
147
+ }
148
+ };
149
+
150
+ // dist/geometry.js
151
+ function isGeometry(value) {
152
+ if (!value || typeof value !== "object") {
153
+ return false;
154
+ }
155
+ const geometry = value;
156
+ return typeof geometry.mode === "number" && Boolean(geometry.attributes);
157
+ }
158
+ function getAttributeValues(attribute) {
159
+ if (ArrayBuffer.isView(attribute)) {
160
+ return attribute;
161
+ }
162
+ const values = attribute.value || attribute.values;
163
+ if (!values) {
164
+ throw new Error("Geometry attribute does not contain typed-array values");
165
+ }
166
+ return values;
167
+ }
168
+ function getPositionAttribute(geometry) {
169
+ const position = geometry.attributes["POSITION"] || geometry.attributes["positions"];
170
+ if (!position) {
171
+ throw new Error("Geometry does not contain a position attribute");
172
+ }
173
+ return position;
174
+ }
175
+
176
+ // dist/attribute-iterator.js
177
+ function* makeAttributeIterator(values, size) {
178
+ if (!Number.isInteger(size) || size <= 0) {
179
+ throw new Error("Attribute size must be a positive integer");
180
+ }
181
+ if (values.length % size !== 0) {
182
+ throw new Error("Attribute length must be divisible by its size");
183
+ }
184
+ const ArrayType = values.constructor;
185
+ const element = new ArrayType(size);
186
+ for (let index = 0; index < values.length; index += size) {
187
+ for (let componentIndex = 0; componentIndex < size; componentIndex++) {
188
+ element[componentIndex] = values[index + componentIndex];
189
+ }
190
+ yield element;
191
+ }
192
+ }
193
+
194
+ // dist/primitive-iterator.js
195
+ function* makePrimitiveIterator(geometryOrIndices, attributes = {}, mode, start = 0, end) {
196
+ let indices;
197
+ if (isGeometry(geometryOrIndices)) {
198
+ const geometry = geometryOrIndices;
199
+ indices = geometry.indices ? getAttributeValues(geometry.indices) : void 0;
200
+ attributes = geometry.attributes;
201
+ mode = geometry.mode;
202
+ if (end === void 0) {
203
+ const position = getPositionAttribute(geometry);
204
+ end = (indices == null ? void 0 : indices.length) ?? getAttributeValues(position).length / (position.size || 3);
205
+ }
206
+ } else if (geometryOrIndices) {
207
+ indices = getAttributeValues(geometryOrIndices);
208
+ }
209
+ if (mode === void 0) {
210
+ throw new Error("Primitive mode is required");
211
+ }
212
+ end ?? (end = (indices == null ? void 0 : indices.length) ?? start);
213
+ const dereference = (index) => Number(indices ? indices[index] : index);
214
+ let primitiveIndex = 0;
215
+ switch (mode) {
216
+ case GL.POINTS:
217
+ for (let index = start; index < end; index++) {
218
+ yield {
219
+ attributes,
220
+ type: GL.POINTS,
221
+ i1: dereference(index),
222
+ primitiveIndex: primitiveIndex++
223
+ };
224
+ }
225
+ return;
226
+ case GL.LINES:
227
+ for (let index = start; index + 1 < end; index += 2) {
228
+ yield {
229
+ attributes,
230
+ type: GL.LINES,
231
+ i1: dereference(index),
232
+ i2: dereference(index + 1),
233
+ primitiveIndex: primitiveIndex++
234
+ };
235
+ }
236
+ return;
237
+ case GL.LINE_STRIP:
238
+ for (let index = start; index + 1 < end; index++) {
239
+ yield {
240
+ attributes,
241
+ type: GL.LINES,
242
+ i1: dereference(index),
243
+ i2: dereference(index + 1),
244
+ primitiveIndex: primitiveIndex++
245
+ };
246
+ }
247
+ return;
248
+ case GL.LINE_LOOP:
249
+ for (let index = start; index < end; index++) {
250
+ yield {
251
+ attributes,
252
+ type: GL.LINES,
253
+ i1: dereference(index),
254
+ i2: dereference(index + 1 < end ? index + 1 : start),
255
+ primitiveIndex: primitiveIndex++
256
+ };
257
+ }
258
+ return;
259
+ case GL.TRIANGLES:
260
+ for (let index = start; index + 2 < end; index += 3) {
261
+ yield {
262
+ attributes,
263
+ type: GL.TRIANGLES,
264
+ i1: dereference(index),
265
+ i2: dereference(index + 1),
266
+ i3: dereference(index + 2),
267
+ primitiveIndex: primitiveIndex++
268
+ };
269
+ }
270
+ return;
271
+ case GL.TRIANGLE_STRIP:
272
+ for (let index = start; index + 2 < end; index++) {
273
+ const odd = (index - start) % 2 === 1;
274
+ yield {
275
+ attributes,
276
+ type: GL.TRIANGLES,
277
+ i1: dereference(odd ? index + 1 : index),
278
+ i2: dereference(odd ? index : index + 1),
279
+ i3: dereference(index + 2),
280
+ primitiveIndex: primitiveIndex++
281
+ };
282
+ }
283
+ return;
284
+ case GL.TRIANGLE_FAN:
285
+ for (let index = start + 1; index + 1 < end; index++) {
286
+ yield {
287
+ attributes,
288
+ type: GL.TRIANGLES,
289
+ i1: dereference(start),
290
+ i2: dereference(index),
291
+ i3: dereference(index + 1),
292
+ primitiveIndex: primitiveIndex++
293
+ };
294
+ }
295
+ return;
296
+ default:
297
+ throw new Error(`Unknown primitive mode ${mode}`);
298
+ }
299
+ }
300
+
301
+ // dist/compute-vertex-normals.js
302
+ var import_core = require("@math.gl/core");
303
+ function computeVertexNormals(geometry) {
304
+ if (geometry.mode !== GL.TRIANGLES && geometry.mode !== GL.TRIANGLE_STRIP && geometry.mode !== GL.TRIANGLE_FAN) {
305
+ throw new Error("Triangle geometry is required");
306
+ }
307
+ const position = getPositionAttribute(geometry);
308
+ const positions = getAttributeValues(position);
309
+ const positionSize = position.size || 3;
310
+ if (positionSize < 3) {
311
+ throw new Error("Position attributes must have at least three components");
312
+ }
313
+ const vertexCount = positions.length / positionSize;
314
+ const normals = new Float32Array(vertexCount * 3);
315
+ const vectorA = new import_core.Vector3();
316
+ const vectorB = new import_core.Vector3();
317
+ const vectorC = new import_core.Vector3();
318
+ const edgeCB = new import_core.Vector3();
319
+ const edgeAB = new import_core.Vector3();
320
+ for (const primitive of makePrimitiveIterator(geometry)) {
321
+ const { i1, i2, i3 } = primitive;
322
+ if (i2 === void 0 || i3 === void 0) {
323
+ continue;
324
+ }
325
+ vectorA.fromArray(positions, i1 * positionSize);
326
+ vectorB.fromArray(positions, i2 * positionSize);
327
+ vectorC.fromArray(positions, i3 * positionSize);
328
+ const faceNormal = edgeCB.subVectors(vectorC, vectorB).cross(edgeAB.subVectors(vectorA, vectorB));
329
+ for (const vertexIndex of [i1, i2, i3]) {
330
+ normals[vertexIndex * 3] += faceNormal.x;
331
+ normals[vertexIndex * 3 + 1] += faceNormal.y;
332
+ normals[vertexIndex * 3 + 2] += faceNormal.z;
333
+ }
334
+ }
335
+ const normal = new import_core.Vector3();
336
+ for (let vertexIndex = 0; vertexIndex < vertexCount; vertexIndex++) {
337
+ normal.fromArray(normals, vertexIndex * 3);
338
+ if (normal.magnitudeSquared() > 0) {
339
+ normal.normalize().toArray(normals, vertexIndex * 3);
340
+ }
341
+ }
342
+ return normals;
343
+ }
344
+
345
+ // dist/rgb565.js
346
+ function decodeRGB565(rgb565, target = [0, 0, 0]) {
347
+ const red = rgb565 >> 11 & 31;
348
+ const green = rgb565 >> 5 & 63;
349
+ const blue = rgb565 & 31;
350
+ target[0] = red << 3 | red >> 2;
351
+ target[1] = green << 2 | green >> 4;
352
+ target[2] = blue << 3 | blue >> 2;
353
+ return target;
354
+ }
355
+ function encodeRGB565(rgb) {
356
+ const red = Math.round(clampByte(rgb[0] ?? 0) * (31 / 255));
357
+ const green = Math.round(clampByte(rgb[1] ?? 0) * (63 / 255));
358
+ const blue = Math.round(clampByte(rgb[2] ?? 0) * (31 / 255));
359
+ return red << 11 | green << 5 | blue;
360
+ }
361
+ function clampByte(value) {
362
+ return Math.max(0, Math.min(255, value));
363
+ }
364
+
365
+ // dist/typed-array-utils.js
366
+ function concatTypedArrays(arrays = []) {
367
+ const byteLength = arrays.reduce((length, array) => length + array.byteLength, 0);
368
+ const result = new Uint8Array(byteLength);
369
+ let byteOffset = 0;
370
+ for (const array of arrays) {
371
+ const bytes = new Uint8Array(array.buffer, array.byteOffset, array.byteLength);
372
+ result.set(bytes, byteOffset);
373
+ byteOffset += bytes.byteLength;
374
+ }
375
+ return result;
376
+ }
377
+
378
+ // dist/attribute-compression.js
379
+ var import_core2 = require("@math.gl/core");
380
+ var RIGHT_SHIFT = 1 / 256;
381
+ var LEFT_SHIFT = 256;
382
+ var scratchVector2 = new import_core2.Vector2();
383
+ var scratchVector3 = new import_core2.Vector3();
384
+ var scratchEncodeVector2 = new import_core2.Vector2();
385
+ var octEncodeScratch = new import_core2.Vector2();
386
+ var uint8ForceArray = new Uint8Array(1);
387
+ function forceUint8(value) {
388
+ uint8ForceArray[0] = value;
389
+ return uint8ForceArray[0];
390
+ }
391
+ function fromSNorm(value, rangeMaximum = 255) {
392
+ return (0, import_core2.clamp)(value, 0, rangeMaximum) / rangeMaximum * 2 - 1;
393
+ }
394
+ function toSNorm(value, rangeMaximum = 255) {
395
+ return Math.round(((0, import_core2.clamp)(value, -1, 1) * 0.5 + 0.5) * rangeMaximum);
396
+ }
397
+ function signNotZero(value) {
398
+ return value < 0 ? -1 : 1;
399
+ }
400
+ function octEncodeInRange(vector, rangeMaximum, result) {
401
+ (0, import_core2.assert)(vector);
402
+ (0, import_core2.assert)(result);
403
+ scratchVector3.from(vector);
404
+ (0, import_core2.assert)(Math.abs(scratchVector3.magnitudeSquared() - 1) <= import_core2._MathUtils.EPSILON6);
405
+ const denominator = Math.abs(vector.x) + Math.abs(vector.y) + Math.abs(vector.z);
406
+ result.x = vector.x / denominator;
407
+ result.y = vector.y / denominator;
408
+ if (vector.z < 0) {
409
+ const x = result.x;
410
+ const y = result.y;
411
+ result.x = (1 - Math.abs(y)) * signNotZero(x);
412
+ result.y = (1 - Math.abs(x)) * signNotZero(y);
413
+ }
414
+ result.x = toSNorm(result.x, rangeMaximum);
415
+ result.y = toSNorm(result.y, rangeMaximum);
416
+ return result;
417
+ }
418
+ function octEncode(vector, result) {
419
+ return octEncodeInRange(vector, 255, result);
420
+ }
421
+ function octEncodeToVector4(vector, result) {
422
+ octEncodeInRange(vector, 65535, octEncodeScratch);
423
+ result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT);
424
+ result.y = forceUint8(octEncodeScratch.x);
425
+ result.z = forceUint8(octEncodeScratch.y * RIGHT_SHIFT);
426
+ result.w = forceUint8(octEncodeScratch.y);
427
+ return result;
428
+ }
429
+ function octDecodeInRange(x, y, rangeMaximum, result) {
430
+ (0, import_core2.assert)(result);
431
+ if (x < 0 || x > rangeMaximum || y < 0 || y > rangeMaximum) {
432
+ throw new Error(`x and y must be unsigned normalized integers between 0 and ${rangeMaximum}`);
433
+ }
434
+ result.x = fromSNorm(x, rangeMaximum);
435
+ result.y = fromSNorm(y, rangeMaximum);
436
+ result.z = 1 - (Math.abs(result.x) + Math.abs(result.y));
437
+ if (result.z < 0) {
438
+ const oldX = result.x;
439
+ result.x = (1 - Math.abs(result.y)) * signNotZero(oldX);
440
+ result.y = (1 - Math.abs(oldX)) * signNotZero(result.y);
441
+ }
442
+ return result.normalize();
443
+ }
444
+ function octDecode(x, y, result) {
445
+ return octDecodeInRange(x, y, 255, result);
446
+ }
447
+ function octDecodeFromVector4(encoded, result) {
448
+ (0, import_core2.assert)(encoded);
449
+ (0, import_core2.assert)(result);
450
+ const { x, y, z, w } = encoded;
451
+ if (x < 0 || x > 255 || y < 0 || y > 255 || z < 0 || z > 255 || w < 0 || w > 255) {
452
+ throw new Error("x, y, z, and w must be unsigned normalized integers between 0 and 255");
453
+ }
454
+ return octDecodeInRange(x * LEFT_SHIFT + y, z * LEFT_SHIFT + w, 65535, result);
455
+ }
456
+ function octPackFloat(encoded) {
457
+ scratchVector2.from(encoded);
458
+ return 256 * scratchVector2.x + scratchVector2.y;
459
+ }
460
+ function octEncodeFloat(vector) {
461
+ octEncode(vector, scratchEncodeVector2);
462
+ return octPackFloat(scratchEncodeVector2);
463
+ }
464
+ function octDecodeFloat(value, result) {
465
+ (0, import_core2.assert)(Number.isFinite(value));
466
+ const temporary = value / 256;
467
+ const x = Math.floor(temporary);
468
+ const y = (temporary - x) * 256;
469
+ return octDecode(x, y, result);
470
+ }
471
+ function octPack(vector1, vector2, vector3, result) {
472
+ (0, import_core2.assert)(vector1);
473
+ (0, import_core2.assert)(vector2);
474
+ (0, import_core2.assert)(vector3);
475
+ (0, import_core2.assert)(result);
476
+ const encoded1 = octEncodeFloat(vector1);
477
+ const encoded2 = octEncodeFloat(vector2);
478
+ const encoded3 = octEncode(vector3, scratchEncodeVector2);
479
+ result.x = 65536 * encoded3.x + encoded1;
480
+ result.y = 65536 * encoded3.y + encoded2;
481
+ return result;
482
+ }
483
+ function octUnpack(packed, vector1, vector2, vector3) {
484
+ let temporary = packed.x / 65536;
485
+ const x = Math.floor(temporary);
486
+ const encodedFloat1 = (temporary - x) * 65536;
487
+ temporary = packed.y / 65536;
488
+ const y = Math.floor(temporary);
489
+ const encodedFloat2 = (temporary - y) * 65536;
490
+ octDecodeFloat(encodedFloat1, vector1);
491
+ octDecodeFloat(encodedFloat2, vector2);
492
+ octDecode(x, y, vector3);
493
+ }
494
+ function compressTextureCoordinates(textureCoordinates) {
495
+ const x = textureCoordinates.x * 4095 | 0;
496
+ const y = textureCoordinates.y * 4095 | 0;
497
+ return 4096 * x + y;
498
+ }
499
+ function decompressTextureCoordinates(compressed, result) {
500
+ const temporary = compressed / 4096;
501
+ const x = Math.floor(temporary);
502
+ result.x = x / 4095;
503
+ result.y = (compressed - x * 4096) / 4095;
504
+ return result;
505
+ }
506
+ function zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer) {
507
+ (0, import_core2.assert)(uBuffer);
508
+ (0, import_core2.assert)(vBuffer);
509
+ (0, import_core2.assert)(uBuffer.length === vBuffer.length);
510
+ if (heightBuffer) {
511
+ (0, import_core2.assert)(uBuffer.length === heightBuffer.length);
512
+ }
513
+ let u = 0;
514
+ let v = 0;
515
+ let height = 0;
516
+ for (let index = 0; index < uBuffer.length; index++) {
517
+ u += zigZagDecode(uBuffer[index]);
518
+ v += zigZagDecode(vBuffer[index]);
519
+ uBuffer[index] = u;
520
+ vBuffer[index] = v;
521
+ if (heightBuffer) {
522
+ height += zigZagDecode(heightBuffer[index]);
523
+ heightBuffer[index] = height;
524
+ }
525
+ }
526
+ }
527
+ function zigZagDecode(value) {
528
+ return value >> 1 ^ -(value & 1);
529
+ }
530
+
531
+ // dist/coordinates.js
532
+ function emod(value) {
533
+ return (value % 1 + 1) % 1;
534
+ }
535
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts", "../src/constants.ts", "../src/gl-type.ts", "../src/geometry.ts", "../src/attribute-iterator.ts", "../src/primitive-iterator.ts", "../src/compute-vertex-normals.ts", "../src/rgb565.ts", "../src/typed-array-utils.ts", "../src/attribute-compression.ts", "../src/coordinates.ts"],
4
+ "mappings": "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",
5
+ "names": ["import_core"]
6
+ }
@@ -0,0 +1,14 @@
1
+ export type { TypedArray, TypedArrayConstructor } from '@math.gl/types';
2
+ export { GL, GL_TYPE, GL_PRIMITIVE, GL_PRIMITIVE_MODE } from "./constants.js";
3
+ export { default as GLType } from "./gl-type.js";
4
+ export type { Geometry, GeometryAttribute } from "./geometry.js";
5
+ export { isGeometry } from "./geometry.js";
6
+ export type { Primitive } from "./primitive-iterator.js";
7
+ export { makeAttributeIterator } from "./attribute-iterator.js";
8
+ export { makePrimitiveIterator } from "./primitive-iterator.js";
9
+ export { computeVertexNormals } from "./compute-vertex-normals.js";
10
+ export { encodeRGB565, decodeRGB565 } from "./rgb565.js";
11
+ export { concatTypedArrays } from "./typed-array-utils.js";
12
+ export { octEncodeInRange, octEncode, octEncodeToVector4, octDecodeInRange, octDecode, octDecodeFromVector4, octPackFloat, octEncodeFloat, octDecodeFloat, octPack, octUnpack, compressTextureCoordinates, decompressTextureCoordinates, zigZagDeltaDecode } from "./attribute-compression.js";
13
+ export { emod } from "./coordinates.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,UAAU,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAEtE,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAC,uBAAoB;AACzE,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,qBAAkB;AAE5C,YAAY,EAAC,QAAQ,EAAE,iBAAiB,EAAC,sBAAmB;AAC5D,OAAO,EAAC,UAAU,EAAC,sBAAmB;AAEtC,YAAY,EAAC,SAAS,EAAC,gCAA6B;AACpD,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,oBAAiB;AACpD,OAAO,EAAC,iBAAiB,EAAC,+BAA4B;AAEtD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EAClB,mCAAgC;AAEjC,OAAO,EAAC,IAAI,EAAC,yBAAsB"}
package/dist/index.js ADDED
@@ -0,0 +1,14 @@
1
+ // math.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ export { GL, GL_TYPE, GL_PRIMITIVE, GL_PRIMITIVE_MODE } from "./constants.js";
5
+ export { default as GLType } from "./gl-type.js";
6
+ export { isGeometry } from "./geometry.js";
7
+ export { makeAttributeIterator } from "./attribute-iterator.js";
8
+ export { makePrimitiveIterator } from "./primitive-iterator.js";
9
+ export { computeVertexNormals } from "./compute-vertex-normals.js";
10
+ export { encodeRGB565, decodeRGB565 } from "./rgb565.js";
11
+ export { concatTypedArrays } from "./typed-array-utils.js";
12
+ export { octEncodeInRange, octEncode, octEncodeToVector4, octDecodeInRange, octDecode, octDecodeFromVector4, octPackFloat, octEncodeFloat, octDecodeFloat, octPack, octUnpack, compressTextureCoordinates, decompressTextureCoordinates, zigZagDeltaDecode } from "./attribute-compression.js";
13
+ export { emod } from "./coordinates.js";
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAC,uBAAoB;AACzE,OAAO,EAAC,OAAO,IAAI,MAAM,EAAC,qBAAkB;AAG5C,OAAO,EAAC,UAAU,EAAC,sBAAmB;AAGtC,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,qBAAqB,EAAC,gCAA6B;AAC3D,OAAO,EAAC,oBAAoB,EAAC,oCAAiC;AAE9D,OAAO,EAAC,YAAY,EAAE,YAAY,EAAC,oBAAiB;AACpD,OAAO,EAAC,iBAAiB,EAAC,+BAA4B;AAEtD,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,OAAO,EACP,SAAS,EACT,0BAA0B,EAC1B,4BAA4B,EAC5B,iBAAiB,EAClB,mCAAgC;AAEjC,OAAO,EAAC,IAAI,EAAC,yBAAsB"}
@@ -0,0 +1,21 @@
1
+ import type { TypedArray } from '@math.gl/types';
2
+ import type { Geometry } from "./geometry.js";
3
+ /** One dereferenced point, line, or triangle primitive. */
4
+ export type Primitive = {
5
+ attributes: object;
6
+ type: number;
7
+ i1: number;
8
+ i2?: number;
9
+ i3?: number;
10
+ primitiveIndex: number;
11
+ };
12
+ /**
13
+ * Iterates through a geometry's primitives and dereferences optional indices.
14
+ *
15
+ * The legacy argument form `(indices, attributes, mode, start, end)` is also supported.
16
+ */
17
+ export declare function makePrimitiveIterator(geometryOrIndices?: Geometry | TypedArray | {
18
+ value?: TypedArray;
19
+ values?: TypedArray;
20
+ }, attributes?: object, mode?: number, start?: number, end?: number): Iterable<Primitive>;
21
+ //# sourceMappingURL=primitive-iterator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive-iterator.d.ts","sourceRoot":"","sources":["../src/primitive-iterator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE/C,OAAO,KAAK,EAAC,QAAQ,EAAC,sBAAmB;AAGzC,2DAA2D;AAC3D,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAiB,qBAAqB,CACpC,iBAAiB,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG;IAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAC,EACrF,UAAU,GAAE,MAAW,EACvB,IAAI,CAAC,EAAE,MAAM,EACb,KAAK,SAAI,EACT,GAAG,CAAC,EAAE,MAAM,GACX,QAAQ,CAAC,SAAS,CAAC,CAkHrB"}