@loaders.gl/math 4.0.0-alpha.5 → 4.0.0-alpha.6

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 (134) hide show
  1. package/dist/es5/geometry/attributes/compute-bounding-box.js +46 -0
  2. package/dist/es5/geometry/attributes/compute-bounding-box.js.map +1 -0
  3. package/dist/es5/geometry/attributes/compute-bounding-sphere.js +2 -0
  4. package/dist/es5/geometry/attributes/compute-bounding-sphere.js.map +1 -0
  5. package/dist/es5/geometry/attributes/compute-tangents.js +2 -0
  6. package/dist/es5/geometry/attributes/compute-tangents.js.map +1 -0
  7. package/dist/es5/geometry/attributes/compute-vertex-normals.js +56 -0
  8. package/dist/es5/geometry/attributes/compute-vertex-normals.js.map +1 -0
  9. package/dist/es5/geometry/attributes/convert-to-non-indexed.js +43 -0
  10. package/dist/es5/geometry/attributes/convert-to-non-indexed.js.map +1 -0
  11. package/dist/es5/geometry/attributes/get-attribute-from-geometry.js +29 -0
  12. package/dist/es5/geometry/attributes/get-attribute-from-geometry.js.map +1 -0
  13. package/dist/es5/geometry/attributes/normalize.js +19 -0
  14. package/dist/es5/geometry/attributes/normalize.js.map +1 -0
  15. package/dist/es5/geometry/colors/rgb565.js +24 -0
  16. package/dist/es5/geometry/colors/rgb565.js.map +1 -0
  17. package/dist/es5/geometry/compression/attribute-compression.js +178 -0
  18. package/dist/es5/geometry/compression/attribute-compression.js.map +1 -0
  19. package/dist/es5/geometry/constants.js +40 -0
  20. package/dist/es5/geometry/constants.js.map +1 -0
  21. package/dist/es5/geometry/gl/gl-type.js +92 -0
  22. package/dist/es5/geometry/gl/gl-type.js.map +1 -0
  23. package/dist/es5/geometry/is-geometry.js +12 -0
  24. package/dist/es5/geometry/is-geometry.js.map +1 -0
  25. package/dist/es5/geometry/iterators/attribute-iterator.js +38 -0
  26. package/dist/es5/geometry/iterators/attribute-iterator.js.map +1 -0
  27. package/dist/es5/geometry/iterators/primitive-iterator.js +102 -0
  28. package/dist/es5/geometry/iterators/primitive-iterator.js.map +1 -0
  29. package/dist/es5/geometry/primitives/modes.js +56 -0
  30. package/dist/es5/geometry/primitives/modes.js.map +1 -0
  31. package/dist/es5/geometry/typed-arrays/typed-array-utils.js +24 -0
  32. package/dist/es5/geometry/typed-arrays/typed-array-utils.js.map +1 -0
  33. package/dist/es5/geometry/utils/assert.js +12 -0
  34. package/dist/es5/geometry/utils/assert.js.map +1 -0
  35. package/dist/es5/index.js +160 -0
  36. package/dist/es5/index.js.map +1 -0
  37. package/dist/es5/utils/assert.js +12 -0
  38. package/dist/es5/utils/assert.js.map +1 -0
  39. package/dist/esm/geometry/attributes/compute-bounding-box.js +28 -0
  40. package/dist/esm/geometry/attributes/compute-bounding-box.js.map +1 -0
  41. package/dist/esm/geometry/attributes/compute-bounding-sphere.js +2 -0
  42. package/dist/esm/geometry/attributes/compute-bounding-sphere.js.map +1 -0
  43. package/dist/esm/geometry/attributes/compute-tangents.js +2 -0
  44. package/dist/esm/geometry/attributes/compute-tangents.js.map +1 -0
  45. package/dist/esm/geometry/attributes/compute-vertex-normals.js +41 -0
  46. package/dist/esm/geometry/attributes/compute-vertex-normals.js.map +1 -0
  47. package/dist/esm/geometry/attributes/convert-to-non-indexed.js +27 -0
  48. package/dist/esm/geometry/attributes/convert-to-non-indexed.js.map +1 -0
  49. package/dist/esm/geometry/attributes/get-attribute-from-geometry.js +24 -0
  50. package/dist/esm/geometry/attributes/get-attribute-from-geometry.js.map +1 -0
  51. package/dist/esm/geometry/attributes/normalize.js +13 -0
  52. package/dist/esm/geometry/attributes/normalize.js.map +1 -0
  53. package/dist/esm/geometry/colors/rgb565.js +17 -0
  54. package/dist/esm/geometry/colors/rgb565.js.map +1 -0
  55. package/dist/esm/geometry/compression/attribute-compression.js +159 -0
  56. package/dist/esm/geometry/compression/attribute-compression.js.map +1 -0
  57. package/dist/esm/geometry/constants.js +29 -0
  58. package/dist/esm/geometry/constants.js.map +1 -0
  59. package/dist/esm/geometry/gl/gl-type.js +72 -0
  60. package/dist/esm/geometry/gl/gl-type.js.map +1 -0
  61. package/dist/esm/geometry/is-geometry.js +4 -0
  62. package/dist/esm/geometry/is-geometry.js.map +1 -0
  63. package/dist/esm/geometry/iterators/attribute-iterator.js +11 -0
  64. package/dist/esm/geometry/iterators/attribute-iterator.js.map +1 -0
  65. package/dist/esm/geometry/iterators/primitive-iterator.js +76 -0
  66. package/dist/esm/geometry/iterators/primitive-iterator.js.map +1 -0
  67. package/dist/esm/geometry/primitives/modes.js +48 -0
  68. package/dist/esm/geometry/primitives/modes.js.map +1 -0
  69. package/dist/esm/geometry/typed-arrays/typed-array-utils.js +18 -0
  70. package/dist/esm/geometry/typed-arrays/typed-array-utils.js.map +1 -0
  71. package/dist/esm/geometry/utils/assert.js +6 -0
  72. package/dist/esm/geometry/utils/assert.js.map +1 -0
  73. package/dist/esm/index.js +11 -0
  74. package/dist/esm/index.js.map +1 -0
  75. package/dist/esm/utils/assert.js +6 -0
  76. package/dist/esm/utils/assert.js.map +1 -0
  77. package/dist/geometry/attributes/compute-bounding-box.js +41 -27
  78. package/dist/geometry/attributes/compute-bounding-sphere.js +29 -1
  79. package/dist/geometry/attributes/compute-tangents.js +145 -1
  80. package/dist/geometry/attributes/compute-vertex-normals.d.ts +2 -2
  81. package/dist/geometry/attributes/compute-vertex-normals.d.ts.map +1 -1
  82. package/dist/geometry/attributes/compute-vertex-normals.js +47 -42
  83. package/dist/geometry/attributes/convert-to-non-indexed.js +31 -30
  84. package/dist/geometry/attributes/get-attribute-from-geometry.js +33 -26
  85. package/dist/geometry/attributes/normalize.js +19 -11
  86. package/dist/geometry/colors/rgb565.js +29 -14
  87. package/dist/geometry/compression/attribute-compression.d.ts +7 -1
  88. package/dist/geometry/compression/attribute-compression.d.ts.map +1 -1
  89. package/dist/geometry/compression/attribute-compression.js +339 -162
  90. package/dist/geometry/constants.d.ts +1 -1
  91. package/dist/geometry/constants.d.ts.map +1 -1
  92. package/dist/geometry/constants.js +30 -24
  93. package/dist/geometry/gl/gl-type.d.ts +1 -1
  94. package/dist/geometry/gl/gl-type.d.ts.map +1 -1
  95. package/dist/geometry/gl/gl-type.js +101 -74
  96. package/dist/geometry/is-geometry.js +13 -3
  97. package/dist/geometry/iterators/attribute-iterator.js +17 -11
  98. package/dist/geometry/iterators/primitive-iterator.js +85 -79
  99. package/dist/geometry/primitives/modes.js +67 -54
  100. package/dist/geometry/typed-arrays/typed-array-utils.js +23 -20
  101. package/dist/geometry/utils/assert.js +13 -5
  102. package/dist/index.d.ts +1 -0
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +46 -11
  105. package/dist/utils/assert.js +11 -5
  106. package/package.json +6 -6
  107. package/src/geometry/attributes/compute-vertex-normals.ts +1 -1
  108. package/src/geometry/compression/attribute-compression.ts +7 -1
  109. package/src/geometry/gl/gl-type.ts +1 -1
  110. package/src/index.ts +12 -0
  111. package/dist/geometry/attributes/compute-bounding-box.js.map +0 -1
  112. package/dist/geometry/attributes/compute-bounding-sphere.js.map +0 -1
  113. package/dist/geometry/attributes/compute-tangents.js.map +0 -1
  114. package/dist/geometry/attributes/compute-vertex-normals.js.map +0 -1
  115. package/dist/geometry/attributes/convert-to-non-indexed.js.map +0 -1
  116. package/dist/geometry/attributes/get-attribute-from-geometry.js.map +0 -1
  117. package/dist/geometry/attributes/normalize.js.map +0 -1
  118. package/dist/geometry/colors/rgb565.js.map +0 -1
  119. package/dist/geometry/compression/attribute-compression.js.map +0 -1
  120. package/dist/geometry/constants.js.map +0 -1
  121. package/dist/geometry/gl/gl-type.js.map +0 -1
  122. package/dist/geometry/is-geometry.js.map +0 -1
  123. package/dist/geometry/iterators/attribute-iterator.js.map +0 -1
  124. package/dist/geometry/iterators/primitive-iterator.js.map +0 -1
  125. package/dist/geometry/primitives/modes.js.map +0 -1
  126. package/dist/geometry/typed-arrays/typed-array-utils.js.map +0 -1
  127. package/dist/geometry/types.d.ts +0 -13
  128. package/dist/geometry/types.d.ts.map +0 -1
  129. package/dist/geometry/types.js +0 -2
  130. package/dist/geometry/types.js.map +0 -1
  131. package/dist/geometry/utils/assert.js.map +0 -1
  132. package/dist/index.js.map +0 -1
  133. package/dist/utils/assert.js.map +0 -1
  134. package/src/geometry/types.ts +0 -25
@@ -1,28 +1,34 @@
1
- export const GL_PRIMITIVE = {
2
- POINTS: 0x0000,
3
- LINES: 0x0001,
4
- TRIANGLES: 0x0004
1
+ "use strict";
2
+ // Subset of WebGL constants
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.GL = exports.GL_TYPE = exports.GL_PRIMITIVE_MODE = exports.GL_PRIMITIVE = void 0;
5
+ exports.GL_PRIMITIVE = {
6
+ POINTS: 0x0000,
7
+ LINES: 0x0001,
8
+ TRIANGLES: 0x0004 // Triangles. Each set of three vertices creates a separate triangle.
5
9
  };
6
- export const GL_PRIMITIVE_MODE = {
7
- POINTS: 0x0000,
8
- LINES: 0x0001,
9
- LINE_LOOP: 0x0002,
10
- LINE_STRIP: 0x0003,
11
- TRIANGLES: 0x0004,
12
- TRIANGLE_STRIP: 0x0005,
13
- TRIANGLE_FAN: 0x0006
10
+ // Primitive modes
11
+ exports.GL_PRIMITIVE_MODE = {
12
+ POINTS: 0x0000,
13
+ LINES: 0x0001,
14
+ LINE_LOOP: 0x0002,
15
+ LINE_STRIP: 0x0003,
16
+ TRIANGLES: 0x0004,
17
+ TRIANGLE_STRIP: 0x0005,
18
+ TRIANGLE_FAN: 0x0006 // Triangles. A connected group of triangles.
19
+ // Each vertex connects to the previous and the first vertex in the fan.
14
20
  };
15
- export const GL_TYPE = {
16
- BYTE: 5120,
17
- UNSIGNED_BYTE: 5121,
18
- SHORT: 5122,
19
- UNSIGNED_SHORT: 5123,
20
- INT: 5124,
21
- UNSIGNED_INT: 5125,
22
- FLOAT: 5126,
23
- DOUBLE: 5130
21
+ exports.GL_TYPE = {
22
+ BYTE: 5120,
23
+ UNSIGNED_BYTE: 5121,
24
+ SHORT: 5122,
25
+ UNSIGNED_SHORT: 5123,
26
+ INT: 5124,
27
+ UNSIGNED_INT: 5125,
28
+ FLOAT: 5126,
29
+ DOUBLE: 5130
24
30
  };
25
- export const GL = { ...GL_PRIMITIVE_MODE,
26
- ...GL_TYPE
31
+ exports.GL = {
32
+ ...exports.GL_PRIMITIVE_MODE,
33
+ ...exports.GL_TYPE
27
34
  };
28
- //# sourceMappingURL=constants.js.map
@@ -1,4 +1,4 @@
1
- import { TypedArray } from '../types';
1
+ import type { TypedArray } from '@math.gl/core';
2
2
  export default class GLType {
3
3
  /**
4
4
  * Returns the size, in bytes, of the corresponding datatype
@@ -1 +1 @@
1
- {"version":3,"file":"gl-type.d.ts","sourceRoot":"","sources":["../../../src/geometry/gl/gl-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AA6BpC,MAAM,CAAC,OAAO,OAAO,MAAM;IAGzB;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM;IAWjE;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASrC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;IAmBlC;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAGxC;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,UAAU;CAOd"}
1
+ {"version":3,"file":"gl-type.d.ts","sourceRoot":"","sources":["../../../src/geometry/gl/gl-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AA6B9C,MAAM,CAAC,OAAO,OAAO,MAAM;IAGzB;;;;OAIG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM;IAWjE;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IASrC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;IAmBlC;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAGxC;;;;;;;OAOG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,UAAU,GAAE,MAAU,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,UAAU;CAOd"}
@@ -1,85 +1,112 @@
1
- import { GL_TYPE as GL } from '../constants';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../constants");
2
4
  const GL_TYPE_TO_ARRAY_TYPE = {
3
- [GL.DOUBLE]: Float64Array,
4
- [GL.FLOAT]: Float32Array,
5
- [GL.UNSIGNED_SHORT]: Uint16Array,
6
- [GL.UNSIGNED_INT]: Uint32Array,
7
- [GL.UNSIGNED_BYTE]: Uint8Array,
8
- [GL.BYTE]: Int8Array,
9
- [GL.SHORT]: Int16Array,
10
- [GL.INT]: Int32Array
5
+ [constants_1.GL_TYPE.DOUBLE]: Float64Array,
6
+ [constants_1.GL_TYPE.FLOAT]: Float32Array,
7
+ [constants_1.GL_TYPE.UNSIGNED_SHORT]: Uint16Array,
8
+ [constants_1.GL_TYPE.UNSIGNED_INT]: Uint32Array,
9
+ [constants_1.GL_TYPE.UNSIGNED_BYTE]: Uint8Array,
10
+ [constants_1.GL_TYPE.BYTE]: Int8Array,
11
+ [constants_1.GL_TYPE.SHORT]: Int16Array,
12
+ [constants_1.GL_TYPE.INT]: Int32Array
11
13
  };
12
14
  const NAME_TO_GL_TYPE = {
13
- DOUBLE: GL.DOUBLE,
14
- FLOAT: GL.FLOAT,
15
- UNSIGNED_SHORT: GL.UNSIGNED_SHORT,
16
- UNSIGNED_INT: GL.UNSIGNED_INT,
17
- UNSIGNED_BYTE: GL.UNSIGNED_BYTE,
18
- BYTE: GL.BYTE,
19
- SHORT: GL.SHORT,
20
- INT: GL.INT
15
+ DOUBLE: constants_1.GL_TYPE.DOUBLE,
16
+ FLOAT: constants_1.GL_TYPE.FLOAT,
17
+ UNSIGNED_SHORT: constants_1.GL_TYPE.UNSIGNED_SHORT,
18
+ UNSIGNED_INT: constants_1.GL_TYPE.UNSIGNED_INT,
19
+ UNSIGNED_BYTE: constants_1.GL_TYPE.UNSIGNED_BYTE,
20
+ BYTE: constants_1.GL_TYPE.BYTE,
21
+ SHORT: constants_1.GL_TYPE.SHORT,
22
+ INT: constants_1.GL_TYPE.INT
21
23
  };
22
24
  const ERR_TYPE_CONVERSION = 'Failed to convert GL type';
23
- export default class GLType {
24
- static fromTypedArray(arrayOrType) {
25
- arrayOrType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
26
-
27
- for (const glType in GL_TYPE_TO_ARRAY_TYPE) {
28
- const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];
29
-
30
- if (ArrayType === arrayOrType) {
31
- return glType;
32
- }
25
+ // Converts TYPED ARRAYS to corresponding GL constant
26
+ // Used to auto deduce gl parameter types
27
+ class GLType {
28
+ // Signature: fromTypedArray(new Uint8Array())
29
+ // Signature: fromTypedArray(Uint8Array)
30
+ /**
31
+ * Returns the size, in bytes, of the corresponding datatype
32
+ * @param arrayOrType
33
+ * @returns glType a a string
34
+ */
35
+ static fromTypedArray(arrayOrType) {
36
+ // If typed array, look up constructor
37
+ arrayOrType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
38
+ for (const glType in GL_TYPE_TO_ARRAY_TYPE) {
39
+ const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];
40
+ if (ArrayType === arrayOrType) {
41
+ return glType;
42
+ }
43
+ }
44
+ throw new Error(ERR_TYPE_CONVERSION);
33
45
  }
34
-
35
- throw new Error(ERR_TYPE_CONVERSION);
36
- }
37
-
38
- static fromName(name) {
39
- const glType = NAME_TO_GL_TYPE[name];
40
-
41
- if (!glType) {
42
- throw new Error(ERR_TYPE_CONVERSION);
46
+ /**
47
+ * Extracts name for glType from array NAME_TO_GL_TYPE
48
+ * @param name
49
+ * @returns glType as a number
50
+ */
51
+ static fromName(name) {
52
+ const glType = NAME_TO_GL_TYPE[name];
53
+ if (!glType) {
54
+ throw new Error(ERR_TYPE_CONVERSION);
55
+ }
56
+ return glType;
43
57
  }
44
-
45
- return glType;
46
- }
47
-
48
- static getArrayType(glType) {
49
- switch (glType) {
50
- case GL.UNSIGNED_SHORT_5_6_5:
51
- case GL.UNSIGNED_SHORT_4_4_4_4:
52
- case GL.UNSIGNED_SHORT_5_5_5_1:
53
- return Uint16Array;
54
-
55
- default:
56
- const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];
57
-
58
- if (!ArrayType) {
59
- throw new Error(ERR_TYPE_CONVERSION);
58
+ // Converts GL constant to corresponding typed array type
59
+ // eslint-disable-next-line complexity
60
+ static getArrayType(glType) {
61
+ switch (glType) {
62
+ /*eslint-disable*/
63
+ // @ts-ignore
64
+ case constants_1.GL_TYPE.UNSIGNED_SHORT_5_6_5:
65
+ // @ts-ignore
66
+ case constants_1.GL_TYPE.UNSIGNED_SHORT_4_4_4_4:
67
+ // @ts-ignore
68
+ case constants_1.GL_TYPE.UNSIGNED_SHORT_5_5_5_1:
69
+ /* eslint-enable*/
70
+ return Uint16Array;
71
+ default:
72
+ const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];
73
+ if (!ArrayType) {
74
+ throw new Error(ERR_TYPE_CONVERSION);
75
+ }
76
+ return ArrayType;
60
77
  }
61
-
62
- return ArrayType;
63
78
  }
64
- }
65
-
66
- static getByteSize(glType) {
67
- const ArrayType = GLType.getArrayType(glType);
68
- return ArrayType.BYTES_PER_ELEMENT;
69
- }
70
-
71
- static validate(glType) {
72
- return Boolean(GLType.getArrayType(glType));
73
- }
74
-
75
- static createTypedArray(glType, buffer, byteOffset = 0, length) {
76
- if (length === undefined) {
77
- length = (buffer.byteLength - byteOffset) / GLType.getByteSize(glType);
79
+ /**
80
+ * Returns the size in bytes of one element of the provided WebGL type
81
+ * @param glType
82
+ * @returns size of glType
83
+ */
84
+ static getByteSize(glType) {
85
+ const ArrayType = GLType.getArrayType(glType);
86
+ return ArrayType.BYTES_PER_ELEMENT;
87
+ }
88
+ /**
89
+ * Returns `true` if `glType` is a valid WebGL data type.
90
+ * @param glType
91
+ * @returns boolean
92
+ */
93
+ static validate(glType) {
94
+ return Boolean(GLType.getArrayType(glType));
95
+ }
96
+ /**
97
+ * Creates a typed view of an array of bytes
98
+ * @param glType The type of typed array (ArrayBuffer view) to create
99
+ * @param buffer The buffer storage to use for the view.
100
+ * @param byteOffset The offset, in bytes, to the first element in the view
101
+ * @param length The number of elements in the view. Defaults to buffer length
102
+ * @returns A typed array view of the buffer
103
+ */
104
+ static createTypedArray(glType, buffer, byteOffset = 0, length) {
105
+ if (length === undefined) {
106
+ length = (buffer.byteLength - byteOffset) / GLType.getByteSize(glType);
107
+ }
108
+ const ArrayType = GLType.getArrayType(glType);
109
+ return new ArrayType(buffer, byteOffset, length);
78
110
  }
79
-
80
- const ArrayType = GLType.getArrayType(glType);
81
- return new ArrayType(buffer, byteOffset, length);
82
- }
83
-
84
111
  }
85
- //# sourceMappingURL=gl-type.js.map
112
+ exports.default = GLType;
@@ -1,4 +1,14 @@
1
- export default function isGeometry(geometry) {
2
- return geometry && typeof geometry === 'object' && geometry.mode && geometry.attributes && typeof geometry.attributes === 'object';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Checking if it is geometry
5
+ * @param geometry
6
+ */
7
+ function isGeometry(geometry) {
8
+ return (geometry &&
9
+ typeof geometry === 'object' &&
10
+ geometry.mode &&
11
+ geometry.attributes &&
12
+ typeof geometry.attributes === 'object');
3
13
  }
4
- //# sourceMappingURL=is-geometry.js.map
14
+ exports.default = isGeometry;
@@ -1,13 +1,19 @@
1
- export function* makeAttributeIterator(values, size) {
2
- const ArrayType = values.constructor;
3
- const element = new ArrayType(size);
4
-
5
- for (let i = 0; i < values.length; i += size) {
6
- for (let j = 0; j < size; j++) {
7
- element[j] = element[i + j];
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeAttributeIterator = void 0;
4
+ /**
5
+ * Iterates over a single attribute
6
+ * NOTE: For performance, re-yields the same modified element
7
+ * @param param0
8
+ */
9
+ function* makeAttributeIterator(values, size) {
10
+ const ArrayType = values.constructor;
11
+ const element = new ArrayType(size);
12
+ for (let i = 0; i < values.length; i += size) {
13
+ for (let j = 0; j < size; j++) {
14
+ element[j] = element[i + j];
15
+ }
16
+ yield element;
8
17
  }
9
-
10
- yield element;
11
- }
12
18
  }
13
- //# sourceMappingURL=attribute-iterator.js.map
19
+ exports.makeAttributeIterator = makeAttributeIterator;
@@ -1,82 +1,88 @@
1
- import { GL } from '../constants';
2
- import { getPrimitiveModeType } from '../primitives/modes';
3
- import { assert } from '@loaders.gl/loader-utils';
4
- export function* makePrimitiveIterator(indices, attributes = {}, mode, start = 0, end) {
5
- if (indices) {
6
- indices = indices.values || indices.value || indices;
7
- }
8
-
9
- if (end === undefined) {
10
- end = indices ? indices.length : start;
11
- }
12
-
13
- const info = {
14
- attributes,
15
- type: getPrimitiveModeType(mode),
16
- i1: 0,
17
- i2: 0,
18
- i3: 0
19
- };
20
- let i = start;
21
-
22
- while (i < end) {
23
- switch (mode) {
24
- case GL.POINTS:
25
- info.i1 = i;
26
- i += 1;
27
- break;
28
-
29
- case GL.LINES:
30
- info.i1 = i;
31
- info.i2 = i + 1;
32
- i += 2;
33
- break;
34
-
35
- case GL.LINE_STRIP:
36
- info.i1 = i;
37
- info.i2 = i + 1;
38
- i += 1;
39
- break;
40
-
41
- case GL.LINE_LOOP:
42
- info.i1 = i;
43
- info.i2 = i + 1;
44
- i += 1;
45
- break;
46
-
47
- case GL.TRIANGLES:
48
- info.i1 = i;
49
- info.i2 = i + 1;
50
- info.i3 = i + 2;
51
- i += 3;
52
- break;
53
-
54
- case GL.TRIANGLE_STRIP:
55
- info.i1 = i;
56
- info.i2 = i + 1;
57
- i += 1;
58
- break;
59
-
60
- case GL.TRIANGLE_FAN:
61
- info.i1 = 1;
62
- info.i2 = i;
63
- info.i3 = i + 1;
64
- i += 1;
65
- break;
66
-
67
- default:
68
- assert(false);
69
- }
70
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makePrimitiveIterator = void 0;
4
+ const constants_1 = require("../constants");
5
+ const modes_1 = require("../primitives/modes");
6
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
7
+ /**
8
+ * Will iterate over each primitive, expanding (dereferencing) indices
9
+ * @param indices
10
+ * @param attributes
11
+ * @param mode
12
+ * @param start
13
+ * @param end
14
+ */
15
+ // eslint-disable-next-line complexity
16
+ function* makePrimitiveIterator(indices, attributes = {}, mode, start = 0, end) {
17
+ // support indices being an object with a values array
71
18
  if (indices) {
72
- if ('i1' in info) {
73
- info.i1 = indices[info.i1];
74
- info.i2 = indices[info.i2];
75
- info.i3 = indices[info.i3];
76
- }
19
+ indices = indices.values || indices.value || indices;
20
+ }
21
+ // Autodeduce length from indices
22
+ if (end === undefined) {
23
+ end = indices ? indices.length : start;
24
+ }
25
+ // iteration info
26
+ const info = {
27
+ attributes,
28
+ type: (0, modes_1.getPrimitiveModeType)(mode),
29
+ i1: 0,
30
+ i2: 0,
31
+ i3: 0
32
+ };
33
+ let i = start;
34
+ // @ts-ignore
35
+ while (i < end) {
36
+ switch (mode) {
37
+ case constants_1.GL.POINTS: // draw single points.
38
+ info.i1 = i;
39
+ i += 1;
40
+ break;
41
+ case constants_1.GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.
42
+ info.i1 = i;
43
+ info.i2 = i + 1;
44
+ i += 2;
45
+ break;
46
+ case constants_1.GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.
47
+ info.i1 = i;
48
+ info.i2 = i + 1;
49
+ i += 1;
50
+ break;
51
+ case constants_1.GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last
52
+ info.i1 = i;
53
+ info.i2 = i + 1;
54
+ i += 1;
55
+ break;
56
+ case constants_1.GL.TRIANGLES: // draw triangles. Each set of three vertices creates a separate triangle.
57
+ info.i1 = i;
58
+ info.i2 = i + 1;
59
+ info.i3 = i + 2;
60
+ i += 3;
61
+ break;
62
+ case constants_1.GL.TRIANGLE_STRIP: // draw a connected group of triangles.
63
+ info.i1 = i;
64
+ info.i2 = i + 1;
65
+ i += 1;
66
+ break;
67
+ case constants_1.GL.TRIANGLE_FAN: // draw a connected group of triangles.
68
+ info.i1 = 1;
69
+ info.i2 = i;
70
+ info.i3 = i + 1;
71
+ i += 1;
72
+ break;
73
+ default:
74
+ (0, loader_utils_1.assert)(false);
75
+ }
76
+ // if indices are present, lookup actual vertices in indices
77
+ if (indices) {
78
+ if ('i1' in info) {
79
+ info.i1 = indices[info.i1];
80
+ info.i2 = indices[info.i2];
81
+ info.i3 = indices[info.i3];
82
+ }
83
+ }
84
+ // @ts-ignore
85
+ yield info;
77
86
  }
78
-
79
- yield info;
80
- }
81
87
  }
82
- //# sourceMappingURL=primitive-iterator.js.map
88
+ exports.makePrimitiveIterator = makePrimitiveIterator;
@@ -1,58 +1,71 @@
1
- import { GL } from '../constants';
2
- export function getPrimitiveModeType(mode) {
3
- switch (mode) {
4
- case GL.POINTS:
5
- return GL.POINTS;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPrimitiveModeExpandedLength = exports.isPrimitiveModeExpandable = exports.getPrimitiveModeType = void 0;
4
+ const constants_1 = require("../constants");
5
+ /**
6
+ * Different methods of working with geometries depending on glType
7
+ /**
6
8
 
7
- case GL.LINES:
8
- case GL.LINE_STRIP:
9
- case GL.LINE_LOOP:
10
- return GL.LINES;
11
-
12
- case GL.TRIANGLES:
13
- case GL.TRIANGLE_STRIP:
14
- case GL.TRIANGLE_FAN:
15
- return GL.TRIANGLES;
16
-
17
- default:
18
- throw new Error('Unknown primitive mode');
19
- }
9
+ /**
10
+ * @param mode
11
+ * @returns draw points | lines | triangles
12
+ */
13
+ function getPrimitiveModeType(mode) {
14
+ switch (mode) {
15
+ case constants_1.GL.POINTS: // draw single points.
16
+ return constants_1.GL.POINTS;
17
+ case constants_1.GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.
18
+ case constants_1.GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.
19
+ case constants_1.GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last
20
+ return constants_1.GL.LINES;
21
+ case constants_1.GL.TRIANGLES:
22
+ case constants_1.GL.TRIANGLE_STRIP:
23
+ case constants_1.GL.TRIANGLE_FAN: // draw a connected group of triangles.
24
+ return constants_1.GL.TRIANGLES;
25
+ default:
26
+ throw new Error('Unknown primitive mode');
27
+ }
20
28
  }
21
- export function isPrimitiveModeExpandable(mode) {
22
- switch (mode) {
23
- case GL.LINE_STRIP:
24
- case GL.LINE_LOOP:
25
- case GL.TRIANGLE_STRIP:
26
- case GL.TRIANGLE_FAN:
27
- return true;
28
-
29
- default:
30
- return false;
31
- }
29
+ exports.getPrimitiveModeType = getPrimitiveModeType;
30
+ /**
31
+ * @param mode
32
+ * @returns true | false
33
+ */
34
+ function isPrimitiveModeExpandable(mode) {
35
+ switch (mode) {
36
+ case constants_1.GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.
37
+ case constants_1.GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last
38
+ case constants_1.GL.TRIANGLE_STRIP: // draw a connected group of triangles.
39
+ case constants_1.GL.TRIANGLE_FAN: // draw a connected group of triangles.
40
+ return true;
41
+ default:
42
+ return false;
43
+ }
32
44
  }
33
- export function getPrimitiveModeExpandedLength(mode, length) {
34
- switch (mode) {
35
- case GL.POINTS:
36
- return length;
37
-
38
- case GL.LINES:
39
- return length;
40
-
41
- case GL.LINE_STRIP:
42
- return length;
43
-
44
- case GL.LINE_LOOP:
45
- return length + 1;
46
-
47
- case GL.TRIANGLES:
48
- return length;
49
-
50
- case GL.TRIANGLE_STRIP:
51
- case GL.TRIANGLE_FAN:
52
- return (length - 2) * 3;
53
-
54
- default:
55
- throw new Error('Unknown length');
56
- }
45
+ exports.isPrimitiveModeExpandable = isPrimitiveModeExpandable;
46
+ /**
47
+ * Returns new length depends on glType
48
+ * @param mode
49
+ * @param length
50
+ * @returns new length
51
+ */
52
+ function getPrimitiveModeExpandedLength(mode, length) {
53
+ switch (mode) {
54
+ case constants_1.GL.POINTS: // draw single points.
55
+ return length;
56
+ case constants_1.GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.
57
+ return length;
58
+ case constants_1.GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.
59
+ return length;
60
+ case constants_1.GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last
61
+ return length + 1;
62
+ case constants_1.GL.TRIANGLES: // draw triangles. Each set of three vertices creates a separate triangle.
63
+ return length;
64
+ case constants_1.GL.TRIANGLE_STRIP: // draw a connected group of triangles.
65
+ case constants_1.GL.TRIANGLE_FAN: // draw a connected group of triangles.
66
+ return (length - 2) * 3;
67
+ default:
68
+ throw new Error('Unknown length');
69
+ }
57
70
  }
58
- //# sourceMappingURL=modes.js.map
71
+ exports.getPrimitiveModeExpandedLength = getPrimitiveModeExpandedLength;
@@ -1,22 +1,25 @@
1
- export function concatTypedArrays(arrays = []) {
2
- let byteLength = 0;
3
-
4
- for (let i = 0; i < arrays.length; ++i) {
5
- byteLength += arrays[i].byteLength;
6
- }
7
-
8
- const buffer = new Uint8Array(byteLength);
9
- let byteOffset = 0;
10
-
11
- for (let i = 0; i < arrays.length; ++i) {
12
- const data = new Uint8Array(arrays[i].buffer);
13
- byteLength = data.length;
14
-
15
- for (let j = 0; j < byteLength; ++j) {
16
- buffer[byteOffset++] = data[j];
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concatTypedArrays = void 0;
4
+ /**
5
+ * Concats typed arrays
6
+ * @param arrays
7
+ * @returns new Uint8Array
8
+ */
9
+ function concatTypedArrays(arrays = []) {
10
+ let byteLength = 0;
11
+ for (let i = 0; i < arrays.length; ++i) {
12
+ byteLength += arrays[i].byteLength;
17
13
  }
18
- }
19
-
20
- return buffer;
14
+ const buffer = new Uint8Array(byteLength);
15
+ let byteOffset = 0;
16
+ for (let i = 0; i < arrays.length; ++i) {
17
+ const data = new Uint8Array(arrays[i].buffer);
18
+ byteLength = data.length;
19
+ for (let j = 0; j < byteLength; ++j) {
20
+ buffer[byteOffset++] = data[j];
21
+ }
22
+ }
23
+ return buffer;
21
24
  }
22
- //# sourceMappingURL=typed-array-utils.js.map
25
+ exports.concatTypedArrays = concatTypedArrays;