@loaders.gl/3d-tiles 3.1.0-alpha.4 → 3.1.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.
- package/dist/bundle.d.ts +1 -0
- package/dist/cesium-ion-loader.d.ts +5 -0
- package/dist/dist.min.js +1 -1
- package/dist/dist.min.js.map +1 -1
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/cesium-ion-loader.js +23 -78
- package/dist/es5/cesium-ion-loader.js.map +1 -1
- package/dist/es5/index.js +7 -7
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +30 -42
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
- package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +57 -59
- package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
- package/dist/es5/lib/classes/tile-3d-batch-table.js +201 -240
- package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -1
- package/dist/es5/lib/classes/tile-3d-feature-table.js +62 -80
- package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -1
- package/dist/es5/lib/constants.js +4 -4
- package/dist/es5/lib/constants.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +15 -22
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-composite.js +6 -13
- package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +14 -23
- package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +15 -22
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile.js +3 -3
- package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -1
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +6 -6
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/ion/ion.js +69 -197
- package/dist/es5/lib/ion/ion.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +17 -18
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +3 -3
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +3 -3
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +26 -66
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +3 -4
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +19 -17
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-utils.js +7 -8
- package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +10 -36
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js +12 -48
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +14 -30
- package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +38 -63
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +117 -198
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile.js +15 -65
- package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/tile-3d-writer.js +5 -5
- package/dist/es5/tile-3d-writer.js.map +1 -1
- package/dist/es5/tiles-3d-loader.js +37 -117
- package/dist/es5/tiles-3d-loader.js.map +1 -1
- package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +1 -1
- package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
- package/dist/esm/lib/classes/tile-3d-batch-table.js +4 -4
- package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -1
- package/dist/esm/lib/ion/ion.js +6 -6
- package/dist/esm/lib/ion/ion.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +2 -2
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-utils.js +1 -5
- package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile.js +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +7 -0
- package/dist/lib/classes/tile-3d-batch-table-hierarchy.d.ts +9 -0
- package/dist/lib/classes/tile-3d-batch-table.d.ts +40 -0
- package/dist/lib/classes/tile-3d-feature-table.d.ts +14 -0
- package/dist/lib/constants.d.ts +22 -0
- package/dist/lib/encoders/encode-3d-tile-batched-model.d.ts +1 -0
- package/dist/lib/encoders/encode-3d-tile-composite.d.ts +1 -0
- package/dist/lib/encoders/encode-3d-tile-instanced-model.d.ts +1 -0
- package/dist/lib/encoders/encode-3d-tile-point-cloud.d.ts +1 -0
- package/dist/lib/encoders/encode-3d-tile.d.ts +1 -0
- package/dist/lib/encoders/helpers/encode-3d-tile-header.d.ts +2 -0
- package/dist/lib/ion/ion.d.ts +3 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-colors.d.ts +6 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-normals.d.ts +5 -0
- package/dist/lib/parsers/helpers/normalize-3d-tile-positions.d.ts +1 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-gltf-view.d.ts +6 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-header.d.ts +1 -0
- package/dist/lib/parsers/helpers/parse-3d-tile-tables.d.ts +2 -0
- package/dist/lib/parsers/helpers/parse-utils.d.ts +3 -0
- package/dist/lib/parsers/parse-3d-tile-batched-model.d.ts +1 -0
- package/dist/lib/parsers/parse-3d-tile-composite.d.ts +1 -0
- package/dist/lib/parsers/parse-3d-tile-header.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile-instanced-model.d.ts +1 -0
- package/dist/lib/parsers/parse-3d-tile-point-cloud.d.ts +2 -0
- package/dist/lib/parsers/parse-3d-tile.d.ts +1 -0
- package/dist/lib/utils/version.d.ts +1 -0
- package/dist/tile-3d-writer.d.ts +5 -0
- package/dist/tiles-3d-loader.d.ts +5 -0
- package/dist/types.d.ts +47 -0
- package/package.json +12 -9
package/dist/es5/bundle.js
CHANGED
package/dist/es5/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":";;AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
|
|
@@ -1,100 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
8
6
|
exports.CesiumIonLoader = void 0;
|
|
9
7
|
|
|
10
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
-
|
|
16
8
|
var _tiles3dLoader = require("./tiles-3d-loader");
|
|
17
9
|
|
|
18
10
|
var _ion = require("./lib/ion/ion");
|
|
19
11
|
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function _preload() {
|
|
29
|
-
_preload = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(url) {
|
|
30
|
-
var options,
|
|
31
|
-
_options,
|
|
32
|
-
accessToken,
|
|
33
|
-
assetId,
|
|
34
|
-
matched,
|
|
35
|
-
_args2 = arguments;
|
|
36
|
-
|
|
37
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
38
|
-
while (1) {
|
|
39
|
-
switch (_context2.prev = _context2.next) {
|
|
40
|
-
case 0:
|
|
41
|
-
options = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
|
|
42
|
-
options = options['cesium-ion'] || {};
|
|
43
|
-
_options = options, accessToken = _options.accessToken;
|
|
44
|
-
assetId = options.assetId;
|
|
12
|
+
async function preload(url, options = {}) {
|
|
13
|
+
options = options['cesium-ion'] || {};
|
|
14
|
+
const {
|
|
15
|
+
accessToken
|
|
16
|
+
} = options;
|
|
17
|
+
let assetId = options.assetId;
|
|
45
18
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return _context2.abrupt("return", (0, _ion.getIonTilesetMetadata)(accessToken, assetId));
|
|
19
|
+
if (!Number.isFinite(assetId)) {
|
|
20
|
+
const matched = url.match(/\/([0-9]+)\/tileset.json/);
|
|
21
|
+
assetId = matched && matched[1];
|
|
22
|
+
}
|
|
52
23
|
|
|
53
|
-
|
|
54
|
-
case "end":
|
|
55
|
-
return _context2.stop();
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}, _callee2);
|
|
59
|
-
}));
|
|
60
|
-
return _preload.apply(this, arguments);
|
|
24
|
+
return (0, _ion.getIonTilesetMetadata)(accessToken, assetId);
|
|
61
25
|
}
|
|
62
26
|
|
|
63
|
-
|
|
27
|
+
const CesiumIonLoader = { ..._tiles3dLoader.Tiles3DLoader,
|
|
64
28
|
id: 'cesium-ion',
|
|
65
29
|
name: 'Cesium Ion',
|
|
66
|
-
preload
|
|
67
|
-
parse:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
options['3d-tiles'] = options['cesium-ion'];
|
|
75
|
-
options.loader = CesiumIonLoader;
|
|
76
|
-
return _context.abrupt("return", _tiles3dLoader.Tiles3DLoader.parse(data, options, context));
|
|
77
|
-
|
|
78
|
-
case 4:
|
|
79
|
-
case "end":
|
|
80
|
-
return _context.stop();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}, _callee);
|
|
84
|
-
}));
|
|
85
|
-
|
|
86
|
-
function parse(_x2, _x3, _x4) {
|
|
87
|
-
return _parse.apply(this, arguments);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return parse;
|
|
91
|
-
}(),
|
|
30
|
+
preload,
|
|
31
|
+
parse: async (data, options, context) => {
|
|
32
|
+
options = { ...options
|
|
33
|
+
};
|
|
34
|
+
options['3d-tiles'] = options['cesium-ion'];
|
|
35
|
+
options.loader = CesiumIonLoader;
|
|
36
|
+
return _tiles3dLoader.Tiles3DLoader.parse(data, options, context);
|
|
37
|
+
},
|
|
92
38
|
options: {
|
|
93
|
-
'cesium-ion':
|
|
39
|
+
'cesium-ion': { ..._tiles3dLoader.Tiles3DLoader.options['3d-tiles'],
|
|
94
40
|
accessToken: null
|
|
95
|
-
}
|
|
41
|
+
}
|
|
96
42
|
}
|
|
97
|
-
}
|
|
98
|
-
|
|
43
|
+
};
|
|
99
44
|
exports.CesiumIonLoader = CesiumIonLoader;
|
|
100
45
|
//# sourceMappingURL=cesium-ion-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cesium-ion-loader.ts"],"names":["preload","url","options","accessToken","assetId","Number","isFinite","matched","match","CesiumIonLoader","Tiles3DLoader","id","name","parse","data","context","loader"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/cesium-ion-loader.ts"],"names":["preload","url","options","accessToken","assetId","Number","isFinite","matched","match","CesiumIonLoader","Tiles3DLoader","id","name","parse","data","context","loader"],"mappings":";;;;;;;AACA;;AACA;;AAEA,eAAeA,OAAf,CAAuBC,GAAvB,EAA4BC,OAAO,GAAG,EAAtC,EAA0C;AACxCA,EAAAA,OAAO,GAAGA,OAAO,CAAC,YAAD,CAAP,IAAyB,EAAnC;AAEA,QAAM;AAACC,IAAAA;AAAD,MAAgBD,OAAtB;AAEA,MAAIE,OAAO,GAAGF,OAAO,CAACE,OAAtB;;AACA,MAAI,CAACC,MAAM,CAACC,QAAP,CAAgBF,OAAhB,CAAL,EAA+B;AAC7B,UAAMG,OAAO,GAAGN,GAAG,CAACO,KAAJ,CAAU,0BAAV,CAAhB;AACAJ,IAAAA,OAAO,GAAGG,OAAO,IAAIA,OAAO,CAAC,CAAD,CAA5B;AACD;;AACD,SAAO,gCAAsBJ,WAAtB,EAAmCC,OAAnC,CAAP;AACD;;AAKM,MAAMK,eAAiC,GAAG,EAC/C,GAAGC,4BAD4C;AAE/CC,EAAAA,EAAE,EAAE,YAF2C;AAG/CC,EAAAA,IAAI,EAAE,YAHyC;AAK/CZ,EAAAA,OAL+C;AAM/Ca,EAAAA,KAAK,EAAE,OAAOC,IAAP,EAAaZ,OAAb,EAAuBa,OAAvB,KAAoC;AACzCb,IAAAA,OAAO,GAAG,EAAC,GAAGA;AAAJ,KAAV;AACAA,IAAAA,OAAO,CAAC,UAAD,CAAP,GAAsBA,OAAO,CAAC,YAAD,CAA7B;AAEAA,IAAAA,OAAO,CAACc,MAAR,GAAiBP,eAAjB;AACA,WAAOC,6BAAcG,KAAd,CAAoBC,IAApB,EAA0BZ,OAA1B,EAAmCa,OAAnC,CAAP;AACD,GAZ8C;AAa/Cb,EAAAA,OAAO,EAAE;AACP,kBAAc,EACZ,GAAGQ,6BAAcR,OAAd,CAAsB,UAAtB,CADS;AAEZC,MAAAA,WAAW,EAAE;AAFD;AADP;AAbsC,CAA1C","sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {Tiles3DLoader} from './tiles-3d-loader';\nimport {getIonTilesetMetadata} from './lib/ion/ion';\n\nasync function preload(url, options = {}) {\n options = options['cesium-ion'] || {};\n // @ts-ignore\n const {accessToken} = options;\n // @ts-ignore\n let assetId = options.assetId;\n if (!Number.isFinite(assetId)) {\n const matched = url.match(/\\/([0-9]+)\\/tileset.json/);\n assetId = matched && matched[1];\n }\n return getIonTilesetMetadata(accessToken, assetId);\n}\n\n/**\n * Loader for 3D tiles from Cesium ION\n */\nexport const CesiumIonLoader: LoaderWithParser = {\n ...Tiles3DLoader,\n id: 'cesium-ion',\n name: 'Cesium Ion',\n // @ts-ignore\n preload,\n parse: async (data, options?, context?) => {\n options = {...options};\n options['3d-tiles'] = options['cesium-ion'];\n // @ts-ignore\n options.loader = CesiumIonLoader;\n return Tiles3DLoader.parse(data, options, context); // , loader);\n },\n options: {\n 'cesium-ion': {\n ...Tiles3DLoader.options['3d-tiles'],\n accessToken: null\n }\n }\n};\n"],"file":"cesium-ion-loader.js"}
|
package/dist/es5/index.js
CHANGED
|
@@ -7,43 +7,43 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
Object.defineProperty(exports, "Tiles3DLoader", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function
|
|
10
|
+
get: function () {
|
|
11
11
|
return _tiles3dLoader.Tiles3DLoader;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "CesiumIonLoader", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function
|
|
16
|
+
get: function () {
|
|
17
17
|
return _cesiumIonLoader.CesiumIonLoader;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
Object.defineProperty(exports, "Tile3DWriter", {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function
|
|
22
|
+
get: function () {
|
|
23
23
|
return _tile3dWriter.Tile3DWriter;
|
|
24
24
|
}
|
|
25
25
|
});
|
|
26
26
|
Object.defineProperty(exports, "Tile3DFeatureTable", {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function
|
|
28
|
+
get: function () {
|
|
29
29
|
return _tile3dFeatureTable.default;
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
Object.defineProperty(exports, "Tile3DBatchTable", {
|
|
33
33
|
enumerable: true,
|
|
34
|
-
get: function
|
|
34
|
+
get: function () {
|
|
35
35
|
return _tile3dBatchTable.default;
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
Object.defineProperty(exports, "TILE3D_TYPE", {
|
|
39
39
|
enumerable: true,
|
|
40
|
-
get: function
|
|
40
|
+
get: function () {
|
|
41
41
|
return _constants.TILE3D_TYPE;
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
Object.defineProperty(exports, "_getIonTilesetMetadata", {
|
|
45
45
|
enumerable: true,
|
|
46
|
-
get: function
|
|
46
|
+
get: function () {
|
|
47
47
|
return _ion.getIonTilesetMetadata;
|
|
48
48
|
}
|
|
49
49
|
});
|
|
@@ -9,7 +9,7 @@ var _math = require("@loaders.gl/math");
|
|
|
9
9
|
|
|
10
10
|
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
const COMPONENTS_PER_ATTRIBUTE = {
|
|
13
13
|
SCALAR: 1,
|
|
14
14
|
VEC2: 2,
|
|
15
15
|
VEC3: 3,
|
|
@@ -18,55 +18,41 @@ var COMPONENTS_PER_ATTRIBUTE = {
|
|
|
18
18
|
MAT3: 9,
|
|
19
19
|
MAT4: 16
|
|
20
20
|
};
|
|
21
|
-
|
|
22
|
-
SCALAR:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
return [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]];
|
|
30
|
-
},
|
|
31
|
-
VEC4: function VEC4(values, i) {
|
|
32
|
-
return [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]];
|
|
33
|
-
},
|
|
34
|
-
MAT2: function MAT2(values, i) {
|
|
35
|
-
return [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]];
|
|
36
|
-
},
|
|
37
|
-
MAT3: function MAT3(values, i) {
|
|
38
|
-
return [values[9 * i + 0], values[9 * i + 1], values[9 * i + 2], values[9 * i + 3], values[9 * i + 4], values[9 * i + 5], values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]];
|
|
39
|
-
},
|
|
40
|
-
MAT4: function MAT4(values, i) {
|
|
41
|
-
return [values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3], values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7], values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11], values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]];
|
|
42
|
-
}
|
|
21
|
+
const UNPACKER = {
|
|
22
|
+
SCALAR: (values, i) => values[i],
|
|
23
|
+
VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],
|
|
24
|
+
VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],
|
|
25
|
+
VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],
|
|
26
|
+
MAT2: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],
|
|
27
|
+
MAT3: (values, i) => [values[9 * i + 0], values[9 * i + 1], values[9 * i + 2], values[9 * i + 3], values[9 * i + 4], values[9 * i + 5], values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]],
|
|
28
|
+
MAT4: (values, i) => [values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3], values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7], values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11], values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]]
|
|
43
29
|
};
|
|
44
|
-
|
|
45
|
-
SCALAR:
|
|
30
|
+
const PACKER = {
|
|
31
|
+
SCALAR: (x, values, i) => {
|
|
46
32
|
values[i] = x;
|
|
47
33
|
},
|
|
48
|
-
VEC2:
|
|
34
|
+
VEC2: (x, values, i) => {
|
|
49
35
|
values[2 * i + 0] = x[0];
|
|
50
36
|
values[2 * i + 1] = x[1];
|
|
51
37
|
},
|
|
52
|
-
VEC3:
|
|
38
|
+
VEC3: (x, values, i) => {
|
|
53
39
|
values[3 * i + 0] = x[0];
|
|
54
40
|
values[3 * i + 1] = x[1];
|
|
55
41
|
values[3 * i + 2] = x[2];
|
|
56
42
|
},
|
|
57
|
-
VEC4:
|
|
43
|
+
VEC4: (x, values, i) => {
|
|
58
44
|
values[4 * i + 0] = x[0];
|
|
59
45
|
values[4 * i + 1] = x[1];
|
|
60
46
|
values[4 * i + 2] = x[2];
|
|
61
47
|
values[4 * i + 3] = x[3];
|
|
62
48
|
},
|
|
63
|
-
MAT2:
|
|
49
|
+
MAT2: (x, values, i) => {
|
|
64
50
|
values[4 * i + 0] = x[0];
|
|
65
51
|
values[4 * i + 1] = x[1];
|
|
66
52
|
values[4 * i + 2] = x[2];
|
|
67
53
|
values[4 * i + 3] = x[3];
|
|
68
54
|
},
|
|
69
|
-
MAT3:
|
|
55
|
+
MAT3: (x, values, i) => {
|
|
70
56
|
values[9 * i + 0] = x[0];
|
|
71
57
|
values[9 * i + 1] = x[1];
|
|
72
58
|
values[9 * i + 2] = x[2];
|
|
@@ -78,7 +64,7 @@ var PACKER = {
|
|
|
78
64
|
values[9 * i + 8] = x[8];
|
|
79
65
|
values[9 * i + 9] = x[9];
|
|
80
66
|
},
|
|
81
|
-
MAT4:
|
|
67
|
+
MAT4: (x, values, i) => {
|
|
82
68
|
values[16 * i + 0] = x[0];
|
|
83
69
|
values[16 * i + 1] = x[1];
|
|
84
70
|
values[16 * i + 2] = x[2];
|
|
@@ -99,22 +85,24 @@ var PACKER = {
|
|
|
99
85
|
};
|
|
100
86
|
|
|
101
87
|
function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {
|
|
102
|
-
|
|
88
|
+
const {
|
|
89
|
+
componentType
|
|
90
|
+
} = tile3DAccessor;
|
|
103
91
|
(0, _loaderUtils.assert)(tile3DAccessor.componentType);
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
92
|
+
const type = typeof componentType === 'string' ? _math.GLType.fromName(componentType) : componentType;
|
|
93
|
+
const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];
|
|
94
|
+
const unpacker = UNPACKER[tile3DAccessor.type];
|
|
95
|
+
const packer = PACKER[tile3DAccessor.type];
|
|
108
96
|
byteOffset += tile3DAccessor.byteOffset;
|
|
109
97
|
|
|
110
|
-
|
|
98
|
+
const values = _math.GLType.createTypedArray(type, buffer, byteOffset, size * length);
|
|
111
99
|
|
|
112
100
|
return {
|
|
113
|
-
values
|
|
114
|
-
type
|
|
115
|
-
size
|
|
116
|
-
unpacker
|
|
117
|
-
packer
|
|
101
|
+
values,
|
|
102
|
+
type,
|
|
103
|
+
size,
|
|
104
|
+
unpacker,
|
|
105
|
+
packer
|
|
118
106
|
};
|
|
119
107
|
}
|
|
120
108
|
//# sourceMappingURL=tile-3d-accessor-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/lib/classes/helpers/tile-3d-accessor-utils.js"],"names":["COMPONENTS_PER_ATTRIBUTE","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","UNPACKER","values","i","PACKER","x","createTypedArrayFromAccessor","tile3DAccessor","buffer","byteOffset","length","componentType","type","GLType","fromName","size","unpacker","packer","createTypedArray"],"mappings":";;;;;;;AAAA;;AACA;;AAEA,IAAMA,wBAAwB,GAAG;AAC/BC,EAAAA,MAAM,EAAE,CADuB;AAE/BC,EAAAA,IAAI,EAAE,CAFyB;AAG/BC,EAAAA,IAAI,EAAE,CAHyB;AAI/BC,EAAAA,IAAI,EAAE,CAJyB;AAK/BC,EAAAA,IAAI,EAAE,CALyB;AAM/BC,EAAAA,IAAI,EAAE,CANyB;AAO/BC,EAAAA,IAAI,EAAE;AAPyB,CAAjC;AAYA,IAAMC,QAAQ,GAAG;AACfP,EAAAA,MAAM,EAAE,gBAACQ,MAAD,EAASC,CAAT;AAAA,WAAeD,MAAM,CAACC,CAAD,CAArB;AAAA,GADO;AAEfR,EAAAA,IAAI,EAAE,cAACO,MAAD,EAASC,CAAT;AAAA,WAAe,CAACD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAP,EAAoBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAA1B,CAAf;AAAA,GAFS;AAGfP,EAAAA,IAAI,EAAE,cAACM,MAAD,EAASC,CAAT;AAAA,WAAe,CAACD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAP,EAAoBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAA1B,EAAuCD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAA7C,CAAf;AAAA,GAHS;AAIfN,EAAAA,IAAI,EAAE,cAACK,MAAD,EAASC,CAAT;AAAA,WAAe,CAACD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAP,EAAoBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAA1B,EAAuCD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAA7C,EAA0DD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAhE,CAAf;AAAA,GAJS;AAMfL,EAAAA,IAAI,EAAE,cAACI,MAAD,EAASC,CAAT;AAAA,WAAe,CACnBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CADa,EACAD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CADN,EAEnBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAFa,EAEAD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAFN,CAAf;AAAA,GANS;AAUfJ,EAAAA,IAAI,EAAE,cAACG,MAAD,EAASC,CAAT;AAAA,WAAe,CACnBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CADa,EACAD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CADN,EACmBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CADzB,EAEnBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAFa,EAEAD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAFN,EAEmBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAFzB,EAGnBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAHa,EAGAD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAHN,EAGmBD,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAHzB,CAAf;AAAA,GAVS;AAefH,EAAAA,IAAI,EAAE,cAACE,MAAD,EAASC,CAAT;AAAA,WAAe,CACnBD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CADa,EACCD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CADP,EACqBD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAD3B,EACyCD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAD/C,EAEnBD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAFa,EAECD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAFP,EAEqBD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAF3B,EAEyCD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAF/C,EAGnBD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAHa,EAGCD,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAHP,EAGqBD,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAH3B,EAG0CD,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAHhD,EAInBD,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAJa,EAIED,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAJR,EAIuBD,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAJ7B,EAI4CD,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAJlD,CAAf;AAAA;AAfS,CAAjB;AAuBA,IAAMC,MAAM,GAAG;AACbV,EAAAA,MAAM,EAAE,gBAACW,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACxBD,IAAAA,MAAM,CAACC,CAAD,CAAN,GAAYE,CAAZ;AACD,GAHY;AAIbV,EAAAA,IAAI,EAAE,cAACU,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACtBD,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACD,GAPY;AAQbT,EAAAA,IAAI,EAAE,cAACS,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACtBD,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACD,GAZY;AAabR,EAAAA,IAAI,EAAE,cAACQ,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACtBD,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACD,GAlBY;AAoBbP,EAAAA,IAAI,EAAE,cAACO,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACtBD,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACD,GAzBY;AA0BbN,EAAAA,IAAI,EAAE,cAACM,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACtBD,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACAH,IAAAA,MAAM,CAAC,IAAIC,CAAJ,GAAQ,CAAT,CAAN,GAAoBE,CAAC,CAAC,CAAD,CAArB;AACD,GArCY;AAsCbL,EAAAA,IAAI,EAAE,cAACK,CAAD,EAAIH,MAAJ,EAAYC,CAAZ,EAAkB;AACtBD,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,CAAV,CAAN,GAAqBE,CAAC,CAAC,CAAD,CAAtB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAAN,GAAsBE,CAAC,CAAC,EAAD,CAAvB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAAN,GAAsBE,CAAC,CAAC,EAAD,CAAvB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAAN,GAAsBE,CAAC,CAAC,EAAD,CAAvB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAAN,GAAsBE,CAAC,CAAC,EAAD,CAAvB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAAN,GAAsBE,CAAC,CAAC,EAAD,CAAvB;AACAH,IAAAA,MAAM,CAAC,KAAKC,CAAL,GAAS,EAAV,CAAN,GAAsBE,CAAC,CAAC,EAAD,CAAvB;AACD;AAvDY,CAAf;;AA0DO,SAASC,4BAAT,CAAsCC,cAAtC,EAAsDC,MAAtD,EAA8DC,UAA9D,EAA0EC,MAA1E,EAAkF;AACvF,MAAOC,aAAP,GAAwBJ,cAAxB,CAAOI,aAAP;AACA,2BAAOJ,cAAc,CAACI,aAAtB;AACA,MAAMC,IAAI,GAAG,OAAOD,aAAP,KAAyB,QAAzB,GAAoCE,aAAOC,QAAP,CAAgBH,aAAhB,CAApC,GAAqEA,aAAlF;AACA,MAAMI,IAAI,GAAGtB,wBAAwB,CAACc,cAAc,CAACK,IAAhB,CAArC;AACA,MAAMI,QAAQ,GAAGf,QAAQ,CAACM,cAAc,CAACK,IAAhB,CAAzB;AACA,MAAMK,MAAM,GAAGb,MAAM,CAACG,cAAc,CAACK,IAAhB,CAArB;AAEAH,EAAAA,UAAU,IAAIF,cAAc,CAACE,UAA7B;;AACA,MAAMP,MAAM,GAAGW,aAAOK,gBAAP,CAAwBN,IAAxB,EAA8BJ,MAA9B,EAAsCC,UAAtC,EAAkDM,IAAI,GAAGL,MAAzD,CAAf;;AAEA,SAAO;AACLR,IAAAA,MAAM,EAANA,MADK;AAELU,IAAAA,IAAI,EAAJA,IAFK;AAGLG,IAAAA,IAAI,EAAJA,IAHK;AAILC,IAAAA,QAAQ,EAARA,QAJK;AAKLC,IAAAA,MAAM,EAANA;AALK,GAAP;AAOD","sourcesContent":["import {GLType} from '@loaders.gl/math'; // '@math.gl/geometry';\nimport {assert} from '@loaders.gl/loader-utils';\n\nconst COMPONENTS_PER_ATTRIBUTE = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\n\n// TODO - could just return typed array views...\n// prettier-ignore\nconst UNPACKER = {\n SCALAR: (values, i) => values[i],\n VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],\n VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],\n VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],\n // TODO: check column major\n MAT2: (values, i) => [\n values[4 * i + 0], values[4 * i + 1],\n values[4 * i + 2], values[4 * i + 3]\n ],\n MAT3: (values, i) => [\n values[9 * i + 0], values[9 * i + 1], values[9 * i + 2],\n values[9 * i + 3], values[9 * i + 4], values[9 * i + 5],\n values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]\n ],\n MAT4: (values, i) => [\n values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3],\n values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7],\n values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11],\n values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]\n ]\n};\n\nconst PACKER = {\n SCALAR: (x, values, i) => {\n values[i] = x;\n },\n VEC2: (x, values, i) => {\n values[2 * i + 0] = x[0];\n values[2 * i + 1] = x[1];\n },\n VEC3: (x, values, i) => {\n values[3 * i + 0] = x[0];\n values[3 * i + 1] = x[1];\n values[3 * i + 2] = x[2];\n },\n VEC4: (x, values, i) => {\n values[4 * i + 0] = x[0];\n values[4 * i + 1] = x[1];\n values[4 * i + 2] = x[2];\n values[4 * i + 3] = x[3];\n },\n // TODO: check column major correctness\n MAT2: (x, values, i) => {\n values[4 * i + 0] = x[0];\n values[4 * i + 1] = x[1];\n values[4 * i + 2] = x[2];\n values[4 * i + 3] = x[3];\n },\n MAT3: (x, values, i) => {\n values[9 * i + 0] = x[0];\n values[9 * i + 1] = x[1];\n values[9 * i + 2] = x[2];\n values[9 * i + 3] = x[3];\n values[9 * i + 4] = x[4];\n values[9 * i + 5] = x[5];\n values[9 * i + 6] = x[6];\n values[9 * i + 7] = x[7];\n values[9 * i + 8] = x[8];\n values[9 * i + 9] = x[9];\n },\n MAT4: (x, values, i) => {\n values[16 * i + 0] = x[0];\n values[16 * i + 1] = x[1];\n values[16 * i + 2] = x[2];\n values[16 * i + 3] = x[3];\n values[16 * i + 4] = x[4];\n values[16 * i + 5] = x[5];\n values[16 * i + 6] = x[6];\n values[16 * i + 7] = x[7];\n values[16 * i + 8] = x[8];\n values[16 * i + 9] = x[9];\n values[16 * i + 10] = x[10];\n values[16 * i + 11] = x[11];\n values[16 * i + 12] = x[12];\n values[16 * i + 13] = x[13];\n values[16 * i + 14] = x[14];\n values[16 * i + 15] = x[15];\n }\n};\n\nexport function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {\n const {componentType} = tile3DAccessor;\n assert(tile3DAccessor.componentType);\n const type = typeof componentType === 'string' ? GLType.fromName(componentType) : componentType;\n const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];\n const unpacker = UNPACKER[tile3DAccessor.type];\n const packer = PACKER[tile3DAccessor.type];\n\n byteOffset += tile3DAccessor.byteOffset;\n const values = GLType.createTypedArray(type, buffer, byteOffset, size * length);\n\n return {\n values,\n type,\n size,\n unpacker,\n packer\n };\n}\n"],"file":"tile-3d-accessor-utils.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/lib/classes/helpers/tile-3d-accessor-utils.js"],"names":["COMPONENTS_PER_ATTRIBUTE","SCALAR","VEC2","VEC3","VEC4","MAT2","MAT3","MAT4","UNPACKER","values","i","PACKER","x","createTypedArrayFromAccessor","tile3DAccessor","buffer","byteOffset","length","componentType","type","GLType","fromName","size","unpacker","packer","createTypedArray"],"mappings":"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","sourcesContent":["import {GLType} from '@loaders.gl/math'; // '@math.gl/geometry';\nimport {assert} from '@loaders.gl/loader-utils';\n\nconst COMPONENTS_PER_ATTRIBUTE = {\n SCALAR: 1,\n VEC2: 2,\n VEC3: 3,\n VEC4: 4,\n MAT2: 4,\n MAT3: 9,\n MAT4: 16\n};\n\n// TODO - could just return typed array views...\n// prettier-ignore\nconst UNPACKER = {\n SCALAR: (values, i) => values[i],\n VEC2: (values, i) => [values[2 * i + 0], values[2 * i + 1]],\n VEC3: (values, i) => [values[3 * i + 0], values[3 * i + 1], values[3 * i + 2]],\n VEC4: (values, i) => [values[4 * i + 0], values[4 * i + 1], values[4 * i + 2], values[4 * i + 3]],\n // TODO: check column major\n MAT2: (values, i) => [\n values[4 * i + 0], values[4 * i + 1],\n values[4 * i + 2], values[4 * i + 3]\n ],\n MAT3: (values, i) => [\n values[9 * i + 0], values[9 * i + 1], values[9 * i + 2],\n values[9 * i + 3], values[9 * i + 4], values[9 * i + 5],\n values[9 * i + 6], values[9 * i + 7], values[9 * i + 8]\n ],\n MAT4: (values, i) => [\n values[16 * i + 0], values[16 * i + 1], values[16 * i + 2], values[16 * i + 3],\n values[16 * i + 4], values[16 * i + 5], values[16 * i + 6], values[16 * i + 7],\n values[16 * i + 8], values[16 * i + 9], values[16 * i + 10], values[16 * i + 11],\n values[16 * i + 12], values[16 * i + 13], values[16 * i + 14], values[16 * i + 15]\n ]\n};\n\nconst PACKER = {\n SCALAR: (x, values, i) => {\n values[i] = x;\n },\n VEC2: (x, values, i) => {\n values[2 * i + 0] = x[0];\n values[2 * i + 1] = x[1];\n },\n VEC3: (x, values, i) => {\n values[3 * i + 0] = x[0];\n values[3 * i + 1] = x[1];\n values[3 * i + 2] = x[2];\n },\n VEC4: (x, values, i) => {\n values[4 * i + 0] = x[0];\n values[4 * i + 1] = x[1];\n values[4 * i + 2] = x[2];\n values[4 * i + 3] = x[3];\n },\n // TODO: check column major correctness\n MAT2: (x, values, i) => {\n values[4 * i + 0] = x[0];\n values[4 * i + 1] = x[1];\n values[4 * i + 2] = x[2];\n values[4 * i + 3] = x[3];\n },\n MAT3: (x, values, i) => {\n values[9 * i + 0] = x[0];\n values[9 * i + 1] = x[1];\n values[9 * i + 2] = x[2];\n values[9 * i + 3] = x[3];\n values[9 * i + 4] = x[4];\n values[9 * i + 5] = x[5];\n values[9 * i + 6] = x[6];\n values[9 * i + 7] = x[7];\n values[9 * i + 8] = x[8];\n values[9 * i + 9] = x[9];\n },\n MAT4: (x, values, i) => {\n values[16 * i + 0] = x[0];\n values[16 * i + 1] = x[1];\n values[16 * i + 2] = x[2];\n values[16 * i + 3] = x[3];\n values[16 * i + 4] = x[4];\n values[16 * i + 5] = x[5];\n values[16 * i + 6] = x[6];\n values[16 * i + 7] = x[7];\n values[16 * i + 8] = x[8];\n values[16 * i + 9] = x[9];\n values[16 * i + 10] = x[10];\n values[16 * i + 11] = x[11];\n values[16 * i + 12] = x[12];\n values[16 * i + 13] = x[13];\n values[16 * i + 14] = x[14];\n values[16 * i + 15] = x[15];\n }\n};\n\nexport function createTypedArrayFromAccessor(tile3DAccessor, buffer, byteOffset, length) {\n const {componentType} = tile3DAccessor;\n assert(tile3DAccessor.componentType);\n const type = typeof componentType === 'string' ? GLType.fromName(componentType) : componentType;\n const size = COMPONENTS_PER_ATTRIBUTE[tile3DAccessor.type];\n const unpacker = UNPACKER[tile3DAccessor.type];\n const packer = PACKER[tile3DAccessor.type];\n\n byteOffset += tile3DAccessor.byteOffset;\n const values = GLType.createTypedArray(type, buffer, byteOffset, size * length);\n\n return {\n values,\n type,\n size,\n unpacker,\n packer\n };\n}\n"],"file":"tile-3d-accessor-utils.js"}
|
|
@@ -6,17 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.initializeHierarchy = initializeHierarchy;
|
|
7
7
|
exports.traverseHierarchy = traverseHierarchy;
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
return x !== undefined;
|
|
11
|
-
};
|
|
9
|
+
const defined = x => x !== undefined;
|
|
12
10
|
|
|
13
11
|
function initializeHierarchy(batchTable, jsonHeader, binaryBody) {
|
|
14
12
|
if (!jsonHeader) {
|
|
15
13
|
return null;
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
let hierarchy = batchTable.getExtension('3DTILES_batch_table_hierarchy');
|
|
17
|
+
const legacyHierarchy = jsonHeader.HIERARCHY;
|
|
20
18
|
|
|
21
19
|
if (legacyHierarchy) {
|
|
22
20
|
console.warn('3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy.');
|
|
@@ -33,15 +31,15 @@ function initializeHierarchy(batchTable, jsonHeader, binaryBody) {
|
|
|
33
31
|
}
|
|
34
32
|
|
|
35
33
|
function initializeHierarchyValues(hierarchyJson, binaryBody) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
34
|
+
let i;
|
|
35
|
+
let classId;
|
|
36
|
+
let binaryAccessor;
|
|
37
|
+
const instancesLength = hierarchyJson.instancesLength;
|
|
38
|
+
const classes = hierarchyJson.classes;
|
|
39
|
+
let classIds = hierarchyJson.classIds;
|
|
40
|
+
let parentCounts = hierarchyJson.parentCounts;
|
|
41
|
+
let parentIds = hierarchyJson.parentIds;
|
|
42
|
+
let parentIdsLength = instancesLength;
|
|
45
43
|
|
|
46
44
|
if (defined(classIds.byteOffset)) {
|
|
47
45
|
classIds.componentType = defaultValue(classIds.componentType, GL.UNSIGNED_SHORT);
|
|
@@ -50,7 +48,7 @@ function initializeHierarchyValues(hierarchyJson, binaryBody) {
|
|
|
50
48
|
classIds = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + classIds.byteOffset, instancesLength);
|
|
51
49
|
}
|
|
52
50
|
|
|
53
|
-
|
|
51
|
+
let parentIndexes;
|
|
54
52
|
|
|
55
53
|
if (defined(parentCounts)) {
|
|
56
54
|
if (defined(parentCounts.byteOffset)) {
|
|
@@ -76,17 +74,17 @@ function initializeHierarchyValues(hierarchyJson, binaryBody) {
|
|
|
76
74
|
parentIds = binaryAccessor.createArrayBufferView(binaryBody.buffer, binaryBody.byteOffset + parentIds.byteOffset, parentIdsLength);
|
|
77
75
|
}
|
|
78
76
|
|
|
79
|
-
|
|
77
|
+
const classesLength = classes.length;
|
|
80
78
|
|
|
81
79
|
for (i = 0; i < classesLength; ++i) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
const classInstancesLength = classes[i].length;
|
|
81
|
+
const properties = classes[i].instances;
|
|
82
|
+
const binaryProperties = getBinaryProperties(classInstancesLength, properties, binaryBody);
|
|
85
83
|
classes[i].instances = combine(binaryProperties, properties);
|
|
86
84
|
}
|
|
87
85
|
|
|
88
|
-
|
|
89
|
-
|
|
86
|
+
const classCounts = new Array(classesLength).fill(0);
|
|
87
|
+
const classIndexes = new Uint16Array(instancesLength);
|
|
90
88
|
|
|
91
89
|
for (i = 0; i < instancesLength; ++i) {
|
|
92
90
|
classId = classIds[i];
|
|
@@ -94,13 +92,13 @@ function initializeHierarchyValues(hierarchyJson, binaryBody) {
|
|
|
94
92
|
++classCounts[classId];
|
|
95
93
|
}
|
|
96
94
|
|
|
97
|
-
|
|
98
|
-
classes
|
|
99
|
-
classIds
|
|
100
|
-
classIndexes
|
|
101
|
-
parentCounts
|
|
102
|
-
parentIndexes
|
|
103
|
-
parentIds
|
|
95
|
+
const hierarchy = {
|
|
96
|
+
classes,
|
|
97
|
+
classIds,
|
|
98
|
+
classIndexes,
|
|
99
|
+
parentCounts,
|
|
100
|
+
parentIndexes,
|
|
101
|
+
parentIds
|
|
104
102
|
};
|
|
105
103
|
validateHierarchy(hierarchy);
|
|
106
104
|
return hierarchy;
|
|
@@ -111,8 +109,8 @@ function traverseHierarchy(hierarchy, instanceIndex, endConditionCallback) {
|
|
|
111
109
|
return;
|
|
112
110
|
}
|
|
113
111
|
|
|
114
|
-
|
|
115
|
-
|
|
112
|
+
const parentCounts = hierarchy.parentCounts;
|
|
113
|
+
const parentIds = hierarchy.parentIds;
|
|
116
114
|
|
|
117
115
|
if (parentIds) {
|
|
118
116
|
return endConditionCallback(hierarchy, instanceIndex);
|
|
@@ -126,15 +124,15 @@ function traverseHierarchy(hierarchy, instanceIndex, endConditionCallback) {
|
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
function traverseHierarchyMultipleParents(hierarchy, instanceIndex, endConditionCallback) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
const classIds = hierarchy.classIds;
|
|
128
|
+
const parentCounts = hierarchy.parentCounts;
|
|
129
|
+
const parentIds = hierarchy.parentIds;
|
|
130
|
+
const parentIndexes = hierarchy.parentIndexes;
|
|
131
|
+
const instancesLength = classIds.length;
|
|
132
|
+
const visited = scratchVisited;
|
|
135
133
|
visited.length = Math.max(visited.length, instancesLength);
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
const visitedMarker = ++marker;
|
|
135
|
+
const stack = scratchStack;
|
|
138
136
|
stack.length = 0;
|
|
139
137
|
stack.push(instanceIndex);
|
|
140
138
|
|
|
@@ -146,17 +144,17 @@ function traverseHierarchyMultipleParents(hierarchy, instanceIndex, endCondition
|
|
|
146
144
|
}
|
|
147
145
|
|
|
148
146
|
visited[instanceIndex] = visitedMarker;
|
|
149
|
-
|
|
147
|
+
const result = endConditionCallback(hierarchy, instanceIndex);
|
|
150
148
|
|
|
151
149
|
if (defined(result)) {
|
|
152
150
|
return result;
|
|
153
151
|
}
|
|
154
152
|
|
|
155
|
-
|
|
156
|
-
|
|
153
|
+
const parentCount = parentCounts[instanceIndex];
|
|
154
|
+
const parentIndex = parentIndexes[instanceIndex];
|
|
157
155
|
|
|
158
|
-
for (
|
|
159
|
-
|
|
156
|
+
for (let i = 0; i < parentCount; ++i) {
|
|
157
|
+
const parentId = parentIds[parentIndex + i];
|
|
160
158
|
|
|
161
159
|
if (parentId !== instanceIndex) {
|
|
162
160
|
stack.push(parentId);
|
|
@@ -168,16 +166,16 @@ function traverseHierarchyMultipleParents(hierarchy, instanceIndex, endCondition
|
|
|
168
166
|
}
|
|
169
167
|
|
|
170
168
|
function traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCallback) {
|
|
171
|
-
|
|
169
|
+
let hasParent = true;
|
|
172
170
|
|
|
173
171
|
while (hasParent) {
|
|
174
|
-
|
|
172
|
+
const result = endConditionCallback(hierarchy, instanceIndex);
|
|
175
173
|
|
|
176
174
|
if (defined(result)) {
|
|
177
175
|
return result;
|
|
178
176
|
}
|
|
179
177
|
|
|
180
|
-
|
|
178
|
+
const parentId = hierarchy.parentIds[instanceIndex];
|
|
181
179
|
hasParent = parentId !== instanceIndex;
|
|
182
180
|
instanceIndex = parentId;
|
|
183
181
|
}
|
|
@@ -186,21 +184,21 @@ function traverseHierarchySingleParent(hierarchy, instanceIndex, endConditionCal
|
|
|
186
184
|
}
|
|
187
185
|
|
|
188
186
|
function validateHierarchy(hierarchy) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
187
|
+
const scratchValidateStack = [];
|
|
188
|
+
const classIds = hierarchy.classIds;
|
|
189
|
+
const instancesLength = classIds.length;
|
|
192
190
|
|
|
193
|
-
for (
|
|
191
|
+
for (let i = 0; i < instancesLength; ++i) {
|
|
194
192
|
validateInstance(hierarchy, i, stack);
|
|
195
193
|
}
|
|
196
194
|
}
|
|
197
195
|
|
|
198
196
|
function validateInstance(hierarchy, instanceIndex, stack) {
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
197
|
+
const parentCounts = hierarchy.parentCounts;
|
|
198
|
+
const parentIds = hierarchy.parentIds;
|
|
199
|
+
const parentIndexes = hierarchy.parentIndexes;
|
|
200
|
+
const classIds = hierarchy.classIds;
|
|
201
|
+
const instancesLength = classIds.length;
|
|
204
202
|
|
|
205
203
|
if (!defined(parentIds)) {
|
|
206
204
|
return;
|
|
@@ -209,11 +207,11 @@ function validateInstance(hierarchy, instanceIndex, stack) {
|
|
|
209
207
|
assert(instanceIndex < instancesLength, "Parent index ".concat(instanceIndex, " exceeds the total number of instances: ").concat(instancesLength));
|
|
210
208
|
assert(stack.indexOf(instanceIndex) === -1, 'Circular dependency detected in the batch table hierarchy.');
|
|
211
209
|
stack.push(instanceIndex);
|
|
212
|
-
|
|
213
|
-
|
|
210
|
+
const parentCount = defined(parentCounts) ? parentCounts[instanceIndex] : 1;
|
|
211
|
+
const parentIndex = defined(parentCounts) ? parentIndexes[instanceIndex] : instanceIndex;
|
|
214
212
|
|
|
215
|
-
for (
|
|
216
|
-
|
|
213
|
+
for (let i = 0; i < parentCount; ++i) {
|
|
214
|
+
const parentId = parentIds[parentIndex + i];
|
|
217
215
|
|
|
218
216
|
if (parentId !== instanceIndex) {
|
|
219
217
|
validateInstance(hierarchy, parentId, stack);
|