@loaders.gl/math 3.4.0-alpha.1 → 3.4.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es5/geometry/attributes/compute-bounding-box.js +1 -1
- package/dist/es5/geometry/attributes/compute-bounding-box.js.map +1 -1
- package/dist/es5/geometry/attributes/compute-bounding-sphere.js +0 -1
- package/dist/es5/geometry/attributes/compute-tangents.js +0 -1
- package/dist/es5/geometry/attributes/compute-vertex-normals.js +1 -1
- package/dist/es5/geometry/attributes/compute-vertex-normals.js.map +1 -1
- package/dist/es5/geometry/attributes/convert-to-non-indexed.js +1 -1
- package/dist/es5/geometry/attributes/convert-to-non-indexed.js.map +1 -1
- package/dist/es5/geometry/attributes/get-attribute-from-geometry.js +0 -3
- package/dist/es5/geometry/attributes/get-attribute-from-geometry.js.map +1 -1
- package/dist/es5/geometry/attributes/normalize.js +0 -1
- package/dist/es5/geometry/attributes/normalize.js.map +1 -1
- package/dist/es5/geometry/colors/rgb565.js +0 -1
- package/dist/es5/geometry/colors/rgb565.js.map +1 -1
- package/dist/es5/geometry/compression/attribute-compression.js +0 -19
- package/dist/es5/geometry/compression/attribute-compression.js.map +1 -1
- package/dist/es5/geometry/constants.js +0 -2
- package/dist/es5/geometry/constants.js.map +1 -1
- package/dist/es5/geometry/gl/gl-type.js +6 -12
- package/dist/es5/geometry/gl/gl-type.js.map +1 -1
- package/dist/es5/geometry/is-geometry.js.map +1 -1
- package/dist/es5/geometry/iterators/attribute-iterator.js +21 -23
- package/dist/es5/geometry/iterators/attribute-iterator.js.map +1 -1
- package/dist/es5/geometry/iterators/primitive-iterator.js +33 -42
- package/dist/es5/geometry/iterators/primitive-iterator.js.map +1 -1
- package/dist/es5/geometry/primitives/modes.js.map +1 -1
- package/dist/es5/geometry/typed-arrays/typed-array-utils.js.map +1 -1
- package/dist/es5/geometry/utils/assert.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/utils/assert.js.map +1 -1
- package/dist/esm/geometry/attributes/compute-bounding-box.js +0 -1
- package/dist/esm/geometry/attributes/compute-bounding-box.js.map +1 -1
- package/dist/esm/geometry/attributes/compute-vertex-normals.js.map +1 -1
- package/dist/esm/geometry/attributes/convert-to-non-indexed.js +0 -1
- package/dist/esm/geometry/attributes/convert-to-non-indexed.js.map +1 -1
- package/dist/esm/geometry/attributes/get-attribute-from-geometry.js +0 -3
- package/dist/esm/geometry/attributes/get-attribute-from-geometry.js.map +1 -1
- package/dist/esm/geometry/attributes/normalize.js +0 -2
- package/dist/esm/geometry/attributes/normalize.js.map +1 -1
- package/dist/esm/geometry/colors/rgb565.js +0 -2
- package/dist/esm/geometry/colors/rgb565.js.map +1 -1
- package/dist/esm/geometry/compression/attribute-compression.js +0 -20
- package/dist/esm/geometry/compression/attribute-compression.js.map +1 -1
- package/dist/esm/geometry/constants.js +0 -4
- package/dist/esm/geometry/constants.js.map +1 -1
- package/dist/esm/geometry/gl/gl-type.js.map +1 -1
- package/dist/esm/geometry/is-geometry.js +0 -1
- package/dist/esm/geometry/is-geometry.js.map +1 -1
- package/dist/esm/geometry/iterators/attribute-iterator.js +0 -1
- package/dist/esm/geometry/iterators/attribute-iterator.js.map +1 -1
- package/dist/esm/geometry/iterators/primitive-iterator.js +64 -66
- package/dist/esm/geometry/iterators/primitive-iterator.js.map +1 -1
- package/dist/esm/geometry/primitives/modes.js +0 -1
- package/dist/esm/geometry/primitives/modes.js.map +1 -1
- package/dist/esm/geometry/typed-arrays/typed-array-utils.js +0 -1
- package/dist/esm/geometry/typed-arrays/typed-array-utils.js.map +1 -1
- package/dist/esm/geometry/utils/assert.js +0 -1
- package/dist/esm/geometry/utils/assert.js.map +1 -1
- package/dist/esm/index.js +0 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/assert.js +0 -1
- package/dist/esm/utils/assert.js.map +1 -1
- package/dist/geometry/attributes/compute-bounding-sphere.js +1 -1
- package/package.json +4 -4
|
@@ -10,30 +10,28 @@ var _marked = _regenerator.default.mark(makeAttributeIterator);
|
|
|
10
10
|
function makeAttributeIterator(values, size) {
|
|
11
11
|
var ArrayType, element, i, j;
|
|
12
12
|
return _regenerator.default.wrap(function makeAttributeIterator$(_context) {
|
|
13
|
-
while (1) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
_context.next = 10;
|
|
22
|
-
break;
|
|
23
|
-
}
|
|
24
|
-
for (j = 0; j < size; j++) {
|
|
25
|
-
element[j] = element[i + j];
|
|
26
|
-
}
|
|
27
|
-
_context.next = 7;
|
|
28
|
-
return element;
|
|
29
|
-
case 7:
|
|
30
|
-
i += size;
|
|
31
|
-
_context.next = 3;
|
|
13
|
+
while (1) switch (_context.prev = _context.next) {
|
|
14
|
+
case 0:
|
|
15
|
+
ArrayType = values.constructor;
|
|
16
|
+
element = new ArrayType(size);
|
|
17
|
+
i = 0;
|
|
18
|
+
case 3:
|
|
19
|
+
if (!(i < values.length)) {
|
|
20
|
+
_context.next = 10;
|
|
32
21
|
break;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
}
|
|
23
|
+
for (j = 0; j < size; j++) {
|
|
24
|
+
element[j] = element[i + j];
|
|
25
|
+
}
|
|
26
|
+
_context.next = 7;
|
|
27
|
+
return element;
|
|
28
|
+
case 7:
|
|
29
|
+
i += size;
|
|
30
|
+
_context.next = 3;
|
|
31
|
+
break;
|
|
32
|
+
case 10:
|
|
33
|
+
case "end":
|
|
34
|
+
return _context.stop();
|
|
37
35
|
}
|
|
38
36
|
}, _marked);
|
|
39
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attribute-iterator.js","names":["makeAttributeIterator","values","size","ArrayType","
|
|
1
|
+
{"version":3,"file":"attribute-iterator.js","names":["makeAttributeIterator","values","size","ArrayType","element","i","j","_regenerator","default","wrap","makeAttributeIterator$","_context","prev","next","constructor","length","stop","_marked"],"sources":["../../../../src/geometry/iterators/attribute-iterator.ts"],"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"],"mappings":";;;;;;;;wCAKiBA,qBAAqB;AAA/B,SAAUA,qBAAqBA,CAACC,MAAW,EAAEC,IAAY;EAAA,IAAAC,SAAA,EAAAC,OAAA,EAAAC,CAAA,EAAAC,CAAA;EAAA,OAAAC,YAAA,CAAAC,OAAA,CAAAC,IAAA,UAAAC,uBAAAC,QAAA;IAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;MAAA;QACxDV,SAAS,GAAGF,MAAM,CAACa,WAAW;QAC9BV,OAAO,GAAG,IAAID,SAAS,CAACD,IAAI,CAAC;QAC1BG,CAAC,GAAG,CAAC;MAAA;QAAA,MAAEA,CAAC,GAAGJ,MAAM,CAACc,MAAM;UAAAJ,QAAA,CAAAE,IAAA;UAAA;QAAA;QAC/B,KAASP,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,IAAI,EAAEI,CAAC,EAAE,EAAE;UAC7BF,OAAO,CAACE,CAAC,CAAC,GAAGF,OAAO,CAACC,CAAC,GAAGC,CAAC,CAAC;QAC7B;QAACK,QAAA,CAAAE,IAAA;QACD,OAAMT,OAAO;MAAA;QAJoBC,CAAC,IAAIH,IAAI;QAAAS,QAAA,CAAAE,IAAA;QAAA;MAAA;MAAA;QAAA,OAAAF,QAAA,CAAAK,IAAA;IAAA;EAAA,GAAAC,OAAA;AAAA"}
|
|
@@ -9,31 +9,22 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
9
9
|
var _constants = require("../constants");
|
|
10
10
|
var _modes = require("../primitives/modes");
|
|
11
11
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
12
|
-
var _marked = _regenerator.default.mark(makePrimitiveIterator);
|
|
13
12
|
function makePrimitiveIterator(indices) {
|
|
14
|
-
var attributes
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
i
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
while (1) {
|
|
23
|
-
switch (_context.prev = _context.next) {
|
|
13
|
+
var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
14
|
+
var mode = arguments.length > 2 ? arguments[2] : undefined;
|
|
15
|
+
var start = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
|
|
16
|
+
var end = arguments.length > 4 ? arguments[4] : undefined;
|
|
17
|
+
return _regenerator.default.mark(function _callee() {
|
|
18
|
+
var info, i;
|
|
19
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
20
|
+
while (1) switch (_context.prev = _context.next) {
|
|
24
21
|
case 0:
|
|
25
|
-
attributes = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
|
|
26
|
-
mode = _args.length > 2 ? _args[2] : undefined;
|
|
27
|
-
start = _args.length > 3 && _args[3] !== undefined ? _args[3] : 0;
|
|
28
|
-
end = _args.length > 4 ? _args[4] : undefined;
|
|
29
22
|
if (indices) {
|
|
30
23
|
indices = indices.values || indices.value || indices;
|
|
31
24
|
}
|
|
32
|
-
|
|
33
25
|
if (end === undefined) {
|
|
34
26
|
end = indices ? indices.length : start;
|
|
35
27
|
}
|
|
36
|
-
|
|
37
28
|
info = {
|
|
38
29
|
attributes: attributes,
|
|
39
30
|
type: (0, _modes.getPrimitiveModeType)(mode),
|
|
@@ -42,53 +33,53 @@ function makePrimitiveIterator(indices) {
|
|
|
42
33
|
i3: 0
|
|
43
34
|
};
|
|
44
35
|
i = start;
|
|
45
|
-
case
|
|
36
|
+
case 4:
|
|
46
37
|
if (!(i < end)) {
|
|
47
|
-
_context.next =
|
|
38
|
+
_context.next = 43;
|
|
48
39
|
break;
|
|
49
40
|
}
|
|
50
41
|
_context.t0 = mode;
|
|
51
|
-
_context.next = _context.t0 === _constants.GL.POINTS ?
|
|
42
|
+
_context.next = _context.t0 === _constants.GL.POINTS ? 8 : _context.t0 === _constants.GL.LINES ? 11 : _context.t0 === _constants.GL.LINE_STRIP ? 15 : _context.t0 === _constants.GL.LINE_LOOP ? 19 : _context.t0 === _constants.GL.TRIANGLES ? 23 : _context.t0 === _constants.GL.TRIANGLE_STRIP ? 28 : _context.t0 === _constants.GL.TRIANGLE_FAN ? 32 : 37;
|
|
52
43
|
break;
|
|
53
|
-
case
|
|
44
|
+
case 8:
|
|
54
45
|
info.i1 = i;
|
|
55
46
|
i += 1;
|
|
56
|
-
return _context.abrupt("break",
|
|
57
|
-
case
|
|
47
|
+
return _context.abrupt("break", 38);
|
|
48
|
+
case 11:
|
|
58
49
|
info.i1 = i;
|
|
59
50
|
info.i2 = i + 1;
|
|
60
51
|
i += 2;
|
|
61
|
-
return _context.abrupt("break",
|
|
62
|
-
case
|
|
52
|
+
return _context.abrupt("break", 38);
|
|
53
|
+
case 15:
|
|
63
54
|
info.i1 = i;
|
|
64
55
|
info.i2 = i + 1;
|
|
65
56
|
i += 1;
|
|
66
|
-
return _context.abrupt("break",
|
|
67
|
-
case
|
|
57
|
+
return _context.abrupt("break", 38);
|
|
58
|
+
case 19:
|
|
68
59
|
info.i1 = i;
|
|
69
60
|
info.i2 = i + 1;
|
|
70
61
|
i += 1;
|
|
71
|
-
return _context.abrupt("break",
|
|
72
|
-
case
|
|
62
|
+
return _context.abrupt("break", 38);
|
|
63
|
+
case 23:
|
|
73
64
|
info.i1 = i;
|
|
74
65
|
info.i2 = i + 1;
|
|
75
66
|
info.i3 = i + 2;
|
|
76
67
|
i += 3;
|
|
77
|
-
return _context.abrupt("break",
|
|
78
|
-
case
|
|
68
|
+
return _context.abrupt("break", 38);
|
|
69
|
+
case 28:
|
|
79
70
|
info.i1 = i;
|
|
80
71
|
info.i2 = i + 1;
|
|
81
72
|
i += 1;
|
|
82
|
-
return _context.abrupt("break",
|
|
83
|
-
case
|
|
73
|
+
return _context.abrupt("break", 38);
|
|
74
|
+
case 32:
|
|
84
75
|
info.i1 = 1;
|
|
85
76
|
info.i2 = i;
|
|
86
77
|
info.i3 = i + 1;
|
|
87
78
|
i += 1;
|
|
88
|
-
return _context.abrupt("break",
|
|
89
|
-
case
|
|
79
|
+
return _context.abrupt("break", 38);
|
|
80
|
+
case 37:
|
|
90
81
|
(0, _loaderUtils.assert)(false);
|
|
91
|
-
case
|
|
82
|
+
case 38:
|
|
92
83
|
if (indices) {
|
|
93
84
|
if ('i1' in info) {
|
|
94
85
|
info.i1 = indices[info.i1];
|
|
@@ -96,16 +87,16 @@ function makePrimitiveIterator(indices) {
|
|
|
96
87
|
info.i3 = indices[info.i3];
|
|
97
88
|
}
|
|
98
89
|
}
|
|
99
|
-
_context.next =
|
|
90
|
+
_context.next = 41;
|
|
100
91
|
return info;
|
|
101
|
-
case
|
|
102
|
-
_context.next =
|
|
92
|
+
case 41:
|
|
93
|
+
_context.next = 4;
|
|
103
94
|
break;
|
|
104
|
-
case
|
|
95
|
+
case 43:
|
|
105
96
|
case "end":
|
|
106
97
|
return _context.stop();
|
|
107
98
|
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
99
|
+
}, _callee);
|
|
100
|
+
})();
|
|
110
101
|
}
|
|
111
102
|
//# sourceMappingURL=primitive-iterator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitive-iterator.js","names":["makePrimitiveIterator","indices","attributes","mode","start","end","
|
|
1
|
+
{"version":3,"file":"primitive-iterator.js","names":["_constants","require","_modes","_loaderUtils","makePrimitiveIterator","indices","attributes","arguments","length","undefined","mode","start","end","_regenerator","default","mark","_callee","info","i","wrap","_callee$","_context","prev","next","values","value","type","getPrimitiveModeType","i1","i2","i3","t0","GL","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","abrupt","assert","stop"],"sources":["../../../../src/geometry/iterators/primitive-iterator.ts"],"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"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAsBO,SAAUG,qBAAqBA,CACpCC,OAAa;EAAA,IACbC,UAAkB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IACvBG,IAAa,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IACbE,KAAK,GAAAJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAAA,IACTK,GAAY,GAAAL,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,OAAAI,YAAA,CAAAC,OAAA,CAAAC,IAAA,UAAAC,QAAA;IAAA,IAAAC,IAAA,EAAAC,CAAA;IAAA,OAAAL,YAAA,CAAAC,OAAA,CAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAGZ,IAAIlB,OAAO,EAAE;YACXA,OAAO,GAAGA,OAAO,CAACmB,MAAM,IAAInB,OAAO,CAACoB,KAAK,IAAIpB,OAAO;UACtD;UAGA,IAAIO,GAAG,KAAKH,SAAS,EAAE;YACrBG,GAAG,GAAGP,OAAO,GAAGA,OAAO,CAACG,MAAM,GAAGG,KAAK;UACxC;UAGMM,IAAiB,GAAG;YACxBX,UAAU,EAAVA,UAAU;YACVoB,IAAI,EAAE,IAAAC,2BAAoB,EAACjB,IAAI,CAAC;YAChCkB,EAAE,EAAE,CAAC;YACLC,EAAE,EAAE,CAAC;YACLC,EAAE,EAAE;UACN,CAAC;UAEGZ,CAAC,GAAGP,KAAK;QAAA;UAAA,MAENO,CAAC,GAAGN,GAAG;YAAAS,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAU,EAAA,GACJrB,IAAI;UAAAW,QAAA,CAAAE,IAAA,GAAAF,QAAA,CAAAU,EAAA,KACLC,aAAE,CAACC,MAAM,OAAAZ,QAAA,CAAAU,EAAA,KAITC,aAAE,CAACE,KAAK,QAAAb,QAAA,CAAAU,EAAA,KAKRC,aAAE,CAACG,UAAU,QAAAd,QAAA,CAAAU,EAAA,KAKbC,aAAE,CAACI,SAAS,QAAAf,QAAA,CAAAU,EAAA,KAKZC,aAAE,CAACK,SAAS,QAAAhB,QAAA,CAAAU,EAAA,KAMZC,aAAE,CAACM,cAAc,QAAAjB,QAAA,CAAAU,EAAA,KAKjBC,aAAE,CAACO,YAAY;UAAA;QAAA;UA7BlBtB,IAAI,CAACW,EAAE,GAAGV,CAAC;UACXA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAGPvB,IAAI,CAACW,EAAE,GAAGV,CAAC;UACXD,IAAI,CAACY,EAAE,GAAGX,CAAC,GAAG,CAAC;UACfA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAGPvB,IAAI,CAACW,EAAE,GAAGV,CAAC;UACXD,IAAI,CAACY,EAAE,GAAGX,CAAC,GAAG,CAAC;UACfA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAGPvB,IAAI,CAACW,EAAE,GAAGV,CAAC;UACXD,IAAI,CAACY,EAAE,GAAGX,CAAC,GAAG,CAAC;UACfA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAGPvB,IAAI,CAACW,EAAE,GAAGV,CAAC;UACXD,IAAI,CAACY,EAAE,GAAGX,CAAC,GAAG,CAAC;UACfD,IAAI,CAACa,EAAE,GAAGZ,CAAC,GAAG,CAAC;UACfA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAGPvB,IAAI,CAACW,EAAE,GAAGV,CAAC;UACXD,IAAI,CAACY,EAAE,GAAGX,CAAC,GAAG,CAAC;UACfA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAGPvB,IAAI,CAACW,EAAE,GAAG,CAAC;UACXX,IAAI,CAACY,EAAE,GAAGX,CAAC;UACXD,IAAI,CAACa,EAAE,GAAGZ,CAAC,GAAG,CAAC;UACfA,CAAC,IAAI,CAAC;UAAC,OAAAG,QAAA,CAAAmB,MAAA;QAAA;UAIP,IAAAC,mBAAM,EAAC,KAAK,CAAC;QAAC;UAIlB,IAAIpC,OAAO,EAAE;YACX,IAAI,IAAI,IAAIY,IAAI,EAAE;cAChBA,IAAI,CAACW,EAAE,GAAGvB,OAAO,CAACY,IAAI,CAACW,EAAE,CAAC;cAC1BX,IAAI,CAACY,EAAE,GAAGxB,OAAO,CAACY,IAAI,CAACY,EAAE,CAAC;cAC1BZ,IAAI,CAACa,EAAE,GAAGzB,OAAO,CAACY,IAAI,CAACa,EAAE,CAAC;YAC5B;UACF;UAACT,QAAA,CAAAE,IAAA;UAED,OAAMN,IAAI;QAAA;UAAAI,QAAA,CAAAE,IAAA;UAAA;QAAA;QAAA;UAAA,OAAAF,QAAA,CAAAqB,IAAA;MAAA;IAAA,GAAA1B,OAAA;EAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modes.js","names":["getPrimitiveModeType","mode","GL","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Error","isPrimitiveModeExpandable","getPrimitiveModeExpandedLength","length"],"sources":["../../../../src/geometry/primitives/modes.ts"],"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"],"mappings":";;;;;;;;AAAA;AAUO,
|
|
1
|
+
{"version":3,"file":"modes.js","names":["_constants","require","getPrimitiveModeType","mode","GL","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN","Error","isPrimitiveModeExpandable","getPrimitiveModeExpandedLength","length"],"sources":["../../../../src/geometry/primitives/modes.ts"],"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"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAUO,SAASC,oBAAoBA,CAACC,IAAa,EAAU;EAC1D,QAAQA,IAAI;IACV,KAAKC,aAAE,CAACC,MAAM;MACZ,OAAOD,aAAE,CAACC,MAAM;IAClB,KAAKD,aAAE,CAACE,KAAK;IACb,KAAKF,aAAE,CAACG,UAAU;IAClB,KAAKH,aAAE,CAACI,SAAS;MACf,OAAOJ,aAAE,CAACE,KAAK;IACjB,KAAKF,aAAE,CAACK,SAAS;IACjB,KAAKL,aAAE,CAACM,cAAc;IACtB,KAAKN,aAAE,CAACO,YAAY;MAClB,OAAOP,aAAE,CAACK,SAAS;IACrB;MACE,MAAM,IAAIG,KAAK,CAAC,wBAAwB,CAAC;EAAC;AAEhD;AAKO,SAASC,yBAAyBA,CAACV,IAAY,EAAW;EAC/D,QAAQA,IAAI;IACV,KAAKC,aAAE,CAACG,UAAU;IAClB,KAAKH,aAAE,CAACI,SAAS;IACjB,KAAKJ,aAAE,CAACM,cAAc;IACtB,KAAKN,aAAE,CAACO,YAAY;MAClB,OAAO,IAAI;IACb;MACE,OAAO,KAAK;EAAC;AAEnB;AAOO,SAASG,8BAA8BA,CAACX,IAAY,EAAEY,MAAc,EAAU;EACnF,QAAQZ,IAAI;IACV,KAAKC,aAAE,CAACC,MAAM;MACZ,OAAOU,MAAM;IACf,KAAKX,aAAE,CAACE,KAAK;MACX,OAAOS,MAAM;IACf,KAAKX,aAAE,CAACG,UAAU;MAChB,OAAOQ,MAAM;IACf,KAAKX,aAAE,CAACI,SAAS;MACf,OAAOO,MAAM,GAAG,CAAC;IACnB,KAAKX,aAAE,CAACK,SAAS;MACf,OAAOM,MAAM;IACf,KAAKX,aAAE,CAACM,cAAc;IACtB,KAAKN,aAAE,CAACO,YAAY;MAClB,OAAO,CAACI,MAAM,GAAG,CAAC,IAAI,CAAC;IACzB;MACE,MAAM,IAAIH,KAAK,CAAC,gBAAgB,CAAC;EAAC;AAExC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-array-utils.js","names":["concatTypedArrays","arrays","
|
|
1
|
+
{"version":3,"file":"typed-array-utils.js","names":["concatTypedArrays","arrays","arguments","length","undefined","byteLength","i","buffer","Uint8Array","byteOffset","data","j"],"sources":["../../../../src/geometry/typed-arrays/typed-array-utils.ts"],"sourcesContent":["/**\n * Concats typed arrays\n * @param arrays\n * @returns new Uint8Array\n */\nexport function concatTypedArrays(arrays: any = []): Uint8Array {\n let byteLength = 0;\n for (let i = 0; i < arrays.length; ++i) {\n byteLength += arrays[i].byteLength;\n }\n const buffer = new Uint8Array(byteLength);\n\n let byteOffset = 0;\n for (let i = 0; i < arrays.length; ++i) {\n const data = new Uint8Array(arrays[i].buffer);\n byteLength = data.length;\n for (let j = 0; j < byteLength; ++j) {\n buffer[byteOffset++] = data[j];\n }\n }\n return buffer;\n}\n"],"mappings":";;;;;;AAKO,SAASA,iBAAiBA,CAAA,EAA+B;EAAA,IAA9BC,MAAW,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAChD,IAAIG,UAAU,GAAG,CAAC;EAClB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,MAAM,CAACE,MAAM,EAAE,EAAEG,CAAC,EAAE;IACtCD,UAAU,IAAIJ,MAAM,CAACK,CAAC,CAAC,CAACD,UAAU;EACpC;EACA,IAAME,MAAM,GAAG,IAAIC,UAAU,CAACH,UAAU,CAAC;EAEzC,IAAII,UAAU,GAAG,CAAC;EAClB,KAAK,IAAIH,EAAC,GAAG,CAAC,EAAEA,EAAC,GAAGL,MAAM,CAACE,MAAM,EAAE,EAAEG,EAAC,EAAE;IACtC,IAAMI,IAAI,GAAG,IAAIF,UAAU,CAACP,MAAM,CAACK,EAAC,CAAC,CAACC,MAAM,CAAC;IAC7CF,UAAU,GAAGK,IAAI,CAACP,MAAM;IACxB,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,UAAU,EAAE,EAAEM,CAAC,EAAE;MACnCJ,MAAM,CAACE,UAAU,EAAE,CAAC,GAAGC,IAAI,CAACC,CAAC,CAAC;IAChC;EACF;EACA,OAAOJ,MAAM;AACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","names":["assert","condition","message","Error"],"sources":["../../../../src/geometry/utils/assert.ts"],"sourcesContent":["/**\n * Throws error message\n * @param condition checks if an attribute equal to condition\n * @param message error message\n */\nexport function assert(condition: any, message?: any): void {\n if (!condition) {\n throw new Error(`math.gl assertion failed. ${message}`);\n }\n}\n"],"mappings":";;;;;;AAKO,SAASA,
|
|
1
|
+
{"version":3,"file":"assert.js","names":["assert","condition","message","Error","concat"],"sources":["../../../../src/geometry/utils/assert.ts"],"sourcesContent":["/**\n * Throws error message\n * @param condition checks if an attribute equal to condition\n * @param message error message\n */\nexport function assert(condition: any, message?: any): void {\n if (!condition) {\n throw new Error(`math.gl assertion failed. ${message}`);\n }\n}\n"],"mappings":";;;;;;AAKO,SAASA,MAAMA,CAACC,SAAc,EAAEC,OAAa,EAAQ;EAC1D,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAIE,KAAK,8BAAAC,MAAA,CAA8BF,OAAO,EAAG;EACzD;AACF"}
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":["export {GL} from './geometry/constants';\n\n// GL support\nexport {GL_TYPE} from './geometry/constants';\nexport {default as GLType} from './geometry/gl/gl-type';\n\n// Geometry\nexport {default as isGeometry} from './geometry/is-geometry';\n\n// Iterators\nexport {makeAttributeIterator} from './geometry/iterators/attribute-iterator';\nexport {makePrimitiveIterator} from './geometry/iterators/primitive-iterator';\n\n// Helper methods\nexport {computeVertexNormals} from './geometry/attributes/compute-vertex-normals';\n\nexport {encodeRGB565, decodeRGB565} from './geometry/colors/rgb565';\n\n// Typed array utils\nexport {concatTypedArrays} from './geometry/typed-arrays/typed-array-utils';\n\n// Compression\nexport {\n octEncodeInRange,\n octEncode,\n octEncodeToVector4,\n octDecodeInRange,\n octDecode,\n octDecodeFromVector4,\n octPackFloat,\n octEncodeFloat,\n octDecodeFloat,\n octPack,\n octUnpack,\n compressTextureCoordinates,\n decompressTextureCoordinates,\n zigZagDeltaDecode\n} from './geometry/compression/attribute-compression';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAIA;AAGA;AAGA;AACA;AAGA;AAEA;AAGA;AAGA"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_constants","require","_glType","_interopRequireDefault","_isGeometry","_attributeIterator","_primitiveIterator","_computeVertexNormals","_rgb","_typedArrayUtils","_attributeCompression"],"sources":["../../src/index.ts"],"sourcesContent":["export {GL} from './geometry/constants';\n\n// GL support\nexport {GL_TYPE} from './geometry/constants';\nexport {default as GLType} from './geometry/gl/gl-type';\n\n// Geometry\nexport {default as isGeometry} from './geometry/is-geometry';\n\n// Iterators\nexport {makeAttributeIterator} from './geometry/iterators/attribute-iterator';\nexport {makePrimitiveIterator} from './geometry/iterators/primitive-iterator';\n\n// Helper methods\nexport {computeVertexNormals} from './geometry/attributes/compute-vertex-normals';\n\nexport {encodeRGB565, decodeRGB565} from './geometry/colors/rgb565';\n\n// Typed array utils\nexport {concatTypedArrays} from './geometry/typed-arrays/typed-array-utils';\n\n// Compression\nexport {\n octEncodeInRange,\n octEncode,\n octEncodeToVector4,\n octDecodeInRange,\n octDecode,\n octDecodeFromVector4,\n octPackFloat,\n octEncodeFloat,\n octDecodeFloat,\n octPack,\n octUnpack,\n compressTextureCoordinates,\n decompressTextureCoordinates,\n zigZagDeltaDecode\n} from './geometry/compression/attribute-compression';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AAGA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AAGA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AAGA,IAAAM,qBAAA,GAAAN,OAAA;AAEA,IAAAO,IAAA,GAAAP,OAAA;AAGA,IAAAQ,gBAAA,GAAAR,OAAA;AAGA,IAAAS,qBAAA,GAAAT,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert.js","names":["assert","condition","message","Error"],"sources":["../../../src/utils/assert.ts"],"sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition: Boolean, message?: string): void {\n if (!condition) {\n throw new Error(message || '3d-tile loader: assertion failed.');\n }\n}\n"],"mappings":";;;;;;AAGO,SAASA,
|
|
1
|
+
{"version":3,"file":"assert.js","names":["assert","condition","message","Error"],"sources":["../../../src/utils/assert.ts"],"sourcesContent":["// Replacement for the external assert method to reduce bundle size\n// Note: We don't use the second \"message\" argument in calling code,\n// so no need to support it here\nexport function assert(condition: Boolean, message?: string): void {\n if (!condition) {\n throw new Error(message || '3d-tile loader: assertion failed.');\n }\n}\n"],"mappings":";;;;;;AAGO,SAASA,MAAMA,CAACC,SAAkB,EAAEC,OAAgB,EAAQ;EACjE,IAAI,CAACD,SAAS,EAAE;IACd,MAAM,IAAIE,KAAK,CAACD,OAAO,IAAI,mCAAmC,CAAC;EACjE;AACF"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { makeAttributeIterator } from '../iterators/attribute-iterator';
|
|
2
2
|
import { assert } from '../utils/assert';
|
|
3
|
-
|
|
4
3
|
export function computeBoundingBox() {
|
|
5
4
|
let positions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
6
5
|
const min = [Number(Infinity), Number(Infinity), Number(Infinity)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute-bounding-box.js","names":["makeAttributeIterator","assert","computeBoundingBox","positions","min","Number","Infinity","max","position","x","y","z","boundingBox","validateBoundingBox","isFinite"],"sources":["../../../../src/geometry/attributes/compute-bounding-box.ts"],"sourcesContent":["import {makeAttributeIterator} from '../iterators/attribute-iterator';\nimport {assert} from '../utils/assert';\n\n/**\n * Type for Bounding Box computing\n */\ntype BoundingBox = {\n min: number[];\n max: number[];\n};\n/**\n * Getting bounding box geometry according to positions parameters\n * @param positions\n * @returns Bounding Box\n */\nexport function computeBoundingBox(positions: any = []) {\n const min = [Number(Infinity), Number(Infinity), Number(Infinity)];\n const max = [-Infinity, -Infinity, -Infinity];\n // @ts-ignore\n for (const position of makeAttributeIterator(positions)) {\n const x = position[0];\n const y = position[1];\n const z = position[2];\n\n if (x < min[0]) min[0] = x;\n if (y < min[1]) min[1] = y;\n if (z < min[2]) min[2] = z;\n\n if (x > max[0]) max[0] = x;\n if (y > max[1]) max[1] = y;\n if (z > max[2]) max[2] = z;\n }\n\n const boundingBox = {min, max};\n validateBoundingBox(boundingBox);\n return boundingBox;\n}\n\nfunction validateBoundingBox(boundingBox: BoundingBox) {\n assert(\n Number.isFinite(boundingBox.min[0]) &&\n Number.isFinite(boundingBox.min[1]) &&\n Number.isFinite(boundingBox.min[2]) &&\n Number.isFinite(boundingBox.max[0]) &&\n Number.isFinite(boundingBox.max[1]) &&\n Number.isFinite(boundingBox.max[2])\n );\n}\n"],"mappings":"AAAA,SAAQA,qBAAqB,QAAO,iCAAiC;AACrE,SAAQC,MAAM,QAAO,iBAAiB
|
|
1
|
+
{"version":3,"file":"compute-bounding-box.js","names":["makeAttributeIterator","assert","computeBoundingBox","positions","arguments","length","undefined","min","Number","Infinity","max","position","x","y","z","boundingBox","validateBoundingBox","isFinite"],"sources":["../../../../src/geometry/attributes/compute-bounding-box.ts"],"sourcesContent":["import {makeAttributeIterator} from '../iterators/attribute-iterator';\nimport {assert} from '../utils/assert';\n\n/**\n * Type for Bounding Box computing\n */\ntype BoundingBox = {\n min: number[];\n max: number[];\n};\n/**\n * Getting bounding box geometry according to positions parameters\n * @param positions\n * @returns Bounding Box\n */\nexport function computeBoundingBox(positions: any = []) {\n const min = [Number(Infinity), Number(Infinity), Number(Infinity)];\n const max = [-Infinity, -Infinity, -Infinity];\n // @ts-ignore\n for (const position of makeAttributeIterator(positions)) {\n const x = position[0];\n const y = position[1];\n const z = position[2];\n\n if (x < min[0]) min[0] = x;\n if (y < min[1]) min[1] = y;\n if (z < min[2]) min[2] = z;\n\n if (x > max[0]) max[0] = x;\n if (y > max[1]) max[1] = y;\n if (z > max[2]) max[2] = z;\n }\n\n const boundingBox = {min, max};\n validateBoundingBox(boundingBox);\n return boundingBox;\n}\n\nfunction validateBoundingBox(boundingBox: BoundingBox) {\n assert(\n Number.isFinite(boundingBox.min[0]) &&\n Number.isFinite(boundingBox.min[1]) &&\n Number.isFinite(boundingBox.min[2]) &&\n Number.isFinite(boundingBox.max[0]) &&\n Number.isFinite(boundingBox.max[1]) &&\n Number.isFinite(boundingBox.max[2])\n );\n}\n"],"mappings":"AAAA,SAAQA,qBAAqB,QAAO,iCAAiC;AACrE,SAAQC,MAAM,QAAO,iBAAiB;AActC,OAAO,SAASC,kBAAkBA,CAAA,EAAsB;EAAA,IAArBC,SAAc,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACpD,MAAMG,GAAG,GAAG,CAACC,MAAM,CAACC,QAAQ,CAAC,EAAED,MAAM,CAACC,QAAQ,CAAC,EAAED,MAAM,CAACC,QAAQ,CAAC,CAAC;EAClE,MAAMC,GAAG,GAAG,CAAC,CAACD,QAAQ,EAAE,CAACA,QAAQ,EAAE,CAACA,QAAQ,CAAC;EAE7C,KAAK,MAAME,QAAQ,IAAIX,qBAAqB,CAACG,SAAS,CAAC,EAAE;IACvD,MAAMS,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC;IACrB,MAAME,CAAC,GAAGF,QAAQ,CAAC,CAAC,CAAC;IACrB,MAAMG,CAAC,GAAGH,QAAQ,CAAC,CAAC,CAAC;IAErB,IAAIC,CAAC,GAAGL,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGK,CAAC;IAC1B,IAAIC,CAAC,GAAGN,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGM,CAAC;IAC1B,IAAIC,CAAC,GAAGP,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGO,CAAC;IAE1B,IAAIF,CAAC,GAAGF,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGE,CAAC;IAC1B,IAAIC,CAAC,GAAGH,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGG,CAAC;IAC1B,IAAIC,CAAC,GAAGJ,GAAG,CAAC,CAAC,CAAC,EAAEA,GAAG,CAAC,CAAC,CAAC,GAAGI,CAAC;EAC5B;EAEA,MAAMC,WAAW,GAAG;IAACR,GAAG;IAAEG;EAAG,CAAC;EAC9BM,mBAAmB,CAACD,WAAW,CAAC;EAChC,OAAOA,WAAW;AACpB;AAEA,SAASC,mBAAmBA,CAACD,WAAwB,EAAE;EACrDd,MAAM,CACJO,MAAM,CAACS,QAAQ,CAACF,WAAW,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,IACjCC,MAAM,CAACS,QAAQ,CAACF,WAAW,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCC,MAAM,CAACS,QAAQ,CAACF,WAAW,CAACR,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCC,MAAM,CAACS,QAAQ,CAACF,WAAW,CAACL,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCF,MAAM,CAACS,QAAQ,CAACF,WAAW,CAACL,GAAG,CAAC,CAAC,CAAC,CAAC,IACnCF,MAAM,CAACS,QAAQ,CAACF,WAAW,CAACL,GAAG,CAAC,CAAC,CAAC,CAAC,CACtC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute-vertex-normals.js","names":["Vector3","GL","assert","makePrimitiveIterator","getPrimitiveModeType","getPositions","computeVertexNormals","geometry","mode","TRIANGLES","values","positions","normals","Float32Array","length","vectorA","vectorB","vectorC","vectorCB","vectorAB","primitive","fromArray","i1","i2","i3","subVectors","normal","cross","normalize","primitiveIndex","x","y","z"],"sources":["../../../../src/geometry/attributes/compute-vertex-normals.ts"],"sourcesContent":["import type {TypedArray} from '@math.gl/core';\nimport {Vector3} from '@math.gl/core';\nimport {GL} from '../constants';\nimport {assert} from '../utils/assert';\nimport {makePrimitiveIterator} from '../iterators/primitive-iterator';\nimport {getPrimitiveModeType} from '../primitives/modes';\nimport {getPositions} from './get-attribute-from-geometry';\n\ntype Geometry = {\n mode: any;\n indices?: {size: number; values: TypedArray};\n attributes?: {};\n};\n/**\n * Computes vertex normals for a geometry\n * @param param0\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport function computeVertexNormals(geometry: Geometry): Float32Array {\n // Only support GL.TRIANGLES, GL.TRIANGLE_STRIP, GL.TRIANGLE_FAN\n assert(getPrimitiveModeType(geometry.mode) === GL.TRIANGLES, 'TRIANGLES required');\n\n const {values: positions} = getPositions(geometry);\n\n const normals = new Float32Array(positions.length);\n\n const vectorA = new Vector3();\n const vectorB = new Vector3();\n const vectorC = new Vector3();\n\n const vectorCB = new Vector3();\n const vectorAB = new Vector3();\n\n for (const primitive of makePrimitiveIterator(geometry)) {\n vectorA.fromArray(positions, primitive.i1 * 3);\n vectorB.fromArray(positions, primitive.i2 * 3 + 3);\n vectorC.fromArray(positions, primitive.i3 * 3 + 6);\n\n vectorCB.subVectors(vectorC, vectorB);\n vectorAB.subVectors(vectorA, vectorB);\n const normal = vectorCB.cross(vectorAB);\n normal.normalize();\n // @ts-ignore\n const {primitiveIndex} = primitive;\n\n normals[primitiveIndex * 9 + 0] = normal.x;\n normals[primitiveIndex * 9 + 1] = normal.y;\n normals[primitiveIndex * 9 + 2] = normal.z;\n\n normals[primitiveIndex * 9 + 3] = normal.x;\n normals[primitiveIndex * 9 + 4] = normal.y;\n normals[primitiveIndex * 9 + 5] = normal.z;\n\n normals[primitiveIndex * 9 + 6] = normal.x;\n normals[primitiveIndex * 9 + 7] = normal.y;\n normals[primitiveIndex * 9 + 8] = normal.z;\n }\n\n return normals;\n}\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,eAAe;AACrC,SAAQC,EAAE,QAAO,cAAc;AAC/B,SAAQC,MAAM,QAAO,iBAAiB;AACtC,SAAQC,qBAAqB,QAAO,iCAAiC;AACrE,SAAQC,oBAAoB,QAAO,qBAAqB;AACxD,SAAQC,YAAY,QAAO,+BAA+B;AAa1D,OAAO,SAASC,
|
|
1
|
+
{"version":3,"file":"compute-vertex-normals.js","names":["Vector3","GL","assert","makePrimitiveIterator","getPrimitiveModeType","getPositions","computeVertexNormals","geometry","mode","TRIANGLES","values","positions","normals","Float32Array","length","vectorA","vectorB","vectorC","vectorCB","vectorAB","primitive","fromArray","i1","i2","i3","subVectors","normal","cross","normalize","primitiveIndex","x","y","z"],"sources":["../../../../src/geometry/attributes/compute-vertex-normals.ts"],"sourcesContent":["import type {TypedArray} from '@math.gl/core';\nimport {Vector3} from '@math.gl/core';\nimport {GL} from '../constants';\nimport {assert} from '../utils/assert';\nimport {makePrimitiveIterator} from '../iterators/primitive-iterator';\nimport {getPrimitiveModeType} from '../primitives/modes';\nimport {getPositions} from './get-attribute-from-geometry';\n\ntype Geometry = {\n mode: any;\n indices?: {size: number; values: TypedArray};\n attributes?: {};\n};\n/**\n * Computes vertex normals for a geometry\n * @param param0\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport function computeVertexNormals(geometry: Geometry): Float32Array {\n // Only support GL.TRIANGLES, GL.TRIANGLE_STRIP, GL.TRIANGLE_FAN\n assert(getPrimitiveModeType(geometry.mode) === GL.TRIANGLES, 'TRIANGLES required');\n\n const {values: positions} = getPositions(geometry);\n\n const normals = new Float32Array(positions.length);\n\n const vectorA = new Vector3();\n const vectorB = new Vector3();\n const vectorC = new Vector3();\n\n const vectorCB = new Vector3();\n const vectorAB = new Vector3();\n\n for (const primitive of makePrimitiveIterator(geometry)) {\n vectorA.fromArray(positions, primitive.i1 * 3);\n vectorB.fromArray(positions, primitive.i2 * 3 + 3);\n vectorC.fromArray(positions, primitive.i3 * 3 + 6);\n\n vectorCB.subVectors(vectorC, vectorB);\n vectorAB.subVectors(vectorA, vectorB);\n const normal = vectorCB.cross(vectorAB);\n normal.normalize();\n // @ts-ignore\n const {primitiveIndex} = primitive;\n\n normals[primitiveIndex * 9 + 0] = normal.x;\n normals[primitiveIndex * 9 + 1] = normal.y;\n normals[primitiveIndex * 9 + 2] = normal.z;\n\n normals[primitiveIndex * 9 + 3] = normal.x;\n normals[primitiveIndex * 9 + 4] = normal.y;\n normals[primitiveIndex * 9 + 5] = normal.z;\n\n normals[primitiveIndex * 9 + 6] = normal.x;\n normals[primitiveIndex * 9 + 7] = normal.y;\n normals[primitiveIndex * 9 + 8] = normal.z;\n }\n\n return normals;\n}\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,eAAe;AACrC,SAAQC,EAAE,QAAO,cAAc;AAC/B,SAAQC,MAAM,QAAO,iBAAiB;AACtC,SAAQC,qBAAqB,QAAO,iCAAiC;AACrE,SAAQC,oBAAoB,QAAO,qBAAqB;AACxD,SAAQC,YAAY,QAAO,+BAA+B;AAa1D,OAAO,SAASC,oBAAoBA,CAACC,QAAkB,EAAgB;EAErEL,MAAM,CAACE,oBAAoB,CAACG,QAAQ,CAACC,IAAI,CAAC,KAAKP,EAAE,CAACQ,SAAS,EAAE,oBAAoB,CAAC;EAElF,MAAM;IAACC,MAAM,EAAEC;EAAS,CAAC,GAAGN,YAAY,CAACE,QAAQ,CAAC;EAElD,MAAMK,OAAO,GAAG,IAAIC,YAAY,CAACF,SAAS,CAACG,MAAM,CAAC;EAElD,MAAMC,OAAO,GAAG,IAAIf,OAAO,EAAE;EAC7B,MAAMgB,OAAO,GAAG,IAAIhB,OAAO,EAAE;EAC7B,MAAMiB,OAAO,GAAG,IAAIjB,OAAO,EAAE;EAE7B,MAAMkB,QAAQ,GAAG,IAAIlB,OAAO,EAAE;EAC9B,MAAMmB,QAAQ,GAAG,IAAInB,OAAO,EAAE;EAE9B,KAAK,MAAMoB,SAAS,IAAIjB,qBAAqB,CAACI,QAAQ,CAAC,EAAE;IACvDQ,OAAO,CAACM,SAAS,CAACV,SAAS,EAAES,SAAS,CAACE,EAAE,GAAG,CAAC,CAAC;IAC9CN,OAAO,CAACK,SAAS,CAACV,SAAS,EAAES,SAAS,CAACG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAClDN,OAAO,CAACI,SAAS,CAACV,SAAS,EAAES,SAAS,CAACI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAElDN,QAAQ,CAACO,UAAU,CAACR,OAAO,EAAED,OAAO,CAAC;IACrCG,QAAQ,CAACM,UAAU,CAACV,OAAO,EAAEC,OAAO,CAAC;IACrC,MAAMU,MAAM,GAAGR,QAAQ,CAACS,KAAK,CAACR,QAAQ,CAAC;IACvCO,MAAM,CAACE,SAAS,EAAE;IAElB,MAAM;MAACC;IAAc,CAAC,GAAGT,SAAS;IAElCR,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,CAAC;IAC1ClB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACK,CAAC;IAC1CnB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACM,CAAC;IAE1CpB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,CAAC;IAC1ClB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACK,CAAC;IAC1CnB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACM,CAAC;IAE1CpB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACI,CAAC;IAC1ClB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACK,CAAC;IAC1CnB,OAAO,CAACiB,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAGH,MAAM,CAACM,CAAC;EAC5C;EAEA,OAAOpB,OAAO;AAChB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-to-non-indexed.js","names":["convertBuffersToNonIndexed","indices","attributes","geometry2","BufferGeometry","name","attribute","array","itemSize","array2","constructor","length","index","index2","i","l","j","addAttribute","BufferAttribute","group","groups","addGroup","start","count","materialIndex"],"sources":["../../../../src/geometry/attributes/convert-to-non-indexed.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/**\n * Converts indices of geometry.\n *\n * @param param0\n * @returns no indexed geometry\n */\nexport function convertBuffersToNonIndexed({indices, attributes}): any {\n const geometry2 = new BufferGeometry();\n\n for (const name in attributes) {\n const attribute = attributes[name];\n\n const array = attribute.array;\n const itemSize = attribute.itemSize;\n\n const array2 = new array.constructor(indices.length * itemSize);\n let index = 0,\n index2 = 0;\n\n for (var i = 0, l = indices.length; i < l; i++) {\n index = indices[i] * itemSize;\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n geometry2.addAttribute(name, new BufferAttribute(array2, itemSize));\n }\n\n for (const group of this.groups) {\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n\n return geometry2;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert-to-non-indexed.js","names":["convertBuffersToNonIndexed","_ref","indices","attributes","geometry2","BufferGeometry","name","attribute","array","itemSize","array2","constructor","length","index","index2","i","l","j","addAttribute","BufferAttribute","group","groups","addGroup","start","count","materialIndex"],"sources":["../../../../src/geometry/attributes/convert-to-non-indexed.ts"],"sourcesContent":["/* eslint-disable */\n// @ts-nocheck\n/**\n * Converts indices of geometry.\n *\n * @param param0\n * @returns no indexed geometry\n */\nexport function convertBuffersToNonIndexed({indices, attributes}): any {\n const geometry2 = new BufferGeometry();\n\n for (const name in attributes) {\n const attribute = attributes[name];\n\n const array = attribute.array;\n const itemSize = attribute.itemSize;\n\n const array2 = new array.constructor(indices.length * itemSize);\n let index = 0,\n index2 = 0;\n\n for (var i = 0, l = indices.length; i < l; i++) {\n index = indices[i] * itemSize;\n for (var j = 0; j < itemSize; j++) {\n array2[index2++] = array[index++];\n }\n }\n geometry2.addAttribute(name, new BufferAttribute(array2, itemSize));\n }\n\n for (const group of this.groups) {\n geometry2.addGroup(group.start, group.count, group.materialIndex);\n }\n\n return geometry2;\n}\n"],"mappings":"AAQA,OAAO,SAASA,0BAA0BA,CAAAC,IAAA,EAA6B;EAAA,IAA5B;IAACC,OAAO;IAAEC;EAAU,CAAC,GAAAF,IAAA;EAC9D,MAAMG,SAAS,GAAG,IAAIC,cAAc,EAAE;EAEtC,KAAK,MAAMC,IAAI,IAAIH,UAAU,EAAE;IAC7B,MAAMI,SAAS,GAAGJ,UAAU,CAACG,IAAI,CAAC;IAElC,MAAME,KAAK,GAAGD,SAAS,CAACC,KAAK;IAC7B,MAAMC,QAAQ,GAAGF,SAAS,CAACE,QAAQ;IAEnC,MAAMC,MAAM,GAAG,IAAIF,KAAK,CAACG,WAAW,CAACT,OAAO,CAACU,MAAM,GAAGH,QAAQ,CAAC;IAC/D,IAAII,KAAK,GAAG,CAAC;MACXC,MAAM,GAAG,CAAC;IAEZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,CAAC,GAAGd,OAAO,CAACU,MAAM,EAAEG,CAAC,GAAGC,CAAC,EAAED,CAAC,EAAE,EAAE;MAC9CF,KAAK,GAAGX,OAAO,CAACa,CAAC,CAAC,GAAGN,QAAQ;MAC7B,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGR,QAAQ,EAAEQ,CAAC,EAAE,EAAE;QACjCP,MAAM,CAACI,MAAM,EAAE,CAAC,GAAGN,KAAK,CAACK,KAAK,EAAE,CAAC;MACnC;IACF;IACAT,SAAS,CAACc,YAAY,CAACZ,IAAI,EAAE,IAAIa,eAAe,CAACT,MAAM,EAAED,QAAQ,CAAC,CAAC;EACrE;EAEA,KAAK,MAAMW,KAAK,IAAI,IAAI,CAACC,MAAM,EAAE;IAC/BjB,SAAS,CAACkB,QAAQ,CAACF,KAAK,CAACG,KAAK,EAAEH,KAAK,CAACI,KAAK,EAAEJ,KAAK,CAACK,aAAa,CAAC;EACnE;EAEA,OAAOrB,SAAS;AAClB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import isGeometry from '../is-geometry';
|
|
2
2
|
import { assert } from '../utils/assert';
|
|
3
|
-
|
|
4
3
|
export function getPositions(geometry) {
|
|
5
4
|
if (isGeometry(geometry)) {
|
|
6
5
|
const {
|
|
@@ -10,14 +9,12 @@ export function getPositions(geometry) {
|
|
|
10
9
|
assert(position);
|
|
11
10
|
return position;
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
if (ArrayBuffer.isView(geometry)) {
|
|
15
13
|
return {
|
|
16
14
|
values: geometry,
|
|
17
15
|
size: 3
|
|
18
16
|
};
|
|
19
17
|
}
|
|
20
|
-
|
|
21
18
|
if (geometry) {
|
|
22
19
|
assert(geometry.values);
|
|
23
20
|
return geometry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-attribute-from-geometry.js","names":["isGeometry","assert","getPositions","geometry","attributes","position","POSITION","positions","ArrayBuffer","isView","values","size"],"sources":["../../../../src/geometry/attributes/get-attribute-from-geometry.ts"],"sourcesContent":["import isGeometry from '../is-geometry';\nimport {assert} from '../utils/assert';\n\n/**\n * analyze positions of geometry\n *\n * @param geometry\n * @returns Position| New geometry |assert\n */\n\nexport function getPositions(geometry: any) {\n // If geometry, extract positions\n if (isGeometry(geometry)) {\n const {attributes} = geometry;\n const position = attributes.POSITION || attributes.positions;\n assert(position);\n return position;\n }\n\n // If arraybuffer, assume 3 components\n if (ArrayBuffer.isView(geometry)) {\n return {values: geometry, size: 3};\n }\n\n // Else assume accessor object\n if (geometry) {\n assert(geometry.values);\n return geometry;\n }\n\n return assert(false);\n}\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,gBAAgB;AACvC,SAAQC,MAAM,QAAO,iBAAiB
|
|
1
|
+
{"version":3,"file":"get-attribute-from-geometry.js","names":["isGeometry","assert","getPositions","geometry","attributes","position","POSITION","positions","ArrayBuffer","isView","values","size"],"sources":["../../../../src/geometry/attributes/get-attribute-from-geometry.ts"],"sourcesContent":["import isGeometry from '../is-geometry';\nimport {assert} from '../utils/assert';\n\n/**\n * analyze positions of geometry\n *\n * @param geometry\n * @returns Position| New geometry |assert\n */\n\nexport function getPositions(geometry: any) {\n // If geometry, extract positions\n if (isGeometry(geometry)) {\n const {attributes} = geometry;\n const position = attributes.POSITION || attributes.positions;\n assert(position);\n return position;\n }\n\n // If arraybuffer, assume 3 components\n if (ArrayBuffer.isView(geometry)) {\n return {values: geometry, size: 3};\n }\n\n // Else assume accessor object\n if (geometry) {\n assert(geometry.values);\n return geometry;\n }\n\n return assert(false);\n}\n"],"mappings":"AAAA,OAAOA,UAAU,MAAM,gBAAgB;AACvC,SAAQC,MAAM,QAAO,iBAAiB;AAStC,OAAO,SAASC,YAAYA,CAACC,QAAa,EAAE;EAE1C,IAAIH,UAAU,CAACG,QAAQ,CAAC,EAAE;IACxB,MAAM;MAACC;IAAU,CAAC,GAAGD,QAAQ;IAC7B,MAAME,QAAQ,GAAGD,UAAU,CAACE,QAAQ,IAAIF,UAAU,CAACG,SAAS;IAC5DN,MAAM,CAACI,QAAQ,CAAC;IAChB,OAAOA,QAAQ;EACjB;EAGA,IAAIG,WAAW,CAACC,MAAM,CAACN,QAAQ,CAAC,EAAE;IAChC,OAAO;MAACO,MAAM,EAAEP,QAAQ;MAAEQ,IAAI,EAAE;IAAC,CAAC;EACpC;EAGA,IAAIR,QAAQ,EAAE;IACZF,MAAM,CAACE,QAAQ,CAACO,MAAM,CAAC;IACvB,OAAOP,QAAQ;EACjB;EAEA,OAAOF,MAAM,CAAC,KAAK,CAAC;AACtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","names":["normalize","normals","vector","attributes","normal","i","il","count","x","getX","y","getY","z","getZ","setXYZ"],"sources":["../../../../src/geometry/attributes/normalize.ts"],"sourcesContent":["/* eslint-disable */\nimport {Vector3} from '@math.gl/core';\n\n/**\n * Setting X, Y, Z for Vector\n * @param normals\n * @param vector\n */\nexport function normalize(normals: any = {}, vector: Vector3) {\n //@ts-ignore\n normals = this.attributes.normal;\n for (let i = 0, il = normals.count; i < il; i++) {\n vector.x = normals.getX(i);\n vector.y = normals.getY(i);\n vector.z = normals.getZ(i);\n vector.normalize();\n normals.setXYZ(i, vector.x, vector.y, vector.z);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"normalize.js","names":["normalize","normals","arguments","length","undefined","vector","attributes","normal","i","il","count","x","getX","y","getY","z","getZ","setXYZ"],"sources":["../../../../src/geometry/attributes/normalize.ts"],"sourcesContent":["/* eslint-disable */\nimport {Vector3} from '@math.gl/core';\n\n/**\n * Setting X, Y, Z for Vector\n * @param normals\n * @param vector\n */\nexport function normalize(normals: any = {}, vector: Vector3) {\n //@ts-ignore\n normals = this.attributes.normal;\n for (let i = 0, il = normals.count; i < il; i++) {\n vector.x = normals.getX(i);\n vector.y = normals.getY(i);\n vector.z = normals.getZ(i);\n vector.normalize();\n normals.setXYZ(i, vector.x, vector.y, vector.z);\n }\n}\n"],"mappings":"AAQA,OAAO,SAASA,SAASA,CAAA,EAAqC;EAAA,IAApCC,OAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEG,MAAe,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAE1DH,OAAO,GAAG,IAAI,CAACK,UAAU,CAACC,MAAM;EAChC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,EAAE,GAAGR,OAAO,CAACS,KAAK,EAAEF,CAAC,GAAGC,EAAE,EAAED,CAAC,EAAE,EAAE;IAC/CH,MAAM,CAACM,CAAC,GAAGV,OAAO,CAACW,IAAI,CAACJ,CAAC,CAAC;IAC1BH,MAAM,CAACQ,CAAC,GAAGZ,OAAO,CAACa,IAAI,CAACN,CAAC,CAAC;IAC1BH,MAAM,CAACU,CAAC,GAAGd,OAAO,CAACe,IAAI,CAACR,CAAC,CAAC;IAC1BH,MAAM,CAACL,SAAS,EAAE;IAClBC,OAAO,CAACgB,MAAM,CAACT,CAAC,EAAEH,MAAM,CAACM,CAAC,EAAEN,MAAM,CAACQ,CAAC,EAAER,MAAM,CAACU,CAAC,CAAC;EACjD;AACF"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
export function decodeRGB565(rgb565) {
|
|
3
2
|
let target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [0, 0, 0];
|
|
4
3
|
const r5 = rgb565 >> 11 & 31;
|
|
@@ -9,7 +8,6 @@ export function decodeRGB565(rgb565) {
|
|
|
9
8
|
target[2] = b5 << 3;
|
|
10
9
|
return target;
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
export function encodeRGB565(rgb) {
|
|
14
12
|
const r5 = Math.floor(rgb[0] / 8) + 4;
|
|
15
13
|
const g6 = Math.floor(rgb[1] / 4) + 2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rgb565.js","names":["decodeRGB565","rgb565","target","r5","g6","b5","encodeRGB565","rgb","Math","floor"],"sources":["../../../../src/geometry/colors/rgb565.ts"],"sourcesContent":["/**\n * Decode color values\n * @param rgb565\n * @param target\n * @returns target\n */\nexport function decodeRGB565(rgb565: number, target: number[] = [0, 0, 0]): number[] {\n const r5 = (rgb565 >> 11) & 31;\n const g6 = (rgb565 >> 5) & 63;\n const b5 = rgb565 & 31;\n\n target[0] = r5 << 3;\n target[1] = g6 << 2;\n target[2] = b5 << 3;\n\n return target;\n}\n\n/**\n * Encode color values\n * @param rgb\n * @returns color\n */\nexport function encodeRGB565(rgb: number[]): number {\n const r5 = Math.floor(rgb[0] / 8) + 4;\n const g6 = Math.floor(rgb[1] / 4) + 2;\n const b5 = Math.floor(rgb[2] / 8) + 4;\n return r5 + (g6 << 5) + (b5 << 11);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"rgb565.js","names":["decodeRGB565","rgb565","target","arguments","length","undefined","r5","g6","b5","encodeRGB565","rgb","Math","floor"],"sources":["../../../../src/geometry/colors/rgb565.ts"],"sourcesContent":["/**\n * Decode color values\n * @param rgb565\n * @param target\n * @returns target\n */\nexport function decodeRGB565(rgb565: number, target: number[] = [0, 0, 0]): number[] {\n const r5 = (rgb565 >> 11) & 31;\n const g6 = (rgb565 >> 5) & 63;\n const b5 = rgb565 & 31;\n\n target[0] = r5 << 3;\n target[1] = g6 << 2;\n target[2] = b5 << 3;\n\n return target;\n}\n\n/**\n * Encode color values\n * @param rgb\n * @returns color\n */\nexport function encodeRGB565(rgb: number[]): number {\n const r5 = Math.floor(rgb[0] / 8) + 4;\n const g6 = Math.floor(rgb[1] / 4) + 2;\n const b5 = Math.floor(rgb[2] / 8) + 4;\n return r5 + (g6 << 5) + (b5 << 11);\n}\n"],"mappings":"AAMA,OAAO,SAASA,YAAYA,CAACC,MAAc,EAA0C;EAAA,IAAxCC,MAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EACvE,MAAMG,EAAE,GAAIL,MAAM,IAAI,EAAE,GAAI,EAAE;EAC9B,MAAMM,EAAE,GAAIN,MAAM,IAAI,CAAC,GAAI,EAAE;EAC7B,MAAMO,EAAE,GAAGP,MAAM,GAAG,EAAE;EAEtBC,MAAM,CAAC,CAAC,CAAC,GAAGI,EAAE,IAAI,CAAC;EACnBJ,MAAM,CAAC,CAAC,CAAC,GAAGK,EAAE,IAAI,CAAC;EACnBL,MAAM,CAAC,CAAC,CAAC,GAAGM,EAAE,IAAI,CAAC;EAEnB,OAAON,MAAM;AACf;AAOA,OAAO,SAASO,YAAYA,CAACC,GAAa,EAAU;EAClD,MAAMJ,EAAE,GAAGK,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,MAAMH,EAAE,GAAGI,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,MAAMF,EAAE,GAAGG,IAAI,CAACC,KAAK,CAACF,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;EACrC,OAAOJ,EAAE,IAAIC,EAAE,IAAI,CAAC,CAAC,IAAIC,EAAE,IAAI,EAAE,CAAC;AACpC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
import { Vector2, Vector3, clamp, _MathUtils } from '@math.gl/core';
|
|
4
2
|
import { assert } from '../utils/assert';
|
|
5
3
|
const RIGHT_SHIFT = 1.0 / 256.0;
|
|
@@ -9,26 +7,21 @@ const scratchVector3 = new Vector3();
|
|
|
9
7
|
const scratchEncodeVector2 = new Vector2();
|
|
10
8
|
const octEncodeScratch = new Vector2();
|
|
11
9
|
const uint8ForceArray = new Uint8Array(1);
|
|
12
|
-
|
|
13
10
|
function forceUint8(value) {
|
|
14
11
|
uint8ForceArray[0] = value;
|
|
15
12
|
return uint8ForceArray[0];
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
function fromSNorm(value) {
|
|
19
15
|
let rangeMaximum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 255;
|
|
20
16
|
return clamp(value, 0.0, rangeMaximum) / rangeMaximum * 2.0 - 1.0;
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
function toSNorm(value) {
|
|
24
19
|
let rangeMaximum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 255;
|
|
25
20
|
return Math.round((clamp(value, -1.0, 1.0) * 0.5 + 0.5) * rangeMaximum);
|
|
26
21
|
}
|
|
27
|
-
|
|
28
22
|
function signNotZero(value) {
|
|
29
23
|
return value < 0.0 ? -1.0 : 1.0;
|
|
30
24
|
}
|
|
31
|
-
|
|
32
25
|
export function octEncodeInRange(vector, rangeMax, result) {
|
|
33
26
|
assert(vector);
|
|
34
27
|
assert(result);
|
|
@@ -46,11 +39,9 @@ export function octEncodeInRange(vector, rangeMax, result) {
|
|
|
46
39
|
result.y = toSNorm(result.y, rangeMax);
|
|
47
40
|
return result;
|
|
48
41
|
}
|
|
49
|
-
|
|
50
42
|
export function octEncode(vector, result) {
|
|
51
43
|
return octEncodeInRange(vector, 255, result);
|
|
52
44
|
}
|
|
53
|
-
|
|
54
45
|
export function octEncodeToVector4(vector, result) {
|
|
55
46
|
octEncodeInRange(vector, 65535, octEncodeScratch);
|
|
56
47
|
result.x = forceUint8(octEncodeScratch.x * RIGHT_SHIFT);
|
|
@@ -59,7 +50,6 @@ export function octEncodeToVector4(vector, result) {
|
|
|
59
50
|
result.w = forceUint8(octEncodeScratch.y);
|
|
60
51
|
return result;
|
|
61
52
|
}
|
|
62
|
-
|
|
63
53
|
export function octDecodeInRange(x, y, rangeMax, result) {
|
|
64
54
|
assert(result);
|
|
65
55
|
if (x < 0 || x > rangeMax || y < 0 || y > rangeMax) {
|
|
@@ -75,11 +65,9 @@ export function octDecodeInRange(x, y, rangeMax, result) {
|
|
|
75
65
|
}
|
|
76
66
|
return result.normalize();
|
|
77
67
|
}
|
|
78
|
-
|
|
79
68
|
export function octDecode(x, y, result) {
|
|
80
69
|
return octDecodeInRange(x, y, 255, result);
|
|
81
70
|
}
|
|
82
|
-
|
|
83
71
|
export function octDecodeFromVector4(encoded, result) {
|
|
84
72
|
assert(encoded);
|
|
85
73
|
assert(result);
|
|
@@ -94,17 +82,14 @@ export function octDecodeFromVector4(encoded, result) {
|
|
|
94
82
|
const yOct16 = z * LEFT_SHIFT + w;
|
|
95
83
|
return octDecodeInRange(xOct16, yOct16, 65535, result);
|
|
96
84
|
}
|
|
97
|
-
|
|
98
85
|
export function octPackFloat(encoded) {
|
|
99
86
|
const vector2 = scratchVector2.from(encoded);
|
|
100
87
|
return 256.0 * vector2.x + vector2.y;
|
|
101
88
|
}
|
|
102
|
-
|
|
103
89
|
export function octEncodeFloat(vector) {
|
|
104
90
|
octEncode(vector, scratchEncodeVector2);
|
|
105
91
|
return octPackFloat(scratchEncodeVector2);
|
|
106
92
|
}
|
|
107
|
-
|
|
108
93
|
export function octDecodeFloat(value, result) {
|
|
109
94
|
assert(Number.isFinite(value));
|
|
110
95
|
const temp = value / 256.0;
|
|
@@ -112,7 +97,6 @@ export function octDecodeFloat(value, result) {
|
|
|
112
97
|
const y = (temp - x) * 256.0;
|
|
113
98
|
return octDecode(x, y, result);
|
|
114
99
|
}
|
|
115
|
-
|
|
116
100
|
export function octPack(v1, v2, v3, result) {
|
|
117
101
|
assert(v1);
|
|
118
102
|
assert(v2);
|
|
@@ -125,7 +109,6 @@ export function octPack(v1, v2, v3, result) {
|
|
|
125
109
|
result.y = 65536.0 * encoded3.y + encoded2;
|
|
126
110
|
return result;
|
|
127
111
|
}
|
|
128
|
-
|
|
129
112
|
export function octUnpack(packed, v1, v2, v3) {
|
|
130
113
|
let temp = packed.x / 65536.0;
|
|
131
114
|
const x = Math.floor(temp);
|
|
@@ -137,13 +120,11 @@ export function octUnpack(packed, v1, v2, v3) {
|
|
|
137
120
|
octDecodeFloat(encodedFloat2, v2);
|
|
138
121
|
octDecode(x, y, v3);
|
|
139
122
|
}
|
|
140
|
-
|
|
141
123
|
export function compressTextureCoordinates(textureCoordinates) {
|
|
142
124
|
const x = textureCoordinates.x * 4095.0 | 0;
|
|
143
125
|
const y = textureCoordinates.y * 4095.0 | 0;
|
|
144
126
|
return 4096.0 * x + y;
|
|
145
127
|
}
|
|
146
|
-
|
|
147
128
|
export function decompressTextureCoordinates(compressed, result) {
|
|
148
129
|
const temp = compressed / 4096.0;
|
|
149
130
|
const xZeroTo4095 = Math.floor(temp);
|
|
@@ -151,7 +132,6 @@ export function decompressTextureCoordinates(compressed, result) {
|
|
|
151
132
|
result.y = (compressed - xZeroTo4095 * 4096) / 4095;
|
|
152
133
|
return result;
|
|
153
134
|
}
|
|
154
|
-
|
|
155
135
|
export function zigZagDeltaDecode(uBuffer, vBuffer, heightBuffer) {
|
|
156
136
|
assert(uBuffer);
|
|
157
137
|
assert(vBuffer);
|