@loaders.gl/3d-tiles 4.0.0-alpha.10 → 4.0.0-alpha.12
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 +1 -11
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js +1 -11
- package/dist/es5/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js +1 -11
- package/dist/esm/lib/parsers/helpers/parse-3d-tile-subtree.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/dist/lib/parsers/helpers/parse-3d-tile-subtree.js +1 -24
- package/package.json +7 -7
- package/src/lib/parsers/helpers/parse-3d-tile-subtree.ts +1 -27
package/dist/dist.min.js
CHANGED
|
@@ -12687,16 +12687,6 @@
|
|
|
12687
12687
|
}
|
|
12688
12688
|
return subtree;
|
|
12689
12689
|
}
|
|
12690
|
-
function resolveBufferUri(bitstreamRelativeUri, basePath) {
|
|
12691
|
-
const hasProtocol = basePath.startsWith("http");
|
|
12692
|
-
if (hasProtocol) {
|
|
12693
|
-
const resolvedUri2 = new URL(bitstreamRelativeUri, basePath);
|
|
12694
|
-
return decodeURI(resolvedUri2.toString());
|
|
12695
|
-
}
|
|
12696
|
-
const basePathWithProtocol = `http://${basePath}`;
|
|
12697
|
-
const resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);
|
|
12698
|
-
return `/${resolvedUri.host}${resolvedUri.pathname}`;
|
|
12699
|
-
}
|
|
12700
12690
|
async function getExplicitBitstream(subtree, name10, internalBinaryBuffer, context) {
|
|
12701
12691
|
const bufferViewIndex = subtree[name10].bufferView;
|
|
12702
12692
|
const bufferView = subtree.bufferViews[bufferViewIndex];
|
|
@@ -12708,7 +12698,7 @@
|
|
|
12708
12698
|
throw new Error("fetch is not provided");
|
|
12709
12699
|
}
|
|
12710
12700
|
if (buffer.uri) {
|
|
12711
|
-
const bufferUri =
|
|
12701
|
+
const bufferUri = `${context?.baseUrl || ""}/${buffer.uri}`;
|
|
12712
12702
|
const response = await context.fetch(bufferUri);
|
|
12713
12703
|
const data = await response.arrayBuffer();
|
|
12714
12704
|
return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
|
|
@@ -78,16 +78,6 @@ function _parse3DTilesSubtree() {
|
|
|
78
78
|
}));
|
|
79
79
|
return _parse3DTilesSubtree.apply(this, arguments);
|
|
80
80
|
}
|
|
81
|
-
function resolveBufferUri(bitstreamRelativeUri, basePath) {
|
|
82
|
-
var hasProtocol = basePath.startsWith('http');
|
|
83
|
-
if (hasProtocol) {
|
|
84
|
-
var _resolvedUri = new URL(bitstreamRelativeUri, basePath);
|
|
85
|
-
return decodeURI(_resolvedUri.toString());
|
|
86
|
-
}
|
|
87
|
-
var basePathWithProtocol = "http://".concat(basePath);
|
|
88
|
-
var resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);
|
|
89
|
-
return "/".concat(resolvedUri.host).concat(resolvedUri.pathname);
|
|
90
|
-
}
|
|
91
81
|
function getExplicitBitstream(_x4, _x5, _x6, _x7) {
|
|
92
82
|
return _getExplicitBitstream.apply(this, arguments);
|
|
93
83
|
}
|
|
@@ -116,7 +106,7 @@ function _getExplicitBitstream() {
|
|
|
116
106
|
_context2.next = 16;
|
|
117
107
|
break;
|
|
118
108
|
}
|
|
119
|
-
bufferUri =
|
|
109
|
+
bufferUri = "".concat((context === null || context === void 0 ? void 0 : context.baseUrl) || '', "/").concat(buffer.uri);
|
|
120
110
|
_context2.next = 11;
|
|
121
111
|
return context.fetch(bufferUri);
|
|
122
112
|
case 11:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-subtree.js","names":["SUBTREE_FILE_MAGIC","SUBTREE_FILE_VERSION","parse3DTilesSubtree","_x","_x2","_x3","_parse3DTilesSubtree","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","context","magic","version","jsonByteLength","stringAttribute","textDecoder","string","subtree","binaryByteLength","internalBinaryBuffer","wrap","_callee$","_context","prev","next","Uint32Array","slice","Error","parseUint64Value","Uint8Array","TextDecoder","decode","JSON","parse","ArrayBuffer","tileAvailability","getExplicitBitstream","explicitBitstream","sent","contentAvailability","childSubtreeAvailability","abrupt","stop","resolveBufferUri","bitstreamRelativeUri","basePath","hasProtocol","startsWith","resolvedUri","URL","decodeURI","toString","basePathWithProtocol","concat","host","pathname","_x4","_x5","_x6","_x7","_getExplicitBitstream","_callee2","name","bufferViewIndex","bufferView","buffer","bufferUri","response","_callee2$","_context2","bufferViews","buffers","url","fetch","uri","arrayBuffer","byteOffset","byteLength","dataView","DataView","left","getUint32","right","Math","pow"],"sources":["../../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"sourcesContent":["import type {Subtree, ExplicitBitstream} from '../../../types';\nimport type {LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\n\nconst SUBTREE_FILE_MAGIC = 0x74627573;\nconst SUBTREE_FILE_VERSION = 1;\n\n/**\n * Parse subtree file\n * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format\n * @param data\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport default async function parse3DTilesSubtree(\n data: ArrayBuffer,\n options: LoaderOptions | undefined,\n context: LoaderContext | undefined\n): Promise<Subtree> {\n const magic = new Uint32Array(data.slice(0, 4));\n\n if (magic[0] !== SUBTREE_FILE_MAGIC) {\n throw new Error('Wrong subtree file magic number');\n }\n\n const version = new Uint32Array(data.slice(4, 8));\n\n if (version[0] !== SUBTREE_FILE_VERSION) {\n throw new Error('Wrong subtree file verson, must be 1');\n }\n\n const jsonByteLength = parseUint64Value(data.slice(8, 16));\n const stringAttribute = new Uint8Array(data, 24, jsonByteLength);\n\n const textDecoder = new TextDecoder('utf8');\n const string = textDecoder.decode(stringAttribute);\n const subtree = JSON.parse(string);\n\n const binaryByteLength = parseUint64Value(data.slice(16, 24));\n let internalBinaryBuffer = new ArrayBuffer(0);\n\n if (binaryByteLength) {\n internalBinaryBuffer = data.slice(24 + jsonByteLength);\n }\n\n if ('bufferView' in subtree.tileAvailability) {\n subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'tileAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n if ('bufferView' in subtree.contentAvailability) {\n subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'contentAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n if ('bufferView' in subtree.childSubtreeAvailability) {\n subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'childSubtreeAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n return subtree;\n}\n\n/**\n * Get url for bitstream downloading\n * @param bitstreamRelativeUri\n * @param basePath\n * @returns\n */\nfunction resolveBufferUri(bitstreamRelativeUri: string, basePath: string): string {\n const hasProtocol = basePath.startsWith('http');\n\n if (hasProtocol) {\n const resolvedUri = new URL(bitstreamRelativeUri, basePath);\n return decodeURI(resolvedUri.toString());\n }\n\n /**\n * Adding http protocol only for new URL constructor usage.\n * It allows to resolve relative paths like ../../example with basePath.\n */\n const basePathWithProtocol = `http://${basePath}`;\n const resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);\n /**\n * Drop protocol and use just relative path.\n */\n return `/${resolvedUri.host}${resolvedUri.pathname}`;\n}\n\n/**\n * Get explicit bitstream for subtree availability data.\n * @param subtree\n * @param name\n * @param internalBinaryBuffer\n */\nasync function getExplicitBitstream(\n subtree: Subtree,\n name: string,\n internalBinaryBuffer: ArrayBuffer,\n context: LoaderContext | undefined\n): Promise<ExplicitBitstream> {\n const bufferViewIndex = subtree[name].bufferView;\n const bufferView = subtree.bufferViews[bufferViewIndex];\n const buffer = subtree.buffers[bufferView.buffer];\n\n if (!context?.url || !context.fetch) {\n throw new Error('Url is not provided');\n }\n\n if (!context.fetch) {\n throw new Error('fetch is not provided');\n }\n\n // External bitstream loading\n if (buffer.uri) {\n const bufferUri = resolveBufferUri(buffer.uri, context?.url);\n const response = await context.fetch(bufferUri);\n const data = await response.arrayBuffer();\n // Return view of bitstream.\n return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);\n }\n // Return view of bitstream.\n return new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);\n}\n\n/**\n * Parse buffer to return uint64 value\n * @param buffer\n * @returns 64-bit value until precision is lost after Number.MAX_SAFE_INTEGER\n */\nfunction parseUint64Value(buffer: ArrayBuffer): number {\n const dataView = new DataView(buffer);\n const left = dataView.getUint32(0, true);\n const right = dataView.getUint32(4, true);\n // combine the two 32-bit values\n return left + 2 ** 32 * right;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-subtree.js","names":["SUBTREE_FILE_MAGIC","SUBTREE_FILE_VERSION","parse3DTilesSubtree","_x","_x2","_x3","_parse3DTilesSubtree","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","options","context","magic","version","jsonByteLength","stringAttribute","textDecoder","string","subtree","binaryByteLength","internalBinaryBuffer","wrap","_callee$","_context","prev","next","Uint32Array","slice","Error","parseUint64Value","Uint8Array","TextDecoder","decode","JSON","parse","ArrayBuffer","tileAvailability","getExplicitBitstream","explicitBitstream","sent","contentAvailability","childSubtreeAvailability","abrupt","stop","_x4","_x5","_x6","_x7","_getExplicitBitstream","_callee2","name","bufferViewIndex","bufferView","buffer","bufferUri","response","_callee2$","_context2","bufferViews","buffers","url","fetch","uri","concat","baseUrl","arrayBuffer","byteOffset","byteLength","dataView","DataView","left","getUint32","right","Math","pow"],"sources":["../../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"sourcesContent":["import type {Subtree, ExplicitBitstream} from '../../../types';\nimport type {LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\n\nconst SUBTREE_FILE_MAGIC = 0x74627573;\nconst SUBTREE_FILE_VERSION = 1;\n\n/**\n * Parse subtree file\n * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format\n * @param data\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport default async function parse3DTilesSubtree(\n data: ArrayBuffer,\n options: LoaderOptions | undefined,\n context: LoaderContext | undefined\n): Promise<Subtree> {\n const magic = new Uint32Array(data.slice(0, 4));\n\n if (magic[0] !== SUBTREE_FILE_MAGIC) {\n throw new Error('Wrong subtree file magic number');\n }\n\n const version = new Uint32Array(data.slice(4, 8));\n\n if (version[0] !== SUBTREE_FILE_VERSION) {\n throw new Error('Wrong subtree file verson, must be 1');\n }\n\n const jsonByteLength = parseUint64Value(data.slice(8, 16));\n const stringAttribute = new Uint8Array(data, 24, jsonByteLength);\n\n const textDecoder = new TextDecoder('utf8');\n const string = textDecoder.decode(stringAttribute);\n const subtree = JSON.parse(string);\n\n const binaryByteLength = parseUint64Value(data.slice(16, 24));\n let internalBinaryBuffer = new ArrayBuffer(0);\n\n if (binaryByteLength) {\n internalBinaryBuffer = data.slice(24 + jsonByteLength);\n }\n\n if ('bufferView' in subtree.tileAvailability) {\n subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'tileAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n if ('bufferView' in subtree.contentAvailability) {\n subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'contentAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n if ('bufferView' in subtree.childSubtreeAvailability) {\n subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'childSubtreeAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n return subtree;\n}\n\n/**\n * Get explicit bitstream for subtree availability data.\n * @param subtree\n * @param name\n * @param internalBinaryBuffer\n */\nasync function getExplicitBitstream(\n subtree: Subtree,\n name: string,\n internalBinaryBuffer: ArrayBuffer,\n context: LoaderContext | undefined\n): Promise<ExplicitBitstream> {\n const bufferViewIndex = subtree[name].bufferView;\n const bufferView = subtree.bufferViews[bufferViewIndex];\n const buffer = subtree.buffers[bufferView.buffer];\n\n if (!context?.url || !context.fetch) {\n throw new Error('Url is not provided');\n }\n\n if (!context.fetch) {\n throw new Error('fetch is not provided');\n }\n\n // External bitstream loading\n if (buffer.uri) {\n const bufferUri = `${context?.baseUrl || ''}/${buffer.uri}`;\n const response = await context.fetch(bufferUri);\n const data = await response.arrayBuffer();\n // Return view of bitstream.\n return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);\n }\n // Return view of bitstream.\n return new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);\n}\n\n/**\n * Parse buffer to return uint64 value\n * @param buffer\n * @returns 64-bit value until precision is lost after Number.MAX_SAFE_INTEGER\n */\nfunction parseUint64Value(buffer: ArrayBuffer): number {\n const dataView = new DataView(buffer);\n const left = dataView.getUint32(0, true);\n const right = dataView.getUint32(4, true);\n // combine the two 32-bit values\n return left + 2 ** 32 * right;\n}\n"],"mappings":"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"}
|
|
@@ -4,6 +4,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.VERSION = void 0;
|
|
7
|
-
var VERSION = typeof "4.0.0-alpha.
|
|
7
|
+
var VERSION = typeof "4.0.0-alpha.12" !== 'undefined' ? "4.0.0-alpha.12" : 'latest';
|
|
8
8
|
exports.VERSION = VERSION;
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -30,16 +30,6 @@ export default async function parse3DTilesSubtree(data, options, context) {
|
|
|
30
30
|
}
|
|
31
31
|
return subtree;
|
|
32
32
|
}
|
|
33
|
-
function resolveBufferUri(bitstreamRelativeUri, basePath) {
|
|
34
|
-
const hasProtocol = basePath.startsWith('http');
|
|
35
|
-
if (hasProtocol) {
|
|
36
|
-
const resolvedUri = new URL(bitstreamRelativeUri, basePath);
|
|
37
|
-
return decodeURI(resolvedUri.toString());
|
|
38
|
-
}
|
|
39
|
-
const basePathWithProtocol = "http://".concat(basePath);
|
|
40
|
-
const resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);
|
|
41
|
-
return "/".concat(resolvedUri.host).concat(resolvedUri.pathname);
|
|
42
|
-
}
|
|
43
33
|
async function getExplicitBitstream(subtree, name, internalBinaryBuffer, context) {
|
|
44
34
|
const bufferViewIndex = subtree[name].bufferView;
|
|
45
35
|
const bufferView = subtree.bufferViews[bufferViewIndex];
|
|
@@ -51,7 +41,7 @@ async function getExplicitBitstream(subtree, name, internalBinaryBuffer, context
|
|
|
51
41
|
throw new Error('fetch is not provided');
|
|
52
42
|
}
|
|
53
43
|
if (buffer.uri) {
|
|
54
|
-
const bufferUri =
|
|
44
|
+
const bufferUri = "".concat((context === null || context === void 0 ? void 0 : context.baseUrl) || '', "/").concat(buffer.uri);
|
|
55
45
|
const response = await context.fetch(bufferUri);
|
|
56
46
|
const data = await response.arrayBuffer();
|
|
57
47
|
return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-3d-tile-subtree.js","names":["SUBTREE_FILE_MAGIC","SUBTREE_FILE_VERSION","parse3DTilesSubtree","data","options","context","magic","Uint32Array","slice","Error","version","jsonByteLength","parseUint64Value","stringAttribute","Uint8Array","textDecoder","TextDecoder","string","decode","subtree","JSON","parse","binaryByteLength","internalBinaryBuffer","ArrayBuffer","tileAvailability","explicitBitstream","getExplicitBitstream","contentAvailability","childSubtreeAvailability","
|
|
1
|
+
{"version":3,"file":"parse-3d-tile-subtree.js","names":["SUBTREE_FILE_MAGIC","SUBTREE_FILE_VERSION","parse3DTilesSubtree","data","options","context","magic","Uint32Array","slice","Error","version","jsonByteLength","parseUint64Value","stringAttribute","Uint8Array","textDecoder","TextDecoder","string","decode","subtree","JSON","parse","binaryByteLength","internalBinaryBuffer","ArrayBuffer","tileAvailability","explicitBitstream","getExplicitBitstream","contentAvailability","childSubtreeAvailability","name","bufferViewIndex","bufferView","bufferViews","buffer","buffers","url","fetch","uri","bufferUri","concat","baseUrl","response","arrayBuffer","byteOffset","byteLength","dataView","DataView","left","getUint32","right"],"sources":["../../../../../src/lib/parsers/helpers/parse-3d-tile-subtree.ts"],"sourcesContent":["import type {Subtree, ExplicitBitstream} from '../../../types';\nimport type {LoaderContext, LoaderOptions} from '@loaders.gl/loader-utils';\n\nconst SUBTREE_FILE_MAGIC = 0x74627573;\nconst SUBTREE_FILE_VERSION = 1;\n\n/**\n * Parse subtree file\n * Spec - https://github.com/CesiumGS/3d-tiles/tree/main/extensions/3DTILES_implicit_tiling#subtree-file-format\n * @param data\n * @returns\n */\n// eslint-disable-next-line max-statements\nexport default async function parse3DTilesSubtree(\n data: ArrayBuffer,\n options: LoaderOptions | undefined,\n context: LoaderContext | undefined\n): Promise<Subtree> {\n const magic = new Uint32Array(data.slice(0, 4));\n\n if (magic[0] !== SUBTREE_FILE_MAGIC) {\n throw new Error('Wrong subtree file magic number');\n }\n\n const version = new Uint32Array(data.slice(4, 8));\n\n if (version[0] !== SUBTREE_FILE_VERSION) {\n throw new Error('Wrong subtree file verson, must be 1');\n }\n\n const jsonByteLength = parseUint64Value(data.slice(8, 16));\n const stringAttribute = new Uint8Array(data, 24, jsonByteLength);\n\n const textDecoder = new TextDecoder('utf8');\n const string = textDecoder.decode(stringAttribute);\n const subtree = JSON.parse(string);\n\n const binaryByteLength = parseUint64Value(data.slice(16, 24));\n let internalBinaryBuffer = new ArrayBuffer(0);\n\n if (binaryByteLength) {\n internalBinaryBuffer = data.slice(24 + jsonByteLength);\n }\n\n if ('bufferView' in subtree.tileAvailability) {\n subtree.tileAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'tileAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n if ('bufferView' in subtree.contentAvailability) {\n subtree.contentAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'contentAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n if ('bufferView' in subtree.childSubtreeAvailability) {\n subtree.childSubtreeAvailability.explicitBitstream = await getExplicitBitstream(\n subtree,\n 'childSubtreeAvailability',\n internalBinaryBuffer,\n context\n );\n }\n\n return subtree;\n}\n\n/**\n * Get explicit bitstream for subtree availability data.\n * @param subtree\n * @param name\n * @param internalBinaryBuffer\n */\nasync function getExplicitBitstream(\n subtree: Subtree,\n name: string,\n internalBinaryBuffer: ArrayBuffer,\n context: LoaderContext | undefined\n): Promise<ExplicitBitstream> {\n const bufferViewIndex = subtree[name].bufferView;\n const bufferView = subtree.bufferViews[bufferViewIndex];\n const buffer = subtree.buffers[bufferView.buffer];\n\n if (!context?.url || !context.fetch) {\n throw new Error('Url is not provided');\n }\n\n if (!context.fetch) {\n throw new Error('fetch is not provided');\n }\n\n // External bitstream loading\n if (buffer.uri) {\n const bufferUri = `${context?.baseUrl || ''}/${buffer.uri}`;\n const response = await context.fetch(bufferUri);\n const data = await response.arrayBuffer();\n // Return view of bitstream.\n return new Uint8Array(data, bufferView.byteOffset, bufferView.byteLength);\n }\n // Return view of bitstream.\n return new Uint8Array(internalBinaryBuffer, bufferView.byteOffset, bufferView.byteLength);\n}\n\n/**\n * Parse buffer to return uint64 value\n * @param buffer\n * @returns 64-bit value until precision is lost after Number.MAX_SAFE_INTEGER\n */\nfunction parseUint64Value(buffer: ArrayBuffer): number {\n const dataView = new DataView(buffer);\n const left = dataView.getUint32(0, true);\n const right = dataView.getUint32(4, true);\n // combine the two 32-bit values\n return left + 2 ** 32 * right;\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = typeof "4.0.0-alpha.
|
|
1
|
+
export const VERSION = typeof "4.0.0-alpha.12" !== 'undefined' ? "4.0.0-alpha.12" : 'latest';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
|
@@ -40,29 +40,6 @@ async function parse3DTilesSubtree(data, options, context) {
|
|
|
40
40
|
return subtree;
|
|
41
41
|
}
|
|
42
42
|
exports.default = parse3DTilesSubtree;
|
|
43
|
-
/**
|
|
44
|
-
* Get url for bitstream downloading
|
|
45
|
-
* @param bitstreamRelativeUri
|
|
46
|
-
* @param basePath
|
|
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
|
-
}
|
|
66
43
|
/**
|
|
67
44
|
* Get explicit bitstream for subtree availability data.
|
|
68
45
|
* @param subtree
|
|
@@ -81,7 +58,7 @@ async function getExplicitBitstream(subtree, name, internalBinaryBuffer, context
|
|
|
81
58
|
}
|
|
82
59
|
// External bitstream loading
|
|
83
60
|
if (buffer.uri) {
|
|
84
|
-
const bufferUri =
|
|
61
|
+
const bufferUri = `${context?.baseUrl || ''}/${buffer.uri}`;
|
|
85
62
|
const response = await context.fetch(bufferUri);
|
|
86
63
|
const data = await response.arrayBuffer();
|
|
87
64
|
// Return view of bitstream.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/3d-tiles",
|
|
3
|
-
"version": "4.0.0-alpha.
|
|
3
|
+
"version": "4.0.0-alpha.12",
|
|
4
4
|
"description": "3D Tiles, an open standard for streaming massive heterogeneous 3D geospatial datasets.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"build-bundle": "esbuild src/bundle.ts --bundle --outfile=dist/dist.min.js"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@loaders.gl/draco": "4.0.0-alpha.
|
|
38
|
-
"@loaders.gl/gltf": "4.0.0-alpha.
|
|
39
|
-
"@loaders.gl/loader-utils": "4.0.0-alpha.
|
|
40
|
-
"@loaders.gl/math": "4.0.0-alpha.
|
|
41
|
-
"@loaders.gl/tiles": "4.0.0-alpha.
|
|
37
|
+
"@loaders.gl/draco": "4.0.0-alpha.12",
|
|
38
|
+
"@loaders.gl/gltf": "4.0.0-alpha.12",
|
|
39
|
+
"@loaders.gl/loader-utils": "4.0.0-alpha.12",
|
|
40
|
+
"@loaders.gl/math": "4.0.0-alpha.12",
|
|
41
|
+
"@loaders.gl/tiles": "4.0.0-alpha.12",
|
|
42
42
|
"@math.gl/core": "^3.5.1",
|
|
43
43
|
"@math.gl/geospatial": "^3.5.1",
|
|
44
44
|
"long": "^5.2.1"
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"@loaders.gl/core": "^4.0.0-alpha.8"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "42dfc47a41e3e6089eec22a1e1d4f3387e0cb6e9"
|
|
50
50
|
}
|
|
@@ -72,32 +72,6 @@ export default async function parse3DTilesSubtree(
|
|
|
72
72
|
return subtree;
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
/**
|
|
76
|
-
* Get url for bitstream downloading
|
|
77
|
-
* @param bitstreamRelativeUri
|
|
78
|
-
* @param basePath
|
|
79
|
-
* @returns
|
|
80
|
-
*/
|
|
81
|
-
function resolveBufferUri(bitstreamRelativeUri: string, basePath: string): string {
|
|
82
|
-
const hasProtocol = basePath.startsWith('http');
|
|
83
|
-
|
|
84
|
-
if (hasProtocol) {
|
|
85
|
-
const resolvedUri = new URL(bitstreamRelativeUri, basePath);
|
|
86
|
-
return decodeURI(resolvedUri.toString());
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Adding http protocol only for new URL constructor usage.
|
|
91
|
-
* It allows to resolve relative paths like ../../example with basePath.
|
|
92
|
-
*/
|
|
93
|
-
const basePathWithProtocol = `http://${basePath}`;
|
|
94
|
-
const resolvedUri = new URL(bitstreamRelativeUri, basePathWithProtocol);
|
|
95
|
-
/**
|
|
96
|
-
* Drop protocol and use just relative path.
|
|
97
|
-
*/
|
|
98
|
-
return `/${resolvedUri.host}${resolvedUri.pathname}`;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
75
|
/**
|
|
102
76
|
* Get explicit bitstream for subtree availability data.
|
|
103
77
|
* @param subtree
|
|
@@ -124,7 +98,7 @@ async function getExplicitBitstream(
|
|
|
124
98
|
|
|
125
99
|
// External bitstream loading
|
|
126
100
|
if (buffer.uri) {
|
|
127
|
-
const bufferUri =
|
|
101
|
+
const bufferUri = `${context?.baseUrl || ''}/${buffer.uri}`;
|
|
128
102
|
const response = await context.fetch(bufferUri);
|
|
129
103
|
const data = await response.arrayBuffer();
|
|
130
104
|
// Return view of bitstream.
|