@loaders.gl/3d-tiles 3.3.0-alpha.1 → 3.3.0-alpha.11
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 +1103 -1457
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/cesium-ion-loader.js +7 -26
- package/dist/es5/cesium-ion-loader.js.map +1 -1
- package/dist/es5/index.js +14 -23
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js +1 -5
- package/dist/es5/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
- package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js +1 -40
- package/dist/es5/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
- package/dist/es5/lib/classes/tile-3d-batch-table.js +12 -59
- package/dist/es5/lib/classes/tile-3d-batch-table.js.map +1 -1
- package/dist/es5/lib/classes/tile-3d-feature-table.js +4 -23
- package/dist/es5/lib/classes/tile-3d-feature-table.js.map +1 -1
- package/dist/es5/lib/constants.js +3 -1
- package/dist/es5/lib/constants.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js +7 -16
- package/dist/es5/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-composite.js +2 -11
- package/dist/es5/lib/encoders/encode-3d-tile-composite.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js +10 -17
- package/dist/es5/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js +8 -16
- package/dist/es5/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
- package/dist/es5/lib/encoders/encode-3d-tile.js +0 -12
- package/dist/es5/lib/encoders/encode-3d-tile.js.map +1 -1
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js +6 -9
- package/dist/es5/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/ion/ion.js +5 -46
- package/dist/es5/lib/ion/ion.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js +2 -11
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -8
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js +0 -5
- package/dist/es5/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js +19 -51
- package/dist/es5/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js +6 -25
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +40 -49
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js +6 -14
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
- package/dist/es5/lib/parsers/helpers/parse-utils.js +1 -3
- package/dist/es5/lib/parsers/helpers/parse-utils.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js +0 -16
- package/dist/es5/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js +1 -11
- package/dist/es5/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js +0 -8
- package/dist/es5/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-header.js +127 -111
- package/dist/es5/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js +5 -41
- package/dist/es5/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js +4 -71
- package/dist/es5/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/es5/lib/parsers/parse-3d-tile.js +5 -28
- package/dist/es5/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/tile-3d-subtree-loader.js +0 -4
- package/dist/es5/tile-3d-subtree-loader.js.map +1 -1
- package/dist/es5/tile-3d-writer.js +0 -6
- package/dist/es5/tile-3d-writer.js.map +1 -1
- package/dist/es5/tiles-3d-loader.js +5 -55
- package/dist/es5/tiles-3d-loader.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/bundle.js +1 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/cesium-ion-loader.js +9 -7
- package/dist/esm/cesium-ion-loader.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js +1 -0
- package/dist/esm/lib/classes/helpers/tile-3d-accessor-utils.js.map +1 -1
- package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js +3 -40
- package/dist/esm/lib/classes/tile-3d-batch-table-hierarchy.js.map +1 -1
- package/dist/esm/lib/classes/tile-3d-batch-table.js +7 -67
- package/dist/esm/lib/classes/tile-3d-batch-table.js.map +1 -1
- package/dist/esm/lib/classes/tile-3d-feature-table.js +5 -26
- package/dist/esm/lib/classes/tile-3d-feature-table.js.map +1 -1
- package/dist/esm/lib/constants.js +3 -0
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js +5 -3
- package/dist/esm/lib/encoders/encode-3d-tile-batched-model.js.map +1 -1
- package/dist/esm/lib/encoders/encode-3d-tile-composite.js +2 -2
- package/dist/esm/lib/encoders/encode-3d-tile-composite.js.map +1 -1
- package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js +5 -1
- package/dist/esm/lib/encoders/encode-3d-tile-instanced-model.js.map +1 -1
- package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js +4 -1
- package/dist/esm/lib/encoders/encode-3d-tile-point-cloud.js.map +1 -1
- package/dist/esm/lib/encoders/encode-3d-tile.js +2 -6
- package/dist/esm/lib/encoders/encode-3d-tile.js.map +1 -1
- package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js +3 -3
- package/dist/esm/lib/encoders/helpers/encode-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/ion/ion.js +10 -8
- package/dist/esm/lib/ion/ion.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js +1 -6
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-colors.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js +0 -4
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-normals.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js +1 -2
- package/dist/esm/lib/parsers/helpers/normalize-3d-tile-positions.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js +4 -16
- package/dist/esm/lib/parsers/helpers/parse-3d-implicit-tiles.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js +6 -9
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-gltf-view.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js +5 -2
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +26 -17
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js +4 -7
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-tables.js.map +1 -1
- package/dist/esm/lib/parsers/helpers/parse-utils.js +6 -1
- package/dist/esm/lib/parsers/helpers/parse-utils.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js +3 -4
- package/dist/esm/lib/parsers/parse-3d-tile-batched-model.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js +5 -1
- package/dist/esm/lib/parsers/parse-3d-tile-composite.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-gltf.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-header.js +35 -40
- package/dist/esm/lib/parsers/parse-3d-tile-header.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js +7 -25
- package/dist/esm/lib/parsers/parse-3d-tile-instanced-model.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js +9 -37
- package/dist/esm/lib/parsers/parse-3d-tile-point-cloud.js.map +1 -1
- package/dist/esm/lib/parsers/parse-3d-tile.js +8 -6
- package/dist/esm/lib/parsers/parse-3d-tile.js.map +1 -1
- package/dist/esm/lib/utils/version.js +2 -1
- package/dist/esm/lib/utils/version.js.map +1 -1
- package/dist/esm/tile-3d-subtree-loader.js +1 -0
- package/dist/esm/tile-3d-subtree-loader.js.map +1 -1
- package/dist/esm/tile-3d-writer.js +1 -1
- package/dist/esm/tile-3d-writer.js.map +1 -1
- package/dist/esm/tiles-3d-loader.js +3 -17
- package/dist/esm/tiles-3d-loader.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/classes/helpers/tile-3d-accessor-utils.d.ts +1 -1
- package/dist/lib/classes/tile-3d-batch-table.d.ts +1 -1
- package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-implicit-tiles.js +2 -13
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts +2 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.d.ts.map +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +36 -7
- package/dist/lib/parsers/parse-3d-tile-batched-model.js +1 -1
- package/dist/lib/parsers/parse-3d-tile-header.d.ts +5 -4
- package/dist/lib/parsers/parse-3d-tile-header.d.ts.map +1 -1
- package/dist/lib/parsers/parse-3d-tile-header.js +37 -18
- package/dist/tiles-3d-loader.d.ts.map +1 -1
- package/dist/tiles-3d-loader.js +1 -8
- package/dist/types.d.ts +26 -13
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +1 -1
- package/src/lib/parsers/helpers/parse-3d-implicit-tiles.ts +2 -14
- package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +50 -7
- package/src/lib/parsers/parse-3d-tile-header.ts +59 -21
- package/src/tiles-3d-loader.ts +2 -16
- package/src/types.ts +18 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"parse-3d-tile.js","names":["TILE3D_TYPE","getMagicString","parsePointCloud3DTile","parseBatchedModel3DTile","parseInstancedModel3DTile","parseComposite3DTile","parseGltf3DTile","parse3DTile","arrayBuffer","byteOffset","options","context","tile","type","COMPOSITE","BATCHED_3D_MODEL","GLTF","INSTANCED_3D_MODEL","POINT_CLOUD","Error"],"sources":["../../../../src/lib/parsers/parse-3d-tile.ts"],"sourcesContent":["// This file is derived from the Cesium code base under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {TILE3D_TYPE} from '../constants';\nimport {getMagicString} from './helpers/parse-utils';\n\nimport {parsePointCloud3DTile} from './parse-3d-tile-point-cloud';\nimport {parseBatchedModel3DTile} from './parse-3d-tile-batched-model';\nimport {parseInstancedModel3DTile} from './parse-3d-tile-instanced-model';\nimport {parseComposite3DTile} from './parse-3d-tile-composite';\nimport {parseGltf3DTile} from './parse-3d-tile-gltf';\n\n// Extracts\nexport async function parse3DTile(arrayBuffer, byteOffset = 0, options, context, tile = {}) {\n // @ts-expect-error\n tile.byteOffset = byteOffset;\n // @ts-expect-error\n tile.type = getMagicString(arrayBuffer, byteOffset);\n\n // @ts-expect-error\n switch (tile.type) {\n case TILE3D_TYPE.COMPOSITE:\n // Note: We pass this function as argument so that embedded tiles can be parsed recursively\n return await parseComposite3DTile(\n tile,\n arrayBuffer,\n byteOffset,\n options,\n context,\n parse3DTile\n );\n\n case TILE3D_TYPE.BATCHED_3D_MODEL:\n return await parseBatchedModel3DTile(tile, arrayBuffer, byteOffset, options, context);\n\n case TILE3D_TYPE.GLTF:\n return await parseGltf3DTile(tile, arrayBuffer, options, context);\n\n case TILE3D_TYPE.INSTANCED_3D_MODEL:\n return await parseInstancedModel3DTile(tile, arrayBuffer, byteOffset, options, context);\n\n case TILE3D_TYPE.POINT_CLOUD:\n return await parsePointCloud3DTile(tile, arrayBuffer, byteOffset, options, context);\n\n default:\n // @ts-expect-error\n throw new Error(`3DTileLoader: unknown type ${tile.type}`); // eslint-disable-line\n }\n}\n"],"mappings":";;AAGA,SAAQA,WAAW,QAAO,cAAc;AACxC,SAAQC,cAAc,QAAO,uBAAuB;AAEpD,SAAQC,qBAAqB,QAAO,6BAA6B;AACjE,SAAQC,uBAAuB,QAAO,+BAA+B;AACrE,SAAQC,yBAAyB,QAAO,iCAAiC;AACzE,SAAQC,oBAAoB,QAAO,2BAA2B;AAC9D,SAAQC,eAAe,QAAO,sBAAsB;;AAGpD,OAAO,eAAeC,WAAW,CAACC,WAAW,EAA+C;EAAA,IAA7CC,UAAU,uEAAG,CAAC;EAAA,IAAEC,OAAO;EAAA,IAAEC,OAAO;EAAA,IAAEC,IAAI,uEAAG,CAAC,CAAC;EAExFA,IAAI,CAACH,UAAU,GAAGA,UAAU;EAE5BG,IAAI,CAACC,IAAI,GAAGZ,cAAc,CAACO,WAAW,EAAEC,UAAU,CAAC;;EAGnD,QAAQG,IAAI,CAACC,IAAI;IACf,KAAKb,WAAW,CAACc,SAAS;MAExB,OAAO,MAAMT,oBAAoB,CAC/BO,IAAI,EACJJ,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,OAAO,EACPJ,WAAW,CACZ;IAEH,KAAKP,WAAW,CAACe,gBAAgB;MAC/B,OAAO,MAAMZ,uBAAuB,CAACS,IAAI,EAAEJ,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,OAAO,CAAC;IAEvF,KAAKX,WAAW,CAACgB,IAAI;MACnB,OAAO,MAAMV,eAAe,CAACM,IAAI,EAAEJ,WAAW,EAAEE,OAAO,EAAEC,OAAO,CAAC;IAEnE,KAAKX,WAAW,CAACiB,kBAAkB;MACjC,OAAO,MAAMb,yBAAyB,CAACQ,IAAI,EAAEJ,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,OAAO,CAAC;IAEzF,KAAKX,WAAW,CAACkB,WAAW;MAC1B,OAAO,MAAMhB,qBAAqB,CAACU,IAAI,EAAEJ,WAAW,EAAEC,UAAU,EAAEC,OAAO,EAAEC,OAAO,CAAC;IAErF;MAEE,MAAM,IAAIQ,KAAK,sCAA+BP,IAAI,CAACC,IAAI,EAAG;EAAC;AAEjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"version.js","names":["VERSION"],"sources":["../../../../src/lib/utils/version.ts"],"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"],"mappings":";AAGA,OAAO,MAAMA,OAAO,GAAG,uBAAkB,KAAK,WAAW,sBAAiB,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tile-3d-subtree-loader.js","names":["parse3DTilesSubtree","VERSION","Tile3DSubtreeLoader","id","name","module","version","extensions","mimeTypes","tests","parse","options"],"sources":["../../src/tile-3d-subtree-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport parse3DTilesSubtree from './lib/parsers/helpers/parse-3d-tile-subtree';\nimport {VERSION} from './lib/utils/version';\n\n/**\n * Loader for 3D Tiles Subtree\n *\n */\nexport const Tile3DSubtreeLoader: LoaderWithParser = {\n id: '3d-tiles-subtree',\n name: '3D Tiles Subtree',\n module: '3d-tiles',\n version: VERSION,\n extensions: ['subtree'],\n mimeTypes: ['application/octet-stream'],\n tests: ['subtree'],\n parse: parse3DTilesSubtree,\n options: {}\n};\n"],"mappings":"AACA,OAAOA,mBAAmB,MAAM,6CAA6C;AAC7E,SAAQC,OAAO,QAAO,qBAAqB;;AAM3C,OAAO,MAAMC,mBAAqC,GAAG;EACnDC,EAAE,EAAE,kBAAkB;EACtBC,IAAI,EAAE,kBAAkB;EACxBC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEL,OAAO;EAChBM,UAAU,EAAE,CAAC,SAAS,CAAC;EACvBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAE,CAAC,SAAS,CAAC;EAClBC,KAAK,EAAEV,mBAAmB;EAC1BW,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { VERSION } from './lib/utils/version';
|
|
2
2
|
import encode3DTile from './lib/encoders/encode-3d-tile';
|
|
3
|
+
|
|
3
4
|
export const Tile3DWriter = {
|
|
4
5
|
name: '3D Tile',
|
|
5
6
|
id: '3d-tiles',
|
|
@@ -13,7 +14,6 @@ export const Tile3DWriter = {
|
|
|
13
14
|
['3d-tiles']: {}
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
|
-
|
|
17
17
|
function encodeSync(tile, options) {
|
|
18
18
|
return encode3DTile(tile, options);
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tile-3d-writer.js","names":["VERSION","encode3DTile","Tile3DWriter","name","id","module","version","extensions","mimeTypes","encodeSync","binary","options","tile"],"sources":["../../src/tile-3d-writer.ts"],"sourcesContent":["import type {Writer} from '@loaders.gl/loader-utils';\nimport {VERSION} from './lib/utils/version';\nimport encode3DTile from './lib/encoders/encode-3d-tile';\n\n/**\n * Exporter for 3D Tiles\n */\nexport const Tile3DWriter: Writer = {\n name: '3D Tile',\n id: '3d-tiles',\n module: '3d-tiles',\n version: VERSION,\n extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],\n mimeTypes: ['application/octet-stream'],\n encodeSync,\n binary: true,\n options: {\n ['3d-tiles']: {}\n }\n};\n\nfunction encodeSync(tile, options) {\n return encode3DTile(tile, options);\n}\n"],"mappings":"AACA,SAAQA,OAAO,QAAO,qBAAqB;AAC3C,OAAOC,YAAY,MAAM,+BAA+B;;AAKxD,OAAO,MAAMC,YAAoB,GAAG;EAClCC,IAAI,EAAE,SAAS;EACfC,EAAE,EAAE,UAAU;EACdC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEN,OAAO;EAChBO,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5CC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,UAAU;EACVC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACP,CAAC,UAAU,GAAG,CAAC;EACjB;AACF,CAAC;AAED,SAASF,UAAU,CAACG,IAAI,EAAED,OAAO,EAAE;EACjC,OAAOV,YAAY,CAACW,IAAI,EAAED,OAAO,CAAC;AACpC"}
|
|
@@ -2,8 +2,8 @@ import { path } from '@loaders.gl/loader-utils';
|
|
|
2
2
|
import { TILESET_TYPE, LOD_METRIC_TYPE } from '@loaders.gl/tiles';
|
|
3
3
|
import { VERSION } from './lib/utils/version';
|
|
4
4
|
import { parse3DTile } from './lib/parsers/parse-3d-tile';
|
|
5
|
-
import { normalizeTileHeaders
|
|
6
|
-
|
|
5
|
+
import { normalizeTileHeaders } from './lib/parsers/parse-3d-tile-header';
|
|
6
|
+
|
|
7
7
|
export const Tiles3DLoader = {
|
|
8
8
|
id: '3d-tiles',
|
|
9
9
|
name: '3D Tiles',
|
|
@@ -22,11 +22,9 @@ export const Tiles3DLoader = {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
|
-
|
|
26
25
|
function getBaseUri(tileset) {
|
|
27
26
|
return path.dirname(tileset.url);
|
|
28
27
|
}
|
|
29
|
-
|
|
30
28
|
async function parseTile(arrayBuffer, options, context) {
|
|
31
29
|
const tile = {
|
|
32
30
|
content: {
|
|
@@ -37,43 +35,31 @@ async function parseTile(arrayBuffer, options, context) {
|
|
|
37
35
|
await parse3DTile(arrayBuffer, byteOffset, options, context, tile.content);
|
|
38
36
|
return tile.content;
|
|
39
37
|
}
|
|
40
|
-
|
|
41
38
|
async function parseTileset(data, options, context) {
|
|
42
39
|
var _tilesetJson$root;
|
|
43
|
-
|
|
44
40
|
const tilesetJson = JSON.parse(new TextDecoder().decode(data));
|
|
45
41
|
tilesetJson.loader = options.loader || Tiles3DLoader;
|
|
46
42
|
tilesetJson.url = context.url;
|
|
47
43
|
tilesetJson.basePath = getBaseUri(tilesetJson);
|
|
48
|
-
tilesetJson.root =
|
|
44
|
+
tilesetJson.root = await normalizeTileHeaders(tilesetJson, options);
|
|
49
45
|
tilesetJson.type = TILESET_TYPE.TILES3D;
|
|
50
46
|
tilesetJson.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;
|
|
51
47
|
tilesetJson.lodMetricValue = ((_tilesetJson$root = tilesetJson.root) === null || _tilesetJson$root === void 0 ? void 0 : _tilesetJson$root.lodMetricValue) || 0;
|
|
52
48
|
return tilesetJson;
|
|
53
49
|
}
|
|
54
|
-
|
|
55
50
|
async function parse(data, options, context) {
|
|
56
51
|
const loaderOptions = options['3d-tiles'] || {};
|
|
57
52
|
let isTileset;
|
|
58
|
-
|
|
59
53
|
if (loaderOptions.isTileset === 'auto') {
|
|
60
54
|
isTileset = context.url && context.url.indexOf('.json') !== -1;
|
|
61
55
|
} else {
|
|
62
56
|
isTileset = loaderOptions.isTileset;
|
|
63
57
|
}
|
|
64
|
-
|
|
65
58
|
if (isTileset) {
|
|
66
59
|
data = await parseTileset(data, options, context);
|
|
67
60
|
} else {
|
|
68
61
|
data = await parseTile(data, options, context);
|
|
69
62
|
}
|
|
70
|
-
|
|
71
63
|
return data;
|
|
72
64
|
}
|
|
73
|
-
|
|
74
|
-
function hasImplicitTilingExtension(tilesetJson) {
|
|
75
|
-
var _tilesetJson$extensio, _tilesetJson$extensio2;
|
|
76
|
-
|
|
77
|
-
return (tilesetJson === null || tilesetJson === void 0 ? void 0 : (_tilesetJson$extensio = tilesetJson.extensionsRequired) === null || _tilesetJson$extensio === void 0 ? void 0 : _tilesetJson$extensio.includes(IMPLICIT_TILING_EXTENSION_NAME)) && (tilesetJson === null || tilesetJson === void 0 ? void 0 : (_tilesetJson$extensio2 = tilesetJson.extensionsUsed) === null || _tilesetJson$extensio2 === void 0 ? void 0 : _tilesetJson$extensio2.includes(IMPLICIT_TILING_EXTENSION_NAME));
|
|
78
|
-
}
|
|
79
65
|
//# sourceMappingURL=tiles-3d-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tiles-3d-loader.js","names":["path","TILESET_TYPE","LOD_METRIC_TYPE","VERSION","parse3DTile","normalizeTileHeaders","Tiles3DLoader","id","name","module","version","extensions","mimeTypes","tests","parse","options","loadGLTF","decodeQuantizedPositions","isTileset","assetGltfUpAxis","getBaseUri","tileset","dirname","url","parseTile","arrayBuffer","context","tile","content","featureIds","byteOffset","parseTileset","data","tilesetJson","JSON","TextDecoder","decode","loader","basePath","root","type","TILES3D","lodMetricType","GEOMETRIC_ERROR","lodMetricValue","loaderOptions","indexOf"],"sources":["../../src/tiles-3d-loader.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport {path} from '@loaders.gl/loader-utils';\nimport {TILESET_TYPE, LOD_METRIC_TYPE} from '@loaders.gl/tiles';\nimport {VERSION} from './lib/utils/version';\nimport {parse3DTile} from './lib/parsers/parse-3d-tile';\nimport {normalizeTileHeaders} from './lib/parsers/parse-3d-tile-header';\n\n/**\n * Loader for 3D Tiles\n */\nexport const Tiles3DLoader: LoaderWithParser = {\n id: '3d-tiles',\n name: '3D Tiles',\n module: '3d-tiles',\n version: VERSION,\n extensions: ['cmpt', 'pnts', 'b3dm', 'i3dm'],\n mimeTypes: ['application/octet-stream'],\n tests: ['cmpt', 'pnts', 'b3dm', 'i3dm'],\n parse,\n options: {\n '3d-tiles': {\n loadGLTF: true,\n decodeQuantizedPositions: false,\n isTileset: 'auto',\n assetGltfUpAxis: null\n }\n }\n};\n\nfunction getBaseUri(tileset) {\n return path.dirname(tileset.url);\n}\n\nasync function parseTile(arrayBuffer, options, context) {\n const tile = {\n content: {\n featureIds: null\n }\n };\n const byteOffset = 0;\n await parse3DTile(arrayBuffer, byteOffset, options, context, tile.content);\n return tile.content;\n}\n\nasync function parseTileset(data, options, context) {\n const tilesetJson = JSON.parse(new TextDecoder().decode(data));\n // eslint-disable-next-line no-use-before-define\n tilesetJson.loader = options.loader || Tiles3DLoader;\n tilesetJson.url = context.url;\n // base path that non-absolute paths in tileset are relative to.\n tilesetJson.basePath = getBaseUri(tilesetJson);\n tilesetJson.root = await normalizeTileHeaders(tilesetJson, options);\n\n tilesetJson.type = TILESET_TYPE.TILES3D;\n\n tilesetJson.lodMetricType = LOD_METRIC_TYPE.GEOMETRIC_ERROR;\n tilesetJson.lodMetricValue = tilesetJson.root?.lodMetricValue || 0;\n\n return tilesetJson;\n}\n\nasync function parse(data, options, context) {\n // auto detect file type\n const loaderOptions = options['3d-tiles'] || {};\n let isTileset;\n if (loaderOptions.isTileset === 'auto') {\n isTileset = context.url && context.url.indexOf('.json') !== -1;\n } else {\n isTileset = loaderOptions.isTileset;\n }\n\n if (isTileset) {\n data = await parseTileset(data, options, context);\n } else {\n data = await parseTile(data, options, context);\n }\n\n return data;\n}\n"],"mappings":"AACA,SAAQA,IAAI,QAAO,0BAA0B;AAC7C,SAAQC,YAAY,EAAEC,eAAe,QAAO,mBAAmB;AAC/D,SAAQC,OAAO,QAAO,qBAAqB;AAC3C,SAAQC,WAAW,QAAO,6BAA6B;AACvD,SAAQC,oBAAoB,QAAO,oCAAoC;;AAKvE,OAAO,MAAMC,aAA+B,GAAG;EAC7CC,EAAE,EAAE,UAAU;EACdC,IAAI,EAAE,UAAU;EAChBC,MAAM,EAAE,UAAU;EAClBC,OAAO,EAAEP,OAAO;EAChBQ,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EAC5CC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;EACvCC,KAAK;EACLC,OAAO,EAAE;IACP,UAAU,EAAE;MACVC,QAAQ,EAAE,IAAI;MACdC,wBAAwB,EAAE,KAAK;MAC/BC,SAAS,EAAE,MAAM;MACjBC,eAAe,EAAE;IACnB;EACF;AACF,CAAC;AAED,SAASC,UAAU,CAACC,OAAO,EAAE;EAC3B,OAAOrB,IAAI,CAACsB,OAAO,CAACD,OAAO,CAACE,GAAG,CAAC;AAClC;AAEA,eAAeC,SAAS,CAACC,WAAW,EAAEV,OAAO,EAAEW,OAAO,EAAE;EACtD,MAAMC,IAAI,GAAG;IACXC,OAAO,EAAE;MACPC,UAAU,EAAE;IACd;EACF,CAAC;EACD,MAAMC,UAAU,GAAG,CAAC;EACpB,MAAM1B,WAAW,CAACqB,WAAW,EAAEK,UAAU,EAAEf,OAAO,EAAEW,OAAO,EAAEC,IAAI,CAACC,OAAO,CAAC;EAC1E,OAAOD,IAAI,CAACC,OAAO;AACrB;AAEA,eAAeG,YAAY,CAACC,IAAI,EAAEjB,OAAO,EAAEW,OAAO,EAAE;EAAA;EAClD,MAAMO,WAAW,GAAGC,IAAI,CAACpB,KAAK,CAAC,IAAIqB,WAAW,EAAE,CAACC,MAAM,CAACJ,IAAI,CAAC,CAAC;EAE9DC,WAAW,CAACI,MAAM,GAAGtB,OAAO,CAACsB,MAAM,IAAI/B,aAAa;EACpD2B,WAAW,CAACV,GAAG,GAAGG,OAAO,CAACH,GAAG;EAE7BU,WAAW,CAACK,QAAQ,GAAGlB,UAAU,CAACa,WAAW,CAAC;EAC9CA,WAAW,CAACM,IAAI,GAAG,MAAMlC,oBAAoB,CAAC4B,WAAW,EAAElB,OAAO,CAAC;EAEnEkB,WAAW,CAACO,IAAI,GAAGvC,YAAY,CAACwC,OAAO;EAEvCR,WAAW,CAACS,aAAa,GAAGxC,eAAe,CAACyC,eAAe;EAC3DV,WAAW,CAACW,cAAc,GAAG,sBAAAX,WAAW,CAACM,IAAI,sDAAhB,kBAAkBK,cAAc,KAAI,CAAC;EAElE,OAAOX,WAAW;AACpB;AAEA,eAAenB,KAAK,CAACkB,IAAI,EAAEjB,OAAO,EAAEW,OAAO,EAAE;EAE3C,MAAMmB,aAAa,GAAG9B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;EAC/C,IAAIG,SAAS;EACb,IAAI2B,aAAa,CAAC3B,SAAS,KAAK,MAAM,EAAE;IACtCA,SAAS,GAAGQ,OAAO,CAACH,GAAG,IAAIG,OAAO,CAACH,GAAG,CAACuB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;EAChE,CAAC,MAAM;IACL5B,SAAS,GAAG2B,aAAa,CAAC3B,SAAS;EACrC;EAEA,IAAIA,SAAS,EAAE;IACbc,IAAI,GAAG,MAAMD,YAAY,CAACC,IAAI,EAAEjB,OAAO,EAAEW,OAAO,CAAC;EACnD,CAAC,MAAM;IACLM,IAAI,GAAG,MAAMR,SAAS,CAACQ,IAAI,EAAEjB,OAAO,EAAEW,OAAO,CAAC;EAChD;EAEA,OAAOM,IAAI;AACb"}
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/types.ts"],"sourcesContent":["import type {GLTFPostprocessed} from '@loaders.gl/gltf';\nimport {Matrix4, Vector3} from '@math.gl/core';\n\nexport type FeatureTableJson = {\n [key: string]: any[];\n};\n\nexport type B3DMContent = {\n batchTableJson?: FeatureTableJson;\n byteLength: number;\n byteOffset: number;\n cartesianModelMatrix: Matrix4;\n cartesianOrigin: Vector3;\n cartographicModelMatrix: Matrix4;\n cartographicOrigin: Vector3;\n featureIds?: number[] | null;\n featureTableBinary?: Uint8Array;\n featureTableJson?: FeatureTableJson;\n gltf?: GLTFPostprocessed;\n gltfUpAxis: string;\n header: GLTFHeader;\n magic: number;\n modelMatrix: Matrix4;\n rotateYtoZ: boolean;\n rtcCenter: [number, number, number];\n type: string;\n version: number;\n};\n\nexport type GLTFHeader = {\n batchLength?: number;\n batchTableBinaryByteLength: number;\n batchTableJsonByteLength: number;\n featureTableBinaryByteLength: number;\n featureTableJsonByteLength: number;\n};\n\nexport type Node3D = {\n boundingVolume: BoundingVolume;\n children: any;\n geometricError: number;\n content?: {\n uri: string;\n boundingVolume: BoundingVolume;\n };\n};\n\nexport type BoundingVolume = {\n box?: number[];\n sphere?: number[];\n region?: number[];\n};\n\n/**\n * 3DTILES_implicit_tiling types\n * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format\n */\nexport type Subtree = {\n buffers: Buffer[];\n bufferViews: BufferView[];\n tileAvailability: Availability;\n contentAvailability: Availability;\n childSubtreeAvailability: Availability;\n};\n\nexport type Availability = {\n constant?: 0 | 1;\n bufferView?: number;\n // Internal bitstream type\n explicitBitstream?: ExplicitBitstream;\n};\n\nexport type ExplicitBitstream = Uint8Array;\n\n/**\n * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subdivision-scheme\n */\nexport type SubdivisionScheme = 'QUADTREE' | 'OCTREE';\n\ntype Buffer = {\n name: string;\n uri?: string;\n byteLength: number;\n};\n\ntype BufferView = {\n buffer: number;\n byteOffset: number;\n byteLength: number;\n};\n\n/**\n * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling\n */\nexport type ImplicitTilingExtension = {\n subdivisionScheme: 'QUADTREE' | 'OCTREE';\n maximumLevel?: number;\n availableLevels: number;\n subtreeLevels: number;\n subtrees: SubtreeUri;\n};\n\ntype SubtreeUri = {\n uri: string;\n};\n"],"mappings":""}
|
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, ImplicitTilingExtension } 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,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAC"}
|
|
@@ -21,7 +21,7 @@ export default class Tile3DBatchTableParser {
|
|
|
21
21
|
_setBinaryProperty(binaryProperty: any, index: any, value: any): void;
|
|
22
22
|
_initializeBinaryProperties(): Record<string, any> | null;
|
|
23
23
|
_initializeBinaryProperty(name: any, property: any): {
|
|
24
|
-
typedArray: import("@math.gl/
|
|
24
|
+
typedArray: import("@math.gl/types").TypedArray;
|
|
25
25
|
componentCount: any;
|
|
26
26
|
unpack: any;
|
|
27
27
|
pack: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-implicit-tiles.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/helpers/parse-3d-implicit-tiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAY1E;;;;;;;;;;;GAWG;AAEH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CACpF;;;;
|
|
1
|
+
{"version":3,"file":"parse-3d-implicit-tiles.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/helpers/parse-3d-implicit-tiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA+B,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAY1E;;;;;;;;;;;GAWG;AAEH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;CACpF;;;;GAsHA;AA2GD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,GACR,MAAM,CAGR"}
|
|
@@ -49,14 +49,6 @@ async function parseImplicitTiles(params) {
|
|
|
49
49
|
let childTileX = concatBits(parentData.x, childX);
|
|
50
50
|
let childTileY = concatBits(parentData.y, childY);
|
|
51
51
|
let childTileZ = concatBits(parentData.z, childZ);
|
|
52
|
-
// TODO Remove after real implicit tileset will be tested.
|
|
53
|
-
// Degug data
|
|
54
|
-
// tile.level = level + globalData.level;
|
|
55
|
-
// tile.x = concatBits(globalData.x, childTileX);
|
|
56
|
-
// tile.y = concatBits(globalData.y, childTileY);
|
|
57
|
-
// tile.z = concatBits(globalData.z, childTileZ);
|
|
58
|
-
// tile.mortonIndex = childTileMortonIndex;
|
|
59
|
-
// End of debug data
|
|
60
52
|
let isChildSubtreeAvailable = false;
|
|
61
53
|
if (level + 1 > subtreeLevels) {
|
|
62
54
|
isChildSubtreeAvailable = getAvailabilityResult(subtree.childSubtreeAvailability, childTileMortonIndex);
|
|
@@ -143,12 +135,9 @@ function formatTileData(tile, level, childCoordinates, options) {
|
|
|
143
135
|
type: getTileType(tile),
|
|
144
136
|
lodMetricType,
|
|
145
137
|
lodMetricValue,
|
|
138
|
+
geometricError: lodMetricValue,
|
|
139
|
+
transform: tile.transform,
|
|
146
140
|
boundingVolume
|
|
147
|
-
// Temp debug values. Remove when real implicit tileset will be tested.
|
|
148
|
-
// x: tile.x,
|
|
149
|
-
// y: tile.y,
|
|
150
|
-
// z: tile.z,
|
|
151
|
-
// level: tile.level
|
|
152
141
|
};
|
|
153
142
|
}
|
|
154
143
|
/**
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Subtree } from '../../../types';
|
|
2
|
+
import type { LoaderContext, LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
3
|
/**
|
|
3
4
|
* Parse subtree file
|
|
4
5
|
* Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
|
|
5
6
|
* @param data
|
|
6
7
|
* @returns
|
|
7
8
|
*/
|
|
8
|
-
export default function parse3DTilesSubtree(data: ArrayBuffer): Promise<Subtree>;
|
|
9
|
+
export default function parse3DTilesSubtree(data: ArrayBuffer, options: LoaderOptions | undefined, context: LoaderContext | undefined): Promise<Subtree>;
|
|
9
10
|
//# sourceMappingURL=parse-3d-tile-subtree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-subtree.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAoB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-subtree.d.ts","sourceRoot":"","sources":["../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAoB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAK3E;;;;;GAKG;AAEH,wBAA8B,mBAAmB,CAC/C,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,GAAG,SAAS,EAClC,OAAO,EAAE,aAAa,GAAG,SAAS,GACjC,OAAO,CAAC,OAAO,CAAC,CAuDlB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const core_1 = require("@loaders.gl/core");
|
|
4
3
|
const SUBTREE_FILE_MAGIC = 0x74627573;
|
|
5
4
|
const SUBTREE_FILE_VERSION = 1;
|
|
6
5
|
/**
|
|
@@ -10,7 +9,7 @@ const SUBTREE_FILE_VERSION = 1;
|
|
|
10
9
|
* @returns
|
|
11
10
|
*/
|
|
12
11
|
// eslint-disable-next-line max-statements
|
|
13
|
-
async function parse3DTilesSubtree(data) {
|
|
12
|
+
async function parse3DTilesSubtree(data, options, context) {
|
|
14
13
|
const magic = new Uint32Array(data.slice(0, 4));
|
|
15
14
|
if (magic[0] !== SUBTREE_FILE_MAGIC) {
|
|
16
15
|
throw new Error('Wrong subtree file magic number');
|
|
@@ -30,30 +29,60 @@ async function parse3DTilesSubtree(data) {
|
|
|
30
29
|
internalBinaryBuffer = data.slice(24 + jsonByteLength);
|
|
31
30
|
}
|
|
32
31
|
if ('bufferView' in subtree.tileAvailability) {
|
|
33
|
-
subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'tileAvailability', internalBinaryBuffer);
|
|
32
|
+
subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'tileAvailability', internalBinaryBuffer, context);
|
|
34
33
|
}
|
|
35
34
|
if ('bufferView' in subtree.contentAvailability) {
|
|
36
|
-
subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'contentAvailability', internalBinaryBuffer);
|
|
35
|
+
subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'contentAvailability', internalBinaryBuffer, context);
|
|
37
36
|
}
|
|
38
37
|
if ('bufferView' in subtree.childSubtreeAvailability) {
|
|
39
|
-
subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'childSubtreeAvailability', internalBinaryBuffer);
|
|
38
|
+
subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(subtree, 'childSubtreeAvailability', internalBinaryBuffer, context);
|
|
40
39
|
}
|
|
41
40
|
return subtree;
|
|
42
41
|
}
|
|
43
42
|
exports.default = parse3DTilesSubtree;
|
|
43
|
+
/**
|
|
44
|
+
* Get url for bitstream downloading
|
|
45
|
+
* @param bitstreamRelativeUri
|
|
46
|
+
* @param baseUri
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
function resolveBufferUri(bitstreamRelativeUri, basePath) {
|
|
50
|
+
const hasProtocol = basePath.startsWith('http');
|
|
51
|
+
if (hasProtocol) {
|
|
52
|
+
const resolvedUri = new URL(bitstreamRelativeUri, basePath);
|
|
53
|
+
return decodeURI(resolvedUri.toString());
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Adding http protocol only for new URL constructor usage.
|
|
57
|
+
* It allows to resolve relative paths like ../../example with basePath.
|
|
58
|
+
*/
|
|
59
|
+
const basePathWithProtocol = `http://${basePath}`;
|
|
60
|
+
const resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);
|
|
61
|
+
/**
|
|
62
|
+
* Drop protocol and use just relative path.
|
|
63
|
+
*/
|
|
64
|
+
return `/${resolvedUri.host}${resolvedUri.pathname}`;
|
|
65
|
+
}
|
|
44
66
|
/**
|
|
45
67
|
* Get explicit bitstream for subtree availability data.
|
|
46
68
|
* @param subtree
|
|
47
69
|
* @param name
|
|
48
70
|
* @param internalBinaryBuffer
|
|
49
71
|
*/
|
|
50
|
-
async function getExplicitBitstream(subtree, name, internalBinaryBuffer) {
|
|
72
|
+
async function getExplicitBitstream(subtree, name, internalBinaryBuffer, context) {
|
|
51
73
|
const bufferViewIndex = subtree[name].bufferView;
|
|
52
74
|
const bufferView = subtree.bufferViews[bufferViewIndex];
|
|
53
75
|
const buffer = subtree.buffers[bufferView.buffer];
|
|
76
|
+
if (!context?.url || !context.fetch) {
|
|
77
|
+
throw new Error('Url is not provided');
|
|
78
|
+
}
|
|
79
|
+
if (!context.fetch) {
|
|
80
|
+
throw new Error('fetch is not provided');
|
|
81
|
+
}
|
|
54
82
|
// External bitstream loading
|
|
55
83
|
if (buffer.uri) {
|
|
56
|
-
const
|
|
84
|
+
const bufferUri = resolveBufferUri(buffer.uri, context?.url);
|
|
85
|
+
const response = await context.fetch(bufferUri);
|
|
57
86
|
const data = await response.arrayBuffer();
|
|
58
87
|
// Return view of bitstream.
|
|
59
88
|
return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.parseBatchedModel3DTile = void 0;
|
|
9
9
|
const math_1 = require("@loaders.gl/math"); // math.gl/geometry;
|
|
10
10
|
const tile_3d_feature_table_1 = __importDefault(require("../classes/tile-3d-feature-table"));
|
|
11
|
-
// import Tile3DBatchTable from '../classes/tile-3d-batch-table';
|
|
11
|
+
// import Tile3DBatchTable from '../classes/tile-3d-batch-table.js';
|
|
12
12
|
const parse_3d_tile_header_1 = require("./helpers/parse-3d-tile-header");
|
|
13
13
|
const parse_3d_tile_tables_1 = require("./helpers/parse-3d-tile-tables");
|
|
14
14
|
const parse_3d_tile_gltf_view_1 = require("./helpers/parse-3d-tile-gltf-view");
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { LoaderOptions } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { Tileset3D, Tile3D } from '@loaders.gl/tiles';
|
|
3
|
+
import { ImplicitTilingExtension, Subtree } from '../../types';
|
|
3
4
|
export declare function normalizeTileData(tile: any, options: any): any;
|
|
4
|
-
export declare function normalizeTileHeaders(tileset:
|
|
5
|
+
export declare function normalizeTileHeaders(tileset: Tileset3D, options: LoaderOptions): Promise<Tileset3D>;
|
|
5
6
|
/**
|
|
6
7
|
* Do normalisation of implicit tile headers
|
|
7
8
|
* TODO Check if Tile3D class can be a return type here.
|
|
8
9
|
* @param tileset
|
|
9
10
|
*/
|
|
10
|
-
export declare function normalizeImplicitTileHeaders(tileset: Tileset3D): Promise<any>;
|
|
11
|
+
export declare function normalizeImplicitTileHeaders(tile: Tile3D, tileset: Tileset3D, implicitTilingExtension: ImplicitTilingExtension, options: LoaderOptions): Promise<any>;
|
|
11
12
|
/**
|
|
12
13
|
* Do implicit data normalisation to create hierarchical tile structure
|
|
13
14
|
* @param tile
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-header.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-header.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/parse-3d-tile-header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAC,SAAS,EAA+C,MAAM,EAAC,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAC,uBAAuB,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAkD7D,wBAAgB,iBAAiB,CAAC,IAAI,KAAA,EAAE,OAAO,KAAA,OAgB9C;AAGD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,SAAS,CAAC,CAwCpB;AAED;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,EAClB,uBAAuB,EAAE,uBAAuB,EAChD,OAAO,EAAE,aAAa,gBAkCvB;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,KAAA,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,gBAsBvF"}
|
|
@@ -65,16 +65,29 @@ function normalizeTileData(tile, options) {
|
|
|
65
65
|
}
|
|
66
66
|
exports.normalizeTileData = normalizeTileData;
|
|
67
67
|
// normalize tile headers
|
|
68
|
-
function normalizeTileHeaders(tileset) {
|
|
68
|
+
async function normalizeTileHeaders(tileset, options) {
|
|
69
69
|
const basePath = tileset.basePath;
|
|
70
|
-
|
|
70
|
+
let root;
|
|
71
|
+
const rootImplicitTilingExtension = getImplicitTilingExtensionData(tileset?.root);
|
|
72
|
+
if (rootImplicitTilingExtension && tileset.root) {
|
|
73
|
+
root = await normalizeImplicitTileHeaders(tileset.root, tileset, rootImplicitTilingExtension, options);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
root = normalizeTileData(tileset.root, tileset);
|
|
77
|
+
}
|
|
71
78
|
const stack = [];
|
|
72
79
|
stack.push(root);
|
|
73
80
|
while (stack.length > 0) {
|
|
74
81
|
const tile = stack.pop() || {};
|
|
75
82
|
const children = tile.children || [];
|
|
76
|
-
for (
|
|
77
|
-
|
|
83
|
+
for (let childHeader of children) {
|
|
84
|
+
const childImplicitTilingExtension = getImplicitTilingExtensionData(childHeader);
|
|
85
|
+
if (childImplicitTilingExtension) {
|
|
86
|
+
childHeader = await normalizeImplicitTileHeaders(childHeader, tileset, childImplicitTilingExtension, options);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
normalizeTileData(childHeader, { basePath });
|
|
90
|
+
}
|
|
78
91
|
stack.push(childHeader);
|
|
79
92
|
}
|
|
80
93
|
}
|
|
@@ -86,22 +99,18 @@ exports.normalizeTileHeaders = normalizeTileHeaders;
|
|
|
86
99
|
* TODO Check if Tile3D class can be a return type here.
|
|
87
100
|
* @param tileset
|
|
88
101
|
*/
|
|
89
|
-
async function normalizeImplicitTileHeaders(tileset) {
|
|
90
|
-
if (!tileset.root) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
102
|
+
async function normalizeImplicitTileHeaders(tile, tileset, implicitTilingExtension, options) {
|
|
93
103
|
const basePath = tileset.basePath;
|
|
94
|
-
const implicitTilingExtension = tileset.root.extensions['3DTILES_implicit_tiling'];
|
|
95
104
|
const { subdivisionScheme, maximumLevel, subtreeLevels, subtrees: { uri: subtreesUriTemplate } } = implicitTilingExtension;
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
const contentUrlTemplate = resolveUri(
|
|
100
|
-
const refine = tileset
|
|
105
|
+
const replacedUrlTemplate = (0, parse_3d_implicit_tiles_1.replaceContentUrlTemplate)(subtreesUriTemplate, 0, 0, 0, 0);
|
|
106
|
+
const subtreeUrl = resolveUri(replacedUrlTemplate, basePath);
|
|
107
|
+
const subtree = await (0, core_1.load)(subtreeUrl, tile_3d_subtree_loader_1.Tile3DSubtreeLoader, options);
|
|
108
|
+
const contentUrlTemplate = resolveUri(tile.content.uri, basePath);
|
|
109
|
+
const refine = tileset?.root?.refine;
|
|
101
110
|
// @ts-ignore
|
|
102
|
-
const rootLodMetricValue =
|
|
103
|
-
const rootBoundingVolume =
|
|
104
|
-
const
|
|
111
|
+
const rootLodMetricValue = tile.geometricError;
|
|
112
|
+
const rootBoundingVolume = tile.boundingVolume;
|
|
113
|
+
const implicitOptions = {
|
|
105
114
|
contentUrlTemplate,
|
|
106
115
|
subtreesUriTemplate,
|
|
107
116
|
subdivisionScheme,
|
|
@@ -115,7 +124,7 @@ async function normalizeImplicitTileHeaders(tileset) {
|
|
|
115
124
|
getTileType,
|
|
116
125
|
getRefine
|
|
117
126
|
};
|
|
118
|
-
return await normalizeImplicitTileData(
|
|
127
|
+
return await normalizeImplicitTileData(tile, subtree, implicitOptions);
|
|
119
128
|
}
|
|
120
129
|
exports.normalizeImplicitTileHeaders = normalizeImplicitTileHeaders;
|
|
121
130
|
/**
|
|
@@ -144,3 +153,13 @@ async function normalizeImplicitTileData(tile, rootSubtree, options) {
|
|
|
144
153
|
return tile;
|
|
145
154
|
}
|
|
146
155
|
exports.normalizeImplicitTileData = normalizeImplicitTileData;
|
|
156
|
+
/**
|
|
157
|
+
* Implicit Tiling data can be in 3DTILES_implicit_tiling for 3DTiles v.Next or directly in implicitTiling object for 3DTiles v1.1.
|
|
158
|
+
* Spec 3DTiles v.Next - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling
|
|
159
|
+
* Spec 3DTiles v.1.1 - https://github.com/CesiumGS/3d-tiles/tree/draft-1.1/specification/ImplicitTiling
|
|
160
|
+
* @param tile
|
|
161
|
+
* @returns
|
|
162
|
+
*/
|
|
163
|
+
function getImplicitTilingExtensionData(tile) {
|
|
164
|
+
return tile?.extensions?.['3DTILES_implicit_tiling'] || tile?.implicitTiling;
|
|
165
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiles-3d-loader.d.ts","sourceRoot":"","sources":["../src/tiles-3d-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"tiles-3d-loader.d.ts","sourceRoot":"","sources":["../src/tiles-3d-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAO/D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,gBAiB3B,CAAC"}
|
package/dist/tiles-3d-loader.js
CHANGED
|
@@ -6,7 +6,6 @@ const tiles_1 = require("@loaders.gl/tiles");
|
|
|
6
6
|
const version_1 = require("./lib/utils/version");
|
|
7
7
|
const parse_3d_tile_1 = require("./lib/parsers/parse-3d-tile");
|
|
8
8
|
const parse_3d_tile_header_1 = require("./lib/parsers/parse-3d-tile-header");
|
|
9
|
-
const IMPLICIT_TILING_EXTENSION_NAME = '3DTILES_implicit_tiling';
|
|
10
9
|
/**
|
|
11
10
|
* Loader for 3D Tiles
|
|
12
11
|
*/
|
|
@@ -48,9 +47,7 @@ async function parseTileset(data, options, context) {
|
|
|
48
47
|
tilesetJson.url = context.url;
|
|
49
48
|
// base path that non-absolute paths in tileset are relative to.
|
|
50
49
|
tilesetJson.basePath = getBaseUri(tilesetJson);
|
|
51
|
-
tilesetJson.root =
|
|
52
|
-
? await (0, parse_3d_tile_header_1.normalizeImplicitTileHeaders)(tilesetJson)
|
|
53
|
-
: (0, parse_3d_tile_header_1.normalizeTileHeaders)(tilesetJson);
|
|
50
|
+
tilesetJson.root = await (0, parse_3d_tile_header_1.normalizeTileHeaders)(tilesetJson, options);
|
|
54
51
|
tilesetJson.type = tiles_1.TILESET_TYPE.TILES3D;
|
|
55
52
|
tilesetJson.lodMetricType = tiles_1.LOD_METRIC_TYPE.GEOMETRIC_ERROR;
|
|
56
53
|
tilesetJson.lodMetricValue = tilesetJson.root?.lodMetricValue || 0;
|
|
@@ -74,7 +71,3 @@ async function parse(data, options, context) {
|
|
|
74
71
|
}
|
|
75
72
|
return data;
|
|
76
73
|
}
|
|
77
|
-
function hasImplicitTilingExtension(tilesetJson) {
|
|
78
|
-
return (tilesetJson?.extensionsRequired?.includes(IMPLICIT_TILING_EXTENSION_NAME) &&
|
|
79
|
-
tilesetJson?.extensionsUsed?.includes(IMPLICIT_TILING_EXTENSION_NAME));
|
|
80
|
-
}
|
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
|
|
3
|
+
export type FeatureTableJson = {
|
|
4
4
|
[key: string]: any[];
|
|
5
5
|
};
|
|
6
|
-
export
|
|
7
|
-
batchTableJson?:
|
|
6
|
+
export type B3DMContent = {
|
|
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;
|
|
@@ -24,14 +24,14 @@ export declare type B3DMContent = {
|
|
|
24
24
|
type: string;
|
|
25
25
|
version: number;
|
|
26
26
|
};
|
|
27
|
-
export
|
|
27
|
+
export type GLTFHeader = {
|
|
28
28
|
batchLength?: number;
|
|
29
29
|
batchTableBinaryByteLength: number;
|
|
30
30
|
batchTableJsonByteLength: number;
|
|
31
31
|
featureTableBinaryByteLength: number;
|
|
32
32
|
featureTableJsonByteLength: number;
|
|
33
33
|
};
|
|
34
|
-
export
|
|
34
|
+
export type Node3D = {
|
|
35
35
|
boundingVolume: BoundingVolume;
|
|
36
36
|
children: any;
|
|
37
37
|
geometricError: number;
|
|
@@ -40,7 +40,7 @@ export declare type Node3D = {
|
|
|
40
40
|
boundingVolume: BoundingVolume;
|
|
41
41
|
};
|
|
42
42
|
};
|
|
43
|
-
export
|
|
43
|
+
export type BoundingVolume = {
|
|
44
44
|
box?: number[];
|
|
45
45
|
sphere?: number[];
|
|
46
46
|
region?: number[];
|
|
@@ -49,32 +49,45 @@ export declare type BoundingVolume = {
|
|
|
49
49
|
* 3DTILES_implicit_tiling types
|
|
50
50
|
* Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format
|
|
51
51
|
*/
|
|
52
|
-
export
|
|
52
|
+
export type Subtree = {
|
|
53
53
|
buffers: Buffer[];
|
|
54
54
|
bufferViews: BufferView[];
|
|
55
55
|
tileAvailability: Availability;
|
|
56
56
|
contentAvailability: Availability;
|
|
57
57
|
childSubtreeAvailability: Availability;
|
|
58
58
|
};
|
|
59
|
-
export
|
|
59
|
+
export type Availability = {
|
|
60
60
|
constant?: 0 | 1;
|
|
61
61
|
bufferView?: number;
|
|
62
62
|
explicitBitstream?: ExplicitBitstream;
|
|
63
63
|
};
|
|
64
|
-
export
|
|
64
|
+
export type ExplicitBitstream = Uint8Array;
|
|
65
65
|
/**
|
|
66
66
|
* Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subdivision-scheme
|
|
67
67
|
*/
|
|
68
|
-
export
|
|
69
|
-
|
|
68
|
+
export type SubdivisionScheme = 'QUADTREE' | 'OCTREE';
|
|
69
|
+
type Buffer = {
|
|
70
70
|
name: string;
|
|
71
71
|
uri?: string;
|
|
72
72
|
byteLength: number;
|
|
73
73
|
};
|
|
74
|
-
|
|
74
|
+
type BufferView = {
|
|
75
75
|
buffer: number;
|
|
76
76
|
byteOffset: number;
|
|
77
77
|
byteLength: number;
|
|
78
78
|
};
|
|
79
|
+
/**
|
|
80
|
+
* Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling
|
|
81
|
+
*/
|
|
82
|
+
export type ImplicitTilingExtension = {
|
|
83
|
+
subdivisionScheme: 'QUADTREE' | 'OCTREE';
|
|
84
|
+
maximumLevel?: number;
|
|
85
|
+
availableLevels: number;
|
|
86
|
+
subtreeLevels: number;
|
|
87
|
+
subtrees: SubtreeUri;
|
|
88
|
+
};
|
|
89
|
+
type SubtreeUri = {
|
|
90
|
+
uri: string;
|
|
91
|
+
};
|
|
79
92
|
export {};
|
|
80
93
|
//# sourceMappingURL=types.d.ts.map
|