@loaders.gl/3d-tiles 3.2.6 → 3.3.0-alpha.2
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/dist.min.js +382 -94
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +16 -3
- package/dist/es5/lib/parsers/parse-3d-tile-header.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/esm/index.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +16 -3
- package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-header.js +15 -3
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +1 -1
- package/src/lib/parsers/parse-3d-tile-header.ts +17 -3
- package/src/types.ts +3 -3
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAGA;;AAGA;;AACA;;AAGA;;AACA","sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAGA;;AAGA;;AACA;;AAGA;;AACA","sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {FeatureTableJson, B3DMContent, Node3D} from './types';\n"],"file":"index.js"}
|
|
@@ -66,6 +66,19 @@ function getRefine(refine) {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
function resolveUri(uri, basePath) {
|
|
70
|
+
var urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
|
|
71
|
+
|
|
72
|
+
if (urlSchemeRegex.test(basePath)) {
|
|
73
|
+
var url = new URL(uri, "".concat(basePath, "/"));
|
|
74
|
+
return decodeURI(url.toString());
|
|
75
|
+
} else if (uri.startsWith('/')) {
|
|
76
|
+
return uri;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return "".concat(basePath, "/").concat(uri);
|
|
80
|
+
}
|
|
81
|
+
|
|
69
82
|
function normalizeTileData(tile, options) {
|
|
70
83
|
if (!tile) {
|
|
71
84
|
return null;
|
|
@@ -73,7 +86,7 @@ function normalizeTileData(tile, options) {
|
|
|
73
86
|
|
|
74
87
|
if (tile.content) {
|
|
75
88
|
var contentUri = tile.content.uri || tile.content.url;
|
|
76
|
-
tile.contentUrl =
|
|
89
|
+
tile.contentUrl = resolveUri(contentUri, options.basePath);
|
|
77
90
|
}
|
|
78
91
|
|
|
79
92
|
tile.id = tile.contentUrl;
|
|
@@ -139,13 +152,13 @@ function _normalizeImplicitTileHeaders() {
|
|
|
139
152
|
implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];
|
|
140
153
|
subdivisionScheme = implicitTilingExtension.subdivisionScheme, maximumLevel = implicitTilingExtension.maximumLevel, subtreeLevels = implicitTilingExtension.subtreeLevels, subtreesUriTemplate = implicitTilingExtension.subtrees.uri;
|
|
141
154
|
subtreeUrl = (0, _parse3dImplicitTiles.replaceContentUrlTemplate)(subtreesUriTemplate, 0, 0, 0, 0);
|
|
142
|
-
rootSubtreeUrl =
|
|
155
|
+
rootSubtreeUrl = resolveUri(subtreeUrl, basePath);
|
|
143
156
|
_context.next = 9;
|
|
144
157
|
return (0, _core.load)(rootSubtreeUrl, _tile3dSubtreeLoader.Tile3DSubtreeLoader);
|
|
145
158
|
|
|
146
159
|
case 9:
|
|
147
160
|
rootSubtree = _context.sent;
|
|
148
|
-
contentUrlTemplate =
|
|
161
|
+
contentUrlTemplate = resolveUri(tileset.root.content.uri, basePath);
|
|
149
162
|
refine = tileset.root.refine;
|
|
150
163
|
rootLodMetricValue = tileset.root.geometricError;
|
|
151
164
|
rootBoundingVolume = tileset.root.boundingVolume;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":["getTileType","tile","contentUrl","TILE_TYPE","EMPTY","fileExtension","split","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","TILE_REFINEMENT","REPLACE","ADD","normalizeTileData","options","content","contentUri","uri","url","basePath","id","lodMetricType","LOD_METRIC_TYPE","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","tileset","root","stack","push","length","children","childHeader","normalizeImplicitTileHeaders","implicitTilingExtension","extensions","subdivisionScheme","maximumLevel","subtreeLevels","subtreesUriTemplate","subtrees","subtreeUrl","rootSubtreeUrl","Tile3DSubtreeLoader","rootSubtree","contentUrlTemplate","rootLodMetricValue","rootBoundingVolume","boundingVolume","normalizeImplicitTileData","subtree","replace"],"mappings":"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","sourcesContent":["import {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Subtree} from '../../types';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\n\nfunction getTileType(tile) {\n if (!tile.contentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tile.contentUrl;\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension;\n }\n}\n\nfunction getRefine(refine) {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nexport function normalizeTileData(tile, options) {\n if (!tile) {\n return null;\n }\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content.url;\n tile.contentUrl = `${options.basePath}/${contentUri}`;\n }\n tile.id = tile.contentUrl;\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n tile.type = getTileType(tile);\n tile.refine = getRefine(tile.refine);\n\n return tile;\n}\n\n// normalize tile headers\nexport function normalizeTileHeaders(tileset) {\n const basePath = tileset.basePath;\n const root = normalizeTileData(tileset.root, tileset);\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n for (const childHeader of children) {\n normalizeTileData(childHeader, {basePath});\n stack.push(childHeader);\n }\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(tileset: Tileset3D) {\n if (!tileset.root) {\n return null;\n }\n\n const basePath = tileset.basePath;\n const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const rootSubtreeUrl = `${basePath}/${subtreeUrl}`;\n const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);\n const contentUrlTemplate = `${basePath}/${tileset.root.content.uri}`;\n const refine = tileset.root.refine;\n // @ts-ignore\n const rootLodMetricValue = tileset.root.geometricError;\n const rootBoundingVolume = tileset.root.boundingVolume;\n\n const options = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n rootBoundingVolume,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tileset.root, rootSubtree, options);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(tile, rootSubtree: Subtree, options: any) {\n if (!tile) {\n return null;\n }\n\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n\n const {children, contentUrl} = await parseImplicitTiles({subtree: rootSubtree, options});\n\n if (contentUrl) {\n tile.contentUrl = contentUrl;\n tile.content = {uri: contentUrl.replace(`${options.basePath}/`, '')};\n }\n\n tile.refine = getRefine(tile.refine);\n tile.type = getTileType(tile);\n tile.children = children;\n tile.id = tile.contentUrl;\n\n return tile;\n}\n"],"file":"parse-3d-tile-header.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":["getTileType","tile","contentUrl","TILE_TYPE","EMPTY","fileExtension","split","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","TILE_REFINEMENT","REPLACE","ADD","resolveUri","uri","basePath","urlSchemeRegex","test","url","URL","decodeURI","toString","startsWith","normalizeTileData","options","content","contentUri","id","lodMetricType","LOD_METRIC_TYPE","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","tileset","root","stack","push","length","children","childHeader","normalizeImplicitTileHeaders","implicitTilingExtension","extensions","subdivisionScheme","maximumLevel","subtreeLevels","subtreesUriTemplate","subtrees","subtreeUrl","rootSubtreeUrl","Tile3DSubtreeLoader","rootSubtree","contentUrlTemplate","rootLodMetricValue","rootBoundingVolume","boundingVolume","normalizeImplicitTileData","subtree","replace"],"mappings":"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","sourcesContent":["import {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Subtree} from '../../types';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\n\nfunction getTileType(tile) {\n if (!tile.contentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tile.contentUrl;\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension;\n }\n}\n\nfunction getRefine(refine) {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nfunction resolveUri(uri, basePath) {\n // url scheme per RFC3986\n const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;\n\n if (urlSchemeRegex.test(basePath)) {\n const url = new URL(uri, `${basePath}/`);\n return decodeURI(url.toString());\n } else if (uri.startsWith('/')) {\n return uri;\n }\n\n return `${basePath}/${uri}`;\n}\n\nexport function normalizeTileData(tile, options) {\n if (!tile) {\n return null;\n }\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content.url;\n tile.contentUrl = resolveUri(contentUri, options.basePath);\n }\n tile.id = tile.contentUrl;\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n tile.type = getTileType(tile);\n tile.refine = getRefine(tile.refine);\n\n return tile;\n}\n\n// normalize tile headers\nexport function normalizeTileHeaders(tileset) {\n const basePath = tileset.basePath;\n const root = normalizeTileData(tileset.root, tileset);\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n for (const childHeader of children) {\n normalizeTileData(childHeader, {basePath});\n stack.push(childHeader);\n }\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(tileset: Tileset3D) {\n if (!tileset.root) {\n return null;\n }\n\n const basePath = tileset.basePath;\n const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const rootSubtreeUrl = resolveUri(subtreeUrl, basePath);\n const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);\n const contentUrlTemplate = resolveUri(tileset.root.content.uri, basePath);\n const refine = tileset.root.refine;\n // @ts-ignore\n const rootLodMetricValue = tileset.root.geometricError;\n const rootBoundingVolume = tileset.root.boundingVolume;\n\n const options = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n rootBoundingVolume,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tileset.root, rootSubtree, options);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(tile, rootSubtree: Subtree, options: any) {\n if (!tile) {\n return null;\n }\n\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n\n const {children, contentUrl} = await parseImplicitTiles({subtree: rootSubtree, options});\n\n if (contentUrl) {\n tile.contentUrl = contentUrl;\n tile.content = {uri: contentUrl.replace(`${options.basePath}/`, '')};\n }\n\n tile.refine = getRefine(tile.refine);\n tile.type = getTileType(tile);\n tile.children = children;\n tile.id = tile.contentUrl;\n\n return tile;\n}\n"],"file":"parse-3d-tile-header.js"}
|
|
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VERSION = void 0;
|
|
7
|
-
var VERSION = typeof "3.2
|
|
7
|
+
var VERSION = typeof "3.3.0-alpha.2" !== 'undefined' ? "3.3.0-alpha.2" : 'latest';
|
|
8
8
|
exports.VERSION = VERSION;
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAGO,IAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":";;;;;;AAGO,IAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":["Tiles3DLoader","CesiumIonLoader","Tile3DSubtreeLoader","Tile3DWriter","default","Tile3DFeatureTable","Tile3DBatchTable","TILE3D_TYPE","getIonTilesetMetadata","_getIonTilesetMetadata"],"mappings":"AACA,SAAQA,aAAR,QAA4B,mBAA5B;AACA,SAAQC,eAAR,QAA8B,qBAA9B;AACA,SAAQC,mBAAR,QAAkC,0BAAlC;AAGA,SAAQC,YAAR,QAA2B,kBAA3B;AAGA,SAAQC,OAAO,IAAIC,kBAAnB,QAA4C,qCAA5C;AACA,SAAQD,OAAO,IAAIE,gBAAnB,QAA0C,mCAA1C;AAGA,SAAQC,WAAR,QAA0B,iBAA1B;AACA,SAAQC,qBAAqB,IAAIC,sBAAjC,QAA8D,eAA9D","sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {
|
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["Tiles3DLoader","CesiumIonLoader","Tile3DSubtreeLoader","Tile3DWriter","default","Tile3DFeatureTable","Tile3DBatchTable","TILE3D_TYPE","getIonTilesetMetadata","_getIonTilesetMetadata"],"mappings":"AACA,SAAQA,aAAR,QAA4B,mBAA5B;AACA,SAAQC,eAAR,QAA8B,qBAA9B;AACA,SAAQC,mBAAR,QAAkC,0BAAlC;AAGA,SAAQC,YAAR,QAA2B,kBAA3B;AAGA,SAAQC,OAAO,IAAIC,kBAAnB,QAA4C,qCAA5C;AACA,SAAQD,OAAO,IAAIE,gBAAnB,QAA0C,mCAA1C;AAGA,SAAQC,WAAR,QAA0B,iBAA1B;AACA,SAAQC,qBAAqB,IAAIC,sBAAjC,QAA8D,eAA9D","sourcesContent":["// LOADERS\nexport {Tiles3DLoader} from './tiles-3d-loader';\nexport {CesiumIonLoader} from './cesium-ion-loader';\nexport {Tile3DSubtreeLoader} from './tile-3d-subtree-loader';\n\n// WRITERS\nexport {Tile3DWriter} from './tile-3d-writer';\n\n// CLASSES\nexport {default as Tile3DFeatureTable} from './lib/classes/tile-3d-feature-table';\nexport {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';\n\n// EXPERIMENTAL\nexport {TILE3D_TYPE} from './lib/constants';\nexport {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';\nexport type {FeatureTableJson, B3DMContent, Node3D} from './types';\n"],"file":"index.js"}
|
|
@@ -41,6 +41,19 @@ function getRefine(refine) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
function resolveUri(uri, basePath) {
|
|
45
|
+
const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
|
|
46
|
+
|
|
47
|
+
if (urlSchemeRegex.test(basePath)) {
|
|
48
|
+
const url = new URL(uri, "".concat(basePath, "/"));
|
|
49
|
+
return decodeURI(url.toString());
|
|
50
|
+
} else if (uri.startsWith('/')) {
|
|
51
|
+
return uri;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return "".concat(basePath, "/").concat(uri);
|
|
55
|
+
}
|
|
56
|
+
|
|
44
57
|
export function normalizeTileData(tile, options) {
|
|
45
58
|
if (!tile) {
|
|
46
59
|
return null;
|
|
@@ -48,7 +61,7 @@ export function normalizeTileData(tile, options) {
|
|
|
48
61
|
|
|
49
62
|
if (tile.content) {
|
|
50
63
|
const contentUri = tile.content.uri || tile.content.url;
|
|
51
|
-
tile.contentUrl =
|
|
64
|
+
tile.contentUrl = resolveUri(contentUri, options.basePath);
|
|
52
65
|
}
|
|
53
66
|
|
|
54
67
|
tile.id = tile.contentUrl;
|
|
@@ -95,9 +108,9 @@ export async function normalizeImplicitTileHeaders(tileset) {
|
|
|
95
108
|
}
|
|
96
109
|
} = implicitTilingExtension;
|
|
97
110
|
const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);
|
|
98
|
-
const rootSubtreeUrl =
|
|
111
|
+
const rootSubtreeUrl = resolveUri(subtreeUrl, basePath);
|
|
99
112
|
const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);
|
|
100
|
-
const contentUrlTemplate =
|
|
113
|
+
const contentUrlTemplate = resolveUri(tileset.root.content.uri, basePath);
|
|
101
114
|
const refine = tileset.root.refine;
|
|
102
115
|
const rootLodMetricValue = tileset.root.geometricError;
|
|
103
116
|
const rootBoundingVolume = tileset.root.boundingVolume;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":["Tile3DSubtreeLoader","load","LOD_METRIC_TYPE","TILE_REFINEMENT","TILE_TYPE","parseImplicitTiles","replaceContentUrlTemplate","getTileType","tile","contentUrl","EMPTY","fileExtension","split","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","REPLACE","ADD","normalizeTileData","options","content","contentUri","uri","url","basePath","id","lodMetricType","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","tileset","root","stack","push","length","children","childHeader","normalizeImplicitTileHeaders","implicitTilingExtension","extensions","subdivisionScheme","maximumLevel","subtreeLevels","subtrees","subtreesUriTemplate","subtreeUrl","rootSubtreeUrl","rootSubtree","contentUrlTemplate","rootLodMetricValue","rootBoundingVolume","boundingVolume","normalizeImplicitTileData","subtree","replace"],"mappings":"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","sourcesContent":["import {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Subtree} from '../../types';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\n\nfunction getTileType(tile) {\n if (!tile.contentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tile.contentUrl;\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension;\n }\n}\n\nfunction getRefine(refine) {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nexport function normalizeTileData(tile, options) {\n if (!tile) {\n return null;\n }\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content.url;\n tile.contentUrl = `${options.basePath}/${contentUri}`;\n }\n tile.id = tile.contentUrl;\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n tile.type = getTileType(tile);\n tile.refine = getRefine(tile.refine);\n\n return tile;\n}\n\n// normalize tile headers\nexport function normalizeTileHeaders(tileset) {\n const basePath = tileset.basePath;\n const root = normalizeTileData(tileset.root, tileset);\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n for (const childHeader of children) {\n normalizeTileData(childHeader, {basePath});\n stack.push(childHeader);\n }\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(tileset: Tileset3D) {\n if (!tileset.root) {\n return null;\n }\n\n const basePath = tileset.basePath;\n const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const rootSubtreeUrl = `${basePath}/${subtreeUrl}`;\n const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);\n const contentUrlTemplate = `${basePath}/${tileset.root.content.uri}`;\n const refine = tileset.root.refine;\n // @ts-ignore\n const rootLodMetricValue = tileset.root.geometricError;\n const rootBoundingVolume = tileset.root.boundingVolume;\n\n const options = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n rootBoundingVolume,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tileset.root, rootSubtree, options);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(tile, rootSubtree: Subtree, options: any) {\n if (!tile) {\n return null;\n }\n\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n\n const {children, contentUrl} = await parseImplicitTiles({subtree: rootSubtree, options});\n\n if (contentUrl) {\n tile.contentUrl = contentUrl;\n tile.content = {uri: contentUrl.replace(`${options.basePath}/`, '')};\n }\n\n tile.refine = getRefine(tile.refine);\n tile.type = getTileType(tile);\n tile.children = children;\n tile.id = tile.contentUrl;\n\n return tile;\n}\n"],"file":"parse-3d-tile-header.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":["Tile3DSubtreeLoader","load","LOD_METRIC_TYPE","TILE_REFINEMENT","TILE_TYPE","parseImplicitTiles","replaceContentUrlTemplate","getTileType","tile","contentUrl","EMPTY","fileExtension","split","pop","POINTCLOUD","SCENEGRAPH","getRefine","refine","REPLACE","ADD","resolveUri","uri","basePath","urlSchemeRegex","test","url","URL","decodeURI","toString","startsWith","normalizeTileData","options","content","contentUri","id","lodMetricType","GEOMETRIC_ERROR","lodMetricValue","geometricError","transformMatrix","transform","type","normalizeTileHeaders","tileset","root","stack","push","length","children","childHeader","normalizeImplicitTileHeaders","implicitTilingExtension","extensions","subdivisionScheme","maximumLevel","subtreeLevels","subtrees","subtreesUriTemplate","subtreeUrl","rootSubtreeUrl","rootSubtree","contentUrlTemplate","rootLodMetricValue","rootBoundingVolume","boundingVolume","normalizeImplicitTileData","subtree","replace"],"mappings":"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","sourcesContent":["import {Tile3DSubtreeLoader} from '../../tile-3d-subtree-loader';\nimport {load} from '@loaders.gl/core';\nimport {Tileset3D, LOD_METRIC_TYPE, TILE_REFINEMENT, TILE_TYPE} from '@loaders.gl/tiles';\nimport {Subtree} from '../../types';\nimport {parseImplicitTiles, replaceContentUrlTemplate} from './helpers/parse-3d-implicit-tiles';\n\nfunction getTileType(tile) {\n if (!tile.contentUrl) {\n return TILE_TYPE.EMPTY;\n }\n\n const contentUrl = tile.contentUrl;\n const fileExtension = contentUrl.split('.').pop();\n switch (fileExtension) {\n case 'pnts':\n return TILE_TYPE.POINTCLOUD;\n case 'i3dm':\n case 'b3dm':\n case 'glb':\n case 'gltf':\n return TILE_TYPE.SCENEGRAPH;\n default:\n return fileExtension;\n }\n}\n\nfunction getRefine(refine) {\n switch (refine) {\n case 'REPLACE':\n case 'replace':\n return TILE_REFINEMENT.REPLACE;\n case 'ADD':\n case 'add':\n return TILE_REFINEMENT.ADD;\n default:\n return refine;\n }\n}\n\nfunction resolveUri(uri, basePath) {\n // url scheme per RFC3986\n const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;\n\n if (urlSchemeRegex.test(basePath)) {\n const url = new URL(uri, `${basePath}/`);\n return decodeURI(url.toString());\n } else if (uri.startsWith('/')) {\n return uri;\n }\n\n return `${basePath}/${uri}`;\n}\n\nexport function normalizeTileData(tile, options) {\n if (!tile) {\n return null;\n }\n if (tile.content) {\n const contentUri = tile.content.uri || tile.content.url;\n tile.contentUrl = resolveUri(contentUri, options.basePath);\n }\n tile.id = tile.contentUrl;\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n tile.type = getTileType(tile);\n tile.refine = getRefine(tile.refine);\n\n return tile;\n}\n\n// normalize tile headers\nexport function normalizeTileHeaders(tileset) {\n const basePath = tileset.basePath;\n const root = normalizeTileData(tileset.root, tileset);\n\n const stack: any[] = [];\n stack.push(root);\n\n while (stack.length > 0) {\n const tile = stack.pop() || {};\n const children = tile.children || [];\n for (const childHeader of children) {\n normalizeTileData(childHeader, {basePath});\n stack.push(childHeader);\n }\n }\n\n return root;\n}\n\n/**\n * Do normalisation of implicit tile headers\n * TODO Check if Tile3D class can be a return type here.\n * @param tileset\n */\nexport async function normalizeImplicitTileHeaders(tileset: Tileset3D) {\n if (!tileset.root) {\n return null;\n }\n\n const basePath = tileset.basePath;\n const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];\n const {\n subdivisionScheme,\n maximumLevel,\n subtreeLevels,\n subtrees: {uri: subtreesUriTemplate}\n } = implicitTilingExtension;\n const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);\n const rootSubtreeUrl = resolveUri(subtreeUrl, basePath);\n const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);\n const contentUrlTemplate = resolveUri(tileset.root.content.uri, basePath);\n const refine = tileset.root.refine;\n // @ts-ignore\n const rootLodMetricValue = tileset.root.geometricError;\n const rootBoundingVolume = tileset.root.boundingVolume;\n\n const options = {\n contentUrlTemplate,\n subtreesUriTemplate,\n subdivisionScheme,\n subtreeLevels,\n maximumLevel,\n refine,\n basePath,\n lodMetricType: LOD_METRIC_TYPE.GEOMETRIC_ERROR,\n rootLodMetricValue,\n rootBoundingVolume,\n getTileType,\n getRefine\n };\n\n return await normalizeImplicitTileData(tileset.root, rootSubtree, options);\n}\n\n/**\n * Do implicit data normalisation to create hierarchical tile structure\n * @param tile\n * @param rootSubtree\n * @param options\n * @returns\n */\nexport async function normalizeImplicitTileData(tile, rootSubtree: Subtree, options: any) {\n if (!tile) {\n return null;\n }\n\n tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tile.lodMetricValue = tile.geometricError;\n tile.transformMatrix = tile.transform;\n\n const {children, contentUrl} = await parseImplicitTiles({subtree: rootSubtree, options});\n\n if (contentUrl) {\n tile.contentUrl = contentUrl;\n tile.content = {uri: contentUrl.replace(`${options.basePath}/`, '')};\n }\n\n tile.refine = getRefine(tile.refine);\n tile.type = getTileType(tile);\n tile.children = children;\n tile.id = tile.contentUrl;\n\n return tile;\n}\n"],"file":"parse-3d-tile-header.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = typeof "3.2
|
|
1
|
+
export const VERSION = typeof "3.3.0-alpha.2" !== 'undefined' ? "3.3.0-alpha.2" : 'latest';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,
|
|
1
|
+
{"version":3,"sources":["../../../../src/lib/utils/version.ts"],"names":["VERSION"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE","sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"file":"version.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { default as Tile3DFeatureTable } from './lib/classes/tile-3d-feature-tab
|
|
|
6
6
|
export { default as Tile3DBatchTable } from './lib/classes/tile-3d-batch-table';
|
|
7
7
|
export { TILE3D_TYPE } from './lib/constants';
|
|
8
8
|
export { getIonTilesetMetadata as _getIonTilesetMetadata } from './lib/ion/ion';
|
|
9
|
-
export type {
|
|
9
|
+
export type { FeatureTableJson, B3DMContent, Node3D } from './types';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,IAAI,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,qBAAqB,IAAI,sBAAsB,EAAC,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAC,gBAAgB,EAAE,WAAW,EAAE,MAAM,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-header.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAA8C,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-header.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,SAAS,EAA8C,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAC,OAAO,EAAC,MAAM,aAAa,CAAC;AAkDpC,wBAAgB,iBAAiB,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,OAgB9C;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,KAAA,OAiB3C;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,SAAS,gBAsCpE;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,KAAA,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,gBAsBvF"}
|
|
@@ -35,13 +35,25 @@ function getRefine(refine) {
|
|
|
35
35
|
return refine;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
function resolveUri(uri, basePath) {
|
|
39
|
+
// url scheme per RFC3986
|
|
40
|
+
const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
|
|
41
|
+
if (urlSchemeRegex.test(basePath)) {
|
|
42
|
+
const url = new URL(uri, `${basePath}/`);
|
|
43
|
+
return decodeURI(url.toString());
|
|
44
|
+
}
|
|
45
|
+
else if (uri.startsWith('/')) {
|
|
46
|
+
return uri;
|
|
47
|
+
}
|
|
48
|
+
return `${basePath}/${uri}`;
|
|
49
|
+
}
|
|
38
50
|
function normalizeTileData(tile, options) {
|
|
39
51
|
if (!tile) {
|
|
40
52
|
return null;
|
|
41
53
|
}
|
|
42
54
|
if (tile.content) {
|
|
43
55
|
const contentUri = tile.content.uri || tile.content.url;
|
|
44
|
-
tile.contentUrl =
|
|
56
|
+
tile.contentUrl = resolveUri(contentUri, options.basePath);
|
|
45
57
|
}
|
|
46
58
|
tile.id = tile.contentUrl;
|
|
47
59
|
tile.lodMetricType = tiles_1.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
|
|
@@ -82,9 +94,9 @@ async function normalizeImplicitTileHeaders(tileset) {
|
|
|
82
94
|
const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];
|
|
83
95
|
const { subdivisionScheme, maximumLevel, subtreeLevels, subtrees: { uri: subtreesUriTemplate } } = implicitTilingExtension;
|
|
84
96
|
const subtreeUrl = (0, parse_3d_implicit_tiles_1.replaceContentUrlTemplate)(subtreesUriTemplate, 0, 0, 0, 0);
|
|
85
|
-
const rootSubtreeUrl =
|
|
97
|
+
const rootSubtreeUrl = resolveUri(subtreeUrl, basePath);
|
|
86
98
|
const rootSubtree = await (0, core_1.load)(rootSubtreeUrl, tile_3d_subtree_loader_1.Tile3DSubtreeLoader);
|
|
87
|
-
const contentUrlTemplate =
|
|
99
|
+
const contentUrlTemplate = resolveUri(tileset.root.content.uri, basePath);
|
|
88
100
|
const refine = tileset.root.refine;
|
|
89
101
|
// @ts-ignore
|
|
90
102
|
const rootLodMetricValue = tileset.root.geometricError;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { GLTFPostprocessed } from '@loaders.gl/gltf';
|
|
2
2
|
import { Matrix4, Vector3 } from '@math.gl/core';
|
|
3
|
-
export declare type
|
|
3
|
+
export declare type FeatureTableJson = {
|
|
4
4
|
[key: string]: any[];
|
|
5
5
|
};
|
|
6
6
|
export declare type B3DMContent = {
|
|
7
|
-
batchTableJson?:
|
|
7
|
+
batchTableJson?: FeatureTableJson;
|
|
8
8
|
byteLength: number;
|
|
9
9
|
byteOffset: number;
|
|
10
10
|
cartesianModelMatrix: Matrix4;
|
|
@@ -13,7 +13,7 @@ export declare type B3DMContent = {
|
|
|
13
13
|
cartographicOrigin: Vector3;
|
|
14
14
|
featureIds?: number[] | null;
|
|
15
15
|
featureTableBinary?: Uint8Array;
|
|
16
|
-
featureTableJson?:
|
|
16
|
+
featureTableJson?: FeatureTableJson;
|
|
17
17
|
gltf?: GLTFPostprocessed;
|
|
18
18
|
gltfUpAxis: string;
|
|
19
19
|
header: GLTFHeader;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE/C,oBAAY,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE/C,oBAAY,gBAAgB,GAAG;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;CACtB,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAChC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,EAAE,MAAM,CAAC;IACnC,wBAAwB,EAAE,MAAM,CAAC;IACjC,4BAA4B,EAAE,MAAM,CAAC;IACrC,0BAA0B,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF,oBAAY,MAAM,GAAG;IACnB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,cAAc,EAAE,cAAc,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,oBAAY,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,oBAAY,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,gBAAgB,EAAE,YAAY,CAAC;IAC/B,mBAAmB,EAAE,YAAY,CAAC;IAClC,wBAAwB,EAAE,YAAY,CAAC;CACxC,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAEF,oBAAY,iBAAiB,GAAG,UAAU,CAAC;AAE3C;;GAEG;AACH,oBAAY,iBAAiB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEtD,aAAK,MAAM,GAAG;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,aAAK,UAAU,GAAG;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/3d-tiles",
|
|
3
|
-
"version": "3.2
|
|
3
|
+
"version": "3.3.0-alpha.2",
|
|
4
4
|
"description": "3D Tiles, an open standard for streaming massive heterogeneous 3D geospatial datasets.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,16 +34,16 @@
|
|
|
34
34
|
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@loaders.gl/draco": "3.2
|
|
38
|
-
"@loaders.gl/gltf": "3.2
|
|
39
|
-
"@loaders.gl/loader-utils": "3.2
|
|
40
|
-
"@loaders.gl/math": "3.2
|
|
41
|
-
"@loaders.gl/tiles": "3.2
|
|
37
|
+
"@loaders.gl/draco": "3.3.0-alpha.2",
|
|
38
|
+
"@loaders.gl/gltf": "3.3.0-alpha.2",
|
|
39
|
+
"@loaders.gl/loader-utils": "3.3.0-alpha.2",
|
|
40
|
+
"@loaders.gl/math": "3.3.0-alpha.2",
|
|
41
|
+
"@loaders.gl/tiles": "3.3.0-alpha.2",
|
|
42
42
|
"@math.gl/core": "^3.5.1",
|
|
43
43
|
"@math.gl/geospatial": "^3.5.1"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"@loaders.gl/core": "^3.2.0"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "628f1f0eed0f14b50ccff4c561023acf6e0657e6"
|
|
49
49
|
}
|
package/src/index.ts
CHANGED
|
@@ -13,4 +13,4 @@ export {default as Tile3DBatchTable} from './lib/classes/tile-3d-batch-table';
|
|
|
13
13
|
// EXPERIMENTAL
|
|
14
14
|
export {TILE3D_TYPE} from './lib/constants';
|
|
15
15
|
export {getIonTilesetMetadata as _getIonTilesetMetadata} from './lib/ion/ion';
|
|
16
|
-
export type {
|
|
16
|
+
export type {FeatureTableJson, B3DMContent, Node3D} from './types';
|
|
@@ -37,13 +37,27 @@ function getRefine(refine) {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
+
function resolveUri(uri, basePath) {
|
|
41
|
+
// url scheme per RFC3986
|
|
42
|
+
const urlSchemeRegex = /^[a-z][0-9a-z+.-]*:/i;
|
|
43
|
+
|
|
44
|
+
if (urlSchemeRegex.test(basePath)) {
|
|
45
|
+
const url = new URL(uri, `${basePath}/`);
|
|
46
|
+
return decodeURI(url.toString());
|
|
47
|
+
} else if (uri.startsWith('/')) {
|
|
48
|
+
return uri;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return `${basePath}/${uri}`;
|
|
52
|
+
}
|
|
53
|
+
|
|
40
54
|
export function normalizeTileData(tile, options) {
|
|
41
55
|
if (!tile) {
|
|
42
56
|
return null;
|
|
43
57
|
}
|
|
44
58
|
if (tile.content) {
|
|
45
59
|
const contentUri = tile.content.uri || tile.content.url;
|
|
46
|
-
tile.contentUrl =
|
|
60
|
+
tile.contentUrl = resolveUri(contentUri, options.basePath);
|
|
47
61
|
}
|
|
48
62
|
tile.id = tile.contentUrl;
|
|
49
63
|
tile.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;
|
|
@@ -94,9 +108,9 @@ export async function normalizeImplicitTileHeaders(tileset: Tileset3D) {
|
|
|
94
108
|
subtrees: {uri: subtreesUriTemplate}
|
|
95
109
|
} = implicitTilingExtension;
|
|
96
110
|
const subtreeUrl = replaceContentUrlTemplate(subtreesUriTemplate, 0, 0, 0, 0);
|
|
97
|
-
const rootSubtreeUrl =
|
|
111
|
+
const rootSubtreeUrl = resolveUri(subtreeUrl, basePath);
|
|
98
112
|
const rootSubtree = await load(rootSubtreeUrl, Tile3DSubtreeLoader);
|
|
99
|
-
const contentUrlTemplate =
|
|
113
|
+
const contentUrlTemplate = resolveUri(tileset.root.content.uri, basePath);
|
|
100
114
|
const refine = tileset.root.refine;
|
|
101
115
|
// @ts-ignore
|
|
102
116
|
const rootLodMetricValue = tileset.root.geometricError;
|
package/src/types.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type {GLTFPostprocessed} from '@loaders.gl/gltf';
|
|
2
2
|
import {Matrix4, Vector3} from '@math.gl/core';
|
|
3
3
|
|
|
4
|
-
export type
|
|
4
|
+
export type FeatureTableJson = {
|
|
5
5
|
[key: string]: any[];
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
export type B3DMContent = {
|
|
9
|
-
batchTableJson?:
|
|
9
|
+
batchTableJson?: FeatureTableJson;
|
|
10
10
|
byteLength: number;
|
|
11
11
|
byteOffset: number;
|
|
12
12
|
cartesianModelMatrix: Matrix4;
|
|
@@ -15,7 +15,7 @@ export type B3DMContent = {
|
|
|
15
15
|
cartographicOrigin: Vector3;
|
|
16
16
|
featureIds?: number[] | null;
|
|
17
17
|
featureTableBinary?: Uint8Array;
|
|
18
|
-
featureTableJson?:
|
|
18
|
+
featureTableJson?: FeatureTableJson;
|
|
19
19
|
gltf?: GLTFPostprocessed;
|
|
20
20
|
gltfUpAxis: string;
|
|
21
21
|
header: GLTFHeader;
|