@loaders.gl/math 3.1.3 → 4.0.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 (117) hide show
  1. package/dist/geometry/attributes/compute-bounding-box.js +27 -41
  2. package/dist/geometry/attributes/compute-bounding-box.js.map +1 -0
  3. package/dist/geometry/attributes/compute-bounding-sphere.js +1 -29
  4. package/dist/{es5/geometry → geometry}/attributes/compute-bounding-sphere.js.map +0 -0
  5. package/dist/geometry/attributes/compute-tangents.js +1 -145
  6. package/dist/{es5/geometry → geometry}/attributes/compute-tangents.js.map +0 -0
  7. package/dist/geometry/attributes/compute-vertex-normals.js +42 -47
  8. package/dist/geometry/attributes/compute-vertex-normals.js.map +1 -0
  9. package/dist/geometry/attributes/convert-to-non-indexed.js +30 -31
  10. package/dist/geometry/attributes/convert-to-non-indexed.js.map +1 -0
  11. package/dist/geometry/attributes/get-attribute-from-geometry.js +26 -33
  12. package/dist/geometry/attributes/get-attribute-from-geometry.js.map +1 -0
  13. package/dist/geometry/attributes/normalize.js +11 -19
  14. package/dist/geometry/attributes/normalize.js.map +1 -0
  15. package/dist/geometry/colors/rgb565.js +14 -29
  16. package/dist/geometry/colors/rgb565.js.map +1 -0
  17. package/dist/geometry/compression/attribute-compression.js +162 -339
  18. package/dist/geometry/compression/attribute-compression.js.map +1 -0
  19. package/dist/geometry/constants.js +24 -30
  20. package/dist/geometry/constants.js.map +1 -0
  21. package/dist/geometry/gl/gl-type.js +74 -101
  22. package/dist/geometry/gl/gl-type.js.map +1 -0
  23. package/dist/geometry/is-geometry.js +3 -13
  24. package/dist/geometry/is-geometry.js.map +1 -0
  25. package/dist/geometry/iterators/attribute-iterator.js +11 -17
  26. package/dist/geometry/iterators/attribute-iterator.js.map +1 -0
  27. package/dist/geometry/iterators/primitive-iterator.js +79 -85
  28. package/dist/geometry/iterators/primitive-iterator.js.map +1 -0
  29. package/dist/geometry/primitives/modes.js +54 -67
  30. package/dist/{es5/geometry → geometry}/primitives/modes.js.map +1 -1
  31. package/dist/geometry/typed-arrays/typed-array-utils.js +20 -23
  32. package/dist/geometry/typed-arrays/typed-array-utils.js.map +1 -0
  33. package/dist/geometry/types.js +2 -2
  34. package/dist/{es5/geometry → geometry}/types.js.map +0 -0
  35. package/dist/geometry/utils/assert.js +5 -13
  36. package/dist/geometry/utils/assert.js.map +1 -0
  37. package/dist/index.js +11 -46
  38. package/dist/index.js.map +1 -0
  39. package/dist/utils/assert.js +5 -11
  40. package/dist/utils/assert.js.map +1 -0
  41. package/package.json +6 -6
  42. package/dist/es5/geometry/attributes/compute-bounding-box.js +0 -56
  43. package/dist/es5/geometry/attributes/compute-bounding-box.js.map +0 -1
  44. package/dist/es5/geometry/attributes/compute-bounding-sphere.js +0 -2
  45. package/dist/es5/geometry/attributes/compute-tangents.js +0 -2
  46. package/dist/es5/geometry/attributes/compute-vertex-normals.js +0 -71
  47. package/dist/es5/geometry/attributes/compute-vertex-normals.js.map +0 -1
  48. package/dist/es5/geometry/attributes/convert-to-non-indexed.js +0 -54
  49. package/dist/es5/geometry/attributes/convert-to-non-indexed.js.map +0 -1
  50. package/dist/es5/geometry/attributes/get-attribute-from-geometry.js +0 -36
  51. package/dist/es5/geometry/attributes/get-attribute-from-geometry.js.map +0 -1
  52. package/dist/es5/geometry/attributes/normalize.js +0 -21
  53. package/dist/es5/geometry/attributes/normalize.js.map +0 -1
  54. package/dist/es5/geometry/colors/rgb565.js +0 -26
  55. package/dist/es5/geometry/colors/rgb565.js.map +0 -1
  56. package/dist/es5/geometry/compression/attribute-compression.js +0 -212
  57. package/dist/es5/geometry/compression/attribute-compression.js.map +0 -1
  58. package/dist/es5/geometry/constants.js +0 -47
  59. package/dist/es5/geometry/constants.js.map +0 -1
  60. package/dist/es5/geometry/gl/gl-type.js +0 -112
  61. package/dist/es5/geometry/gl/gl-type.js.map +0 -1
  62. package/dist/es5/geometry/is-geometry.js +0 -15
  63. package/dist/es5/geometry/is-geometry.js.map +0 -1
  64. package/dist/es5/geometry/iterators/attribute-iterator.js +0 -49
  65. package/dist/es5/geometry/iterators/attribute-iterator.js.map +0 -1
  66. package/dist/es5/geometry/iterators/primitive-iterator.js +0 -133
  67. package/dist/es5/geometry/iterators/primitive-iterator.js.map +0 -1
  68. package/dist/es5/geometry/primitives/modes.js +0 -70
  69. package/dist/es5/geometry/typed-arrays/typed-array-utils.js +0 -30
  70. package/dist/es5/geometry/typed-arrays/typed-array-utils.js.map +0 -1
  71. package/dist/es5/geometry/types.js +0 -2
  72. package/dist/es5/geometry/utils/assert.js +0 -13
  73. package/dist/es5/geometry/utils/assert.js.map +0 -1
  74. package/dist/es5/index.js +0 -170
  75. package/dist/es5/index.js.map +0 -1
  76. package/dist/es5/utils/assert.js +0 -13
  77. package/dist/es5/utils/assert.js.map +0 -1
  78. package/dist/esm/geometry/attributes/compute-bounding-box.js +0 -30
  79. package/dist/esm/geometry/attributes/compute-bounding-box.js.map +0 -1
  80. package/dist/esm/geometry/attributes/compute-bounding-sphere.js +0 -2
  81. package/dist/esm/geometry/attributes/compute-bounding-sphere.js.map +0 -1
  82. package/dist/esm/geometry/attributes/compute-tangents.js +0 -2
  83. package/dist/esm/geometry/attributes/compute-tangents.js.map +0 -1
  84. package/dist/esm/geometry/attributes/compute-vertex-normals.js +0 -43
  85. package/dist/esm/geometry/attributes/compute-vertex-normals.js.map +0 -1
  86. package/dist/esm/geometry/attributes/convert-to-non-indexed.js +0 -32
  87. package/dist/esm/geometry/attributes/convert-to-non-indexed.js.map +0 -1
  88. package/dist/esm/geometry/attributes/get-attribute-from-geometry.js +0 -27
  89. package/dist/esm/geometry/attributes/get-attribute-from-geometry.js.map +0 -1
  90. package/dist/esm/geometry/attributes/normalize.js +0 -12
  91. package/dist/esm/geometry/attributes/normalize.js.map +0 -1
  92. package/dist/esm/geometry/colors/rgb565.js +0 -16
  93. package/dist/esm/geometry/colors/rgb565.js.map +0 -1
  94. package/dist/esm/geometry/compression/attribute-compression.js +0 -175
  95. package/dist/esm/geometry/compression/attribute-compression.js.map +0 -1
  96. package/dist/esm/geometry/constants.js +0 -28
  97. package/dist/esm/geometry/constants.js.map +0 -1
  98. package/dist/esm/geometry/gl/gl-type.js +0 -85
  99. package/dist/esm/geometry/gl/gl-type.js.map +0 -1
  100. package/dist/esm/geometry/is-geometry.js +0 -4
  101. package/dist/esm/geometry/is-geometry.js.map +0 -1
  102. package/dist/esm/geometry/iterators/attribute-iterator.js +0 -13
  103. package/dist/esm/geometry/iterators/attribute-iterator.js.map +0 -1
  104. package/dist/esm/geometry/iterators/primitive-iterator.js +0 -82
  105. package/dist/esm/geometry/iterators/primitive-iterator.js.map +0 -1
  106. package/dist/esm/geometry/primitives/modes.js +0 -58
  107. package/dist/esm/geometry/primitives/modes.js.map +0 -1
  108. package/dist/esm/geometry/typed-arrays/typed-array-utils.js +0 -22
  109. package/dist/esm/geometry/typed-arrays/typed-array-utils.js.map +0 -1
  110. package/dist/esm/geometry/types.js +0 -2
  111. package/dist/esm/geometry/types.js.map +0 -1
  112. package/dist/esm/geometry/utils/assert.js +0 -6
  113. package/dist/esm/geometry/utils/assert.js.map +0 -1
  114. package/dist/esm/index.js +0 -11
  115. package/dist/esm/index.js.map +0 -1
  116. package/dist/esm/utils/assert.js +0 -6
  117. package/dist/esm/utils/assert.js.map +0 -1
@@ -1,112 +1,85 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const constants_1 = require("../constants");
1
+ import { GL_TYPE as GL } from '../constants';
4
2
  const GL_TYPE_TO_ARRAY_TYPE = {
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
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
13
11
  };
14
12
  const NAME_TO_GL_TYPE = {
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
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
23
21
  };
24
22
  const ERR_TYPE_CONVERSION = 'Failed to convert GL type';
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);
45
- }
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
- }
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) {
56
31
  return glType;
32
+ }
57
33
  }
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;
77
- }
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);
78
43
  }
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);
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);
107
60
  }
108
- const ArrayType = GLType.getArrayType(glType);
109
- return new ArrayType(buffer, byteOffset, length);
61
+
62
+ return ArrayType;
63
+ }
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);
110
78
  }
79
+
80
+ const ArrayType = GLType.getArrayType(glType);
81
+ return new ArrayType(buffer, byteOffset, length);
82
+ }
83
+
111
84
  }
112
- exports.default = GLType;
85
+ //# sourceMappingURL=gl-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/geometry/gl/gl-type.ts"],"names":["GL_TYPE","GL","GL_TYPE_TO_ARRAY_TYPE","DOUBLE","Float64Array","FLOAT","Float32Array","UNSIGNED_SHORT","Uint16Array","UNSIGNED_INT","Uint32Array","UNSIGNED_BYTE","Uint8Array","BYTE","Int8Array","SHORT","Int16Array","INT","Int32Array","NAME_TO_GL_TYPE","ERR_TYPE_CONVERSION","GLType","fromTypedArray","arrayOrType","ArrayBuffer","isView","constructor","glType","ArrayType","Error","fromName","name","getArrayType","UNSIGNED_SHORT_5_6_5","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","getByteSize","BYTES_PER_ELEMENT","validate","Boolean","createTypedArray","buffer","byteOffset","length","undefined","byteLength"],"mappings":"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","sourcesContent":["import {TypedArray} from '../types';\nimport {GL_TYPE as GL} from '../constants';\n\nconst GL_TYPE_TO_ARRAY_TYPE = {\n [GL.DOUBLE]: Float64Array,\n [GL.FLOAT]: Float32Array,\n [GL.UNSIGNED_SHORT]: Uint16Array,\n [GL.UNSIGNED_INT]: Uint32Array,\n [GL.UNSIGNED_BYTE]: Uint8Array,\n [GL.BYTE]: Int8Array,\n [GL.SHORT]: Int16Array,\n [GL.INT]: Int32Array\n};\ntype GlTypeMap = {\n [index: string]: number;\n};\nconst NAME_TO_GL_TYPE: GlTypeMap = {\n DOUBLE: GL.DOUBLE,\n FLOAT: GL.FLOAT,\n UNSIGNED_SHORT: GL.UNSIGNED_SHORT,\n UNSIGNED_INT: GL.UNSIGNED_INT,\n UNSIGNED_BYTE: GL.UNSIGNED_BYTE,\n BYTE: GL.BYTE,\n SHORT: GL.SHORT,\n INT: GL.INT\n};\nconst ERR_TYPE_CONVERSION = 'Failed to convert GL type';\n// Converts TYPED ARRAYS to corresponding GL constant\n// Used to auto deduce gl parameter types\nexport default class GLType {\n // Signature: fromTypedArray(new Uint8Array())\n // Signature: fromTypedArray(Uint8Array)\n /**\n * Returns the size, in bytes, of the corresponding datatype\n * @param arrayOrType\n * @returns glType a a string\n */\n static fromTypedArray(arrayOrType: TypedArray | Function): string {\n // If typed array, look up constructor\n arrayOrType = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;\n for (const glType in GL_TYPE_TO_ARRAY_TYPE) {\n const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];\n if (ArrayType === arrayOrType) {\n return glType;\n }\n }\n throw new Error(ERR_TYPE_CONVERSION);\n }\n /**\n * Extracts name for glType from array NAME_TO_GL_TYPE\n * @param name\n * @returns glType as a number\n */\n static fromName(name: string): number {\n const glType = NAME_TO_GL_TYPE[name];\n if (!glType) {\n throw new Error(ERR_TYPE_CONVERSION);\n }\n return glType;\n }\n // Converts GL constant to corresponding typed array type\n // eslint-disable-next-line complexity\n static getArrayType(glType: number) {\n switch (glType) {\n /*eslint-disable*/\n // @ts-ignore\n case GL.UNSIGNED_SHORT_5_6_5:\n // @ts-ignore\n case GL.UNSIGNED_SHORT_4_4_4_4:\n // @ts-ignore\n case GL.UNSIGNED_SHORT_5_5_5_1:\n /* eslint-enable*/\n return Uint16Array;\n default:\n const ArrayType = GL_TYPE_TO_ARRAY_TYPE[glType];\n if (!ArrayType) {\n throw new Error(ERR_TYPE_CONVERSION);\n }\n return ArrayType;\n }\n }\n /**\n * Returns the size in bytes of one element of the provided WebGL type\n * @param glType\n * @returns size of glType\n */\n static getByteSize(glType: number): number {\n const ArrayType = GLType.getArrayType(glType);\n return ArrayType.BYTES_PER_ELEMENT;\n }\n /**\n * Returns `true` if `glType` is a valid WebGL data type.\n * @param glType\n * @returns boolean\n */\n static validate(glType: number): boolean {\n return Boolean(GLType.getArrayType(glType));\n }\n /**\n * Creates a typed view of an array of bytes\n * @param glType The type of typed array (ArrayBuffer view) to create\n * @param buffer The buffer storage to use for the view.\n * @param byteOffset The offset, in bytes, to the first element in the view\n * @param length The number of elements in the view. Defaults to buffer length\n * @returns A typed array view of the buffer\n */\n static createTypedArray(\n glType: number,\n buffer: TypedArray,\n byteOffset: number = 0,\n length?: number\n ): TypedArray {\n if (length === undefined) {\n length = (buffer.byteLength - byteOffset) / GLType.getByteSize(glType);\n }\n const ArrayType = GLType.getArrayType(glType);\n return new ArrayType(buffer, byteOffset, length);\n }\n}\n"],"file":"gl-type.js"}
@@ -1,14 +1,4 @@
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');
1
+ export default function isGeometry(geometry) {
2
+ return geometry && typeof geometry === 'object' && geometry.mode && geometry.attributes && typeof geometry.attributes === 'object';
13
3
  }
14
- exports.default = isGeometry;
4
+ //# sourceMappingURL=is-geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/geometry/is-geometry.ts"],"names":["isGeometry","geometry","mode","attributes"],"mappings":"AAIA,eAAe,SAASA,UAAT,CAAoBC,QAApB,EAA4C;AACzD,SACEA,QAAQ,IACR,OAAOA,QAAP,KAAoB,QADpB,IAEAA,QAAQ,CAACC,IAFT,IAGAD,QAAQ,CAACE,UAHT,IAIA,OAAOF,QAAQ,CAACE,UAAhB,KAA+B,QALjC;AAOD","sourcesContent":["/**\n * Checking if it is geometry\n * @param geometry\n */\nexport default function isGeometry(geometry: any): boolean {\n return (\n geometry &&\n typeof geometry === 'object' &&\n geometry.mode &&\n geometry.attributes &&\n typeof geometry.attributes === 'object'\n );\n}\n"],"file":"is-geometry.js"}
@@ -1,19 +1,13 @@
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;
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];
17
8
  }
9
+
10
+ yield element;
11
+ }
18
12
  }
19
- exports.makeAttributeIterator = makeAttributeIterator;
13
+ //# sourceMappingURL=attribute-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/geometry/iterators/attribute-iterator.ts"],"names":["makeAttributeIterator","values","size","ArrayType","constructor","element","i","length","j"],"mappings":"AAKA,OAAO,UAAUA,qBAAV,CAAgCC,MAAhC,EAA6CC,IAA7C,EAA0E;AAC/E,QAAMC,SAAS,GAAGF,MAAM,CAACG,WAAzB;AACA,QAAMC,OAAO,GAAG,IAAIF,SAAJ,CAAcD,IAAd,CAAhB;;AACA,OAAK,IAAII,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGL,MAAM,CAACM,MAA3B,EAAmCD,CAAC,IAAIJ,IAAxC,EAA8C;AAC5C,SAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,IAApB,EAA0BM,CAAC,EAA3B,EAA+B;AAC7BH,MAAAA,OAAO,CAACG,CAAD,CAAP,GAAaH,OAAO,CAACC,CAAC,GAAGE,CAAL,CAApB;AACD;;AACD,UAAMH,OAAN;AACD;AACF","sourcesContent":["/**\n * Iterates over a single attribute\n * NOTE: For performance, re-yields the same modified element\n * @param param0\n */\nexport function* makeAttributeIterator(values: any, size: number): Iterable<any> {\n const ArrayType = values.constructor;\n const element = new ArrayType(size);\n for (let i = 0; i < values.length; i += size) {\n for (let j = 0; j < size; j++) {\n element[j] = element[i + j];\n }\n yield element;\n }\n}\n"],"file":"attribute-iterator.js"}
@@ -1,88 +1,82 @@
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
18
- if (indices) {
19
- indices = indices.values || indices.value || indices;
20
- }
21
- // Autodeduce length from indices
22
- if (end === undefined) {
23
- end = indices ? indices.length : start;
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);
24
69
  }
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;
70
+
71
+ 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
+ }
86
77
  }
78
+
79
+ yield info;
80
+ }
87
81
  }
88
- exports.makePrimitiveIterator = makePrimitiveIterator;
82
+ //# sourceMappingURL=primitive-iterator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/geometry/iterators/primitive-iterator.ts"],"names":["GL","getPrimitiveModeType","assert","makePrimitiveIterator","indices","attributes","mode","start","end","values","value","undefined","length","info","type","i1","i2","i3","i","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN"],"mappings":"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","sourcesContent":["import {GL} from '../constants';\nimport {getPrimitiveModeType} from '../primitives/modes';\nimport {assert} from '@loaders.gl/loader-utils';\n\n/**\n * Iteration info for making primitive iterator\n */\ntype Information = {\n attributes: object;\n type: number | void;\n i1: number;\n i2: number;\n i3: number;\n primitiveIndex?: object;\n};\n/**\n * Will iterate over each primitive, expanding (dereferencing) indices\n * @param indices\n * @param attributes\n * @param mode\n * @param start\n * @param end\n */\n// eslint-disable-next-line complexity\nexport function* makePrimitiveIterator(\n indices?: any,\n attributes: object = {},\n mode?: number,\n start = 0,\n end?: number\n): Iterable<{attributes: object; type: number; i1: number; i2: number; i3: number}> {\n // support indices being an object with a values array\n if (indices) {\n indices = indices.values || indices.value || indices;\n }\n\n // Autodeduce length from indices\n if (end === undefined) {\n end = indices ? indices.length : start;\n }\n\n // iteration info\n const info: Information = {\n attributes,\n type: getPrimitiveModeType(mode),\n i1: 0,\n i2: 0,\n i3: 0\n };\n\n let i = start;\n // @ts-ignore\n while (i < end) {\n switch (mode) {\n case GL.POINTS: // draw single points.\n info.i1 = i;\n i += 1;\n break;\n case GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.\n info.i1 = i;\n info.i2 = i + 1;\n i += 2;\n break;\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n info.i1 = i;\n info.i2 = i + 1;\n i += 1;\n break;\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n info.i1 = i;\n info.i2 = i + 1;\n i += 1;\n break;\n case GL.TRIANGLES: // draw triangles. Each set of three vertices creates a separate triangle.\n info.i1 = i;\n info.i2 = i + 1;\n info.i3 = i + 2;\n i += 3;\n break;\n case GL.TRIANGLE_STRIP: // draw a connected group of triangles.\n info.i1 = i;\n info.i2 = i + 1;\n i += 1;\n break;\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n info.i1 = 1;\n info.i2 = i;\n info.i3 = i + 1;\n i += 1;\n break;\n\n default:\n assert(false);\n }\n\n // if indices are present, lookup actual vertices in indices\n if (indices) {\n if ('i1' in info) {\n info.i1 = indices[info.i1];\n info.i2 = indices[info.i2];\n info.i3 = indices[info.i3];\n }\n }\n // @ts-ignore\n yield info;\n }\n}\n"],"file":"primitive-iterator.js"}
@@ -1,71 +1,58 @@
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
- /**
1
+ import { GL } from '../constants';
2
+ export function getPrimitiveModeType(mode) {
3
+ switch (mode) {
4
+ case GL.POINTS:
5
+ return GL.POINTS;
8
6
 
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
- }
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
+ }
28
20
  }
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
- }
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
+ }
44
32
  }
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
- }
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
+ }
70
57
  }
71
- exports.getPrimitiveModeExpandedLength = getPrimitiveModeExpandedLength;
58
+ //# sourceMappingURL=modes.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/geometry/primitives/modes.ts"],"names":["getPrimitiveModeType","mode","GL","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Error","isPrimitiveModeExpandable","getPrimitiveModeExpandedLength","length"],"mappings":";;;;;;;;;AAAA;;AAUO,SAASA,oBAAT,CAA8BC,IAA9B,EAAqD;AAC1D,UAAQA,IAAR;AACE,SAAKC,cAAGC,MAAR;AACE,aAAOD,cAAGC,MAAV;;AACF,SAAKD,cAAGE,KAAR;AACA,SAAKF,cAAGG,UAAR;AACA,SAAKH,cAAGI,SAAR;AACE,aAAOJ,cAAGE,KAAV;;AACF,SAAKF,cAAGK,SAAR;AACA,SAAKL,cAAGM,cAAR;AACA,SAAKN,cAAGO,YAAR;AACE,aAAOP,cAAGK,SAAV;;AACF;AACE,YAAM,IAAIG,KAAJ,CAAU,wBAAV,CAAN;AAZJ;AAcD;;AAKM,SAASC,yBAAT,CAAmCV,IAAnC,EAA0D;AAC/D,UAAQA,IAAR;AACE,SAAKC,cAAGG,UAAR;AACA,SAAKH,cAAGI,SAAR;AACA,SAAKJ,cAAGM,cAAR;AACA,SAAKN,cAAGO,YAAR;AACE,aAAO,IAAP;;AACF;AACE,aAAO,KAAP;AAPJ;AASD;;AAOM,SAASG,8BAAT,CAAwCX,IAAxC,EAAsDY,MAAtD,EAA8E;AACnF,UAAQZ,IAAR;AACE,SAAKC,cAAGC,MAAR;AACE,aAAOU,MAAP;;AACF,SAAKX,cAAGE,KAAR;AACE,aAAOS,MAAP;;AACF,SAAKX,cAAGG,UAAR;AACE,aAAOQ,MAAP;;AACF,SAAKX,cAAGI,SAAR;AACE,aAAOO,MAAM,GAAG,CAAhB;;AACF,SAAKX,cAAGK,SAAR;AACE,aAAOM,MAAP;;AACF,SAAKX,cAAGM,cAAR;AACA,SAAKN,cAAGO,YAAR;AACE,aAAO,CAACI,MAAM,GAAG,CAAV,IAAe,CAAtB;;AACF;AACE,YAAM,IAAIH,KAAJ,CAAU,gBAAV,CAAN;AAfJ;AAiBD","sourcesContent":["import {GL} from '../constants';\n\n/**\n * Different methods of working with geometries depending on glType\n /**\n\n/**\n * @param mode\n * @returns draw points | lines | triangles\n */\nexport function getPrimitiveModeType(mode?: number): number {\n switch (mode) {\n case GL.POINTS: // draw single points.\n return GL.POINTS;\n case GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n return GL.LINES;\n case GL.TRIANGLES:\n case GL.TRIANGLE_STRIP:\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n return GL.TRIANGLES;\n default:\n throw new Error('Unknown primitive mode');\n }\n}\n/**\n * @param mode\n * @returns true | false\n */\nexport function isPrimitiveModeExpandable(mode: number): boolean {\n switch (mode) {\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n case GL.TRIANGLE_STRIP: // draw a connected group of triangles.\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n return true;\n default:\n return false;\n }\n}\n/**\n * Returns new length depends on glType\n * @param mode\n * @param length\n * @returns new length\n */\nexport function getPrimitiveModeExpandedLength(mode: number, length: number): number {\n switch (mode) {\n case GL.POINTS: // draw single points.\n return length;\n case GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.\n return length;\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n return length;\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n return length + 1;\n case GL.TRIANGLES: // draw triangles. Each set of three vertices creates a separate triangle.\n return length;\n case GL.TRIANGLE_STRIP: // draw a connected group of triangles.\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n return (length - 2) * 3;\n default:\n throw new Error('Unknown length');\n }\n}\n"],"file":"modes.js"}
1
+ {"version":3,"sources":["../../../src/geometry/primitives/modes.ts"],"names":["GL","getPrimitiveModeType","mode","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Error","isPrimitiveModeExpandable","getPrimitiveModeExpandedLength","length"],"mappings":"AAAA,SAAQA,EAAR,QAAiB,cAAjB;AAUA,OAAO,SAASC,oBAAT,CAA8BC,IAA9B,EAAqD;AAC1D,UAAQA,IAAR;AACE,SAAKF,EAAE,CAACG,MAAR;AACE,aAAOH,EAAE,CAACG,MAAV;;AACF,SAAKH,EAAE,CAACI,KAAR;AACA,SAAKJ,EAAE,CAACK,UAAR;AACA,SAAKL,EAAE,CAACM,SAAR;AACE,aAAON,EAAE,CAACI,KAAV;;AACF,SAAKJ,EAAE,CAACO,SAAR;AACA,SAAKP,EAAE,CAACQ,cAAR;AACA,SAAKR,EAAE,CAACS,YAAR;AACE,aAAOT,EAAE,CAACO,SAAV;;AACF;AACE,YAAM,IAAIG,KAAJ,CAAU,wBAAV,CAAN;AAZJ;AAcD;AAKD,OAAO,SAASC,yBAAT,CAAmCT,IAAnC,EAA0D;AAC/D,UAAQA,IAAR;AACE,SAAKF,EAAE,CAACK,UAAR;AACA,SAAKL,EAAE,CAACM,SAAR;AACA,SAAKN,EAAE,CAACQ,cAAR;AACA,SAAKR,EAAE,CAACS,YAAR;AACE,aAAO,IAAP;;AACF;AACE,aAAO,KAAP;AAPJ;AASD;AAOD,OAAO,SAASG,8BAAT,CAAwCV,IAAxC,EAAsDW,MAAtD,EAA8E;AACnF,UAAQX,IAAR;AACE,SAAKF,EAAE,CAACG,MAAR;AACE,aAAOU,MAAP;;AACF,SAAKb,EAAE,CAACI,KAAR;AACE,aAAOS,MAAP;;AACF,SAAKb,EAAE,CAACK,UAAR;AACE,aAAOQ,MAAP;;AACF,SAAKb,EAAE,CAACM,SAAR;AACE,aAAOO,MAAM,GAAG,CAAhB;;AACF,SAAKb,EAAE,CAACO,SAAR;AACE,aAAOM,MAAP;;AACF,SAAKb,EAAE,CAACQ,cAAR;AACA,SAAKR,EAAE,CAACS,YAAR;AACE,aAAO,CAACI,MAAM,GAAG,CAAV,IAAe,CAAtB;;AACF;AACE,YAAM,IAAIH,KAAJ,CAAU,gBAAV,CAAN;AAfJ;AAiBD","sourcesContent":["import {GL} from '../constants';\n\n/**\n * Different methods of working with geometries depending on glType\n /**\n\n/**\n * @param mode\n * @returns draw points | lines | triangles\n */\nexport function getPrimitiveModeType(mode?: number): number {\n switch (mode) {\n case GL.POINTS: // draw single points.\n return GL.POINTS;\n case GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n return GL.LINES;\n case GL.TRIANGLES:\n case GL.TRIANGLE_STRIP:\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n return GL.TRIANGLES;\n default:\n throw new Error('Unknown primitive mode');\n }\n}\n/**\n * @param mode\n * @returns true | false\n */\nexport function isPrimitiveModeExpandable(mode: number): boolean {\n switch (mode) {\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n case GL.TRIANGLE_STRIP: // draw a connected group of triangles.\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n return true;\n default:\n return false;\n }\n}\n/**\n * Returns new length depends on glType\n * @param mode\n * @param length\n * @returns new length\n */\nexport function getPrimitiveModeExpandedLength(mode: number, length: number): number {\n switch (mode) {\n case GL.POINTS: // draw single points.\n return length;\n case GL.LINES: // draw lines. Each set of two vertices is treated as a separate line segment.\n return length;\n case GL.LINE_STRIP: // draw lines. Each vertex connects to the one after it.\n return length;\n case GL.LINE_LOOP: // draw a connected group of line segments from the first vertex to the last\n return length + 1;\n case GL.TRIANGLES: // draw triangles. Each set of three vertices creates a separate triangle.\n return length;\n case GL.TRIANGLE_STRIP: // draw a connected group of triangles.\n case GL.TRIANGLE_FAN: // draw a connected group of triangles.\n return (length - 2) * 3;\n default:\n throw new Error('Unknown length');\n }\n}\n"],"file":"modes.js"}
@@ -1,25 +1,22 @@
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;
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];
13
17
  }
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;
18
+ }
19
+
20
+ return buffer;
24
21
  }
25
- exports.concatTypedArrays = concatTypedArrays;
22
+ //# sourceMappingURL=typed-array-utils.js.map