@loaders.gl/tiles 4.4.5 → 5.0.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/LICENSE +14 -3
- package/README.md +110 -1
- package/dist/dist.dev.js +6588 -2057
- package/dist/dist.min.js +1 -1
- package/dist/image-set.d.ts +94 -0
- package/dist/image-set.d.ts.map +1 -0
- package/dist/image-set.js +243 -0
- package/dist/image-set.js.map +1 -0
- package/dist/index.cjs +6872 -2160
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +33 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -8
- package/dist/index.js.map +1 -1
- package/dist/point-cloud/point-cloud-tile.d.ts +47 -0
- package/dist/point-cloud/point-cloud-tile.d.ts.map +1 -0
- package/dist/point-cloud/point-cloud-tile.js +70 -0
- package/dist/point-cloud/point-cloud-tile.js.map +1 -0
- package/dist/point-cloud/point-cloud-tileset.d.ts +131 -0
- package/dist/point-cloud/point-cloud-tileset.d.ts.map +1 -0
- package/dist/point-cloud/point-cloud-tileset.js +510 -0
- package/dist/point-cloud/point-cloud-tileset.js.map +1 -0
- package/dist/point-cloud/types.d.ts +64 -0
- package/dist/point-cloud/types.d.ts.map +1 -0
- package/dist/point-cloud/types.js +5 -0
- package/dist/point-cloud/types.js.map +1 -0
- package/dist/raster-set.d.ts +113 -0
- package/dist/raster-set.d.ts.map +1 -0
- package/dist/raster-set.js +274 -0
- package/dist/raster-set.js.map +1 -0
- package/dist/tileset-2d/adapter.d.ts +38 -0
- package/dist/tileset-2d/adapter.d.ts.map +1 -0
- package/dist/tileset-2d/adapter.js +5 -0
- package/dist/tileset-2d/adapter.js.map +1 -0
- package/dist/tileset-2d/index.d.ts +7 -0
- package/dist/tileset-2d/index.d.ts.map +1 -0
- package/dist/tileset-2d/index.js +6 -0
- package/dist/tileset-2d/index.js.map +1 -0
- package/dist/tileset-2d/tile-2d-header.d.ts +68 -0
- package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -0
- package/dist/tileset-2d/tile-2d-header.js +181 -0
- package/dist/tileset-2d/tile-2d-header.js.map +1 -0
- package/dist/tileset-2d/tileset-2d.d.ts +201 -0
- package/dist/tileset-2d/tileset-2d.d.ts.map +1 -0
- package/dist/tileset-2d/tileset-2d.js +532 -0
- package/dist/tileset-2d/tileset-2d.js.map +1 -0
- package/dist/tileset-2d/types.d.ts +44 -0
- package/dist/tileset-2d/types.d.ts.map +1 -0
- package/dist/tileset-2d/types.js +5 -0
- package/dist/tileset-2d/types.js.map +1 -0
- package/dist/tileset-2d.d.ts +2 -0
- package/dist/tileset-2d.d.ts.map +1 -0
- package/dist/tileset-2d.js +5 -0
- package/dist/tileset-2d.js.map +1 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts +60 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.d.ts.map +1 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.js +125 -0
- package/dist/tileset-3d/common/indexed-archive-tileset-source.js.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tile-3d.d.ts +133 -29
- package/dist/tileset-3d/common/tile-3d.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tile-3d.js +282 -77
- package/dist/tileset-3d/common/tile-3d.js.map +1 -0
- package/dist/tileset-3d/common/tileset-3d.d.ts +317 -0
- package/dist/tileset-3d/common/tileset-3d.d.ts.map +1 -0
- package/dist/tileset-3d/common/tileset-3d.js +807 -0
- package/dist/tileset-3d/common/tileset-3d.js.map +1 -0
- package/dist/tileset-3d/common/tileset-cache.d.ts +29 -0
- package/dist/tileset-3d/common/tileset-cache.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tileset-cache.js +12 -4
- package/dist/tileset-3d/common/tileset-cache.js.map +1 -0
- package/dist/tileset-3d/common/tileset-source.d.ts +204 -0
- package/dist/tileset-3d/common/tileset-source.d.ts.map +1 -0
- package/dist/tileset-3d/common/tileset-source.js +17 -0
- package/dist/tileset-3d/common/tileset-source.js.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tileset-traverser.d.ts +15 -2
- package/dist/tileset-3d/common/tileset-traverser.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d/common}/tileset-traverser.js +30 -3
- package/dist/tileset-3d/common/tileset-traverser.js.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts +111 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.d.ts.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js +340 -0
- package/dist/tileset-3d/format-3d-tiles/implicit-tiling.js.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts +189 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.d.ts.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js +510 -0
- package/dist/tileset-3d/format-3d-tiles/tiles-3d-source.js.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts +43 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.d.ts.map +1 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js +119 -0
- package/dist/tileset-3d/format-3d-tiles/tileset-3d-traverser.js.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.js +3 -0
- package/dist/tileset-3d/format-i3s/i3s-pending-tiles-register.js.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-source.d.ts +99 -0
- package/dist/tileset-3d/format-i3s/i3s-source.d.ts.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-source.js +299 -0
- package/dist/tileset-3d/format-i3s/i3s-source.js.map +1 -0
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.js +5 -2
- package/dist/tileset-3d/format-i3s/i3s-tile-manager.js.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.d.ts +2 -2
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.js +17 -23
- package/dist/tileset-3d/format-i3s/i3s-tileset-traverser.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.d.ts +1 -1
- package/dist/tileset-3d/helpers/3d-tiles-options.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/3d-tiles-options.js +3 -0
- package/dist/tileset-3d/helpers/3d-tiles-options.js.map +1 -0
- package/dist/tileset-3d/helpers/bounding-volume.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/bounding-volume.js +1 -0
- package/dist/tileset-3d/helpers/bounding-volume.js.map +1 -0
- package/dist/tileset-3d/helpers/frame-state.d.ts +86 -0
- package/dist/tileset-3d/helpers/frame-state.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/frame-state.js +84 -9
- package/dist/tileset-3d/helpers/frame-state.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/i3s-lod.d.ts +1 -1
- package/dist/tileset-3d/helpers/i3s-lod.d.ts.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/i3s-lod.js +1 -1
- package/dist/tileset-3d/helpers/i3s-lod.js.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts +72 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.js +257 -0
- package/dist/tileset-3d/helpers/tiles-3d-lod.js.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts +134 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.js +179 -0
- package/dist/tileset-3d/helpers/tiles-3d-request-priority.js.map +1 -0
- package/dist/{tileset → tileset-3d}/helpers/transform-utils.d.ts +1 -1
- package/dist/tileset-3d/helpers/transform-utils.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/transform-utils.js.map +1 -0
- package/dist/tileset-3d/helpers/zoom.d.ts.map +1 -0
- package/dist/tileset-3d/helpers/zoom.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/doubly-linked-list.d.ts.map +1 -1
- package/dist/utils/doubly-linked-list.js +1 -0
- package/dist/utils/doubly-linked-list.js.map +1 -1
- package/dist/utils/managed-array.d.ts.map +1 -1
- package/dist/utils/managed-array.js +1 -0
- package/dist/utils/managed-array.js.map +1 -1
- package/package.json +7 -6
- package/src/image-set.ts +328 -0
- package/src/index.ts +99 -9
- package/src/point-cloud/point-cloud-tile.ts +80 -0
- package/src/point-cloud/point-cloud-tileset.ts +713 -0
- package/src/point-cloud/types.ts +82 -0
- package/src/raster-set.ts +412 -0
- package/src/tileset-2d/adapter.ts +47 -0
- package/src/tileset-2d/index.ts +33 -0
- package/src/tileset-2d/tile-2d-header.ts +224 -0
- package/src/tileset-2d/tileset-2d.ts +716 -0
- package/src/tileset-2d/types.ts +39 -0
- package/src/tileset-2d.ts +5 -0
- package/src/tileset-3d/common/indexed-archive-tileset-source.ts +205 -0
- package/src/{tileset → tileset-3d/common}/tile-3d.ts +348 -93
- package/src/tileset-3d/common/tileset-3d.ts +1087 -0
- package/src/{tileset → tileset-3d/common}/tileset-cache.ts +16 -8
- package/src/tileset-3d/common/tileset-source.ts +255 -0
- package/src/{tileset → tileset-3d/common}/tileset-traverser.ts +32 -4
- package/src/tileset-3d/format-3d-tiles/implicit-tiling.ts +534 -0
- package/src/tileset-3d/format-3d-tiles/tiles-3d-source.ts +632 -0
- package/src/tileset-3d/format-3d-tiles/tileset-3d-traverser.ts +140 -0
- package/src/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.ts +4 -0
- package/src/tileset-3d/format-i3s/i3s-source.ts +366 -0
- package/src/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.ts +6 -2
- package/src/{tileset → tileset-3d}/format-i3s/i3s-tileset-traverser.ts +19 -24
- package/src/{tileset → tileset-3d}/helpers/3d-tiles-options.ts +5 -1
- package/src/{tileset → tileset-3d}/helpers/bounding-volume.ts +2 -0
- package/src/tileset-3d/helpers/frame-state.ts +311 -0
- package/src/{tileset → tileset-3d}/helpers/i3s-lod.ts +2 -2
- package/src/tileset-3d/helpers/tiles-3d-lod.ts +370 -0
- package/src/tileset-3d/helpers/tiles-3d-request-priority.ts +301 -0
- package/src/{tileset → tileset-3d}/helpers/transform-utils.ts +1 -1
- package/src/types.ts +13 -0
- package/src/utils/doubly-linked-list.ts +2 -0
- package/src/utils/managed-array.ts +2 -0
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts +0 -7
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.d.ts.map +0 -1
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js +0 -53
- package/dist/tileset/format-3d-tiles/tileset-3d-traverser.js.map +0 -1
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.d.ts.map +0 -1
- package/dist/tileset/format-i3s/i3s-pending-tiles-register.js.map +0 -1
- package/dist/tileset/format-i3s/i3s-tile-manager.d.ts.map +0 -1
- package/dist/tileset/format-i3s/i3s-tile-manager.js.map +0 -1
- package/dist/tileset/format-i3s/i3s-tileset-traverser.d.ts.map +0 -1
- package/dist/tileset/format-i3s/i3s-tileset-traverser.js.map +0 -1
- package/dist/tileset/helpers/3d-tiles-options.d.ts.map +0 -1
- package/dist/tileset/helpers/3d-tiles-options.js.map +0 -1
- package/dist/tileset/helpers/bounding-volume.d.ts.map +0 -1
- package/dist/tileset/helpers/bounding-volume.js.map +0 -1
- package/dist/tileset/helpers/frame-state.d.ts +0 -28
- package/dist/tileset/helpers/frame-state.d.ts.map +0 -1
- package/dist/tileset/helpers/frame-state.js.map +0 -1
- package/dist/tileset/helpers/i3s-lod.d.ts.map +0 -1
- package/dist/tileset/helpers/i3s-lod.js.map +0 -1
- package/dist/tileset/helpers/tiles-3d-lod.d.ts +0 -8
- package/dist/tileset/helpers/tiles-3d-lod.d.ts.map +0 -1
- package/dist/tileset/helpers/tiles-3d-lod.js +0 -113
- package/dist/tileset/helpers/tiles-3d-lod.js.map +0 -1
- package/dist/tileset/helpers/transform-utils.d.ts.map +0 -1
- package/dist/tileset/helpers/transform-utils.js.map +0 -1
- package/dist/tileset/helpers/zoom.d.ts.map +0 -1
- package/dist/tileset/helpers/zoom.js.map +0 -1
- package/dist/tileset/tile-3d.d.ts.map +0 -1
- package/dist/tileset/tile-3d.js.map +0 -1
- package/dist/tileset/tileset-3d.d.ts +0 -284
- package/dist/tileset/tileset-3d.d.ts.map +0 -1
- package/dist/tileset/tileset-3d.js +0 -814
- package/dist/tileset/tileset-3d.js.map +0 -1
- package/dist/tileset/tileset-cache.d.ts +0 -19
- package/dist/tileset/tileset-cache.d.ts.map +0 -1
- package/dist/tileset/tileset-cache.js.map +0 -1
- package/dist/tileset/tileset-traverser.d.ts.map +0 -1
- package/dist/tileset/tileset-traverser.js.map +0 -1
- package/src/tileset/format-3d-tiles/tileset-3d-traverser.ts +0 -63
- package/src/tileset/helpers/frame-state.ts +0 -183
- package/src/tileset/helpers/tiles-3d-lod.ts +0 -149
- package/src/tileset/tileset-3d.ts +0 -1037
- /package/dist/{tileset → tileset-3d}/format-i3s/i3s-pending-tiles-register.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/format-i3s/i3s-tile-manager.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/bounding-volume.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/transform-utils.js +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/zoom.d.ts +0 -0
- /package/dist/{tileset → tileset-3d}/helpers/zoom.js +0 -0
- /package/src/{tileset → tileset-3d}/helpers/zoom.ts +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { CoreAPI, LoaderOptions, LoaderWithParser, ReadableFile } from '@loaders.gl/loader-utils';
|
|
2
|
+
import type { TilesetSourceResolver } from "./tileset-source.js";
|
|
3
|
+
/** Options for {@link IndexedArchiveTilesetSource}. */
|
|
4
|
+
export type IndexedArchiveTilesetSourceOptions<ArchiveT> = {
|
|
5
|
+
/** Archive URL or Blob. */
|
|
6
|
+
data: string | Blob;
|
|
7
|
+
/** Filename to expose for Blob inputs that do not provide a name. */
|
|
8
|
+
fallbackFilename: string;
|
|
9
|
+
/** Archive file extension used as the URL path marker. */
|
|
10
|
+
archiveExtension: string;
|
|
11
|
+
/** Path to the root metadata resource inside the archive. */
|
|
12
|
+
rootPath: string;
|
|
13
|
+
/** Optional mode passed when loading the root metadata resource. */
|
|
14
|
+
rootMode?: string;
|
|
15
|
+
/** Parses an opened readable file into an indexed archive object. */
|
|
16
|
+
parseArchive: (file: ReadableFile) => Promise<ArchiveT>;
|
|
17
|
+
/** Loads one resource from the parsed archive. */
|
|
18
|
+
getFile: (archive: ArchiveT, pathInArchive: string, mode?: string) => Promise<ArrayBuffer>;
|
|
19
|
+
/** Returns the core API used for local file loading and nested resource parsing. */
|
|
20
|
+
getCoreApi: () => CoreAPI | undefined;
|
|
21
|
+
/** Error message to throw when the core API is required but unavailable. */
|
|
22
|
+
missingCoreApiMessage: string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Tileset source resolver backed by an indexed archive such as 3TZ or SLPK.
|
|
26
|
+
*
|
|
27
|
+
* The source owns archive opening, archive caching, path resolution, and archive-backed `fetch`
|
|
28
|
+
* injection. Format-specific parsing and file lookup stay in the owning format module.
|
|
29
|
+
*/
|
|
30
|
+
export declare class IndexedArchiveTilesetSource<ArchiveT> implements TilesetSourceResolver {
|
|
31
|
+
/** URL exposed to the tileset source that owns this archive source. */
|
|
32
|
+
readonly sourceUrl: string;
|
|
33
|
+
private readonly options;
|
|
34
|
+
private archivePromise?;
|
|
35
|
+
/**
|
|
36
|
+
* Creates an indexed archive tileset source.
|
|
37
|
+
* @param options Archive source options
|
|
38
|
+
*/
|
|
39
|
+
constructor(options: IndexedArchiveTilesetSourceOptions<ArchiveT>);
|
|
40
|
+
/**
|
|
41
|
+
* Loads and parses the archive root metadata resource.
|
|
42
|
+
* @param url Root URL, ignored because the archive root path is configured explicitly
|
|
43
|
+
* @param loader Loader used to parse the root metadata
|
|
44
|
+
* @param loadOptions Loader options forwarded to parsing
|
|
45
|
+
*/
|
|
46
|
+
loadRoot<DataT>(url: string, loader: LoaderWithParser<DataT>, loadOptions: LoaderOptions): Promise<DataT>;
|
|
47
|
+
/**
|
|
48
|
+
* Loads and parses an archive resource relative to a requesting resource URL.
|
|
49
|
+
* @param url Resource URL
|
|
50
|
+
* @param loader Loader used to parse the resource
|
|
51
|
+
* @param loadOptions Loader options forwarded to parsing
|
|
52
|
+
*/
|
|
53
|
+
loadResource<DataT>(url: string, loader: LoaderWithParser<DataT>, loadOptions: LoaderOptions): Promise<DataT>;
|
|
54
|
+
private parseArchiveResource;
|
|
55
|
+
private createArchiveFetch;
|
|
56
|
+
private loadFile;
|
|
57
|
+
private openArchiveReadableFile;
|
|
58
|
+
private resolveArchivePath;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=indexed-archive-tileset-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed-archive-tileset-source.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/indexed-archive-tileset-source.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAC,qBAAqB,EAAC,4BAAyB;AAE5D,uDAAuD;AACvD,MAAM,MAAM,kCAAkC,CAAC,QAAQ,IAAI;IACzD,2BAA2B;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qEAAqE;IACrE,gBAAgB,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,YAAY,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,kDAAkD;IAClD,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3F,oFAAoF;IACpF,UAAU,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;IACtC,4EAA4E;IAC5E,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,2BAA2B,CAAC,QAAQ,CAAE,YAAW,qBAAqB;IACjF,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,cAAc,CAAC,CAAoB;IAE3C;;;OAGG;gBACS,OAAO,EAAE,kCAAkC,CAAC,QAAQ,CAAC;IAKjE;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC/B,WAAW,EAAE,aAAa,GACzB,OAAO,CAAC,KAAK,CAAC;IAUjB;;;;;OAKG;IACG,YAAY,CAAC,KAAK,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC/B,WAAW,EAAE,aAAa,GACzB,OAAO,CAAC,KAAK,CAAC;YAKH,oBAAoB;IA+BlC,OAAO,CAAC,kBAAkB;YAUZ,QAAQ;YAQR,uBAAuB;IAkBrC,OAAO,CAAC,kBAAkB;CA8B3B"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { BlobFile, HttpFile, path } from '@loaders.gl/loader-utils';
|
|
5
|
+
/**
|
|
6
|
+
* Tileset source resolver backed by an indexed archive such as 3TZ or SLPK.
|
|
7
|
+
*
|
|
8
|
+
* The source owns archive opening, archive caching, path resolution, and archive-backed `fetch`
|
|
9
|
+
* injection. Format-specific parsing and file lookup stay in the owning format module.
|
|
10
|
+
*/
|
|
11
|
+
export class IndexedArchiveTilesetSource {
|
|
12
|
+
/** URL exposed to the tileset source that owns this archive source. */
|
|
13
|
+
sourceUrl;
|
|
14
|
+
options;
|
|
15
|
+
archivePromise;
|
|
16
|
+
/**
|
|
17
|
+
* Creates an indexed archive tileset source.
|
|
18
|
+
* @param options Archive source options
|
|
19
|
+
*/
|
|
20
|
+
constructor(options) {
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.sourceUrl = getArchiveSourceUrl(options.data, options.fallbackFilename);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Loads and parses the archive root metadata resource.
|
|
26
|
+
* @param url Root URL, ignored because the archive root path is configured explicitly
|
|
27
|
+
* @param loader Loader used to parse the root metadata
|
|
28
|
+
* @param loadOptions Loader options forwarded to parsing
|
|
29
|
+
*/
|
|
30
|
+
async loadRoot(url, loader, loadOptions) {
|
|
31
|
+
return await this.parseArchiveResource(url, this.options.rootPath, loader, loadOptions, this.options.rootMode);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Loads and parses an archive resource relative to a requesting resource URL.
|
|
35
|
+
* @param url Resource URL
|
|
36
|
+
* @param loader Loader used to parse the resource
|
|
37
|
+
* @param loadOptions Loader options forwarded to parsing
|
|
38
|
+
*/
|
|
39
|
+
async loadResource(url, loader, loadOptions) {
|
|
40
|
+
const pathInArchive = this.resolveArchivePath(url, url);
|
|
41
|
+
return await this.parseArchiveResource(url, pathInArchive, loader, loadOptions);
|
|
42
|
+
}
|
|
43
|
+
async parseArchiveResource(resourceUrl, pathInArchive, loader, loadOptions, mode) {
|
|
44
|
+
const coreApi = this.options.getCoreApi();
|
|
45
|
+
if (!coreApi) {
|
|
46
|
+
throw new Error(this.options.missingCoreApiMessage);
|
|
47
|
+
}
|
|
48
|
+
const data = await this.loadFile(pathInArchive, mode);
|
|
49
|
+
const archiveFetch = this.createArchiveFetch(resourceUrl);
|
|
50
|
+
return (await coreApi.parse(data, loader, {
|
|
51
|
+
...loadOptions,
|
|
52
|
+
fetch: archiveFetch
|
|
53
|
+
}, {
|
|
54
|
+
url: resourceUrl,
|
|
55
|
+
fetch: archiveFetch,
|
|
56
|
+
_parse: coreApi.parse,
|
|
57
|
+
loaders: [loader],
|
|
58
|
+
coreApi
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
createArchiveFetch(contextUrl) {
|
|
62
|
+
return async (input) => {
|
|
63
|
+
const requestUrl = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
|
|
64
|
+
const pathInArchive = this.resolveArchivePath(requestUrl, contextUrl);
|
|
65
|
+
const data = await this.loadFile(pathInArchive);
|
|
66
|
+
return new Response(data, { status: 200 });
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async loadFile(pathInArchive, mode) {
|
|
70
|
+
this.archivePromise ||= this.openArchiveReadableFile().then(file => this.options.parseArchive(file));
|
|
71
|
+
const archive = await this.archivePromise;
|
|
72
|
+
return await this.options.getFile(archive, pathInArchive, mode);
|
|
73
|
+
}
|
|
74
|
+
async openArchiveReadableFile() {
|
|
75
|
+
const { data } = this.options;
|
|
76
|
+
if (typeof data !== 'string') {
|
|
77
|
+
return new BlobFile(data);
|
|
78
|
+
}
|
|
79
|
+
if (/^https?:\/\//i.test(data)) {
|
|
80
|
+
return new HttpFile(data);
|
|
81
|
+
}
|
|
82
|
+
const coreApi = this.options.getCoreApi();
|
|
83
|
+
if (!coreApi) {
|
|
84
|
+
throw new Error(this.options.missingCoreApiMessage);
|
|
85
|
+
}
|
|
86
|
+
const response = await coreApi.fetchFile(data);
|
|
87
|
+
return new BlobFile(await response.arrayBuffer());
|
|
88
|
+
}
|
|
89
|
+
resolveArchivePath(request, baseUrl) {
|
|
90
|
+
const requestWithoutQuery = stripQueryString(request);
|
|
91
|
+
const archiveRoot = stripQueryString(this.sourceUrl);
|
|
92
|
+
const baseWithoutQuery = stripQueryString(baseUrl);
|
|
93
|
+
const basePath = baseWithoutQuery === archiveRoot ? archiveRoot : path.dirname(baseWithoutQuery);
|
|
94
|
+
const markerExpression = new RegExp(`\\.${this.options.archiveExtension}/(.*)$`, 'i');
|
|
95
|
+
const markerMatch = requestWithoutQuery.match(markerExpression);
|
|
96
|
+
if (markerMatch?.[1]) {
|
|
97
|
+
return markerMatch[1];
|
|
98
|
+
}
|
|
99
|
+
const isAbsoluteRequest = /^[a-z][a-z0-9+.-]*:/i.test(requestWithoutQuery) || requestWithoutQuery.startsWith('/');
|
|
100
|
+
const absoluteRequest = requestWithoutQuery.startsWith(archiveRoot)
|
|
101
|
+
? requestWithoutQuery
|
|
102
|
+
: baseWithoutQuery === archiveRoot && !isAbsoluteRequest
|
|
103
|
+
? `${archiveRoot}/${requestWithoutQuery}`
|
|
104
|
+
: path.resolve(basePath, requestWithoutQuery);
|
|
105
|
+
if (absoluteRequest === archiveRoot) {
|
|
106
|
+
return '';
|
|
107
|
+
}
|
|
108
|
+
if (absoluteRequest.startsWith(`${archiveRoot}/`)) {
|
|
109
|
+
return absoluteRequest.slice(archiveRoot.length + 1);
|
|
110
|
+
}
|
|
111
|
+
return absoluteRequest.replace(/^\/+/, '');
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function getArchiveSourceUrl(data, fallbackFilename) {
|
|
115
|
+
if (typeof data === 'string') {
|
|
116
|
+
return data;
|
|
117
|
+
}
|
|
118
|
+
const fileName = 'name' in data && typeof data.name === 'string' && data.name ? data.name : fallbackFilename;
|
|
119
|
+
return `memory://${fileName}`;
|
|
120
|
+
}
|
|
121
|
+
function stripQueryString(url) {
|
|
122
|
+
const queryIndex = url.indexOf('?');
|
|
123
|
+
return queryIndex >= 0 ? url.slice(0, queryIndex) : url;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=indexed-archive-tileset-source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexed-archive-tileset-source.js","sourceRoot":"","sources":["../../../src/tileset-3d/common/indexed-archive-tileset-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Matrix4 } from '@math.gl/core';
|
|
2
2
|
import type { Tileset3D } from "./tileset-3d.js";
|
|
3
|
-
import type { DoublyLinkedListNode } from "
|
|
4
|
-
import { TILE_REFINEMENT } from "
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
3
|
+
import type { DoublyLinkedListNode } from "../../utils/doubly-linked-list-node.js";
|
|
4
|
+
import { TILE_REFINEMENT } from "../../constants.js";
|
|
5
|
+
import type { TileChildrenLoadResult, TileContentLoadResult } from "./tileset-source.js";
|
|
6
|
+
import { FrameState } from "../helpers/frame-state.js";
|
|
7
|
+
import { CartographicBounds } from "../helpers/bounding-volume.js";
|
|
7
8
|
import { TilesetTraverser } from "./tileset-traverser.js";
|
|
8
9
|
/**
|
|
9
10
|
* @param tileset - Tileset3D instance
|
|
@@ -18,6 +19,8 @@ export type Tile3DProps = {
|
|
|
18
19
|
parentHeader: Tile3D;
|
|
19
20
|
extendedId: string;
|
|
20
21
|
};
|
|
22
|
+
/** Lifecycle of a source-managed lazy child-header group. */
|
|
23
|
+
export type TileChildrenState = 'unloaded' | 'loading' | 'ready' | 'failed';
|
|
21
24
|
/**
|
|
22
25
|
* A Tile3DHeader represents a tile as Tileset3D. When a tile is first created, its content is not loaded;
|
|
23
26
|
* the content is loaded on-demand when needed based on the view.
|
|
@@ -33,9 +36,17 @@ export declare class Tile3D {
|
|
|
33
36
|
type: string;
|
|
34
37
|
contentUrl: string;
|
|
35
38
|
/** Different refinement algorithms used by I3S and 3D tiles */
|
|
36
|
-
lodMetricType:
|
|
37
|
-
/**
|
|
39
|
+
lodMetricType: string;
|
|
40
|
+
/**
|
|
41
|
+
* The world-space geometric error, in meters, introduced if this tile is rendered and its
|
|
42
|
+
* children are not. For I3S this stores the format's unscaled screen-threshold metric instead.
|
|
43
|
+
*/
|
|
38
44
|
lodMetricValue: number;
|
|
45
|
+
/**
|
|
46
|
+
* The source LOD metric before applying the tile's computed transform. Keeping the source value
|
|
47
|
+
* separate ensures transform updates never compound an already-scaled geometric error.
|
|
48
|
+
*/
|
|
49
|
+
private _unscaledLodMetricValue;
|
|
39
50
|
/** @todo math.gl is not exporting BoundingVolume base type? */
|
|
40
51
|
boundingVolume: any;
|
|
41
52
|
/**
|
|
@@ -47,6 +58,8 @@ export declare class Tile3D {
|
|
|
47
58
|
gpuMemoryUsageInBytes: number;
|
|
48
59
|
/** The tile's children - an array of Tile3D objects. */
|
|
49
60
|
children: Tile3D[];
|
|
61
|
+
/** Current lifecycle state for a lazy implicit subtree rooted at this tile. */
|
|
62
|
+
childrenState: TileChildrenState;
|
|
50
63
|
depth: number;
|
|
51
64
|
viewportIds: any[];
|
|
52
65
|
transform: Matrix4;
|
|
@@ -64,10 +77,20 @@ export declare class Tile3D {
|
|
|
64
77
|
private _frameNumber;
|
|
65
78
|
private _expireDate;
|
|
66
79
|
private _expiredContent;
|
|
80
|
+
/** In-flight source request shared by repeated traversal frames. */
|
|
81
|
+
private _childrenPromise;
|
|
67
82
|
private _boundingBox?;
|
|
68
83
|
/** updated every frame for tree traversal and rendering optimizations: */
|
|
69
84
|
_distanceToCamera: number;
|
|
70
85
|
_screenSpaceError: number;
|
|
86
|
+
/** SSE calculated at the reduced viewport height used to prioritize coarse coverage. */
|
|
87
|
+
_screenSpaceErrorProgressiveResolution: number;
|
|
88
|
+
/** Whether this tile should be promoted into the progressive-resolution request pass. */
|
|
89
|
+
_priorityProgressiveResolution: boolean;
|
|
90
|
+
/** Angular distance from the camera view axis used to prioritize center tiles. */
|
|
91
|
+
_foveatedFactor: number;
|
|
92
|
+
/** Whether this peripheral request is currently inside the camera-motion deferral window. */
|
|
93
|
+
priorityDeferred: boolean;
|
|
71
94
|
private _visibilityPlaneMask;
|
|
72
95
|
private _visible;
|
|
73
96
|
private _contentBoundingVolume;
|
|
@@ -112,6 +135,10 @@ export declare class Tile3D {
|
|
|
112
135
|
get hasRenderContent(): boolean;
|
|
113
136
|
/** Returns true if tile has children */
|
|
114
137
|
get hasChildren(): any;
|
|
138
|
+
/** Returns whether traversal may request an unresolved lazy child-header group. */
|
|
139
|
+
get hasUnloadedChildren(): boolean;
|
|
140
|
+
/** Returns whether a lazy child-header request is currently in flight. */
|
|
141
|
+
get childrenLoading(): boolean;
|
|
115
142
|
/**
|
|
116
143
|
* Determines if the tile's content is ready. This is automatically `true` for
|
|
117
144
|
* tiles with empty content.
|
|
@@ -148,8 +175,18 @@ export declare class Tile3D {
|
|
|
148
175
|
* @returns [min, max] each in [longitude, latitude, altitude]
|
|
149
176
|
*/
|
|
150
177
|
get boundingBox(): CartographicBounds;
|
|
151
|
-
/**
|
|
152
|
-
|
|
178
|
+
/**
|
|
179
|
+
* Gets the tile's screen-space error for normal refinement or a reduced-height priority pass.
|
|
180
|
+
*
|
|
181
|
+
* I3S already supplies a screen-oriented LOD metric and intentionally ignores the optional 3D
|
|
182
|
+
* Tiles progressive-resolution height fraction.
|
|
183
|
+
*
|
|
184
|
+
* @param frameState - Current camera and viewport measurements.
|
|
185
|
+
* @param useParentLodMetric - Whether to substitute the parent LOD metric.
|
|
186
|
+
* @param viewportHeightFraction - Fraction of viewport height represented by the priority pass.
|
|
187
|
+
* @returns Screen-space LOD error for the current tileset format.
|
|
188
|
+
*/
|
|
189
|
+
getScreenSpaceError(frameState: any, useParentLodMetric: any, viewportHeightFraction?: number): number;
|
|
153
190
|
/**
|
|
154
191
|
* Make tile unselected than means it won't be shown
|
|
155
192
|
* but it can be still loaded in memory
|
|
@@ -159,12 +196,62 @@ export declare class Tile3D {
|
|
|
159
196
|
* Memory usage of tile on GPU
|
|
160
197
|
*/
|
|
161
198
|
_getGpuMemoryUsageInBytes(): number;
|
|
199
|
+
/**
|
|
200
|
+
* Returns scheduler priority for render-content requests.
|
|
201
|
+
*
|
|
202
|
+
* @returns Numeric priority, or a negative value when the queued request should be cancelled.
|
|
203
|
+
*/
|
|
162
204
|
_getPriority(): number;
|
|
205
|
+
/**
|
|
206
|
+
* Returns scheduler priority for lazy child-header requests.
|
|
207
|
+
*
|
|
208
|
+
* Contentless implicit placeholders intentionally retain `UNLOADED` content state, so metadata
|
|
209
|
+
* scheduling skips only that render-content cancellation check and preserves every visibility,
|
|
210
|
+
* recency, progressive, foveated, and motion-deferral rule.
|
|
211
|
+
*
|
|
212
|
+
* @returns Numeric priority, or a negative value when the queued request should be cancelled.
|
|
213
|
+
*/
|
|
214
|
+
private _getChildrenPriority;
|
|
215
|
+
/**
|
|
216
|
+
* Calculates the common scheduler priority for content or hierarchy metadata.
|
|
217
|
+
*
|
|
218
|
+
* @param allowUnloadedContent - Whether an empty placeholder may request child metadata.
|
|
219
|
+
* @returns Numeric priority, or a negative value when the queued request should be cancelled.
|
|
220
|
+
*/
|
|
221
|
+
private _calculateRequestPriority;
|
|
163
222
|
/**
|
|
164
223
|
* Requests the tile's content.
|
|
165
224
|
* The request may not be made if the Request Scheduler can't prioritize it.
|
|
166
225
|
*/
|
|
167
|
-
loadContent(): Promise<
|
|
226
|
+
loadContent(): Promise<TileContentLoadResult>;
|
|
227
|
+
/**
|
|
228
|
+
* Requests and installs this tile's lazy child-header group through its source.
|
|
229
|
+
*
|
|
230
|
+
* The same request scheduler and SSE/foveated priority value used for render content are reused
|
|
231
|
+
* for subtree metadata. Repeated traversal frames share one promise, and scheduler cancellation
|
|
232
|
+
* restores the unloaded state so a later frame can retry.
|
|
233
|
+
*
|
|
234
|
+
* @param frameState - View state that made the subtree eligible for refinement.
|
|
235
|
+
* @returns Source load result, or an unloaded result if scheduling was cancelled.
|
|
236
|
+
*/
|
|
237
|
+
loadChildren(frameState: FrameState): Promise<TileChildrenLoadResult>;
|
|
238
|
+
/**
|
|
239
|
+
* Runs one lazy child-header load after obtaining a scheduler token.
|
|
240
|
+
*
|
|
241
|
+
* @param frameState - View state forwarded to the source implementation.
|
|
242
|
+
* @returns Source load result.
|
|
243
|
+
*/
|
|
244
|
+
private _loadChildrenWithScheduler;
|
|
245
|
+
/**
|
|
246
|
+
* Replaces a contentless implicit placeholder with its materialized subtree-root header.
|
|
247
|
+
*
|
|
248
|
+
* Transform state is intentionally preserved: the placeholder already owns the composed
|
|
249
|
+
* transform, and reapplying the root transform here would double-transform bounds and geometric
|
|
250
|
+
* error. Content and raw geometric error are reinitialized from the newly available header.
|
|
251
|
+
*
|
|
252
|
+
* @param materializedHeader - Available root header produced from one subtree resource.
|
|
253
|
+
*/
|
|
254
|
+
applyImplicitSubtreeHeader(materializedHeader: Record<string, any>): void;
|
|
168
255
|
unloadContent(): boolean;
|
|
169
256
|
/**
|
|
170
257
|
* Update the tile's visibility
|
|
@@ -173,6 +260,16 @@ export declare class Tile3D {
|
|
|
173
260
|
* @return {void}
|
|
174
261
|
*/
|
|
175
262
|
updateVisibility(frameState: any, viewportIds: any): void;
|
|
263
|
+
/**
|
|
264
|
+
* Updates progressive-resolution and foveated request metrics for a 3D Tiles traversal frame.
|
|
265
|
+
*
|
|
266
|
+
* I3S retains its format-specific screen-threshold ordering and is explicitly isolated from
|
|
267
|
+
* geometric-error scheduling. Orthographic viewports still receive progressive coverage, but
|
|
268
|
+
* angular foveation is disabled because an orthographic frustum has no perspective field of view.
|
|
269
|
+
*
|
|
270
|
+
* @param frameState - Current camera and viewport measurements.
|
|
271
|
+
*/
|
|
272
|
+
_updateRequestPriorityMetrics(frameState: FrameState): void;
|
|
176
273
|
visibility(frameState: any, parentVisibilityPlaneMask: any): any;
|
|
177
274
|
contentVisibility(): boolean;
|
|
178
275
|
/**
|
|
@@ -197,34 +294,41 @@ export declare class Tile3D {
|
|
|
197
294
|
insideViewerRequestVolume(frameState: FrameState): boolean;
|
|
198
295
|
updateExpiration(): void;
|
|
199
296
|
get extras(): any;
|
|
200
|
-
|
|
297
|
+
/** Initializes the tile's LOD metric from its header or its nearest available ancestor. */
|
|
298
|
+
_initializeLodMetric(header: {
|
|
299
|
+
[key: string]: any;
|
|
300
|
+
}): void;
|
|
201
301
|
_initializeTransforms(tileHeader: any): void;
|
|
302
|
+
/**
|
|
303
|
+
* Updates the world-space LOD metric from the source metric and the complete tile transform.
|
|
304
|
+
*
|
|
305
|
+
* 3D Tiles geometric error is a distance in the tile's local meters. Screen-space error (SSE)
|
|
306
|
+
* compares that distance with a world-space camera distance, so both quantities must use the
|
|
307
|
+
* same scale. For non-uniform transforms the largest axis scale is deliberately used: this is
|
|
308
|
+
* conservative and prevents refinement from stopping while any transformed dimension can still
|
|
309
|
+
* exceed the requested visual error. Rotation and translation do not affect the scale.
|
|
310
|
+
*
|
|
311
|
+
* I3S `maxScreenThreshold` is already a screen-space metric and must not be transform-scaled.
|
|
312
|
+
*/
|
|
313
|
+
_updateLodMetricScale(): void;
|
|
202
314
|
_initializeBoundingVolumes(tileHeader: any): void;
|
|
203
315
|
_initializeContent(tileHeader: any): void;
|
|
204
316
|
_initializeRenderingState(header: any): void;
|
|
205
317
|
_getRefine(refine: any): any;
|
|
318
|
+
/**
|
|
319
|
+
* Returns whether loaded content is an external tileset.
|
|
320
|
+
*
|
|
321
|
+
* Parsed shape is authoritative because valid external resources may be extensionless, signed,
|
|
322
|
+
* or use a misleading filename. This method is called only after source loading has populated
|
|
323
|
+
* `content`.
|
|
324
|
+
*/
|
|
206
325
|
_isTileset(): boolean;
|
|
207
326
|
_onContentLoaded(): void;
|
|
208
327
|
_updateBoundingVolume(header: any): void;
|
|
328
|
+
/**
|
|
329
|
+
* Updates the tile's computed transform, world-space geometric error, and bounding volumes.
|
|
330
|
+
* @param parentTransform - Current computed transform of the parent tile or tileset.
|
|
331
|
+
*/
|
|
209
332
|
_updateTransform(parentTransform?: Matrix4): void;
|
|
210
|
-
_getLoaderSpecificOptions(loaderId: any): {
|
|
211
|
-
assetGltfUpAxis: "X" | "Y" | "Z";
|
|
212
|
-
} | {
|
|
213
|
-
_tileOptions: {
|
|
214
|
-
attributeUrls: any;
|
|
215
|
-
textureUrl: any;
|
|
216
|
-
textureFormat: any;
|
|
217
|
-
textureLoaderOptions: any;
|
|
218
|
-
materialDefinition: any;
|
|
219
|
-
isDracoGeometry: any;
|
|
220
|
-
mbs: any;
|
|
221
|
-
};
|
|
222
|
-
_tilesetOptions: {
|
|
223
|
-
store: any;
|
|
224
|
-
attributeStorageInfo: any;
|
|
225
|
-
fields: any;
|
|
226
|
-
};
|
|
227
|
-
isTileHeader: boolean;
|
|
228
|
-
};
|
|
229
333
|
}
|
|
230
334
|
//# sourceMappingURL=tile-3d.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tile-3d.d.ts","sourceRoot":"","sources":["../../../src/tileset-3d/common/tile-3d.ts"],"names":[],"mappings":"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"}
|