@loaders.gl/tile-converter 3.4.0-alpha.2 → 3.4.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/3d-tiles-attributes-worker.js +2 -2
- package/dist/3d-tiles-attributes-worker.js.map +3 -3
- package/dist/converter.min.js +182 -182
- package/dist/dist.min.js +1101 -754
- package/dist/es5/3d-tiles-attributes-worker.js +1 -2
- package/dist/es5/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js +264 -287
- package/dist/es5/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js +89 -113
- package/dist/es5/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js +0 -2
- package/dist/es5/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/es5/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/es5/constants.js.map +1 -1
- package/dist/es5/converter-cli.js +67 -81
- package/dist/es5/converter-cli.js.map +1 -1
- package/dist/es5/deps-installer/deps-installer.js +64 -69
- package/dist/es5/deps-installer/deps-installer.js.map +1 -1
- package/dist/es5/i3s-attributes-worker.js +1 -2
- package/dist/es5/i3s-attributes-worker.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js +0 -8
- package/dist/es5/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js +0 -5
- package/dist/es5/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js +14 -16
- package/dist/es5/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/feature-attributes.js +1 -11
- package/dist/es5/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js +3 -10
- package/dist/es5/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/geometry-converter.js +397 -449
- package/dist/es5/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js +0 -2
- package/dist/es5/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-debug.js +1 -9
- package/dist/es5/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-index-document.js +293 -318
- package/dist/es5/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/es5/i3s-converter/helpers/node-pages.js +279 -319
- package/dist/es5/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/es5/i3s-converter/i3s-converter.js +964 -1030
- package/dist/es5/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/geometry-definitions.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js +1 -1
- package/dist/es5/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/es5/i3s-converter/json-templates/store.js.map +1 -1
- package/dist/es5/i3s-server/controllers/index-controller.js +28 -30
- package/dist/es5/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/es5/i3s-server/routes/index.js +15 -18
- package/dist/es5/i3s-server/routes/index.js.map +1 -1
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/utils/compress-util.js +198 -218
- package/dist/es5/lib/utils/compress-util.js.map +1 -1
- package/dist/es5/lib/utils/file-utils.js +118 -128
- package/dist/es5/lib/utils/file-utils.js.map +1 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js +0 -1
- package/dist/es5/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/es5/lib/utils/queue.js.map +1 -1
- package/dist/es5/lib/utils/statistic-utills.js +81 -85
- package/dist/es5/lib/utils/statistic-utills.js.map +1 -1
- package/dist/es5/lib/utils/write-queue.js +84 -92
- package/dist/es5/lib/utils/write-queue.js.map +1 -1
- package/dist/es5/pgm-loader.js +7 -10
- package/dist/es5/pgm-loader.js.map +1 -1
- package/dist/es5/workers/3d-tiles-attributes-worker.js +7 -9
- package/dist/es5/workers/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/es5/workers/i3s-attributes-worker.js +10 -12
- package/dist/es5/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-attributes-worker.js +1 -3
- package/dist/esm/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js +1 -15
- package/dist/esm/3d-tiles-converter/3d-tiles-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js +0 -12
- package/dist/esm/3d-tiles-converter/helpers/b3dm-converter.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js +0 -1
- package/dist/esm/3d-tiles-converter/helpers/i3s-obb-to-3d-tiles-obb.js.map +1 -1
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js +0 -3
- package/dist/esm/3d-tiles-converter/helpers/texture-atlas.js.map +1 -1
- package/dist/esm/3d-tiles-converter/json-templates/tileset.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/converter-cli.js +0 -11
- package/dist/esm/converter-cli.js.map +1 -1
- package/dist/esm/deps-installer/deps-installer.js +1 -4
- package/dist/esm/deps-installer/deps-installer.js.map +1 -1
- package/dist/esm/i3s-attributes-worker.js +1 -3
- package/dist/esm/i3s-attributes-worker.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js +0 -8
- package/dist/esm/i3s-converter/helpers/batch-ids-extensions.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js +0 -5
- package/dist/esm/i3s-converter/helpers/coordinate-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js +0 -1
- package/dist/esm/i3s-converter/helpers/create-scene-server-path.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/feature-attributes.js +0 -11
- package/dist/esm/i3s-converter/helpers/feature-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js +0 -7
- package/dist/esm/i3s-converter/helpers/geometry-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/geometry-converter.js +0 -48
- package/dist/esm/i3s-converter/helpers/geometry-converter.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js +0 -3
- package/dist/esm/i3s-converter/helpers/gltf-attributes.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-debug.js +1 -9
- package/dist/esm/i3s-converter/helpers/node-debug.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-index-document.js +0 -14
- package/dist/esm/i3s-converter/helpers/node-index-document.js.map +1 -1
- package/dist/esm/i3s-converter/helpers/node-pages.js +0 -18
- package/dist/esm/i3s-converter/helpers/node-pages.js.map +1 -1
- package/dist/esm/i3s-converter/i3s-converter.js +4 -42
- package/dist/esm/i3s-converter/i3s-converter.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/geometry-definitions.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/layers.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/metadata.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/node.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/scene-server.js.map +1 -1
- package/dist/esm/i3s-converter/json-templates/shared-resources.js.map +1 -1
- package/dist/esm/i3s-server/controllers/index-controller.js +0 -2
- package/dist/esm/i3s-server/controllers/index-controller.js.map +1 -1
- package/dist/esm/i3s-server/routes/index.js +0 -1
- package/dist/esm/i3s-server/routes/index.js.map +1 -1
- package/dist/esm/lib/utils/compress-util.js +1 -17
- package/dist/esm/lib/utils/compress-util.js.map +1 -1
- package/dist/esm/lib/utils/file-utils.js +0 -7
- package/dist/esm/lib/utils/file-utils.js.map +1 -1
- package/dist/esm/lib/utils/lod-conversion-utils.js +0 -2
- package/dist/esm/lib/utils/lod-conversion-utils.js.map +1 -1
- package/dist/esm/lib/utils/queue.js.map +1 -1
- package/dist/esm/lib/utils/statistic-utills.js.map +1 -1
- package/dist/esm/lib/utils/write-queue.js +0 -2
- package/dist/esm/lib/utils/write-queue.js.map +1 -1
- package/dist/esm/pgm-loader.js +1 -3
- package/dist/esm/pgm-loader.js.map +1 -1
- package/dist/esm/workers/3d-tiles-attributes-worker.js.map +1 -1
- package/dist/esm/workers/i3s-attributes-worker.js.map +1 -1
- package/dist/i3s-attributes-worker.js +2 -2
- package/dist/i3s-attributes-worker.js.map +3 -3
- package/dist/i3s-converter/helpers/node-pages.js +1 -1
- package/package.json +16 -16
|
@@ -8,7 +8,6 @@ var _culling = require("@math.gl/culling");
|
|
|
8
8
|
var _engine = require("@luma.gl/engine");
|
|
9
9
|
var _core = require("@math.gl/core");
|
|
10
10
|
var _geospatial = require("@math.gl/geospatial");
|
|
11
|
-
|
|
12
11
|
function validateNodeBoundingVolumes(node) {
|
|
13
12
|
var _node$parentNode, _node$parentNode2;
|
|
14
13
|
if (!(node !== null && node !== void 0 && (_node$parentNode = node.parentNode) !== null && _node$parentNode !== void 0 && _node$parentNode.obb) || !(node !== null && node !== void 0 && (_node$parentNode2 = node.parentNode) !== null && _node$parentNode2 !== void 0 && _node$parentNode2.mbs)) {
|
|
@@ -19,7 +18,6 @@ function validateNodeBoundingVolumes(node) {
|
|
|
19
18
|
validateMbs(tileWarnings, node);
|
|
20
19
|
return tileWarnings;
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
function validateObb(tileWarnings, node) {
|
|
24
22
|
var _node$parentNode3;
|
|
25
23
|
var parentObb = createBoundingBoxFromTileObb(node.parentNode.obb);
|
|
@@ -31,7 +29,6 @@ function validateObb(tileWarnings, node) {
|
|
|
31
29
|
var title = "OBB of Tile (".concat(node.id, ") doesn't fit into Parent (").concat((_node$parentNode3 = node.parentNode) === null || _node$parentNode3 === void 0 ? void 0 : _node$parentNode3.id, ") tile OBB");
|
|
32
30
|
tileWarnings.push(title);
|
|
33
31
|
}
|
|
34
|
-
|
|
35
32
|
function validateMbs(tileWarnings, node) {
|
|
36
33
|
var tileMbs = createBoundingSphereFromTileMbs(node.mbs);
|
|
37
34
|
var parentMbs = createBoundingSphereFromTileMbs(node.parentNode.mbs);
|
|
@@ -42,18 +39,15 @@ function validateMbs(tileWarnings, node) {
|
|
|
42
39
|
tileWarnings.push(title);
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
|
-
|
|
46
42
|
function createBoundingSphereFromTileMbs(mbs) {
|
|
47
43
|
return new _culling.BoundingSphere([mbs[0], mbs[1], mbs[2]], mbs[3]);
|
|
48
44
|
}
|
|
49
|
-
|
|
50
45
|
function createBoundingBoxFromTileObb(obb) {
|
|
51
46
|
var center = obb.center,
|
|
52
47
|
halfSize = obb.halfSize,
|
|
53
48
|
quaternion = obb.quaternion;
|
|
54
49
|
return new _culling.OrientedBoundingBox().fromCenterHalfSizeQuaternion(center, halfSize, quaternion);
|
|
55
50
|
}
|
|
56
|
-
|
|
57
51
|
function getTileObbVertices(node) {
|
|
58
52
|
var geometry = new _engine.CubeGeometry();
|
|
59
53
|
var halfSize = node.obb.halfSize;
|
|
@@ -63,13 +57,11 @@ function getTileObbVertices(node) {
|
|
|
63
57
|
var vertices = [];
|
|
64
58
|
for (var i = 0; i < positions.length; i += 3) {
|
|
65
59
|
var positionsVector = new _core.Vector3(positions[i] *= halfSize[0], positions[i + 1] *= halfSize[1], positions[i + 2] *= halfSize[2]);
|
|
66
|
-
var rotatedPositions = positionsVector
|
|
67
|
-
.transformByQuaternion(node.obb.quaternion).add(obbCenterCartesian);
|
|
60
|
+
var rotatedPositions = positionsVector.transformByQuaternion(node.obb.quaternion).add(obbCenterCartesian);
|
|
68
61
|
vertices = vertices.concat(rotatedPositions);
|
|
69
62
|
}
|
|
70
63
|
return vertices;
|
|
71
64
|
}
|
|
72
|
-
|
|
73
65
|
function isAllVerticesInsideBoundingVolume(boundingVolume, positions) {
|
|
74
66
|
var isVerticesInsideObb = true;
|
|
75
67
|
for (var index = 0; index < positions.length / 3; index += 3) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-debug.js","names":["validateNodeBoundingVolumes","node","parentNode","obb","mbs","tileWarnings","validateObb","validateMbs","parentObb","createBoundingBoxFromTileObb","tileVertices","getTileObbVertices","isTileObbInsideParentObb","isAllVerticesInsideBoundingVolume","title","id","push","tileMbs","createBoundingSphereFromTileMbs","parentMbs","distanceBetweenCenters","center","distanceTo","radius","BoundingSphere","halfSize","quaternion","OrientedBoundingBox","fromCenterHalfSizeQuaternion","geometry","CubeGeometry","attributes","getAttributes","positions","Float32Array","POSITION","value","obbCenterCartesian","Ellipsoid","WGS84","cartographicToCartesian","vertices","i","length","positionsVector","Vector3","rotatedPositions","transformByQuaternion","add","
|
|
1
|
+
{"version":3,"file":"node-debug.js","names":["_culling","require","_engine","_core","_geospatial","validateNodeBoundingVolumes","node","_node$parentNode","_node$parentNode2","parentNode","obb","mbs","tileWarnings","validateObb","validateMbs","_node$parentNode3","parentObb","createBoundingBoxFromTileObb","tileVertices","getTileObbVertices","isTileObbInsideParentObb","isAllVerticesInsideBoundingVolume","title","concat","id","push","tileMbs","createBoundingSphereFromTileMbs","parentMbs","distanceBetweenCenters","center","distanceTo","radius","_node$parentNode4","BoundingSphere","halfSize","quaternion","OrientedBoundingBox","fromCenterHalfSizeQuaternion","geometry","CubeGeometry","attributes","getAttributes","positions","Float32Array","POSITION","value","obbCenterCartesian","Ellipsoid","WGS84","cartographicToCartesian","vertices","i","length","positionsVector","Vector3","rotatedPositions","transformByQuaternion","add","boundingVolume","isVerticesInsideObb","index","point","cartographicPoint","cartesianToCartographic","distance"],"sources":["../../../../src/i3s-converter/helpers/node-debug.ts"],"sourcesContent":["import type {Mbs, Node3DIndexDocument, Obb} from '@loaders.gl/i3s';\n\nimport {OrientedBoundingBox, BoundingSphere} from '@math.gl/culling';\nimport {CubeGeometry} from '@luma.gl/engine';\nimport {Vector3} from '@math.gl/core';\nimport {Ellipsoid} from '@math.gl/geospatial';\n\n// TODO Unite Tile validation logic in i3s-17-and-debug with this code.\n\n/**\n * Do validation of bounding volumes for particular node.\n * Generates special warnings if there are some issues.\n * @param node\n */\nexport function validateNodeBoundingVolumes(node: Node3DIndexDocument): string[] {\n if (!node?.parentNode?.obb || !node?.parentNode?.mbs) {\n return [];\n }\n\n const tileWarnings: string[] = [];\n\n validateObb(tileWarnings, node);\n validateMbs(tileWarnings, node);\n\n return tileWarnings;\n}\n\n/**\n * Check if child Obb fit into parent Obb.\n * @param tileWarnings\n * @param node\n */\nfunction validateObb(tileWarnings: string[], node: Node3DIndexDocument): void {\n // @ts-expect-error\n const parentObb = createBoundingBoxFromTileObb(node.parentNode.obb);\n const tileVertices = getTileObbVertices(node);\n const isTileObbInsideParentObb = isAllVerticesInsideBoundingVolume(parentObb, tileVertices);\n\n if (isTileObbInsideParentObb) {\n return;\n }\n\n const title = `OBB of Tile (${node.id}) doesn't fit into Parent (${node.parentNode?.id}) tile OBB`;\n tileWarnings.push(title);\n}\n\n/**\n * Check if child Mbs fit into parent Mbs.\n * @param tileWarnings\n * @param node\n */\nfunction validateMbs(tileWarnings: string[], node: Node3DIndexDocument): void {\n // @ts-expect-error\n const tileMbs = createBoundingSphereFromTileMbs(node.mbs);\n // @ts-expect-error\n const parentMbs = createBoundingSphereFromTileMbs(node.parentNode.mbs);\n const distanceBetweenCenters = tileMbs.center.distanceTo(parentMbs.center);\n\n if (distanceBetweenCenters + tileMbs.radius > parentMbs.radius) {\n const title = `MBS of Tile (${node.id}) doesn't fit into Parent (${node.parentNode?.id}) tile MBS`;\n tileWarnings.push(title);\n }\n}\n\n/**\n * Generates bounding sphere from mbs\n * @param mbs\n */\nfunction createBoundingSphereFromTileMbs(mbs: Mbs): BoundingSphere {\n return new BoundingSphere([mbs[0], mbs[1], mbs[2]], mbs[3]);\n}\n\n/**\n * Generates oriented bounding box from tile obb\n * @param obb\n * @returns\n */\nfunction createBoundingBoxFromTileObb(obb: Obb): OrientedBoundingBox {\n const {center, halfSize, quaternion} = obb;\n return new OrientedBoundingBox().fromCenterHalfSizeQuaternion(center, halfSize, quaternion);\n}\n\n/**\n * Get vertices fromnode obb\n * TODO check if Obb generates properly\n * @param node\n */\nfunction getTileObbVertices(node: Node3DIndexDocument): number[] {\n const geometry = new CubeGeometry();\n // @ts-expect-error\n const halfSize = node.obb.halfSize;\n const attributes = geometry.getAttributes();\n const positions = new Float32Array(attributes.POSITION.value);\n // @ts-expect-error\n const obbCenterCartesian = Ellipsoid.WGS84.cartographicToCartesian(node.obb.center);\n\n let vertices = [];\n\n for (let i = 0; i < positions.length; i += 3) {\n const positionsVector = new Vector3(\n (positions[i] *= halfSize[0]),\n (positions[i + 1] *= halfSize[1]),\n (positions[i + 2] *= halfSize[2])\n );\n const rotatedPositions = positionsVector\n // @ts-expect-error\n .transformByQuaternion(node.obb.quaternion)\n .add(obbCenterCartesian);\n // @ts-expect-error\n vertices = vertices.concat(rotatedPositions);\n }\n\n return vertices;\n}\n\n/**\n * Check if all vertices inside bounding volume\n * @param boundingVolume\n * @param positions\n */\nfunction isAllVerticesInsideBoundingVolume(\n boundingVolume: OrientedBoundingBox,\n positions: number[]\n): boolean {\n let isVerticesInsideObb = true;\n\n for (let index = 0; index < positions.length / 3; index += 3) {\n const point = [positions[index], positions[index + 1], positions[index + 2]];\n const cartographicPoint = Ellipsoid.WGS84.cartesianToCartographic(point);\n\n const distance = boundingVolume.distanceTo(cartographicPoint);\n\n if (distance > 0) {\n isVerticesInsideObb = false;\n break;\n }\n }\n\n return isVerticesInsideObb;\n}\n"],"mappings":"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"}
|