@loaders.gl/tile-converter 3.1.3 → 4.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts +78 -0
- package/dist/3d-tiles-converter/3d-tiles-converter.d.ts.map +1 -0
- package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/3d-tiles-converter.js +2 -1
- package/dist/3d-tiles-converter/3d-tiles-converter.js.map +1 -0
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts +83 -0
- package/dist/3d-tiles-converter/helpers/b3dm-converter.d.ts.map +1 -0
- package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/b3dm-converter.js +7 -5
- package/dist/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -0
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts +13 -0
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.d.ts.map +1 -0
- package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/i3s-obb-to-3d-tiles-obb.js +0 -0
- package/dist/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts +9 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.d.ts.map +1 -0
- package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/helpers/texture-atlas.js +0 -0
- package/dist/3d-tiles-converter/helpers/texture-atlas.js.map +1 -0
- package/dist/3d-tiles-converter/json-templates/tileset.d.ts +15 -0
- package/dist/3d-tiles-converter/json-templates/tileset.d.ts.map +1 -0
- package/dist/{esm/3d-tiles-converter → 3d-tiles-converter}/json-templates/tileset.js +0 -0
- package/dist/3d-tiles-converter/json-templates/tileset.js.map +1 -0
- package/dist/bundle.d.ts +2 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/{esm/bundle.js → bundle.js} +0 -0
- package/dist/bundle.js.map +1 -0
- package/dist/converter.min.js +21 -21
- package/dist/{es5/deps-installer → deps-installer}/deps-installer.d.ts +0 -0
- package/dist/deps-installer/deps-installer.d.ts.map +1 -0
- package/dist/{esm/deps-installer → deps-installer}/deps-installer.js +0 -0
- package/dist/deps-installer/deps-installer.js.map +1 -0
- package/dist/dist.min.js +201 -445
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts +41 -0
- package/dist/i3s-converter/helpers/coordinate-converter.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/helpers/coordinate-converter.js +0 -0
- package/dist/i3s-converter/helpers/coordinate-converter.js.map +1 -0
- package/dist/i3s-converter/helpers/create-scene-server-path.d.ts +9 -0
- package/dist/i3s-converter/helpers/create-scene-server-path.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/helpers/create-scene-server-path.js +0 -0
- package/dist/i3s-converter/helpers/create-scene-server-path.js.map +1 -0
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts +23 -0
- package/dist/i3s-converter/helpers/geometry-attributes.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-attributes.js +0 -0
- package/dist/i3s-converter/helpers/geometry-attributes.js.map +1 -0
- package/dist/{es5/i3s-converter → i3s-converter}/helpers/geometry-converter.d.ts +0 -0
- package/dist/i3s-converter/helpers/geometry-converter.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/helpers/geometry-converter.js +31 -4
- package/dist/i3s-converter/helpers/geometry-converter.js.map +1 -0
- package/dist/i3s-converter/helpers/node-debug.d.ts +2 -0
- package/dist/i3s-converter/helpers/node-debug.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-debug.js +0 -0
- package/dist/i3s-converter/helpers/node-debug.js.map +1 -0
- package/dist/i3s-converter/helpers/node-pages.d.ts +116 -0
- package/dist/i3s-converter/helpers/node-pages.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/helpers/node-pages.js +0 -0
- package/dist/i3s-converter/helpers/node-pages.js.map +1 -0
- package/dist/i3s-converter/i3s-converter.d.ts +320 -0
- package/dist/i3s-converter/i3s-converter.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/i3s-converter.js +0 -0
- package/dist/i3s-converter/i3s-converter.js.map +1 -0
- package/dist/i3s-converter/json-templates/layers.d.ts +95 -0
- package/dist/i3s-converter/json-templates/layers.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/json-templates/layers.js +0 -0
- package/dist/i3s-converter/json-templates/layers.js.map +1 -0
- package/dist/i3s-converter/json-templates/metadata.d.ts +22 -0
- package/dist/i3s-converter/json-templates/metadata.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/json-templates/metadata.js +0 -0
- package/dist/i3s-converter/json-templates/metadata.js.map +1 -0
- package/dist/i3s-converter/json-templates/node.d.ts +61 -0
- package/dist/i3s-converter/json-templates/node.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/json-templates/node.js +0 -0
- package/dist/i3s-converter/json-templates/node.js.map +1 -0
- package/dist/i3s-converter/json-templates/scene-server.d.ts +28 -0
- package/dist/i3s-converter/json-templates/scene-server.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/json-templates/scene-server.js +0 -0
- package/dist/i3s-converter/json-templates/scene-server.js.map +1 -0
- package/dist/i3s-converter/json-templates/shared-resources.d.ts +14 -0
- package/dist/i3s-converter/json-templates/shared-resources.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/json-templates/shared-resources.js +0 -0
- package/dist/i3s-converter/json-templates/shared-resources.js.map +1 -0
- package/dist/i3s-converter/json-templates/store.d.ts +95 -0
- package/dist/i3s-converter/json-templates/store.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/json-templates/store.js +0 -0
- package/dist/i3s-converter/json-templates/store.js.map +1 -0
- package/dist/i3s-converter/types.d.ts +14 -0
- package/dist/i3s-converter/types.d.ts.map +1 -0
- package/dist/{esm/i3s-converter → i3s-converter}/types.js +0 -0
- package/dist/{es5/i3s-converter → i3s-converter}/types.js.map +0 -0
- package/dist/i3s-server/app.d.ts +3 -0
- package/dist/i3s-server/app.d.ts.map +1 -0
- package/dist/{esm/i3s-server → i3s-server}/app.js +0 -0
- package/dist/i3s-server/app.js.map +1 -0
- package/dist/{es5/i3s-server → i3s-server}/bin/www +0 -0
- package/dist/{es5/i3s-server → i3s-server}/certs/cert.pem +0 -0
- package/dist/{es5/i3s-server → i3s-server}/certs/key.pem +0 -0
- package/dist/i3s-server/controllers/index-controller.d.ts +2 -0
- package/dist/i3s-server/controllers/index-controller.d.ts.map +1 -0
- package/dist/{esm/i3s-server → i3s-server}/controllers/index-controller.js +0 -0
- package/dist/i3s-server/controllers/index-controller.js.map +1 -0
- package/dist/i3s-server/routes/index.d.ts +3 -0
- package/dist/i3s-server/routes/index.d.ts.map +1 -0
- package/dist/{esm/i3s-server → i3s-server}/routes/index.js +0 -0
- package/dist/i3s-server/routes/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{esm/index.js → index.js} +0 -0
- package/dist/index.js.map +1 -0
- package/dist/{es5/lib → lib}/utils/compress-util.d.ts +0 -0
- package/dist/lib/utils/compress-util.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/compress-util.js +0 -0
- package/dist/lib/utils/compress-util.js.map +1 -0
- package/dist/{es5/lib → lib}/utils/file-utils.d.ts +0 -0
- package/dist/lib/utils/file-utils.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/file-utils.js +0 -0
- package/dist/lib/utils/file-utils.js.map +1 -0
- package/dist/{es5/lib → lib}/utils/lod-conversion-utils.d.ts +0 -0
- package/dist/lib/utils/lod-conversion-utils.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/lod-conversion-utils.js +0 -0
- package/dist/lib/utils/lod-conversion-utils.js.map +1 -0
- package/dist/{es5/lib → lib}/utils/statistic-utills.d.ts +0 -0
- package/dist/lib/utils/statistic-utills.d.ts.map +1 -0
- package/dist/{esm/lib → lib}/utils/statistic-utills.js +0 -0
- package/dist/lib/utils/statistic-utills.js.map +1 -0
- package/dist/pgm-loader.d.ts +6 -0
- package/dist/pgm-loader.d.ts.map +1 -0
- package/dist/{esm/pgm-loader.js → pgm-loader.js} +1 -1
- package/dist/pgm-loader.js.map +1 -0
- package/package.json +18 -19
- package/src/3d-tiles-converter/3d-tiles-converter.ts +4 -1
- package/src/3d-tiles-converter/helpers/b3dm-converter.ts +6 -5
- package/src/i3s-converter/helpers/geometry-converter.js +39 -4
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +0 -507
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +0 -366
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -26
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -40
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js +0 -67
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/deps-installer/deps-installer.js +0 -83
- package/dist/es5/deps-installer/deps-installer.js.map +0 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +0 -104
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +0 -1
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +0 -54
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +0 -218
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +0 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +0 -911
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +0 -1
- package/dist/es5/i3s-converter/helpers/node-debug.js +0 -99
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +0 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +0 -258
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +0 -1
- package/dist/es5/i3s-converter/i3s-converter.js +0 -1860
- package/dist/es5/i3s-converter/i3s-converter.js.map +0 -1
- package/dist/es5/i3s-converter/json-templates/layers.js +0 -239
- package/dist/es5/i3s-converter/json-templates/layers.js.map +0 -1
- package/dist/es5/i3s-converter/json-templates/metadata.js +0 -33
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +0 -1
- package/dist/es5/i3s-converter/json-templates/node.js +0 -109
- package/dist/es5/i3s-converter/json-templates/node.js.map +0 -1
- package/dist/es5/i3s-converter/json-templates/scene-server.js +0 -41
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +0 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +0 -196
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +0 -1
- package/dist/es5/i3s-converter/json-templates/store.js +0 -107
- package/dist/es5/i3s-converter/json-templates/store.js.map +0 -1
- package/dist/es5/i3s-converter/types.js +0 -2
- package/dist/es5/i3s-server/app.js +0 -23
- package/dist/es5/i3s-server/app.js.map +0 -1
- package/dist/es5/i3s-server/controllers/index-controller.js +0 -73
- package/dist/es5/i3s-server/controllers/index-controller.js.map +0 -1
- package/dist/es5/i3s-server/routes/index.js +0 -49
- package/dist/es5/i3s-server/routes/index.js.map +0 -1
- package/dist/es5/index.js +0 -40
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/lib/utils/compress-util.js +0 -424
- package/dist/es5/lib/utils/compress-util.js.map +0 -1
- package/dist/es5/lib/utils/file-utils.js +0 -137
- package/dist/es5/lib/utils/file-utils.js.map +0 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +0 -52
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +0 -1
- package/dist/es5/lib/utils/statistic-utills.js +0 -196
- package/dist/es5/lib/utils/statistic-utills.js.map +0 -1
- package/dist/es5/pgm-loader.js +0 -51
- package/dist/es5/pgm-loader.js.map +0 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +0 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +0 -1
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +0 -1
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +0 -1
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +0 -1
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/deps-installer/deps-installer.d.ts +0 -10
- package/dist/esm/deps-installer/deps-installer.js.map +0 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +0 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +0 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +0 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.d.ts +0 -44
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +0 -1
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +0 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +0 -1
- package/dist/esm/i3s-converter/i3s-converter.js.map +0 -1
- package/dist/esm/i3s-converter/json-templates/layers.js.map +0 -1
- package/dist/esm/i3s-converter/json-templates/metadata.js.map +0 -1
- package/dist/esm/i3s-converter/json-templates/node.js.map +0 -1
- package/dist/esm/i3s-converter/json-templates/scene-server.js.map +0 -1
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +0 -1
- package/dist/esm/i3s-converter/json-templates/store.js.map +0 -1
- package/dist/esm/i3s-converter/types.js.map +0 -1
- package/dist/esm/i3s-server/app.js.map +0 -1
- package/dist/esm/i3s-server/bin/www +0 -102
- package/dist/esm/i3s-server/certs/cert.pem +0 -19
- package/dist/esm/i3s-server/certs/key.pem +0 -27
- package/dist/esm/i3s-server/controllers/index-controller.js.map +0 -1
- package/dist/esm/i3s-server/routes/index.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lib/utils/compress-util.d.ts +0 -53
- package/dist/esm/lib/utils/compress-util.js.map +0 -1
- package/dist/esm/lib/utils/file-utils.d.ts +0 -43
- package/dist/esm/lib/utils/file-utils.js.map +0 -1
- package/dist/esm/lib/utils/lod-conversion-utils.d.ts +0 -32
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +0 -1
- package/dist/esm/lib/utils/statistic-utills.d.ts +0 -25
- package/dist/esm/lib/utils/statistic-utills.js.map +0 -1
- package/dist/esm/pgm-loader.js.map +0 -1
|
@@ -1,911 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = convertB3dmToI3sGeometry;
|
|
9
|
-
|
|
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
|
-
var _core = require("@math.gl/core");
|
|
17
|
-
|
|
18
|
-
var _geospatial = require("@math.gl/geospatial");
|
|
19
|
-
|
|
20
|
-
var _draco = require("@loaders.gl/draco");
|
|
21
|
-
|
|
22
|
-
var _core2 = require("@loaders.gl/core");
|
|
23
|
-
|
|
24
|
-
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
25
|
-
|
|
26
|
-
var _md = _interopRequireDefault(require("md5"));
|
|
27
|
-
|
|
28
|
-
var _geometryAttributes = require("./geometry-attributes");
|
|
29
|
-
|
|
30
|
-
var _coordinateConverter = require("./coordinate-converter");
|
|
31
|
-
|
|
32
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
33
|
-
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
35
|
-
|
|
36
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
37
|
-
|
|
38
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
39
|
-
|
|
40
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
41
|
-
|
|
42
|
-
var VALUES_PER_VERTEX = 3;
|
|
43
|
-
var VALUES_PER_TEX_COORD = 2;
|
|
44
|
-
var VALUES_PER_COLOR_ELEMENT = 4;
|
|
45
|
-
var STRING_TYPE = 'string';
|
|
46
|
-
var SHORT_INT_TYPE = 'Int32';
|
|
47
|
-
var DOUBLE_TYPE = 'Float64';
|
|
48
|
-
var OBJECT_ID_TYPE = 'Oid32';
|
|
49
|
-
var BATCHED_ID_POSSIBLE_ATTRIBUTE_NAMES = ['CUSTOM_ATTRIBUTE_2', '_BATCHID', 'BATCHID'];
|
|
50
|
-
var scratchVector = new _core.Vector3();
|
|
51
|
-
|
|
52
|
-
function convertB3dmToI3sGeometry(_x, _x2, _x3, _x4, _x5, _x6, _x7) {
|
|
53
|
-
return _convertB3dmToI3sGeometry.apply(this, arguments);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function _convertB3dmToI3sGeometry() {
|
|
57
|
-
_convertB3dmToI3sGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, generateBoundingVolumes, geoidHeightModel) {
|
|
58
|
-
var useCartesianPositions, materialAndTextureList, convertedAttributesMap, result, nodesCounter, _tileContent$gltf$mat, materials, i, sourceMaterial, convertedAttributes, _materialAndTextureLi, material, texture;
|
|
59
|
-
|
|
60
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
61
|
-
while (1) {
|
|
62
|
-
switch (_context.prev = _context.next) {
|
|
63
|
-
case 0:
|
|
64
|
-
useCartesianPositions = generateBoundingVolumes;
|
|
65
|
-
materialAndTextureList = convertMaterials(tileContent);
|
|
66
|
-
convertedAttributesMap = convertAttributes(tileContent, useCartesianPositions);
|
|
67
|
-
|
|
68
|
-
if (generateBoundingVolumes) {
|
|
69
|
-
_generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeightModel);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (convertedAttributesMap.has('default')) {
|
|
73
|
-
materialAndTextureList.push({
|
|
74
|
-
material: getDefaultMaterial()
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
result = [];
|
|
79
|
-
nodesCounter = nodeId;
|
|
80
|
-
_tileContent$gltf$mat = tileContent.gltf.materials, materials = _tileContent$gltf$mat === void 0 ? [] : _tileContent$gltf$mat;
|
|
81
|
-
|
|
82
|
-
if (!(materials !== null && materials !== void 0 && materials.length)) {
|
|
83
|
-
materials.push({
|
|
84
|
-
id: 'default'
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
i = 0;
|
|
89
|
-
|
|
90
|
-
case 10:
|
|
91
|
-
if (!(i < materials.length)) {
|
|
92
|
-
_context.next = 25;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
sourceMaterial = materials[i];
|
|
97
|
-
|
|
98
|
-
if (convertedAttributesMap.has(sourceMaterial.id)) {
|
|
99
|
-
_context.next = 14;
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return _context.abrupt("continue", 22);
|
|
104
|
-
|
|
105
|
-
case 14:
|
|
106
|
-
convertedAttributes = convertedAttributesMap.get(sourceMaterial.id);
|
|
107
|
-
_materialAndTextureLi = materialAndTextureList[i], material = _materialAndTextureLi.material, texture = _materialAndTextureLi.texture;
|
|
108
|
-
_context.t0 = result;
|
|
109
|
-
_context.next = 19;
|
|
110
|
-
return _makeNodeResources({
|
|
111
|
-
convertedAttributes: convertedAttributes,
|
|
112
|
-
material: material,
|
|
113
|
-
texture: texture,
|
|
114
|
-
tileContent: tileContent,
|
|
115
|
-
nodeId: nodesCounter,
|
|
116
|
-
featuresHashArray: featuresHashArray,
|
|
117
|
-
attributeStorageInfo: attributeStorageInfo,
|
|
118
|
-
draco: draco
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
case 19:
|
|
122
|
-
_context.t1 = _context.sent;
|
|
123
|
-
|
|
124
|
-
_context.t0.push.call(_context.t0, _context.t1);
|
|
125
|
-
|
|
126
|
-
nodesCounter++;
|
|
127
|
-
|
|
128
|
-
case 22:
|
|
129
|
-
i++;
|
|
130
|
-
_context.next = 10;
|
|
131
|
-
break;
|
|
132
|
-
|
|
133
|
-
case 25:
|
|
134
|
-
if (result.length) {
|
|
135
|
-
_context.next = 27;
|
|
136
|
-
break;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return _context.abrupt("return", null);
|
|
140
|
-
|
|
141
|
-
case 27:
|
|
142
|
-
return _context.abrupt("return", result);
|
|
143
|
-
|
|
144
|
-
case 28:
|
|
145
|
-
case "end":
|
|
146
|
-
return _context.stop();
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}, _callee);
|
|
150
|
-
}));
|
|
151
|
-
return _convertB3dmToI3sGeometry.apply(this, arguments);
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function _generateBoundingVolumesFromGeometry(convertedAttributesMap, geoidHeightModel) {
|
|
155
|
-
var _iterator = _createForOfIteratorHelper(convertedAttributesMap.values()),
|
|
156
|
-
_step;
|
|
157
|
-
|
|
158
|
-
try {
|
|
159
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
160
|
-
var attributes = _step.value;
|
|
161
|
-
var boundingVolumes = (0, _coordinateConverter.createBoundingVolumesFromGeometry)(attributes.positions, geoidHeightModel);
|
|
162
|
-
attributes.boundingVolumes = boundingVolumes;
|
|
163
|
-
var cartographicOrigin = boundingVolumes.obb.center;
|
|
164
|
-
|
|
165
|
-
for (var index = 0; index < attributes.positions.length; index += VALUES_PER_VERTEX) {
|
|
166
|
-
var vertex = attributes.positions.subarray(index, index + VALUES_PER_VERTEX);
|
|
167
|
-
|
|
168
|
-
_geospatial.Ellipsoid.WGS84.cartesianToCartographic(Array.from(vertex), scratchVector);
|
|
169
|
-
|
|
170
|
-
scratchVector[2] = scratchVector[2] - geoidHeightModel.getHeight(scratchVector[1], scratchVector[0]);
|
|
171
|
-
scratchVector = scratchVector.subtract(cartographicOrigin);
|
|
172
|
-
attributes.positions.set(scratchVector, index);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
} catch (err) {
|
|
176
|
-
_iterator.e(err);
|
|
177
|
-
} finally {
|
|
178
|
-
_iterator.f();
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
function _makeNodeResources(_x8) {
|
|
183
|
-
return _makeNodeResources2.apply(this, arguments);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
function _makeNodeResources2() {
|
|
187
|
-
_makeNodeResources2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2(_ref) {
|
|
188
|
-
var convertedAttributes, material, texture, tileContent, nodeId, featuresHashArray, attributeStorageInfo, draco, boundingVolumes, vertexCount, triangleCount, _generateAttributes, faceRange, featureIds, positions, normals, colors, texCoords, featureCount, header, typedFeatureIds, fileBuffer, compressedGeometry, attributes;
|
|
189
|
-
|
|
190
|
-
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
191
|
-
while (1) {
|
|
192
|
-
switch (_context2.prev = _context2.next) {
|
|
193
|
-
case 0:
|
|
194
|
-
convertedAttributes = _ref.convertedAttributes, material = _ref.material, texture = _ref.texture, tileContent = _ref.tileContent, nodeId = _ref.nodeId, featuresHashArray = _ref.featuresHashArray, attributeStorageInfo = _ref.attributeStorageInfo, draco = _ref.draco;
|
|
195
|
-
boundingVolumes = convertedAttributes.boundingVolumes;
|
|
196
|
-
vertexCount = convertedAttributes.positions.length / VALUES_PER_VERTEX;
|
|
197
|
-
triangleCount = vertexCount / 3;
|
|
198
|
-
_generateAttributes = (0, _geometryAttributes.generateAttributes)(_objectSpread({
|
|
199
|
-
triangleCount: triangleCount
|
|
200
|
-
}, convertedAttributes)), faceRange = _generateAttributes.faceRange, featureIds = _generateAttributes.featureIds, positions = _generateAttributes.positions, normals = _generateAttributes.normals, colors = _generateAttributes.colors, texCoords = _generateAttributes.texCoords, featureCount = _generateAttributes.featureCount;
|
|
201
|
-
|
|
202
|
-
if (tileContent.batchTableJson) {
|
|
203
|
-
makeFeatureIdsUnique(featureIds, convertedAttributes.featureIndices, featuresHashArray, tileContent.batchTableJson);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
header = new Uint32Array(2);
|
|
207
|
-
typedFeatureIds = generateBigUint64Array(featureIds);
|
|
208
|
-
header.set([vertexCount, featureCount], 0);
|
|
209
|
-
fileBuffer = new Uint8Array((0, _loaderUtils.concatenateArrayBuffers)(header.buffer, positions.buffer, normals.buffer, texture ? texCoords.buffer : new ArrayBuffer(0), colors.buffer, typedFeatureIds.buffer, faceRange.buffer));
|
|
210
|
-
|
|
211
|
-
if (!draco) {
|
|
212
|
-
_context2.next = 16;
|
|
213
|
-
break;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
_context2.next = 13;
|
|
217
|
-
return generateCompressedGeometry(vertexCount, convertedAttributes, {
|
|
218
|
-
positions: positions,
|
|
219
|
-
normals: normals,
|
|
220
|
-
texCoords: texture ? texCoords : new Float32Array(0),
|
|
221
|
-
colors: colors,
|
|
222
|
-
featureIds: featureIds,
|
|
223
|
-
faceRange: faceRange
|
|
224
|
-
});
|
|
225
|
-
|
|
226
|
-
case 13:
|
|
227
|
-
_context2.t0 = _context2.sent;
|
|
228
|
-
_context2.next = 17;
|
|
229
|
-
break;
|
|
230
|
-
|
|
231
|
-
case 16:
|
|
232
|
-
_context2.t0 = null;
|
|
233
|
-
|
|
234
|
-
case 17:
|
|
235
|
-
compressedGeometry = _context2.t0;
|
|
236
|
-
attributes = convertBatchTableToAttributeBuffers(tileContent.batchTableJson, featureIds, attributeStorageInfo);
|
|
237
|
-
return _context2.abrupt("return", {
|
|
238
|
-
geometry: fileBuffer,
|
|
239
|
-
compressedGeometry: compressedGeometry,
|
|
240
|
-
texture: texture,
|
|
241
|
-
sharedResources: getSharedResources(tileContent, nodeId),
|
|
242
|
-
meshMaterial: material,
|
|
243
|
-
vertexCount: vertexCount,
|
|
244
|
-
attributes: attributes,
|
|
245
|
-
featureCount: featureCount,
|
|
246
|
-
boundingVolumes: boundingVolumes
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
case 20:
|
|
250
|
-
case "end":
|
|
251
|
-
return _context2.stop();
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}, _callee2);
|
|
255
|
-
}));
|
|
256
|
-
return _makeNodeResources2.apply(this, arguments);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
function convertAttributes(tileContent, useCartesianPositions) {
|
|
260
|
-
var _tileContent$gltf$sce;
|
|
261
|
-
|
|
262
|
-
var attributesMap = new Map();
|
|
263
|
-
|
|
264
|
-
var _iterator2 = _createForOfIteratorHelper(tileContent.gltf.materials || [{
|
|
265
|
-
id: 'default'
|
|
266
|
-
}]),
|
|
267
|
-
_step2;
|
|
268
|
-
|
|
269
|
-
try {
|
|
270
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
271
|
-
var material = _step2.value;
|
|
272
|
-
attributesMap.set(material.id, {
|
|
273
|
-
positions: new Float32Array(0),
|
|
274
|
-
normals: new Float32Array(0),
|
|
275
|
-
texCoords: new Float32Array(0),
|
|
276
|
-
colors: new Uint8Array(0),
|
|
277
|
-
featureIndices: [],
|
|
278
|
-
boundingVolumes: null
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
} catch (err) {
|
|
282
|
-
_iterator2.e(err);
|
|
283
|
-
} finally {
|
|
284
|
-
_iterator2.f();
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
var nodes = (tileContent.gltf.scene || ((_tileContent$gltf$sce = tileContent.gltf.scenes) === null || _tileContent$gltf$sce === void 0 ? void 0 : _tileContent$gltf$sce[0]) || tileContent.gltf).nodes;
|
|
288
|
-
convertNodes(nodes, tileContent, attributesMap, useCartesianPositions);
|
|
289
|
-
|
|
290
|
-
var _iterator3 = _createForOfIteratorHelper(attributesMap.keys()),
|
|
291
|
-
_step3;
|
|
292
|
-
|
|
293
|
-
try {
|
|
294
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
295
|
-
var attrKey = _step3.value;
|
|
296
|
-
var attributes = attributesMap.get(attrKey);
|
|
297
|
-
|
|
298
|
-
if (attributes.positions.length === 0) {
|
|
299
|
-
attributesMap.delete(attrKey);
|
|
300
|
-
continue;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
attributes.featureIndices = attributes.featureIndices.reduce(function (acc, value) {
|
|
304
|
-
return acc.concat(value);
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
} catch (err) {
|
|
308
|
-
_iterator3.e(err);
|
|
309
|
-
} finally {
|
|
310
|
-
_iterator3.f();
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
return attributesMap;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
function convertNodes(nodes, tileContent, attributesMap, useCartesianPositions) {
|
|
317
|
-
var matrix = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : new _core.Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
318
|
-
|
|
319
|
-
if (nodes) {
|
|
320
|
-
var _iterator4 = _createForOfIteratorHelper(nodes),
|
|
321
|
-
_step4;
|
|
322
|
-
|
|
323
|
-
try {
|
|
324
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
325
|
-
var node = _step4.value;
|
|
326
|
-
convertNode(node, tileContent, attributesMap, useCartesianPositions, matrix);
|
|
327
|
-
}
|
|
328
|
-
} catch (err) {
|
|
329
|
-
_iterator4.e(err);
|
|
330
|
-
} finally {
|
|
331
|
-
_iterator4.f();
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
function convertNode(node, tileContent, attributesMap, useCartesianPositions) {
|
|
337
|
-
var matrix = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : new _core.Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
338
|
-
var nodeMatrix = node.matrix;
|
|
339
|
-
var compositeMatrix = nodeMatrix ? matrix.multiplyRight(nodeMatrix) : matrix;
|
|
340
|
-
var mesh = node.mesh;
|
|
341
|
-
|
|
342
|
-
if (mesh) {
|
|
343
|
-
convertMesh(mesh, tileContent, attributesMap, useCartesianPositions, compositeMatrix);
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
convertNodes(node.children, tileContent, attributesMap, useCartesianPositions, compositeMatrix);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
function convertMesh(mesh, content, attributesMap) {
|
|
350
|
-
var useCartesianPositions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
351
|
-
var matrix = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : new _core.Matrix4([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]);
|
|
352
|
-
|
|
353
|
-
var _iterator5 = _createForOfIteratorHelper(mesh.primitives),
|
|
354
|
-
_step5;
|
|
355
|
-
|
|
356
|
-
try {
|
|
357
|
-
for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
|
|
358
|
-
var primitive = _step5.value;
|
|
359
|
-
var outputAttributes = null;
|
|
360
|
-
|
|
361
|
-
if (primitive.material) {
|
|
362
|
-
outputAttributes = attributesMap.get(primitive.material.id);
|
|
363
|
-
} else if (attributesMap.has('default')) {
|
|
364
|
-
outputAttributes = attributesMap.get('default');
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
(0, _core2.assert)(outputAttributes !== null, 'Primitive - material mapping failed');
|
|
368
|
-
var attributes = primitive.attributes;
|
|
369
|
-
outputAttributes.positions = (0, _loaderUtils.concatenateTypedArrays)(outputAttributes.positions, transformVertexArray({
|
|
370
|
-
vertices: attributes.POSITION.value,
|
|
371
|
-
cartographicOrigin: content.cartographicOrigin,
|
|
372
|
-
cartesianModelMatrix: content.cartesianModelMatrix,
|
|
373
|
-
nodeMatrix: matrix,
|
|
374
|
-
indices: primitive.indices.value,
|
|
375
|
-
attributeSpecificTransformation: transformVertexPositions,
|
|
376
|
-
useCartesianPositions: useCartesianPositions
|
|
377
|
-
}));
|
|
378
|
-
outputAttributes.normals = (0, _loaderUtils.concatenateTypedArrays)(outputAttributes.normals, transformVertexArray({
|
|
379
|
-
vertices: attributes.NORMAL && attributes.NORMAL.value,
|
|
380
|
-
cartographicOrigin: content.cartographicOrigin,
|
|
381
|
-
cartesianModelMatrix: content.cartesianModelMatrix,
|
|
382
|
-
nodeMatrix: matrix,
|
|
383
|
-
indices: primitive.indices.value,
|
|
384
|
-
attributeSpecificTransformation: transformVertexNormals,
|
|
385
|
-
useCartesianPositions: false
|
|
386
|
-
}));
|
|
387
|
-
outputAttributes.texCoords = (0, _loaderUtils.concatenateTypedArrays)(outputAttributes.texCoords, flattenTexCoords(attributes.TEXCOORD_0 && attributes.TEXCOORD_0.value, primitive.indices.value));
|
|
388
|
-
outputAttributes.colors = (0, _loaderUtils.concatenateTypedArrays)(outputAttributes.colors, flattenColors(attributes.COLOR_0, primitive.indices.value));
|
|
389
|
-
outputAttributes.featureIndices.push(flattenBatchIds(getBatchIdsByAttributeName(attributes), primitive.indices.value));
|
|
390
|
-
}
|
|
391
|
-
} catch (err) {
|
|
392
|
-
_iterator5.e(err);
|
|
393
|
-
} finally {
|
|
394
|
-
_iterator5.f();
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
function transformVertexArray(args) {
|
|
399
|
-
var vertices = args.vertices,
|
|
400
|
-
indices = args.indices,
|
|
401
|
-
attributeSpecificTransformation = args.attributeSpecificTransformation;
|
|
402
|
-
var newVertices = new Float32Array(indices.length * VALUES_PER_VERTEX);
|
|
403
|
-
|
|
404
|
-
if (!vertices) {
|
|
405
|
-
return newVertices;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
for (var i = 0; i < indices.length; i++) {
|
|
409
|
-
var coordIndex = indices[i] * VALUES_PER_VERTEX;
|
|
410
|
-
var vertex = vertices.subarray(coordIndex, coordIndex + VALUES_PER_VERTEX);
|
|
411
|
-
var vertexVector = new _core.Vector3(Array.from(vertex));
|
|
412
|
-
vertexVector = attributeSpecificTransformation(vertexVector, args);
|
|
413
|
-
newVertices[i * VALUES_PER_VERTEX] = vertexVector.x;
|
|
414
|
-
newVertices[i * VALUES_PER_VERTEX + 1] = vertexVector.y;
|
|
415
|
-
newVertices[i * VALUES_PER_VERTEX + 2] = vertexVector.z;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
return newVertices;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
function transformVertexPositions(vertexVector, calleeArgs) {
|
|
422
|
-
var cartesianModelMatrix = calleeArgs.cartesianModelMatrix,
|
|
423
|
-
cartographicOrigin = calleeArgs.cartographicOrigin,
|
|
424
|
-
nodeMatrix = calleeArgs.nodeMatrix,
|
|
425
|
-
useCartesianPositions = calleeArgs.useCartesianPositions;
|
|
426
|
-
|
|
427
|
-
if (nodeMatrix) {
|
|
428
|
-
vertexVector = vertexVector.transform(nodeMatrix);
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
vertexVector = vertexVector.transform(cartesianModelMatrix);
|
|
432
|
-
|
|
433
|
-
if (useCartesianPositions) {
|
|
434
|
-
return vertexVector;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
_geospatial.Ellipsoid.WGS84.cartesianToCartographic([vertexVector[0], vertexVector[1], vertexVector[2]], vertexVector);
|
|
438
|
-
|
|
439
|
-
vertexVector = vertexVector.subtract(cartographicOrigin);
|
|
440
|
-
return vertexVector;
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
function transformVertexNormals(vertexVector, calleeArgs) {
|
|
444
|
-
var cartesianModelMatrix = calleeArgs.cartesianModelMatrix,
|
|
445
|
-
nodeMatrix = calleeArgs.nodeMatrix;
|
|
446
|
-
|
|
447
|
-
if (nodeMatrix) {
|
|
448
|
-
vertexVector = vertexVector.transformAsVector(nodeMatrix);
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
vertexVector = vertexVector.transformAsVector(cartesianModelMatrix);
|
|
452
|
-
return vertexVector;
|
|
453
|
-
}
|
|
454
|
-
|
|
455
|
-
function flattenTexCoords(texCoords, indices) {
|
|
456
|
-
var newTexCoords = new Float32Array(indices.length * VALUES_PER_TEX_COORD);
|
|
457
|
-
|
|
458
|
-
if (!texCoords) {
|
|
459
|
-
newTexCoords.fill(1);
|
|
460
|
-
return newTexCoords;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
for (var i = 0; i < indices.length; i++) {
|
|
464
|
-
var coordIndex = indices[i] * VALUES_PER_TEX_COORD;
|
|
465
|
-
var texCoord = texCoords.subarray(coordIndex, coordIndex + VALUES_PER_TEX_COORD);
|
|
466
|
-
newTexCoords[i * VALUES_PER_TEX_COORD] = texCoord[0];
|
|
467
|
-
newTexCoords[i * VALUES_PER_TEX_COORD + 1] = texCoord[1];
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
return newTexCoords;
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
function flattenColors(colorsAttribute, indices) {
|
|
474
|
-
var components = (colorsAttribute === null || colorsAttribute === void 0 ? void 0 : colorsAttribute.components) || VALUES_PER_COLOR_ELEMENT;
|
|
475
|
-
var newColors = new Uint8Array(indices.length * components);
|
|
476
|
-
|
|
477
|
-
if (!colorsAttribute) {
|
|
478
|
-
newColors.fill(255);
|
|
479
|
-
return newColors;
|
|
480
|
-
}
|
|
481
|
-
|
|
482
|
-
var colors = colorsAttribute.value;
|
|
483
|
-
|
|
484
|
-
for (var i = 0; i < indices.length; i++) {
|
|
485
|
-
var colorIndex = indices[i] * components;
|
|
486
|
-
var color = colors.subarray(colorIndex, colorIndex + components);
|
|
487
|
-
var colorUint8 = new Uint8Array(components);
|
|
488
|
-
|
|
489
|
-
for (var j = 0; j < color.length; j++) {
|
|
490
|
-
colorUint8[j] = color[j] * 255;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
|
-
newColors.set(colorUint8, i * components);
|
|
494
|
-
}
|
|
495
|
-
|
|
496
|
-
return newColors;
|
|
497
|
-
}
|
|
498
|
-
|
|
499
|
-
function flattenBatchIds(batchedIds, indices) {
|
|
500
|
-
if (!batchedIds.length || !indices.length) {
|
|
501
|
-
return [];
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
var newBatchIds = [];
|
|
505
|
-
|
|
506
|
-
for (var i = 0; i < indices.length; i++) {
|
|
507
|
-
var coordIndex = indices[i];
|
|
508
|
-
newBatchIds.push(batchedIds[coordIndex]);
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
return newBatchIds;
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
function getBatchIdsByAttributeName(attributes) {
|
|
515
|
-
var batchIds = [];
|
|
516
|
-
|
|
517
|
-
for (var index = 0; index < BATCHED_ID_POSSIBLE_ATTRIBUTE_NAMES.length; index++) {
|
|
518
|
-
var possibleBatchIdAttributeName = BATCHED_ID_POSSIBLE_ATTRIBUTE_NAMES[index];
|
|
519
|
-
|
|
520
|
-
if (attributes[possibleBatchIdAttributeName] && attributes[possibleBatchIdAttributeName].value) {
|
|
521
|
-
batchIds = attributes[possibleBatchIdAttributeName].value;
|
|
522
|
-
break;
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
return batchIds;
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
function convertMaterials(tileContent) {
|
|
530
|
-
var result = [];
|
|
531
|
-
var sourceMaterials = tileContent.gltf.materials || [];
|
|
532
|
-
|
|
533
|
-
var _iterator6 = _createForOfIteratorHelper(sourceMaterials),
|
|
534
|
-
_step6;
|
|
535
|
-
|
|
536
|
-
try {
|
|
537
|
-
for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
|
|
538
|
-
var sourceMaterial = _step6.value;
|
|
539
|
-
result.push(convertMaterial(sourceMaterial));
|
|
540
|
-
}
|
|
541
|
-
} catch (err) {
|
|
542
|
-
_iterator6.e(err);
|
|
543
|
-
} finally {
|
|
544
|
-
_iterator6.f();
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
return result;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
function convertMaterial(sourceMaterial) {
|
|
551
|
-
var material = {
|
|
552
|
-
doubleSided: sourceMaterial.doubleSided,
|
|
553
|
-
emissiveFactor: sourceMaterial.emissiveFactor.map(function (c) {
|
|
554
|
-
return Math.round(c * 255);
|
|
555
|
-
}),
|
|
556
|
-
alphaMode: (sourceMaterial.alphaMode || 'OPAQUE').toLowerCase(),
|
|
557
|
-
pbrMetallicRoughness: {
|
|
558
|
-
roughnessFactor: sourceMaterial.pbrMetallicRoughness.roughnessFactor,
|
|
559
|
-
metallicFactor: sourceMaterial.pbrMetallicRoughness.metallicFactor
|
|
560
|
-
}
|
|
561
|
-
};
|
|
562
|
-
var texture;
|
|
563
|
-
|
|
564
|
-
if (sourceMaterial.pbrMetallicRoughness.baseColorTexture) {
|
|
565
|
-
texture = sourceMaterial.pbrMetallicRoughness.baseColorTexture.texture.source;
|
|
566
|
-
material.pbrMetallicRoughness.baseColorTexture = {
|
|
567
|
-
textureSetDefinitionId: 0
|
|
568
|
-
};
|
|
569
|
-
} else if (sourceMaterial.emissiveTexture) {
|
|
570
|
-
texture = sourceMaterial.emissiveTexture.texture.source;
|
|
571
|
-
material.pbrMetallicRoughness.baseColorTexture = {
|
|
572
|
-
textureSetDefinitionId: 0
|
|
573
|
-
};
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
if (!texture) {
|
|
577
|
-
var baseColorFactor = sourceMaterial.pbrMetallicRoughness.baseColorFactor;
|
|
578
|
-
material.pbrMetallicRoughness.baseColorFactor = baseColorFactor && baseColorFactor.map(function (c) {
|
|
579
|
-
return Math.round(c * 255);
|
|
580
|
-
}) || undefined;
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
return {
|
|
584
|
-
material: material,
|
|
585
|
-
texture: texture
|
|
586
|
-
};
|
|
587
|
-
}
|
|
588
|
-
|
|
589
|
-
function getDefaultMaterial() {
|
|
590
|
-
return {
|
|
591
|
-
alphaMode: 'opaque',
|
|
592
|
-
pbrMetallicRoughness: {}
|
|
593
|
-
};
|
|
594
|
-
}
|
|
595
|
-
|
|
596
|
-
function getSharedResources(tileContent, nodeId) {
|
|
597
|
-
var gltfMaterials = tileContent.gltf.materials;
|
|
598
|
-
var i3sResources = {};
|
|
599
|
-
|
|
600
|
-
if (!gltfMaterials || !gltfMaterials.length) {
|
|
601
|
-
return i3sResources;
|
|
602
|
-
}
|
|
603
|
-
|
|
604
|
-
i3sResources.materialDefinitionInfos = [];
|
|
605
|
-
|
|
606
|
-
var _iterator7 = _createForOfIteratorHelper(gltfMaterials),
|
|
607
|
-
_step7;
|
|
608
|
-
|
|
609
|
-
try {
|
|
610
|
-
for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
|
|
611
|
-
var gltfMaterial = _step7.value;
|
|
612
|
-
|
|
613
|
-
var _convertGLTFMaterialT = convertGLTFMaterialToI3sSharedResources(gltfMaterial, nodeId),
|
|
614
|
-
materialDefinitionInfo = _convertGLTFMaterialT.materialDefinitionInfo,
|
|
615
|
-
textureDefinitionInfo = _convertGLTFMaterialT.textureDefinitionInfo;
|
|
616
|
-
|
|
617
|
-
i3sResources.materialDefinitionInfos.push(materialDefinitionInfo);
|
|
618
|
-
|
|
619
|
-
if (textureDefinitionInfo) {
|
|
620
|
-
i3sResources.textureDefinitionInfos = i3sResources.textureDefinitionInfos || [];
|
|
621
|
-
i3sResources.textureDefinitionInfos.push(textureDefinitionInfo);
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
} catch (err) {
|
|
625
|
-
_iterator7.e(err);
|
|
626
|
-
} finally {
|
|
627
|
-
_iterator7.f();
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
return i3sResources;
|
|
631
|
-
}
|
|
632
|
-
|
|
633
|
-
function convertGLTFMaterialToI3sSharedResources(gltfMaterial, nodeId) {
|
|
634
|
-
var texture = gltfMaterial.pbrMetallicRoughness.baseColorTexture || gltfMaterial.emissiveTexture;
|
|
635
|
-
var textureDefinitionInfo = null;
|
|
636
|
-
|
|
637
|
-
if (texture) {
|
|
638
|
-
textureDefinitionInfo = extractSharedResourcesTextureInfo(texture.texture, nodeId);
|
|
639
|
-
}
|
|
640
|
-
|
|
641
|
-
var _gltfMaterial$pbrMeta = gltfMaterial.pbrMetallicRoughness,
|
|
642
|
-
baseColorFactor = _gltfMaterial$pbrMeta.baseColorFactor,
|
|
643
|
-
metallicFactor = _gltfMaterial$pbrMeta.metallicFactor;
|
|
644
|
-
var colorFactor = baseColorFactor;
|
|
645
|
-
|
|
646
|
-
if ((!baseColorFactor || baseColorFactor[3] === 0) && gltfMaterial.emissiveFactor) {
|
|
647
|
-
colorFactor = gltfMaterial.emissiveFactor;
|
|
648
|
-
colorFactor[3] = colorFactor[3] || 1;
|
|
649
|
-
}
|
|
650
|
-
|
|
651
|
-
return {
|
|
652
|
-
materialDefinitionInfo: extractSharedResourcesMaterialInfo(colorFactor, metallicFactor),
|
|
653
|
-
textureDefinitionInfo: textureDefinitionInfo
|
|
654
|
-
};
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
function extractSharedResourcesMaterialInfo(baseColorFactor) {
|
|
658
|
-
var metallicFactor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
659
|
-
var matDielectricColorComponent = 0.04 / 255;
|
|
660
|
-
var black = new _core.Vector4(0, 0, 0, 1);
|
|
661
|
-
var unitVector = new _core.Vector4(1, 1, 1, 1);
|
|
662
|
-
var dielectricSpecular = new _core.Vector4(matDielectricColorComponent, matDielectricColorComponent, matDielectricColorComponent, 0);
|
|
663
|
-
var baseColorVector = new _core.Vector4(baseColorFactor);
|
|
664
|
-
var firstOperand = unitVector.subtract(dielectricSpecular).multiply(baseColorVector);
|
|
665
|
-
var diffuse = firstOperand.lerp(firstOperand, black, metallicFactor);
|
|
666
|
-
dielectricSpecular[3] = 1;
|
|
667
|
-
var specular = dielectricSpecular.lerp(dielectricSpecular, baseColorVector, metallicFactor);
|
|
668
|
-
return {
|
|
669
|
-
diffuse: diffuse.toArray(),
|
|
670
|
-
specular: specular.toArray()
|
|
671
|
-
};
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
function extractSharedResourcesTextureInfo(texture, nodeId) {
|
|
675
|
-
return {
|
|
676
|
-
encoding: [texture.source.mimeType],
|
|
677
|
-
images: [{
|
|
678
|
-
id: generateImageId(texture, nodeId),
|
|
679
|
-
size: texture.source.image.width,
|
|
680
|
-
length: [texture.source.image.data.length]
|
|
681
|
-
}]
|
|
682
|
-
};
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
function generateImageId(texture, nodeId) {
|
|
686
|
-
var _texture$source$image = texture.source.image,
|
|
687
|
-
width = _texture$source$image.width,
|
|
688
|
-
height = _texture$source$image.height;
|
|
689
|
-
var levelCountOfTexture = 1;
|
|
690
|
-
var indexOfLevel = 0;
|
|
691
|
-
var indexOfTextureInStore = nodeId + 1;
|
|
692
|
-
var zerosCount = 32 - indexOfTextureInStore.toString(2).length;
|
|
693
|
-
var rightHalf = '0'.repeat(zerosCount).concat(indexOfTextureInStore.toString(2));
|
|
694
|
-
var shiftedLevelCountOfTexture = levelCountOfTexture << 28;
|
|
695
|
-
var shiftedIndexOfLevel = indexOfLevel << 24;
|
|
696
|
-
var shiftedWidth = width - 1 << 12;
|
|
697
|
-
var shiftedHeight = height - 1 << 0;
|
|
698
|
-
var leftHalf = shiftedLevelCountOfTexture + shiftedIndexOfLevel + shiftedWidth + shiftedHeight;
|
|
699
|
-
var imageId = BigInt("0b".concat(leftHalf.toString(2)).concat(rightHalf));
|
|
700
|
-
return imageId.toString();
|
|
701
|
-
}
|
|
702
|
-
|
|
703
|
-
function makeFeatureIdsUnique(featureIds, featureIndices, featuresHashArray, batchTable) {
|
|
704
|
-
var replaceMap = getFeaturesReplaceMap(featureIds, batchTable, featuresHashArray);
|
|
705
|
-
replaceIndicesByUnique(featureIndices, replaceMap);
|
|
706
|
-
replaceIndicesByUnique(featureIds, replaceMap);
|
|
707
|
-
}
|
|
708
|
-
|
|
709
|
-
function getFeaturesReplaceMap(featureIds, batchTable, featuresHashArray) {
|
|
710
|
-
var featureMap = {};
|
|
711
|
-
|
|
712
|
-
for (var index = 0; index < featureIds.length; index++) {
|
|
713
|
-
var oldFeatureId = featureIds[index];
|
|
714
|
-
var uniqueFeatureId = getOrCreateUniqueFeatureId(index, batchTable, featuresHashArray);
|
|
715
|
-
featureMap[oldFeatureId.toString()] = uniqueFeatureId;
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
return featureMap;
|
|
719
|
-
}
|
|
720
|
-
|
|
721
|
-
function generateStringFromBatchTableByIndex(batchTable, index) {
|
|
722
|
-
var str = '';
|
|
723
|
-
|
|
724
|
-
for (var key in batchTable) {
|
|
725
|
-
str += batchTable[key][index];
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
return str;
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
function getOrCreateUniqueFeatureId(index, batchTable, featuresHashArray) {
|
|
732
|
-
var batchTableStr = generateStringFromBatchTableByIndex(batchTable, index);
|
|
733
|
-
var hash = (0, _md.default)(batchTableStr);
|
|
734
|
-
|
|
735
|
-
if (featuresHashArray.includes(hash)) {
|
|
736
|
-
return featuresHashArray.indexOf(hash);
|
|
737
|
-
}
|
|
738
|
-
|
|
739
|
-
return featuresHashArray.push(hash) - 1;
|
|
740
|
-
}
|
|
741
|
-
|
|
742
|
-
function replaceIndicesByUnique(indicesArray, featureMap) {
|
|
743
|
-
for (var index = 0; index < indicesArray.length; index++) {
|
|
744
|
-
indicesArray[index] = featureMap[indicesArray[index]];
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
|
-
|
|
748
|
-
function convertBatchTableToAttributeBuffers(batchTable, featureIds, attributeStorageInfo) {
|
|
749
|
-
var attributeBuffers = [];
|
|
750
|
-
|
|
751
|
-
if (batchTable) {
|
|
752
|
-
var batchTableWithFeatureIds = _objectSpread({
|
|
753
|
-
OBJECTID: featureIds
|
|
754
|
-
}, batchTable);
|
|
755
|
-
|
|
756
|
-
for (var key in batchTableWithFeatureIds) {
|
|
757
|
-
var type = getAttributeType(key, attributeStorageInfo);
|
|
758
|
-
var attributeBuffer = null;
|
|
759
|
-
|
|
760
|
-
switch (type) {
|
|
761
|
-
case OBJECT_ID_TYPE:
|
|
762
|
-
case SHORT_INT_TYPE:
|
|
763
|
-
attributeBuffer = generateShortIntegerAttributeBuffer(batchTableWithFeatureIds[key]);
|
|
764
|
-
break;
|
|
765
|
-
|
|
766
|
-
case DOUBLE_TYPE:
|
|
767
|
-
attributeBuffer = generateDoubleAttributeBuffer(batchTableWithFeatureIds[key]);
|
|
768
|
-
break;
|
|
769
|
-
|
|
770
|
-
case STRING_TYPE:
|
|
771
|
-
attributeBuffer = generateStringAttributeBuffer(batchTableWithFeatureIds[key]);
|
|
772
|
-
break;
|
|
773
|
-
|
|
774
|
-
default:
|
|
775
|
-
attributeBuffer = generateStringAttributeBuffer(batchTableWithFeatureIds[key]);
|
|
776
|
-
}
|
|
777
|
-
|
|
778
|
-
attributeBuffers.push(attributeBuffer);
|
|
779
|
-
}
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
return attributeBuffers;
|
|
783
|
-
}
|
|
784
|
-
|
|
785
|
-
function getAttributeType(key, attributeStorageInfo) {
|
|
786
|
-
var attribute = attributeStorageInfo.find(function (attr) {
|
|
787
|
-
return attr.name === key;
|
|
788
|
-
});
|
|
789
|
-
return attribute.attributeValues.valueType;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
function generateShortIntegerAttributeBuffer(featureIds) {
|
|
793
|
-
var count = new Uint32Array([featureIds.length]);
|
|
794
|
-
var valuesArray = new Uint32Array(featureIds);
|
|
795
|
-
return (0, _loaderUtils.concatenateArrayBuffers)(count.buffer, valuesArray.buffer);
|
|
796
|
-
}
|
|
797
|
-
|
|
798
|
-
function generateDoubleAttributeBuffer(featureIds) {
|
|
799
|
-
var count = new Uint32Array([featureIds.length]);
|
|
800
|
-
var padding = new Uint8Array(4);
|
|
801
|
-
var valuesArray = new Float64Array(featureIds);
|
|
802
|
-
return (0, _loaderUtils.concatenateArrayBuffers)(count.buffer, padding.buffer, valuesArray.buffer);
|
|
803
|
-
}
|
|
804
|
-
|
|
805
|
-
function generateStringAttributeBuffer(batchAttributes) {
|
|
806
|
-
var stringCountArray = new Uint32Array([batchAttributes.length]);
|
|
807
|
-
var totalNumberOfBytes = 0;
|
|
808
|
-
var stringSizesArray = new Uint32Array(batchAttributes.length);
|
|
809
|
-
var stringBufferArray = [];
|
|
810
|
-
|
|
811
|
-
for (var index = 0; index < batchAttributes.length; index++) {
|
|
812
|
-
var currentString = "".concat(String(batchAttributes[index]), "\0");
|
|
813
|
-
var currentStringBuffer = Buffer.from(currentString);
|
|
814
|
-
var currentStringSize = currentStringBuffer.length;
|
|
815
|
-
totalNumberOfBytes += currentStringSize;
|
|
816
|
-
stringSizesArray[index] = currentStringSize;
|
|
817
|
-
stringBufferArray.push(currentStringBuffer);
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
var totalBytes = new Uint32Array([totalNumberOfBytes]);
|
|
821
|
-
return _loaderUtils.concatenateArrayBuffers.apply(void 0, [stringCountArray.buffer, totalBytes.buffer, stringSizesArray.buffer].concat(stringBufferArray));
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
function generateBigUint64Array(featureIds) {
|
|
825
|
-
var typedFeatureIds = new BigUint64Array(featureIds.length);
|
|
826
|
-
|
|
827
|
-
for (var index = 0; index < featureIds.length; index++) {
|
|
828
|
-
typedFeatureIds[index] = BigInt(featureIds[index]);
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
return typedFeatureIds;
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
function generateCompressedGeometry(_x9, _x10, _x11) {
|
|
835
|
-
return _generateCompressedGeometry.apply(this, arguments);
|
|
836
|
-
}
|
|
837
|
-
|
|
838
|
-
function _generateCompressedGeometry() {
|
|
839
|
-
_generateCompressedGeometry = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(vertexCount, convertedAttributes, attributes) {
|
|
840
|
-
var positions, normals, texCoords, colors, featureIds, faceRange, indices, index, featureIndices, featureIndex, compressedAttributes, attributesMetadata;
|
|
841
|
-
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
842
|
-
while (1) {
|
|
843
|
-
switch (_context3.prev = _context3.next) {
|
|
844
|
-
case 0:
|
|
845
|
-
positions = attributes.positions, normals = attributes.normals, texCoords = attributes.texCoords, colors = attributes.colors, featureIds = attributes.featureIds, faceRange = attributes.faceRange;
|
|
846
|
-
indices = new Uint32Array(vertexCount);
|
|
847
|
-
|
|
848
|
-
for (index = 0; index < indices.length; index++) {
|
|
849
|
-
indices.set([index], index);
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
featureIndices = new Uint32Array(convertedAttributes.featureIndices.length ? convertedAttributes.featureIndices : vertexCount);
|
|
853
|
-
featureIndex = generateFeatureIndexAttribute(featureIndices, faceRange);
|
|
854
|
-
compressedAttributes = {
|
|
855
|
-
positions: positions,
|
|
856
|
-
normals: normals,
|
|
857
|
-
colors: colors,
|
|
858
|
-
'feature-index': featureIndex
|
|
859
|
-
};
|
|
860
|
-
|
|
861
|
-
if (texCoords.length) {
|
|
862
|
-
compressedAttributes.texCoords = texCoords;
|
|
863
|
-
}
|
|
864
|
-
|
|
865
|
-
attributesMetadata = {
|
|
866
|
-
'feature-index': {
|
|
867
|
-
'i3s-attribute-type': 'feature-index',
|
|
868
|
-
'i3s-feature-ids': new Int32Array(featureIds)
|
|
869
|
-
}
|
|
870
|
-
};
|
|
871
|
-
_context3.t0 = Uint8Array;
|
|
872
|
-
_context3.next = 11;
|
|
873
|
-
return (0, _core2.encode)({
|
|
874
|
-
attributes: compressedAttributes,
|
|
875
|
-
indices: indices
|
|
876
|
-
}, _draco.DracoWriter, {
|
|
877
|
-
draco: {
|
|
878
|
-
method: 'MESH_SEQUENTIAL_ENCODING',
|
|
879
|
-
attributesMetadata: attributesMetadata
|
|
880
|
-
}
|
|
881
|
-
});
|
|
882
|
-
|
|
883
|
-
case 11:
|
|
884
|
-
_context3.t1 = _context3.sent;
|
|
885
|
-
return _context3.abrupt("return", new _context3.t0(_context3.t1));
|
|
886
|
-
|
|
887
|
-
case 13:
|
|
888
|
-
case "end":
|
|
889
|
-
return _context3.stop();
|
|
890
|
-
}
|
|
891
|
-
}
|
|
892
|
-
}, _callee3);
|
|
893
|
-
}));
|
|
894
|
-
return _generateCompressedGeometry.apply(this, arguments);
|
|
895
|
-
}
|
|
896
|
-
|
|
897
|
-
function generateFeatureIndexAttribute(featureIndex, faceRange) {
|
|
898
|
-
var orderedFeatureIndices = new Uint32Array(featureIndex.length);
|
|
899
|
-
var fillIndex = 0;
|
|
900
|
-
var startIndex = 0;
|
|
901
|
-
|
|
902
|
-
for (var index = 1; index < faceRange.length; index += 2) {
|
|
903
|
-
var endIndex = (faceRange[index] + 1) * VALUES_PER_VERTEX;
|
|
904
|
-
orderedFeatureIndices.fill(fillIndex, startIndex, endIndex);
|
|
905
|
-
fillIndex++;
|
|
906
|
-
startIndex = endIndex + 1;
|
|
907
|
-
}
|
|
908
|
-
|
|
909
|
-
return orderedFeatureIndices;
|
|
910
|
-
}
|
|
911
|
-
//# sourceMappingURL=geometry-converter.js.map
|