@itwin/core-frontend 3.1.0-dev.1 → 3.1.0-dev.8
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/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +6 -5
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/DrawingViewState.js +3 -3
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/SheetViewState.js +3 -3
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +6 -3
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +16 -9
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +2 -2
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.d.ts.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/LRUTileList.d.ts +29 -29
- package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
- package/lib/cjs/tile/LRUTileList.js +50 -50
- package/lib/cjs/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts +2 -2
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +2 -2
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.d.ts +2 -2
- package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +1 -1
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +5 -4
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +3 -2
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts +43 -45
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +104 -99
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileRequest.d.ts +12 -9
- package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
- package/lib/cjs/tile/TileRequest.js +19 -11
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js +3 -3
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileTree.js +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +1 -1
- package/lib/cjs/tile/TileTreeReference.js +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.d.ts +9 -9
- package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js +9 -9
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TileUser.d.ts +33 -0
- package/lib/cjs/tile/TileUser.d.ts.map +1 -0
- package/lib/cjs/tile/TileUser.js +28 -0
- package/lib/cjs/tile/TileUser.js.map +1 -0
- package/lib/cjs/tile/TileUserSet.d.ts +28 -0
- package/lib/cjs/tile/TileUserSet.d.ts.map +1 -0
- package/lib/cjs/tile/TileUserSet.js +123 -0
- package/lib/cjs/tile/TileUserSet.js.map +1 -0
- package/lib/cjs/tile/internal.d.ts +2 -0
- package/lib/cjs/tile/internal.d.ts.map +1 -1
- package/lib/cjs/tile/internal.js +2 -0
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -2
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -2
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +3 -3
- package/lib/cjs/tile/map/MapTileTree.js +4 -4
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +6 -5
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/DrawingViewState.js +3 -3
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/SheetViewState.js +3 -3
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +6 -3
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +17 -10
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +2 -2
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.d.ts.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -1
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/LRUTileList.d.ts +29 -29
- package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
- package/lib/esm/tile/LRUTileList.js +47 -47
- package/lib/esm/tile/LRUTileList.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +1 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts +2 -2
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +2 -2
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.d.ts +2 -2
- package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +1 -1
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +1 -1
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +5 -4
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +3 -2
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts +43 -45
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +105 -100
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileRequest.d.ts +12 -9
- package/lib/esm/tile/TileRequest.d.ts.map +1 -1
- package/lib/esm/tile/TileRequest.js +19 -11
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js +3 -3
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileTree.js +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +1 -1
- package/lib/esm/tile/TileTreeReference.js +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.d.ts +9 -9
- package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js +9 -9
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TileUser.d.ts +33 -0
- package/lib/esm/tile/TileUser.d.ts.map +1 -0
- package/lib/esm/tile/TileUser.js +25 -0
- package/lib/esm/tile/TileUser.js.map +1 -0
- package/lib/esm/tile/TileUserSet.d.ts +28 -0
- package/lib/esm/tile/TileUserSet.d.ts.map +1 -0
- package/lib/esm/tile/TileUserSet.js +118 -0
- package/lib/esm/tile/TileUserSet.js.map +1 -0
- package/lib/esm/tile/internal.d.ts +2 -0
- package/lib/esm/tile/internal.d.ts.map +1 -1
- package/lib/esm/tile/internal.js +2 -0
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -2
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -2
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +3 -3
- package/lib/esm/tile/map/MapTileTree.js +4 -4
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/package.json +20 -20
- package/lib/cjs/ViewportSet.d.ts +0 -28
- package/lib/cjs/ViewportSet.d.ts.map +0 -1
- package/lib/cjs/ViewportSet.js +0 -126
- package/lib/cjs/ViewportSet.js.map +0 -1
- package/lib/esm/ViewportSet.d.ts +0 -28
- package/lib/esm/ViewportSet.d.ts.map +0 -1
- package/lib/esm/ViewportSet.js +0 -121
- package/lib/esm/ViewportSet.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/core-frontend",
|
|
3
|
-
"version": "3.1.0-dev.
|
|
3
|
+
"version": "3.1.0-dev.8",
|
|
4
4
|
"description": "iTwin.js frontend components",
|
|
5
5
|
"main": "lib/cjs/core-frontend.js",
|
|
6
6
|
"module": "lib/esm/core-frontend.js",
|
|
@@ -23,29 +23,29 @@
|
|
|
23
23
|
"url": "http://www.bentley.com"
|
|
24
24
|
},
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@itwin/appui-abstract": "^3.1.0-dev.
|
|
27
|
-
"@itwin/core-bentley": "^3.1.0-dev.
|
|
28
|
-
"@itwin/core-common": "^3.1.0-dev.
|
|
29
|
-
"@itwin/core-geometry": "^3.1.0-dev.
|
|
30
|
-
"@itwin/core-orbitgt": "^3.1.0-dev.
|
|
31
|
-
"@itwin/core-quantity": "^3.1.0-dev.
|
|
32
|
-
"@itwin/webgl-compatibility": "^3.1.0-dev.
|
|
26
|
+
"@itwin/appui-abstract": "^3.1.0-dev.8",
|
|
27
|
+
"@itwin/core-bentley": "^3.1.0-dev.8",
|
|
28
|
+
"@itwin/core-common": "^3.1.0-dev.8",
|
|
29
|
+
"@itwin/core-geometry": "^3.1.0-dev.8",
|
|
30
|
+
"@itwin/core-orbitgt": "^3.1.0-dev.8",
|
|
31
|
+
"@itwin/core-quantity": "^3.1.0-dev.8",
|
|
32
|
+
"@itwin/webgl-compatibility": "^3.1.0-dev.8"
|
|
33
33
|
},
|
|
34
34
|
"//devDependencies": [
|
|
35
35
|
"NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install",
|
|
36
36
|
"NOTE: All tools used by scripts in this package must be listed as devDependencies"
|
|
37
37
|
],
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@itwin/appui-abstract": "3.1.0-dev.
|
|
40
|
-
"@itwin/build-tools": "3.1.0-dev.
|
|
41
|
-
"@itwin/core-bentley": "3.1.0-dev.
|
|
42
|
-
"@itwin/core-common": "3.1.0-dev.
|
|
43
|
-
"@itwin/core-geometry": "3.1.0-dev.
|
|
44
|
-
"@itwin/core-orbitgt": "3.1.0-dev.
|
|
45
|
-
"@itwin/core-quantity": "3.1.0-dev.
|
|
46
|
-
"@itwin/certa": "3.1.0-dev.
|
|
47
|
-
"@itwin/eslint-plugin": "3.1.0-dev.
|
|
48
|
-
"@itwin/webgl-compatibility": "3.1.0-dev.
|
|
39
|
+
"@itwin/appui-abstract": "3.1.0-dev.8",
|
|
40
|
+
"@itwin/build-tools": "3.1.0-dev.8",
|
|
41
|
+
"@itwin/core-bentley": "3.1.0-dev.8",
|
|
42
|
+
"@itwin/core-common": "3.1.0-dev.8",
|
|
43
|
+
"@itwin/core-geometry": "3.1.0-dev.8",
|
|
44
|
+
"@itwin/core-orbitgt": "3.1.0-dev.8",
|
|
45
|
+
"@itwin/core-quantity": "3.1.0-dev.8",
|
|
46
|
+
"@itwin/certa": "3.1.0-dev.8",
|
|
47
|
+
"@itwin/eslint-plugin": "3.1.0-dev.8",
|
|
48
|
+
"@itwin/webgl-compatibility": "3.1.0-dev.8",
|
|
49
49
|
"@types/chai": "^4.1.4",
|
|
50
50
|
"@types/chai-as-promised": "^7",
|
|
51
51
|
"@types/deep-assign": "^0.1.0",
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"
|
|
75
75
|
],
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@itwin/core-i18n": "3.1.0-dev.
|
|
78
|
-
"@itwin/core-telemetry": "3.1.0-dev.
|
|
77
|
+
"@itwin/core-i18n": "3.1.0-dev.8",
|
|
78
|
+
"@itwin/core-telemetry": "3.1.0-dev.8",
|
|
79
79
|
"deep-assign": "^2.0.0",
|
|
80
80
|
"fuse.js": "^3.3.0",
|
|
81
81
|
"lodash": "^4.17.10",
|
package/lib/cjs/ViewportSet.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Utils
|
|
3
|
-
*/
|
|
4
|
-
import { ReadonlySortedArray } from "@itwin/core-bentley";
|
|
5
|
-
import { Viewport } from "./Viewport";
|
|
6
|
-
/** An immutable set of [[Viewport]]s wherein uniqueness is determined by each Viewport's unique integer identifier.
|
|
7
|
-
* @see [[UniqueViewportSets]].
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export declare class ReadonlyViewportSet extends ReadonlySortedArray<Viewport> {
|
|
11
|
-
constructor(vp?: Viewport);
|
|
12
|
-
}
|
|
13
|
-
/** Maintains a set of [[ViewportSets]] designed to minimize duplication.
|
|
14
|
-
* For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of viewports awaiting the request's response.
|
|
15
|
-
* Using UniqueViewportSets ensures all tiles requested by the same viewports use the same ViewportSet object.
|
|
16
|
-
* Additionally, whenever a viewport is destroyed there is no need to track down every associated tile request - the viewport can just be removed from the ViewportSets managed by this object.
|
|
17
|
-
* The ViewportSets managed by this object should be treated as immutable - "adding" a viewport to an existing set should be done using [[getViewportSet]].
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export declare class UniqueViewportSets {
|
|
21
|
-
private readonly _sets;
|
|
22
|
-
getViewportSet(vp: Viewport, vps?: ReadonlyViewportSet): ReadonlyViewportSet;
|
|
23
|
-
clearAll(): void;
|
|
24
|
-
clear(): void;
|
|
25
|
-
remove(vp: Viewport): void;
|
|
26
|
-
static get emptySet(): ReadonlyViewportSet;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=ViewportSet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportSet.d.ts","sourceRoot":"","sources":["../../src/ViewportSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAe,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB,CAAC,QAAQ,CAAC;gBACjD,EAAE,CAAC,EAAE,QAAQ;CAKjC;AA0FD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAEvC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;IAI5E,QAAQ,IAAI,IAAI;IAIhB,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIjC,WAAkB,QAAQ,IAAI,mBAAmB,CAEhD;CACF"}
|
package/lib/cjs/ViewportSet.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
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
|
-
/** @packageDocumentation
|
|
7
|
-
* @module Utils
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.UniqueViewportSets = exports.ReadonlyViewportSet = void 0;
|
|
11
|
-
// cspell:ignore lhvp rhvp
|
|
12
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
13
|
-
/** An immutable set of [[Viewport]]s wherein uniqueness is determined by each Viewport's unique integer identifier.
|
|
14
|
-
* @see [[UniqueViewportSets]].
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
class ReadonlyViewportSet extends core_bentley_1.ReadonlySortedArray {
|
|
18
|
-
constructor(vp) {
|
|
19
|
-
super((lhs, rhs) => lhs.viewportId - rhs.viewportId);
|
|
20
|
-
if (undefined !== vp)
|
|
21
|
-
this._array.push(vp);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.ReadonlyViewportSet = ReadonlyViewportSet;
|
|
25
|
-
class ViewportSet extends ReadonlyViewportSet {
|
|
26
|
-
copyFrom(src) {
|
|
27
|
-
this._array.length = src.length;
|
|
28
|
-
let i = 0;
|
|
29
|
-
for (const vp of src)
|
|
30
|
-
this._array[i++] = vp;
|
|
31
|
-
}
|
|
32
|
-
clone() {
|
|
33
|
-
const clone = new ViewportSet();
|
|
34
|
-
clone.copyFrom(this);
|
|
35
|
-
return clone;
|
|
36
|
-
}
|
|
37
|
-
insert(vp) { return this._insert(vp); }
|
|
38
|
-
remove(vp) { return this._remove(vp); }
|
|
39
|
-
clear() { this._clear(); }
|
|
40
|
-
}
|
|
41
|
-
function compareViewportSets(lhs, rhs) {
|
|
42
|
-
if (lhs === rhs)
|
|
43
|
-
return 0;
|
|
44
|
-
let diff = lhs.length - rhs.length;
|
|
45
|
-
if (0 === diff) {
|
|
46
|
-
for (let i = 0; i < lhs.length; i++) {
|
|
47
|
-
const lhvp = lhs.get(i);
|
|
48
|
-
const rhvp = rhs.get(i);
|
|
49
|
-
diff = lhvp.viewportId - rhvp.viewportId;
|
|
50
|
-
if (0 !== diff)
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
return diff;
|
|
55
|
-
}
|
|
56
|
-
const emptySet = new ReadonlyViewportSet();
|
|
57
|
-
const scratchSet = new ViewportSet();
|
|
58
|
-
class ViewportSetSet extends core_bentley_1.SortedArray {
|
|
59
|
-
constructor() {
|
|
60
|
-
super((lhs, rhs) => compareViewportSets(lhs, rhs));
|
|
61
|
-
}
|
|
62
|
-
getForViewport(vp) {
|
|
63
|
-
for (let i = 0; i < this.length; i++) {
|
|
64
|
-
const set = this._array[i];
|
|
65
|
-
if (1 === set.length && set.get(0) === vp)
|
|
66
|
-
return set;
|
|
67
|
-
}
|
|
68
|
-
const newSet = new ViewportSet(vp);
|
|
69
|
-
this.insert(newSet);
|
|
70
|
-
return newSet;
|
|
71
|
-
}
|
|
72
|
-
getViewportSet(vp, vps) {
|
|
73
|
-
if (undefined === vps || vps.isEmpty)
|
|
74
|
-
return this.getForViewport(vp);
|
|
75
|
-
// Use the scratch set for equality comparison - only allocate if no equivalent set already exists.
|
|
76
|
-
const toFind = scratchSet;
|
|
77
|
-
toFind.copyFrom(vps);
|
|
78
|
-
toFind.insert(vp);
|
|
79
|
-
const found = this.findEqual(toFind);
|
|
80
|
-
if (undefined !== found) {
|
|
81
|
-
toFind.clear();
|
|
82
|
-
return found;
|
|
83
|
-
}
|
|
84
|
-
const newSet = toFind.clone();
|
|
85
|
-
toFind.clear();
|
|
86
|
-
this.insert(newSet);
|
|
87
|
-
return newSet;
|
|
88
|
-
}
|
|
89
|
-
clearAll() {
|
|
90
|
-
this.forEach((set) => set.clear());
|
|
91
|
-
this.clear();
|
|
92
|
-
}
|
|
93
|
-
forgetViewport(vp) {
|
|
94
|
-
for (const set of this)
|
|
95
|
-
set.remove(vp);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/** Maintains a set of [[ViewportSets]] designed to minimize duplication.
|
|
99
|
-
* For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of viewports awaiting the request's response.
|
|
100
|
-
* Using UniqueViewportSets ensures all tiles requested by the same viewports use the same ViewportSet object.
|
|
101
|
-
* Additionally, whenever a viewport is destroyed there is no need to track down every associated tile request - the viewport can just be removed from the ViewportSets managed by this object.
|
|
102
|
-
* The ViewportSets managed by this object should be treated as immutable - "adding" a viewport to an existing set should be done using [[getViewportSet]].
|
|
103
|
-
* @internal
|
|
104
|
-
*/
|
|
105
|
-
class UniqueViewportSets {
|
|
106
|
-
constructor() {
|
|
107
|
-
this._sets = new ViewportSetSet();
|
|
108
|
-
}
|
|
109
|
-
getViewportSet(vp, vps) {
|
|
110
|
-
return this._sets.getViewportSet(vp, vps);
|
|
111
|
-
}
|
|
112
|
-
clearAll() {
|
|
113
|
-
this._sets.clearAll();
|
|
114
|
-
}
|
|
115
|
-
clear() {
|
|
116
|
-
this._sets.clear();
|
|
117
|
-
}
|
|
118
|
-
remove(vp) {
|
|
119
|
-
this._sets.forgetViewport(vp);
|
|
120
|
-
}
|
|
121
|
-
static get emptySet() {
|
|
122
|
-
return emptySet;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
exports.UniqueViewportSets = UniqueViewportSets;
|
|
126
|
-
//# sourceMappingURL=ViewportSet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportSet.js","sourceRoot":"","sources":["../../src/ViewportSet.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/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n// cspell:ignore lhvp rhvp\r\nimport { ReadonlySortedArray, SortedArray } from \"@itwin/core-bentley\";\r\nimport { Viewport } from \"./Viewport\";\r\n\r\n/** An immutable set of [[Viewport]]s wherein uniqueness is determined by each Viewport's unique integer identifier.\r\n * @see [[UniqueViewportSets]].\r\n * @internal\r\n */\r\nexport class ReadonlyViewportSet extends ReadonlySortedArray<Viewport> {\r\n public constructor(vp?: Viewport) {\r\n super((lhs, rhs) => lhs.viewportId - rhs.viewportId);\r\n if (undefined !== vp)\r\n this._array.push(vp);\r\n }\r\n}\r\n\r\nclass ViewportSet extends ReadonlyViewportSet {\r\n public copyFrom(src: ReadonlyViewportSet): void {\r\n this._array.length = src.length;\r\n let i = 0;\r\n for (const vp of src)\r\n this._array[i++] = vp;\r\n }\r\n\r\n public clone(): ViewportSet {\r\n const clone = new ViewportSet();\r\n clone.copyFrom(this);\r\n return clone;\r\n }\r\n\r\n public insert(vp: Viewport): number { return this._insert(vp); }\r\n public remove(vp: Viewport): number { return this._remove(vp); }\r\n public clear(): void { this._clear(); }\r\n}\r\n\r\nfunction compareViewportSets(lhs: ViewportSet, rhs: ViewportSet): number {\r\n if (lhs === rhs)\r\n return 0;\r\n\r\n let diff = lhs.length - rhs.length;\r\n if (0 === diff) {\r\n for (let i = 0; i < lhs.length; i++) {\r\n const lhvp = lhs.get(i)!;\r\n const rhvp = rhs.get(i)!;\r\n diff = lhvp.viewportId - rhvp.viewportId;\r\n if (0 !== diff)\r\n break;\r\n }\r\n }\r\n\r\n return diff;\r\n}\r\n\r\nconst emptySet = new ReadonlyViewportSet();\r\nconst scratchSet = new ViewportSet();\r\n\r\nclass ViewportSetSet extends SortedArray<ViewportSet> {\r\n public constructor() {\r\n super((lhs, rhs) => compareViewportSets(lhs, rhs));\r\n }\r\n\r\n private getForViewport(vp: Viewport): ViewportSet {\r\n for (let i = 0; i < this.length; i++) {\r\n const set = this._array[i];\r\n if (1 === set.length && set.get(0)! === vp)\r\n return set;\r\n }\r\n\r\n const newSet = new ViewportSet(vp);\r\n this.insert(newSet);\r\n return newSet;\r\n }\r\n\r\n public getViewportSet(vp: Viewport, vps?: ReadonlyViewportSet): ViewportSet {\r\n if (undefined === vps || vps.isEmpty)\r\n return this.getForViewport(vp);\r\n\r\n // Use the scratch set for equality comparison - only allocate if no equivalent set already exists.\r\n const toFind = scratchSet;\r\n toFind.copyFrom(vps);\r\n toFind.insert(vp);\r\n const found = this.findEqual(toFind);\r\n if (undefined !== found) {\r\n toFind.clear();\r\n return found;\r\n }\r\n\r\n const newSet = toFind.clone();\r\n toFind.clear();\r\n this.insert(newSet);\r\n return newSet;\r\n }\r\n\r\n public clearAll(): void {\r\n this.forEach((set) => set.clear());\r\n this.clear();\r\n }\r\n\r\n public forgetViewport(vp: Viewport): void {\r\n for (const set of this)\r\n set.remove(vp);\r\n }\r\n}\r\n\r\n/** Maintains a set of [[ViewportSets]] designed to minimize duplication.\r\n * For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of viewports awaiting the request's response.\r\n * Using UniqueViewportSets ensures all tiles requested by the same viewports use the same ViewportSet object.\r\n * Additionally, whenever a viewport is destroyed there is no need to track down every associated tile request - the viewport can just be removed from the ViewportSets managed by this object.\r\n * The ViewportSets managed by this object should be treated as immutable - \"adding\" a viewport to an existing set should be done using [[getViewportSet]].\r\n * @internal\r\n */\r\nexport class UniqueViewportSets {\r\n private readonly _sets = new ViewportSetSet();\r\n\r\n public getViewportSet(vp: Viewport, vps?: ReadonlyViewportSet): ReadonlyViewportSet {\r\n return this._sets.getViewportSet(vp, vps);\r\n }\r\n\r\n public clearAll(): void {\r\n this._sets.clearAll();\r\n }\r\n\r\n public clear(): void {\r\n this._sets.clear();\r\n }\r\n\r\n public remove(vp: Viewport): void {\r\n this._sets.forgetViewport(vp);\r\n }\r\n\r\n public static get emptySet(): ReadonlyViewportSet {\r\n return emptySet;\r\n }\r\n}\r\n"]}
|
package/lib/esm/ViewportSet.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Utils
|
|
3
|
-
*/
|
|
4
|
-
import { ReadonlySortedArray } from "@itwin/core-bentley";
|
|
5
|
-
import { Viewport } from "./Viewport";
|
|
6
|
-
/** An immutable set of [[Viewport]]s wherein uniqueness is determined by each Viewport's unique integer identifier.
|
|
7
|
-
* @see [[UniqueViewportSets]].
|
|
8
|
-
* @internal
|
|
9
|
-
*/
|
|
10
|
-
export declare class ReadonlyViewportSet extends ReadonlySortedArray<Viewport> {
|
|
11
|
-
constructor(vp?: Viewport);
|
|
12
|
-
}
|
|
13
|
-
/** Maintains a set of [[ViewportSets]] designed to minimize duplication.
|
|
14
|
-
* For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of viewports awaiting the request's response.
|
|
15
|
-
* Using UniqueViewportSets ensures all tiles requested by the same viewports use the same ViewportSet object.
|
|
16
|
-
* Additionally, whenever a viewport is destroyed there is no need to track down every associated tile request - the viewport can just be removed from the ViewportSets managed by this object.
|
|
17
|
-
* The ViewportSets managed by this object should be treated as immutable - "adding" a viewport to an existing set should be done using [[getViewportSet]].
|
|
18
|
-
* @internal
|
|
19
|
-
*/
|
|
20
|
-
export declare class UniqueViewportSets {
|
|
21
|
-
private readonly _sets;
|
|
22
|
-
getViewportSet(vp: Viewport, vps?: ReadonlyViewportSet): ReadonlyViewportSet;
|
|
23
|
-
clearAll(): void;
|
|
24
|
-
clear(): void;
|
|
25
|
-
remove(vp: Viewport): void;
|
|
26
|
-
static get emptySet(): ReadonlyViewportSet;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=ViewportSet.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportSet.d.ts","sourceRoot":"","sources":["../../src/ViewportSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAe,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB,CAAC,QAAQ,CAAC;gBACjD,EAAE,CAAC,EAAE,QAAQ;CAKjC;AA0FD;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAEvC,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;IAI5E,QAAQ,IAAI,IAAI;IAIhB,KAAK,IAAI,IAAI;IAIb,MAAM,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAIjC,WAAkB,QAAQ,IAAI,mBAAmB,CAEhD;CACF"}
|
package/lib/esm/ViewportSet.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Utils
|
|
7
|
-
*/
|
|
8
|
-
// cspell:ignore lhvp rhvp
|
|
9
|
-
import { ReadonlySortedArray, SortedArray } from "@itwin/core-bentley";
|
|
10
|
-
/** An immutable set of [[Viewport]]s wherein uniqueness is determined by each Viewport's unique integer identifier.
|
|
11
|
-
* @see [[UniqueViewportSets]].
|
|
12
|
-
* @internal
|
|
13
|
-
*/
|
|
14
|
-
export class ReadonlyViewportSet extends ReadonlySortedArray {
|
|
15
|
-
constructor(vp) {
|
|
16
|
-
super((lhs, rhs) => lhs.viewportId - rhs.viewportId);
|
|
17
|
-
if (undefined !== vp)
|
|
18
|
-
this._array.push(vp);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
class ViewportSet extends ReadonlyViewportSet {
|
|
22
|
-
copyFrom(src) {
|
|
23
|
-
this._array.length = src.length;
|
|
24
|
-
let i = 0;
|
|
25
|
-
for (const vp of src)
|
|
26
|
-
this._array[i++] = vp;
|
|
27
|
-
}
|
|
28
|
-
clone() {
|
|
29
|
-
const clone = new ViewportSet();
|
|
30
|
-
clone.copyFrom(this);
|
|
31
|
-
return clone;
|
|
32
|
-
}
|
|
33
|
-
insert(vp) { return this._insert(vp); }
|
|
34
|
-
remove(vp) { return this._remove(vp); }
|
|
35
|
-
clear() { this._clear(); }
|
|
36
|
-
}
|
|
37
|
-
function compareViewportSets(lhs, rhs) {
|
|
38
|
-
if (lhs === rhs)
|
|
39
|
-
return 0;
|
|
40
|
-
let diff = lhs.length - rhs.length;
|
|
41
|
-
if (0 === diff) {
|
|
42
|
-
for (let i = 0; i < lhs.length; i++) {
|
|
43
|
-
const lhvp = lhs.get(i);
|
|
44
|
-
const rhvp = rhs.get(i);
|
|
45
|
-
diff = lhvp.viewportId - rhvp.viewportId;
|
|
46
|
-
if (0 !== diff)
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
return diff;
|
|
51
|
-
}
|
|
52
|
-
const emptySet = new ReadonlyViewportSet();
|
|
53
|
-
const scratchSet = new ViewportSet();
|
|
54
|
-
class ViewportSetSet extends SortedArray {
|
|
55
|
-
constructor() {
|
|
56
|
-
super((lhs, rhs) => compareViewportSets(lhs, rhs));
|
|
57
|
-
}
|
|
58
|
-
getForViewport(vp) {
|
|
59
|
-
for (let i = 0; i < this.length; i++) {
|
|
60
|
-
const set = this._array[i];
|
|
61
|
-
if (1 === set.length && set.get(0) === vp)
|
|
62
|
-
return set;
|
|
63
|
-
}
|
|
64
|
-
const newSet = new ViewportSet(vp);
|
|
65
|
-
this.insert(newSet);
|
|
66
|
-
return newSet;
|
|
67
|
-
}
|
|
68
|
-
getViewportSet(vp, vps) {
|
|
69
|
-
if (undefined === vps || vps.isEmpty)
|
|
70
|
-
return this.getForViewport(vp);
|
|
71
|
-
// Use the scratch set for equality comparison - only allocate if no equivalent set already exists.
|
|
72
|
-
const toFind = scratchSet;
|
|
73
|
-
toFind.copyFrom(vps);
|
|
74
|
-
toFind.insert(vp);
|
|
75
|
-
const found = this.findEqual(toFind);
|
|
76
|
-
if (undefined !== found) {
|
|
77
|
-
toFind.clear();
|
|
78
|
-
return found;
|
|
79
|
-
}
|
|
80
|
-
const newSet = toFind.clone();
|
|
81
|
-
toFind.clear();
|
|
82
|
-
this.insert(newSet);
|
|
83
|
-
return newSet;
|
|
84
|
-
}
|
|
85
|
-
clearAll() {
|
|
86
|
-
this.forEach((set) => set.clear());
|
|
87
|
-
this.clear();
|
|
88
|
-
}
|
|
89
|
-
forgetViewport(vp) {
|
|
90
|
-
for (const set of this)
|
|
91
|
-
set.remove(vp);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
/** Maintains a set of [[ViewportSets]] designed to minimize duplication.
|
|
95
|
-
* For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of viewports awaiting the request's response.
|
|
96
|
-
* Using UniqueViewportSets ensures all tiles requested by the same viewports use the same ViewportSet object.
|
|
97
|
-
* Additionally, whenever a viewport is destroyed there is no need to track down every associated tile request - the viewport can just be removed from the ViewportSets managed by this object.
|
|
98
|
-
* The ViewportSets managed by this object should be treated as immutable - "adding" a viewport to an existing set should be done using [[getViewportSet]].
|
|
99
|
-
* @internal
|
|
100
|
-
*/
|
|
101
|
-
export class UniqueViewportSets {
|
|
102
|
-
constructor() {
|
|
103
|
-
this._sets = new ViewportSetSet();
|
|
104
|
-
}
|
|
105
|
-
getViewportSet(vp, vps) {
|
|
106
|
-
return this._sets.getViewportSet(vp, vps);
|
|
107
|
-
}
|
|
108
|
-
clearAll() {
|
|
109
|
-
this._sets.clearAll();
|
|
110
|
-
}
|
|
111
|
-
clear() {
|
|
112
|
-
this._sets.clear();
|
|
113
|
-
}
|
|
114
|
-
remove(vp) {
|
|
115
|
-
this._sets.forgetViewport(vp);
|
|
116
|
-
}
|
|
117
|
-
static get emptySet() {
|
|
118
|
-
return emptySet;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=ViewportSet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ViewportSet.js","sourceRoot":"","sources":["../../src/ViewportSet.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/** @packageDocumentation\r\n * @module Utils\r\n */\r\n\r\n// cspell:ignore lhvp rhvp\r\nimport { ReadonlySortedArray, SortedArray } from \"@itwin/core-bentley\";\r\nimport { Viewport } from \"./Viewport\";\r\n\r\n/** An immutable set of [[Viewport]]s wherein uniqueness is determined by each Viewport's unique integer identifier.\r\n * @see [[UniqueViewportSets]].\r\n * @internal\r\n */\r\nexport class ReadonlyViewportSet extends ReadonlySortedArray<Viewport> {\r\n public constructor(vp?: Viewport) {\r\n super((lhs, rhs) => lhs.viewportId - rhs.viewportId);\r\n if (undefined !== vp)\r\n this._array.push(vp);\r\n }\r\n}\r\n\r\nclass ViewportSet extends ReadonlyViewportSet {\r\n public copyFrom(src: ReadonlyViewportSet): void {\r\n this._array.length = src.length;\r\n let i = 0;\r\n for (const vp of src)\r\n this._array[i++] = vp;\r\n }\r\n\r\n public clone(): ViewportSet {\r\n const clone = new ViewportSet();\r\n clone.copyFrom(this);\r\n return clone;\r\n }\r\n\r\n public insert(vp: Viewport): number { return this._insert(vp); }\r\n public remove(vp: Viewport): number { return this._remove(vp); }\r\n public clear(): void { this._clear(); }\r\n}\r\n\r\nfunction compareViewportSets(lhs: ViewportSet, rhs: ViewportSet): number {\r\n if (lhs === rhs)\r\n return 0;\r\n\r\n let diff = lhs.length - rhs.length;\r\n if (0 === diff) {\r\n for (let i = 0; i < lhs.length; i++) {\r\n const lhvp = lhs.get(i)!;\r\n const rhvp = rhs.get(i)!;\r\n diff = lhvp.viewportId - rhvp.viewportId;\r\n if (0 !== diff)\r\n break;\r\n }\r\n }\r\n\r\n return diff;\r\n}\r\n\r\nconst emptySet = new ReadonlyViewportSet();\r\nconst scratchSet = new ViewportSet();\r\n\r\nclass ViewportSetSet extends SortedArray<ViewportSet> {\r\n public constructor() {\r\n super((lhs, rhs) => compareViewportSets(lhs, rhs));\r\n }\r\n\r\n private getForViewport(vp: Viewport): ViewportSet {\r\n for (let i = 0; i < this.length; i++) {\r\n const set = this._array[i];\r\n if (1 === set.length && set.get(0)! === vp)\r\n return set;\r\n }\r\n\r\n const newSet = new ViewportSet(vp);\r\n this.insert(newSet);\r\n return newSet;\r\n }\r\n\r\n public getViewportSet(vp: Viewport, vps?: ReadonlyViewportSet): ViewportSet {\r\n if (undefined === vps || vps.isEmpty)\r\n return this.getForViewport(vp);\r\n\r\n // Use the scratch set for equality comparison - only allocate if no equivalent set already exists.\r\n const toFind = scratchSet;\r\n toFind.copyFrom(vps);\r\n toFind.insert(vp);\r\n const found = this.findEqual(toFind);\r\n if (undefined !== found) {\r\n toFind.clear();\r\n return found;\r\n }\r\n\r\n const newSet = toFind.clone();\r\n toFind.clear();\r\n this.insert(newSet);\r\n return newSet;\r\n }\r\n\r\n public clearAll(): void {\r\n this.forEach((set) => set.clear());\r\n this.clear();\r\n }\r\n\r\n public forgetViewport(vp: Viewport): void {\r\n for (const set of this)\r\n set.remove(vp);\r\n }\r\n}\r\n\r\n/** Maintains a set of [[ViewportSets]] designed to minimize duplication.\r\n * For example, the tile request scheduler needs to associate with each [[TileRequest]] the set of viewports awaiting the request's response.\r\n * Using UniqueViewportSets ensures all tiles requested by the same viewports use the same ViewportSet object.\r\n * Additionally, whenever a viewport is destroyed there is no need to track down every associated tile request - the viewport can just be removed from the ViewportSets managed by this object.\r\n * The ViewportSets managed by this object should be treated as immutable - \"adding\" a viewport to an existing set should be done using [[getViewportSet]].\r\n * @internal\r\n */\r\nexport class UniqueViewportSets {\r\n private readonly _sets = new ViewportSetSet();\r\n\r\n public getViewportSet(vp: Viewport, vps?: ReadonlyViewportSet): ReadonlyViewportSet {\r\n return this._sets.getViewportSet(vp, vps);\r\n }\r\n\r\n public clearAll(): void {\r\n this._sets.clearAll();\r\n }\r\n\r\n public clear(): void {\r\n this._sets.clear();\r\n }\r\n\r\n public remove(vp: Viewport): void {\r\n this._sets.forgetViewport(vp);\r\n }\r\n\r\n public static get emptySet(): ReadonlyViewportSet {\r\n return emptySet;\r\n }\r\n}\r\n"]}
|