@itwin/frontend-tiles 3.7.3 → 3.7.4

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.
Files changed (72) hide show
  1. package/.rush/temp/operation/build_ci/state.json +1 -1
  2. package/.rush/temp/package-deps_build_ci.json +23 -0
  3. package/CHANGELOG.json +12 -0
  4. package/CHANGELOG.md +8 -1
  5. package/lib/cjs/BatchedSpatialTileTreeRefs.d.ts +4 -4
  6. package/lib/cjs/BatchedSpatialTileTreeRefs.js +133 -133
  7. package/lib/cjs/BatchedSpatialTileTreeRefs.js.map +1 -1
  8. package/lib/cjs/BatchedTile.d.ts +24 -23
  9. package/lib/cjs/BatchedTile.d.ts.map +1 -1
  10. package/lib/cjs/BatchedTile.js +168 -251
  11. package/lib/cjs/BatchedTile.js.map +1 -1
  12. package/lib/cjs/BatchedTileContentReader.d.ts +22 -22
  13. package/lib/cjs/BatchedTileContentReader.js +76 -76
  14. package/lib/cjs/BatchedTileContentReader.js.map +1 -1
  15. package/lib/cjs/BatchedTileTree.d.ts +22 -22
  16. package/lib/cjs/BatchedTileTree.js +52 -52
  17. package/lib/cjs/BatchedTileTree.js.map +1 -1
  18. package/lib/cjs/BatchedTileTreeReference.d.ts +21 -21
  19. package/lib/cjs/BatchedTileTreeReference.js +73 -73
  20. package/lib/cjs/BatchedTileTreeReference.js.map +1 -1
  21. package/lib/cjs/BatchedTileTreeSupplier.d.ts +5 -5
  22. package/lib/cjs/BatchedTileTreeSupplier.js +38 -38
  23. package/lib/cjs/BatchedTileTreeSupplier.js.map +1 -1
  24. package/lib/cjs/BatchedTilesetReader.d.ts +13 -13
  25. package/lib/cjs/BatchedTilesetReader.js +88 -88
  26. package/lib/cjs/BatchedTilesetReader.js.map +1 -1
  27. package/lib/cjs/FrontendTiles.d.ts +32 -32
  28. package/lib/cjs/FrontendTiles.js +26 -26
  29. package/lib/cjs/FrontendTiles.js.map +1 -1
  30. package/lib/cjs/LoggerCategory.d.ts +2 -2
  31. package/lib/cjs/LoggerCategory.js +9 -9
  32. package/lib/cjs/LoggerCategory.js.map +1 -1
  33. package/lib/cjs/frontend-tiles.d.ts +1 -1
  34. package/lib/cjs/frontend-tiles.js +17 -17
  35. package/lib/cjs/frontend-tiles.js.map +1 -1
  36. package/lib/cjs/tsconfig.tsbuildinfo +1 -1
  37. package/lib/esm/BatchedSpatialTileTreeRefs.d.ts +4 -4
  38. package/lib/esm/BatchedSpatialTileTreeRefs.js +129 -129
  39. package/lib/esm/BatchedSpatialTileTreeRefs.js.map +1 -1
  40. package/lib/esm/BatchedTile.d.ts +24 -23
  41. package/lib/esm/BatchedTile.d.ts.map +1 -1
  42. package/lib/esm/BatchedTile.js +164 -247
  43. package/lib/esm/BatchedTile.js.map +1 -1
  44. package/lib/esm/BatchedTileContentReader.d.ts +22 -22
  45. package/lib/esm/BatchedTileContentReader.js +72 -72
  46. package/lib/esm/BatchedTileContentReader.js.map +1 -1
  47. package/lib/esm/BatchedTileTree.d.ts +22 -22
  48. package/lib/esm/BatchedTileTree.js +48 -48
  49. package/lib/esm/BatchedTileTree.js.map +1 -1
  50. package/lib/esm/BatchedTileTreeReference.d.ts +21 -21
  51. package/lib/esm/BatchedTileTreeReference.js +69 -69
  52. package/lib/esm/BatchedTileTreeReference.js.map +1 -1
  53. package/lib/esm/BatchedTileTreeSupplier.d.ts +5 -5
  54. package/lib/esm/BatchedTileTreeSupplier.js +34 -34
  55. package/lib/esm/BatchedTileTreeSupplier.js.map +1 -1
  56. package/lib/esm/BatchedTilesetReader.d.ts +13 -13
  57. package/lib/esm/BatchedTilesetReader.js +84 -84
  58. package/lib/esm/BatchedTilesetReader.js.map +1 -1
  59. package/lib/esm/FrontendTiles.d.ts +32 -32
  60. package/lib/esm/FrontendTiles.js +21 -21
  61. package/lib/esm/FrontendTiles.js.map +1 -1
  62. package/lib/esm/LoggerCategory.d.ts +2 -2
  63. package/lib/esm/LoggerCategory.js +6 -6
  64. package/lib/esm/LoggerCategory.js.map +1 -1
  65. package/lib/esm/frontend-tiles.d.ts +1 -1
  66. package/lib/esm/frontend-tiles.js +5 -5
  67. package/lib/esm/frontend-tiles.js.map +1 -1
  68. package/lib/esm/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +11 -11
  70. package/src/BatchedTile.ts +28 -114
  71. package/src/BatchedTileTree.ts +3 -3
  72. package/.rush/temp/eded9a4b6d9857cb78afd6aaf9c145be5cb5d964.log +0 -10
@@ -1,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 16137.19088899996
2
+ "nonCachedDurationMs": 18590.74739998579
3
3
  }
@@ -0,0 +1,23 @@
1
+ {
2
+ "files": {
3
+ "extensions/frontend-tiles/.rush/temp/shrinkwrap-deps.json": "26b8d7130ce28f6f411cc64fa48f47de86afe4d9",
4
+ "extensions/frontend-tiles/CHANGELOG.json": "c65632ab2e0afa94d3fc683fb45577ddf9b31a44",
5
+ "extensions/frontend-tiles/CHANGELOG.md": "658630a3f66554cb5bbbc9aec28afb645b29ca3d",
6
+ "extensions/frontend-tiles/LICENSE.md": "77dfb5043040cc16a3611930daba56d86ef54334",
7
+ "extensions/frontend-tiles/README.md": "4ea38e83e862cdfa6fab08adc92eb62bcb2fe238",
8
+ "extensions/frontend-tiles/config/rush-project.json": "10683a57d3bd2b8ae364fbe8f844c01619f1a821",
9
+ "extensions/frontend-tiles/package.json": "7e3a766f580ca980dc4eb1d7ed2559f451e99793",
10
+ "extensions/frontend-tiles/src/BatchedSpatialTileTreeRefs.ts": "1bd92ba0d816eada104e1eb9ec1c198eb69d6842",
11
+ "extensions/frontend-tiles/src/BatchedTile.ts": "a150895c5f0284d6c329a85d2090f79c15c39bdf",
12
+ "extensions/frontend-tiles/src/BatchedTileContentReader.ts": "7a1392a3e55882eedd68f0fb098db9009f190a3e",
13
+ "extensions/frontend-tiles/src/BatchedTileTree.ts": "098688a03263a8fa9bcb5f39980b330d38c491dd",
14
+ "extensions/frontend-tiles/src/BatchedTileTreeReference.ts": "38e908b8193aef773fb6782142482378041ab923",
15
+ "extensions/frontend-tiles/src/BatchedTileTreeSupplier.ts": "916587d978864b4f9595b560ee1bac3033a123f5",
16
+ "extensions/frontend-tiles/src/BatchedTilesetReader.ts": "0cc90a58fc8f4cafab8c2bbdac6dc1186337b4f0",
17
+ "extensions/frontend-tiles/src/FrontendTiles.ts": "576ca9d6b519e7c75187507f9243fa2b802787d8",
18
+ "extensions/frontend-tiles/src/LoggerCategory.ts": "458e67157ea150f6bff37674320dfc8cf5886049",
19
+ "extensions/frontend-tiles/src/frontend-tiles.ts": "2778da0ad9afc43273e7105641ef1213edc47a83",
20
+ "extensions/frontend-tiles/tsconfig.json": "67be9deac4eea3b76c3e1a66b0e9004ed0f6255e"
21
+ },
22
+ "arguments": "npm run -s build && npm run -s build:esm "
23
+ }
package/CHANGELOG.json CHANGED
@@ -1,6 +1,18 @@
1
1
  {
2
2
  "name": "@itwin/frontend-tiles",
3
3
  "entries": [
4
+ {
5
+ "version": "3.7.4",
6
+ "tag": "@itwin/frontend-tiles_v3.7.4",
7
+ "date": "Tue, 25 Apr 2023 17:50:35 GMT",
8
+ "comments": {
9
+ "none": [
10
+ {
11
+ "comment": "Improve tile content disposal under memory pressure."
12
+ }
13
+ ]
14
+ }
15
+ },
4
16
  {
5
17
  "version": "3.7.3",
6
18
  "tag": "@itwin/frontend-tiles_v3.7.3",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log - @itwin/frontend-tiles
2
2
 
3
- This log was last generated on Thu, 20 Apr 2023 13:19:29 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 25 Apr 2023 17:50:35 GMT and should not be manually modified.
4
+
5
+ ## 3.7.4
6
+ Tue, 25 Apr 2023 17:50:35 GMT
7
+
8
+ ### Updates
9
+
10
+ - Improve tile content disposal under memory pressure.
4
11
 
5
12
  ## 3.7.3
6
13
  Thu, 20 Apr 2023 13:19:29 GMT
@@ -1,5 +1,5 @@
1
- import { SpatialTileTreeReferences, SpatialViewState } from "@itwin/core-frontend";
2
- import { ComputeSpatialTilesetBaseUrl } from "./FrontendTiles";
3
- /** @internal */
4
- export declare function createBatchedSpatialTileTreeReferences(view: SpatialViewState, computeBaseUrl: ComputeSpatialTilesetBaseUrl): SpatialTileTreeReferences;
1
+ import { SpatialTileTreeReferences, SpatialViewState } from "@itwin/core-frontend";
2
+ import { ComputeSpatialTilesetBaseUrl } from "./FrontendTiles";
3
+ /** @internal */
4
+ export declare function createBatchedSpatialTileTreeReferences(view: SpatialViewState, computeBaseUrl: ComputeSpatialTilesetBaseUrl): SpatialTileTreeReferences;
5
5
  //# sourceMappingURL=BatchedSpatialTileTreeRefs.d.ts.map
@@ -1,134 +1,134 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createBatchedSpatialTileTreeReferences = void 0;
8
- const core_frontend_1 = require("@itwin/core-frontend");
9
- const BatchedTileTreeReference_1 = require("./BatchedTileTreeReference");
10
- const FrontendTiles_1 = require("./FrontendTiles");
11
- // Obtains tiles pre-published by mesh export service.
12
- class BatchedSpatialTileTreeReferences {
13
- constructor(treeRef) {
14
- this._treeRef = treeRef;
15
- }
16
- *[Symbol.iterator]() {
17
- yield this._treeRef;
18
- }
19
- update() {
20
- this._treeRef.updateViewedModels();
21
- }
22
- attachToViewport(args) {
23
- this._treeRef.attachToViewport(args);
24
- }
25
- detachFromViewport() {
26
- this._treeRef.detachFromViewport();
27
- }
28
- setDeactivated() {
29
- // This exists chiefly for debugging. Unimplemented here.
30
- }
31
- }
32
- // A placeholder used by [[ProxySpatialTileTreeReferences]] until asynchronous loading completes.
33
- // It provides a TileTreeOwner that never loads a tile tree.
34
- // This ensures that [ViewState.areAllTileTreesLoaded]($frontend) will not return `true` while we are loading.
35
- class ProxyTileTreeReference extends core_frontend_1.TileTreeReference {
36
- constructor(iModel) {
37
- super();
38
- this._treeOwner = {
39
- iModel,
40
- tileTree: undefined,
41
- loadStatus: core_frontend_1.TileTreeLoadStatus.NotLoaded,
42
- load: () => undefined,
43
- dispose: () => { },
44
- loadTree: async () => Promise.resolve(undefined),
45
- };
46
- }
47
- get treeOwner() {
48
- return this._treeOwner;
49
- }
50
- // eslint-disable-next-line @typescript-eslint/naming-convention
51
- get _isLoadingComplete() {
52
- return false;
53
- }
54
- }
55
- // Serves as a placeholder while we asynchronously obtain the base URL for a pre-published tileset (or asynchronously determine
56
- // that no such tileset exists).
57
- class ProxySpatialTileTreeReferences {
58
- constructor(view, getBaseUrl) {
59
- this._proxyRef = new ProxyTileTreeReference(view.iModel);
60
- getBaseUrl.then((url) => {
61
- if (url) {
62
- const ref = BatchedTileTreeReference_1.BatchedTileTreeReference.create(view, url);
63
- this.setTreeRefs(new BatchedSpatialTileTreeReferences(ref));
64
- }
65
- else {
66
- this.setTreeRefs((0, FrontendTiles_1.createFallbackSpatialTileTreeReferences)(view));
67
- }
68
- }).catch(() => {
69
- this.setTreeRefs((0, FrontendTiles_1.createFallbackSpatialTileTreeReferences)(view));
70
- });
71
- }
72
- setTreeRefs(refs) {
73
- this._impl = refs;
74
- if (this._attachArgs) {
75
- this._impl.attachToViewport(this._attachArgs);
76
- this._attachArgs.invalidateSymbologyOverrides();
77
- this._attachArgs = undefined;
78
- }
79
- }
80
- update() {
81
- var _a;
82
- (_a = this._impl) === null || _a === void 0 ? void 0 : _a.update();
83
- }
84
- attachToViewport(args) {
85
- if (this._impl)
86
- this._impl.attachToViewport(args);
87
- else
88
- this._attachArgs = args;
89
- }
90
- detachFromViewport() {
91
- if (this._impl)
92
- this._impl.detachFromViewport();
93
- else
94
- this._attachArgs = undefined;
95
- }
96
- setDeactivated() { }
97
- *[Symbol.iterator]() {
98
- if (this._impl) {
99
- for (const ref of this._impl)
100
- yield ref;
101
- }
102
- else {
103
- yield this._proxyRef;
104
- }
105
- }
106
- }
107
- const iModelToBaseUrl = new Map();
108
- /** @internal */
109
- function createBatchedSpatialTileTreeReferences(view, computeBaseUrl) {
110
- const iModel = view.iModel;
111
- let entry = iModelToBaseUrl.get(iModel);
112
- if (undefined === entry) {
113
- const promise = computeBaseUrl(iModel);
114
- iModelToBaseUrl.set(iModel, entry = promise);
115
- iModel.onClose.addOnce(() => iModelToBaseUrl.delete(iModel));
116
- promise.then((url) => {
117
- if (iModelToBaseUrl.has(iModel))
118
- iModelToBaseUrl.set(iModel, url !== null && url !== void 0 ? url : null);
119
- }).catch(() => {
120
- if (iModelToBaseUrl.has(iModel))
121
- iModelToBaseUrl.set(iModel, null);
122
- });
123
- }
124
- if (null === entry) {
125
- // No tileset exists for this iModel - use default tile generation instead.
126
- return (0, FrontendTiles_1.createFallbackSpatialTileTreeReferences)(view);
127
- }
128
- if (entry instanceof Promise)
129
- return new ProxySpatialTileTreeReferences(view, entry);
130
- const ref = BatchedTileTreeReference_1.BatchedTileTreeReference.create(view, entry);
131
- return new BatchedSpatialTileTreeReferences(ref);
132
- }
133
- exports.createBatchedSpatialTileTreeReferences = createBatchedSpatialTileTreeReferences;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
+ * See LICENSE.md in the project root for license terms and full copyright notice.
5
+ *--------------------------------------------------------------------------------------------*/
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createBatchedSpatialTileTreeReferences = void 0;
8
+ const core_frontend_1 = require("@itwin/core-frontend");
9
+ const BatchedTileTreeReference_1 = require("./BatchedTileTreeReference");
10
+ const FrontendTiles_1 = require("./FrontendTiles");
11
+ // Obtains tiles pre-published by mesh export service.
12
+ class BatchedSpatialTileTreeReferences {
13
+ constructor(treeRef) {
14
+ this._treeRef = treeRef;
15
+ }
16
+ *[Symbol.iterator]() {
17
+ yield this._treeRef;
18
+ }
19
+ update() {
20
+ this._treeRef.updateViewedModels();
21
+ }
22
+ attachToViewport(args) {
23
+ this._treeRef.attachToViewport(args);
24
+ }
25
+ detachFromViewport() {
26
+ this._treeRef.detachFromViewport();
27
+ }
28
+ setDeactivated() {
29
+ // This exists chiefly for debugging. Unimplemented here.
30
+ }
31
+ }
32
+ // A placeholder used by [[ProxySpatialTileTreeReferences]] until asynchronous loading completes.
33
+ // It provides a TileTreeOwner that never loads a tile tree.
34
+ // This ensures that [ViewState.areAllTileTreesLoaded]($frontend) will not return `true` while we are loading.
35
+ class ProxyTileTreeReference extends core_frontend_1.TileTreeReference {
36
+ constructor(iModel) {
37
+ super();
38
+ this._treeOwner = {
39
+ iModel,
40
+ tileTree: undefined,
41
+ loadStatus: core_frontend_1.TileTreeLoadStatus.NotLoaded,
42
+ load: () => undefined,
43
+ dispose: () => { },
44
+ loadTree: async () => Promise.resolve(undefined),
45
+ };
46
+ }
47
+ get treeOwner() {
48
+ return this._treeOwner;
49
+ }
50
+ // eslint-disable-next-line @typescript-eslint/naming-convention
51
+ get _isLoadingComplete() {
52
+ return false;
53
+ }
54
+ }
55
+ // Serves as a placeholder while we asynchronously obtain the base URL for a pre-published tileset (or asynchronously determine
56
+ // that no such tileset exists).
57
+ class ProxySpatialTileTreeReferences {
58
+ constructor(view, getBaseUrl) {
59
+ this._proxyRef = new ProxyTileTreeReference(view.iModel);
60
+ getBaseUrl.then((url) => {
61
+ if (url) {
62
+ const ref = BatchedTileTreeReference_1.BatchedTileTreeReference.create(view, url);
63
+ this.setTreeRefs(new BatchedSpatialTileTreeReferences(ref));
64
+ }
65
+ else {
66
+ this.setTreeRefs((0, FrontendTiles_1.createFallbackSpatialTileTreeReferences)(view));
67
+ }
68
+ }).catch(() => {
69
+ this.setTreeRefs((0, FrontendTiles_1.createFallbackSpatialTileTreeReferences)(view));
70
+ });
71
+ }
72
+ setTreeRefs(refs) {
73
+ this._impl = refs;
74
+ if (this._attachArgs) {
75
+ this._impl.attachToViewport(this._attachArgs);
76
+ this._attachArgs.invalidateSymbologyOverrides();
77
+ this._attachArgs = undefined;
78
+ }
79
+ }
80
+ update() {
81
+ var _a;
82
+ (_a = this._impl) === null || _a === void 0 ? void 0 : _a.update();
83
+ }
84
+ attachToViewport(args) {
85
+ if (this._impl)
86
+ this._impl.attachToViewport(args);
87
+ else
88
+ this._attachArgs = args;
89
+ }
90
+ detachFromViewport() {
91
+ if (this._impl)
92
+ this._impl.detachFromViewport();
93
+ else
94
+ this._attachArgs = undefined;
95
+ }
96
+ setDeactivated() { }
97
+ *[Symbol.iterator]() {
98
+ if (this._impl) {
99
+ for (const ref of this._impl)
100
+ yield ref;
101
+ }
102
+ else {
103
+ yield this._proxyRef;
104
+ }
105
+ }
106
+ }
107
+ const iModelToBaseUrl = new Map();
108
+ /** @internal */
109
+ function createBatchedSpatialTileTreeReferences(view, computeBaseUrl) {
110
+ const iModel = view.iModel;
111
+ let entry = iModelToBaseUrl.get(iModel);
112
+ if (undefined === entry) {
113
+ const promise = computeBaseUrl(iModel);
114
+ iModelToBaseUrl.set(iModel, entry = promise);
115
+ iModel.onClose.addOnce(() => iModelToBaseUrl.delete(iModel));
116
+ promise.then((url) => {
117
+ if (iModelToBaseUrl.has(iModel))
118
+ iModelToBaseUrl.set(iModel, url !== null && url !== void 0 ? url : null);
119
+ }).catch(() => {
120
+ if (iModelToBaseUrl.has(iModel))
121
+ iModelToBaseUrl.set(iModel, null);
122
+ });
123
+ }
124
+ if (null === entry) {
125
+ // No tileset exists for this iModel - use default tile generation instead.
126
+ return (0, FrontendTiles_1.createFallbackSpatialTileTreeReferences)(view);
127
+ }
128
+ if (entry instanceof Promise)
129
+ return new ProxySpatialTileTreeReferences(view, entry);
130
+ const ref = BatchedTileTreeReference_1.BatchedTileTreeReference.create(view, entry);
131
+ return new BatchedSpatialTileTreeReferences(ref);
132
+ }
133
+ exports.createBatchedSpatialTileTreeReferences = createBatchedSpatialTileTreeReferences;
134
134
  //# sourceMappingURL=BatchedSpatialTileTreeRefs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BatchedSpatialTileTreeRefs.js","sourceRoot":"","sources":["../../src/BatchedSpatialTileTreeRefs.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport {\n AttachToViewportArgs, IModelConnection, SpatialTileTreeReferences, SpatialViewState, TileTreeLoadStatus, TileTreeOwner, TileTreeReference,\n} from \"@itwin/core-frontend\";\nimport { BatchedTileTreeReference } from \"./BatchedTileTreeReference\";\nimport { ComputeSpatialTilesetBaseUrl, createFallbackSpatialTileTreeReferences } from \"./FrontendTiles\";\n\n// Obtains tiles pre-published by mesh export service.\nclass BatchedSpatialTileTreeReferences implements SpatialTileTreeReferences {\n private readonly _treeRef: BatchedTileTreeReference;\n\n public constructor(treeRef: BatchedTileTreeReference) {\n this._treeRef = treeRef;\n }\n\n public *[Symbol.iterator](): Iterator<TileTreeReference> {\n yield this._treeRef;\n }\n\n public update(): void {\n this._treeRef.updateViewedModels();\n }\n\n public attachToViewport(args: AttachToViewportArgs): void {\n this._treeRef.attachToViewport(args);\n }\n\n public detachFromViewport(): void {\n this._treeRef.detachFromViewport();\n }\n\n public setDeactivated(): void {\n // This exists chiefly for debugging. Unimplemented here.\n }\n}\n\n// A placeholder used by [[ProxySpatialTileTreeReferences]] until asynchronous loading completes.\n// It provides a TileTreeOwner that never loads a tile tree.\n// This ensures that [ViewState.areAllTileTreesLoaded]($frontend) will not return `true` while we are loading.\nclass ProxyTileTreeReference extends TileTreeReference {\n private readonly _treeOwner: TileTreeOwner;\n\n public constructor(iModel: IModelConnection) {\n super();\n this._treeOwner = {\n iModel,\n tileTree: undefined,\n loadStatus: TileTreeLoadStatus.NotLoaded,\n load: () => undefined,\n dispose: () => { },\n loadTree: async () => Promise.resolve(undefined),\n };\n }\n\n public override get treeOwner() {\n return this._treeOwner;\n }\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public override get _isLoadingComplete() {\n return false;\n }\n}\n\n// Serves as a placeholder while we asynchronously obtain the base URL for a pre-published tileset (or asynchronously determine\n// that no such tileset exists).\nclass ProxySpatialTileTreeReferences implements SpatialTileTreeReferences {\n // Once async loading completes, all methods will be forwarded to this implementation.\n private _impl?: SpatialTileTreeReferences;\n private readonly _proxyRef: ProxyTileTreeReference;\n // Retained if attachToViewport is called while we are still loading; and reset if detachFromViewport is called while loading.\n private _attachArgs?: AttachToViewportArgs;\n\n public constructor(view: SpatialViewState, getBaseUrl: Promise<URL | undefined>) {\n this._proxyRef = new ProxyTileTreeReference(view.iModel);\n getBaseUrl.then((url: URL | undefined) => {\n if (url) {\n const ref = BatchedTileTreeReference.create(view, url);\n this.setTreeRefs(new BatchedSpatialTileTreeReferences(ref));\n } else {\n this.setTreeRefs(createFallbackSpatialTileTreeReferences(view));\n }\n }).catch(() => {\n this.setTreeRefs(createFallbackSpatialTileTreeReferences(view));\n });\n }\n\n private setTreeRefs(refs: SpatialTileTreeReferences): void {\n this._impl = refs;\n if (this._attachArgs) {\n this._impl.attachToViewport(this._attachArgs);\n this._attachArgs.invalidateSymbologyOverrides();\n this._attachArgs = undefined;\n }\n }\n\n public update(): void {\n this._impl?.update();\n }\n\n public attachToViewport(args: AttachToViewportArgs): void {\n if (this._impl)\n this._impl.attachToViewport(args);\n else\n this._attachArgs = args;\n }\n\n public detachFromViewport(): void {\n if (this._impl)\n this._impl.detachFromViewport();\n else\n this._attachArgs = undefined;\n }\n\n public setDeactivated(): void { }\n\n public *[Symbol.iterator](): Iterator<TileTreeReference> {\n if (this._impl) {\n for (const ref of this._impl)\n yield ref;\n } else {\n yield this._proxyRef;\n }\n }\n}\n\nconst iModelToBaseUrl = new Map<IModelConnection, URL | null | Promise<URL | undefined>>();\n\n/** @internal */\nexport function createBatchedSpatialTileTreeReferences(view: SpatialViewState, computeBaseUrl: ComputeSpatialTilesetBaseUrl): SpatialTileTreeReferences {\n const iModel = view.iModel;\n let entry = iModelToBaseUrl.get(iModel);\n if (undefined === entry) {\n const promise = computeBaseUrl(iModel);\n iModelToBaseUrl.set(iModel, entry = promise);\n iModel.onClose.addOnce(() => iModelToBaseUrl.delete(iModel));\n promise.then((url: URL | undefined) => {\n if (iModelToBaseUrl.has(iModel))\n iModelToBaseUrl.set(iModel, url ?? null);\n }).catch(() => {\n if (iModelToBaseUrl.has(iModel))\n iModelToBaseUrl.set(iModel, null);\n });\n }\n\n if (null === entry) {\n // No tileset exists for this iModel - use default tile generation instead.\n return createFallbackSpatialTileTreeReferences(view);\n }\n\n if (entry instanceof Promise)\n return new ProxySpatialTileTreeReferences(view, entry);\n\n const ref = BatchedTileTreeReference.create(view, entry);\n return new BatchedSpatialTileTreeReferences(ref);\n}\n"]}
1
+ {"version":3,"file":"BatchedSpatialTileTreeRefs.js","sourceRoot":"","sources":["../../src/BatchedSpatialTileTreeRefs.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport {\r\n AttachToViewportArgs, IModelConnection, SpatialTileTreeReferences, SpatialViewState, TileTreeLoadStatus, TileTreeOwner, TileTreeReference,\r\n} from \"@itwin/core-frontend\";\r\nimport { BatchedTileTreeReference } from \"./BatchedTileTreeReference\";\r\nimport { ComputeSpatialTilesetBaseUrl, createFallbackSpatialTileTreeReferences } from \"./FrontendTiles\";\r\n\r\n// Obtains tiles pre-published by mesh export service.\r\nclass BatchedSpatialTileTreeReferences implements SpatialTileTreeReferences {\r\n private readonly _treeRef: BatchedTileTreeReference;\r\n\r\n public constructor(treeRef: BatchedTileTreeReference) {\r\n this._treeRef = treeRef;\r\n }\r\n\r\n public *[Symbol.iterator](): Iterator<TileTreeReference> {\r\n yield this._treeRef;\r\n }\r\n\r\n public update(): void {\r\n this._treeRef.updateViewedModels();\r\n }\r\n\r\n public attachToViewport(args: AttachToViewportArgs): void {\r\n this._treeRef.attachToViewport(args);\r\n }\r\n\r\n public detachFromViewport(): void {\r\n this._treeRef.detachFromViewport();\r\n }\r\n\r\n public setDeactivated(): void {\r\n // This exists chiefly for debugging. Unimplemented here.\r\n }\r\n}\r\n\r\n// A placeholder used by [[ProxySpatialTileTreeReferences]] until asynchronous loading completes.\r\n// It provides a TileTreeOwner that never loads a tile tree.\r\n// This ensures that [ViewState.areAllTileTreesLoaded]($frontend) will not return `true` while we are loading.\r\nclass ProxyTileTreeReference extends TileTreeReference {\r\n private readonly _treeOwner: TileTreeOwner;\r\n\r\n public constructor(iModel: IModelConnection) {\r\n super();\r\n this._treeOwner = {\r\n iModel,\r\n tileTree: undefined,\r\n loadStatus: TileTreeLoadStatus.NotLoaded,\r\n load: () => undefined,\r\n dispose: () => { },\r\n loadTree: async () => Promise.resolve(undefined),\r\n };\r\n }\r\n\r\n public override get treeOwner() {\r\n return this._treeOwner;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n public override get _isLoadingComplete() {\r\n return false;\r\n }\r\n}\r\n\r\n// Serves as a placeholder while we asynchronously obtain the base URL for a pre-published tileset (or asynchronously determine\r\n// that no such tileset exists).\r\nclass ProxySpatialTileTreeReferences implements SpatialTileTreeReferences {\r\n // Once async loading completes, all methods will be forwarded to this implementation.\r\n private _impl?: SpatialTileTreeReferences;\r\n private readonly _proxyRef: ProxyTileTreeReference;\r\n // Retained if attachToViewport is called while we are still loading; and reset if detachFromViewport is called while loading.\r\n private _attachArgs?: AttachToViewportArgs;\r\n\r\n public constructor(view: SpatialViewState, getBaseUrl: Promise<URL | undefined>) {\r\n this._proxyRef = new ProxyTileTreeReference(view.iModel);\r\n getBaseUrl.then((url: URL | undefined) => {\r\n if (url) {\r\n const ref = BatchedTileTreeReference.create(view, url);\r\n this.setTreeRefs(new BatchedSpatialTileTreeReferences(ref));\r\n } else {\r\n this.setTreeRefs(createFallbackSpatialTileTreeReferences(view));\r\n }\r\n }).catch(() => {\r\n this.setTreeRefs(createFallbackSpatialTileTreeReferences(view));\r\n });\r\n }\r\n\r\n private setTreeRefs(refs: SpatialTileTreeReferences): void {\r\n this._impl = refs;\r\n if (this._attachArgs) {\r\n this._impl.attachToViewport(this._attachArgs);\r\n this._attachArgs.invalidateSymbologyOverrides();\r\n this._attachArgs = undefined;\r\n }\r\n }\r\n\r\n public update(): void {\r\n this._impl?.update();\r\n }\r\n\r\n public attachToViewport(args: AttachToViewportArgs): void {\r\n if (this._impl)\r\n this._impl.attachToViewport(args);\r\n else\r\n this._attachArgs = args;\r\n }\r\n\r\n public detachFromViewport(): void {\r\n if (this._impl)\r\n this._impl.detachFromViewport();\r\n else\r\n this._attachArgs = undefined;\r\n }\r\n\r\n public setDeactivated(): void { }\r\n\r\n public *[Symbol.iterator](): Iterator<TileTreeReference> {\r\n if (this._impl) {\r\n for (const ref of this._impl)\r\n yield ref;\r\n } else {\r\n yield this._proxyRef;\r\n }\r\n }\r\n}\r\n\r\nconst iModelToBaseUrl = new Map<IModelConnection, URL | null | Promise<URL | undefined>>();\r\n\r\n/** @internal */\r\nexport function createBatchedSpatialTileTreeReferences(view: SpatialViewState, computeBaseUrl: ComputeSpatialTilesetBaseUrl): SpatialTileTreeReferences {\r\n const iModel = view.iModel;\r\n let entry = iModelToBaseUrl.get(iModel);\r\n if (undefined === entry) {\r\n const promise = computeBaseUrl(iModel);\r\n iModelToBaseUrl.set(iModel, entry = promise);\r\n iModel.onClose.addOnce(() => iModelToBaseUrl.delete(iModel));\r\n promise.then((url: URL | undefined) => {\r\n if (iModelToBaseUrl.has(iModel))\r\n iModelToBaseUrl.set(iModel, url ?? null);\r\n }).catch(() => {\r\n if (iModelToBaseUrl.has(iModel))\r\n iModelToBaseUrl.set(iModel, null);\r\n });\r\n }\r\n\r\n if (null === entry) {\r\n // No tileset exists for this iModel - use default tile generation instead.\r\n return createFallbackSpatialTileTreeReferences(view);\r\n }\r\n\r\n if (entry instanceof Promise)\r\n return new ProxySpatialTileTreeReferences(view, entry);\r\n\r\n const ref = BatchedTileTreeReference.create(view, entry);\r\n return new BatchedSpatialTileTreeReferences(ref);\r\n}\r\n"]}
@@ -1,24 +1,25 @@
1
- import { BeTimePoint } from "@itwin/core-bentley";
2
- import { Tileset3dSchema } from "@itwin/core-common";
3
- import { GraphicBuilder, RenderSystem, SelectParent, Tile, TileBoundingBoxes, TileContent, TileDrawArgs, TileParams, TileRequest, TileRequestChannel, TileUser, Viewport } from "@itwin/core-frontend";
4
- import { BatchedTileTree } from "./BatchedTileTree";
5
- /** @internal */
6
- export interface BatchedTileParams extends TileParams {
7
- childrenProps: Tileset3dSchema.Tile[] | undefined;
8
- }
9
- /** @internal */
10
- export declare class BatchedTile extends Tile {
11
- private readonly _childrenProps?;
12
- get batchedTree(): BatchedTileTree;
13
- constructor(params: BatchedTileParams, tree: BatchedTileTree);
14
- private get _batchedChildren();
15
- computeLoadPriority(viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number;
16
- selectTiles(selected: BatchedTile[], args: TileDrawArgs, numSkipped: number): SelectParent;
17
- protected _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void;
18
- get channel(): TileRequestChannel;
19
- requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response>;
20
- readContent(data: TileRequest.ResponseData, system: RenderSystem, shouldAbort?: () => boolean): Promise<TileContent>;
21
- protected addRangeGraphic(builder: GraphicBuilder, type: TileBoundingBoxes): void;
22
- prune(olderThan: BeTimePoint): void;
23
- }
1
+ import { BeTimePoint } from "@itwin/core-bentley";
2
+ import { Tileset3dSchema } from "@itwin/core-common";
3
+ import { GraphicBuilder, RenderSystem, Tile, TileBoundingBoxes, TileContent, TileDrawArgs, TileParams, TileRequest, TileRequestChannel, TileUser, Viewport } from "@itwin/core-frontend";
4
+ import { BatchedTileTree } from "./BatchedTileTree";
5
+ /** @internal */
6
+ export interface BatchedTileParams extends TileParams {
7
+ childrenProps: Tileset3dSchema.Tile[] | undefined;
8
+ }
9
+ /** @internal */
10
+ export declare class BatchedTile extends Tile {
11
+ private readonly _childrenProps?;
12
+ private readonly _unskippable;
13
+ get batchedTree(): BatchedTileTree;
14
+ constructor(params: BatchedTileParams, tree: BatchedTileTree);
15
+ private get _batchedChildren();
16
+ computeLoadPriority(viewports: Iterable<Viewport>, _users: Iterable<TileUser>): number;
17
+ selectTiles(selected: Set<BatchedTile>, args: TileDrawArgs, closestDisplayableAncestor: BatchedTile | undefined): void;
18
+ protected _loadChildren(resolve: (children: Tile[] | undefined) => void, reject: (error: Error) => void): void;
19
+ get channel(): TileRequestChannel;
20
+ requestContent(_isCanceled: () => boolean): Promise<TileRequest.Response>;
21
+ readContent(data: TileRequest.ResponseData, system: RenderSystem, shouldAbort?: () => boolean): Promise<TileContent>;
22
+ protected addRangeGraphic(builder: GraphicBuilder, type: TileBoundingBoxes): void;
23
+ prune(olderThan: BeTimePoint): void;
24
+ }
24
25
  //# sourceMappingURL=BatchedTile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BatchedTile.d.ts","sourceRoot":"","sources":["../../src/BatchedTile.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAY,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACY,cAAc,EAA4C,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAC3I,YAAY,EAAkB,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAsB,QAAQ,EAAkB,QAAQ,EAClI,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,gBAAgB;AAChB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,aAAa,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;CACnD;AAID,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,IAAI;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyB;IAEzD,IAAW,WAAW,IAAI,eAAe,CAExC;gBAEkB,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe;IAYnE,OAAO,KAAK,gBAAgB,GAE3B;IAEe,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;IAK/F,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY;cAgI9E,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAqBvH,IAAoB,OAAO,IAAI,kBAAkB,CAOhD;IAEqB,cAAc,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IAOzE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;cAuCvH,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAsBnF,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAY3C"}
1
+ {"version":3,"file":"BatchedTile.d.ts","sourceRoot":"","sources":["../../src/BatchedTile.ts"],"names":[],"mappings":"AAKA,OAAO,EAAU,WAAW,EAAsB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAY,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACY,cAAc,EAA4C,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAC7H,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAsB,QAAQ,EAAkB,QAAQ,EAClH,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,gBAAgB;AAChB,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,aAAa,EAAE,eAAe,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;CACnD;AAID,gBAAgB;AAChB,qBAAa,WAAY,SAAQ,IAAI;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAyB;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,IAAW,WAAW,IAAI,eAAe,CAExC;gBAEkB,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,eAAe;IAgBnE,OAAO,KAAK,gBAAgB,GAE3B;IAEe,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,MAAM;IAK/F,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI;cAoC1G,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI;IAqBvH,IAAoB,OAAO,IAAI,kBAAkB,CAOhD;IAEqB,cAAc,CAAC,WAAW,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC;IAOzE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;cAwCvH,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAsBnF,KAAK,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI;CAY3C"}