@itwin/core-frontend 3.3.0-dev.4 → 3.3.0-dev.42
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/CHANGELOG.md +62 -1
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +56 -49
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +68 -17
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +66 -20
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/EntityState.d.ts +5 -5
- package/lib/cjs/EntityState.d.ts.map +1 -1
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +1 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +1 -1
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +1 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/TentativePoint.js +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/ViewRect.d.ts +5 -3
- package/lib/cjs/ViewRect.d.ts.map +1 -1
- package/lib/cjs/ViewRect.js +11 -7
- package/lib/cjs/ViewRect.js.map +1 -1
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +4 -0
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +2 -2
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.d.ts +5 -2
- package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js +24 -6
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +165 -158
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +8 -6
- package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +1 -1
- package/lib/cjs/extension/providers/ExtensionServiceClient.js +13 -6
- package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +0 -2
- package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js +9 -22
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +7 -6
- package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +1 -1
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js +13 -24
- package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +5 -0
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +3 -1
- package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +1 -1
- package/lib/cjs/render/webgl/Target.js +2 -2
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts +2 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +15 -3
- package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +5 -2
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +2 -1
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +2 -0
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +6 -2
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +51 -4
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +5 -2
- package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
- package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -2
- 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 +6 -2
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts +1 -0
- package/lib/cjs/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js +1 -0
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +2 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +3 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +24 -10
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +14 -9
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +14 -6
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +3 -5
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +2 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js +4 -4
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js +25 -10
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +56 -49
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +68 -17
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +66 -20
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/EntityState.d.ts +5 -5
- package/lib/esm/EntityState.d.ts.map +1 -1
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +2 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +1 -1
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +1 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/TentativePoint.js +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/ViewRect.d.ts +5 -3
- package/lib/esm/ViewRect.d.ts.map +1 -1
- package/lib/esm/ViewRect.js +11 -7
- package/lib/esm/ViewRect.js.map +1 -1
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +4 -0
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +2 -2
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.d.ts +5 -2
- package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js +24 -6
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +168 -161
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +8 -6
- package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +1 -1
- package/lib/esm/extension/providers/ExtensionServiceClient.js +13 -6
- package/lib/esm/extension/providers/ExtensionServiceClient.js.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +0 -2
- package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.js +9 -22
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +7 -6
- package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +1 -1
- package/lib/esm/extension/providers/ServiceExtensionProvider.js +13 -24
- package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +5 -0
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +3 -1
- package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +1 -1
- package/lib/esm/render/webgl/Target.js +2 -2
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts +2 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +15 -3
- package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +5 -2
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +2 -1
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +2 -0
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +6 -2
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +51 -4
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js +5 -2
- package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
- package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js +5 -2
- 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 +6 -2
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.d.ts +1 -0
- package/lib/esm/tile/map/MapCartoRectangle.d.ts.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js +1 -0
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +2 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +3 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +25 -11
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +14 -9
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +14 -6
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +3 -5
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts +2 -1
- package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js +4 -4
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
- package/lib/esm/tools/ToolAdmin.js +25 -10
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/package.json +25 -25
|
@@ -133,9 +133,9 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
133
133
|
}
|
|
134
134
|
/** @internal */
|
|
135
135
|
get globeMode() { return this.settings.backgroundMap.globeMode; }
|
|
136
|
-
/**
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
/** Settings controlling how the base map is displayed within a view.
|
|
137
|
+
* The base map can be provided by any map imagery source or set to be a single color.
|
|
138
|
+
*/
|
|
139
139
|
get backgroundMapBase() {
|
|
140
140
|
return this.settings.mapImagery.backgroundBase;
|
|
141
141
|
}
|
|
@@ -144,6 +144,8 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
144
144
|
this._synchBackgroundMapImagery();
|
|
145
145
|
}
|
|
146
146
|
/** @internal */
|
|
147
|
+
get backgroundMapLayers() { return this.settings.mapImagery.backgroundLayers; }
|
|
148
|
+
/** @internal */
|
|
147
149
|
get overlayMapLayers() { return this.settings.mapImagery.overlayLayers; }
|
|
148
150
|
/** The settings controlling how a background map is displayed within a view.
|
|
149
151
|
* @see [[ViewFlags.backgroundMap]] for toggling display of the map on or off.
|
|
@@ -161,6 +163,7 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
161
163
|
* ``` ts
|
|
162
164
|
* style.changeBackgroundMapProps({ groundBias: 16.2 });
|
|
163
165
|
* ```
|
|
166
|
+
* @public
|
|
164
167
|
*/
|
|
165
168
|
changeBackgroundMapProps(props) {
|
|
166
169
|
const newSettings = this.backgroundMapSettings.clone(props);
|
|
@@ -315,11 +318,21 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
315
318
|
}
|
|
316
319
|
/** @internal */
|
|
317
320
|
getMapLayers(isOverlay) { return isOverlay ? this.overlayMapLayers : this.backgroundMapLayers; }
|
|
318
|
-
/**
|
|
319
|
-
|
|
320
|
-
|
|
321
|
+
/**
|
|
322
|
+
* Attach a map layer to display style.
|
|
323
|
+
* @param Settings representing the map layer.
|
|
324
|
+
* @param isOverlay true if layer is overlay, otherwise layer is background. Defaults to false.
|
|
325
|
+
* @param index where the layer should be inserted. Defaults to -1, appended to end.
|
|
326
|
+
* @public
|
|
327
|
+
*
|
|
328
|
+
*/
|
|
329
|
+
attachMapLayer(options) {
|
|
330
|
+
var _a, _b;
|
|
331
|
+
const layerSettings = options.settings.clone({});
|
|
321
332
|
if (undefined === layerSettings)
|
|
322
333
|
return;
|
|
334
|
+
const isOverlay = (_a = options.isOverlay) !== null && _a !== void 0 ? _a : false;
|
|
335
|
+
const insertIndex = (_b = options.insertIndex) !== null && _b !== void 0 ? _b : -1;
|
|
323
336
|
const layers = this.getMapLayers(isOverlay);
|
|
324
337
|
if (insertIndex < 0 || insertIndex > (layers.length - 1)) {
|
|
325
338
|
this.getMapLayers(isOverlay).push(layerSettings);
|
|
@@ -330,11 +343,11 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
330
343
|
this._synchBackgroundMapImagery();
|
|
331
344
|
}
|
|
332
345
|
/** @internal */
|
|
333
|
-
|
|
334
|
-
const
|
|
335
|
-
if (undefined ===
|
|
346
|
+
attachMapLayerProps(options) {
|
|
347
|
+
const settings = core_common_1.MapLayerSettings.fromJSON(options.props);
|
|
348
|
+
if (undefined === settings)
|
|
336
349
|
return;
|
|
337
|
-
this.
|
|
350
|
+
this.attachMapLayer({ settings, isOverlay: options.isOverlay, insertIndex: options.insertIndex });
|
|
338
351
|
}
|
|
339
352
|
/** @internal */
|
|
340
353
|
hasAttachedMapLayer(name, source, isOverlay) {
|
|
@@ -347,7 +360,7 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
347
360
|
this.detachMapLayerByIndex(index, isOverlay);
|
|
348
361
|
}
|
|
349
362
|
/** Detach map layer at index (-1 to remove all layers)
|
|
350
|
-
* @
|
|
363
|
+
* @public
|
|
351
364
|
*/
|
|
352
365
|
detachMapLayerByIndex(index, isOverlay) {
|
|
353
366
|
const layers = this.getMapLayers(isOverlay);
|
|
@@ -357,22 +370,31 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
357
370
|
layers.splice(index, 1);
|
|
358
371
|
this._synchBackgroundMapImagery();
|
|
359
372
|
}
|
|
360
|
-
/**
|
|
373
|
+
/**
|
|
374
|
+
* Lookup a maplayer index by name and source.
|
|
375
|
+
* @param name Name of of the layer.
|
|
376
|
+
* @param source Unique string identifying the layer.
|
|
377
|
+
* @param isOverlay true if layer is overlay, otherwise layer is background. Defaults to false.
|
|
378
|
+
* @public
|
|
379
|
+
*
|
|
380
|
+
*/
|
|
361
381
|
findMapLayerIndexByNameAndSource(name, source, isOverlay) {
|
|
362
382
|
return this.getMapLayers(isOverlay).findIndex((layer) => layer.matchesNameAndSource(name, source));
|
|
363
383
|
}
|
|
364
|
-
/** @
|
|
384
|
+
/** @public */
|
|
365
385
|
mapLayerAtIndex(index, isOverlay) {
|
|
366
386
|
const layers = this.getMapLayers(isOverlay);
|
|
367
387
|
return (index < 0 || index >= layers.length) ? undefined : layers[index];
|
|
368
388
|
}
|
|
369
389
|
/** Return map base transparency as a number between 0 and 1.
|
|
370
|
-
* @
|
|
390
|
+
* @public
|
|
371
391
|
*/
|
|
372
392
|
get baseMapTransparency() {
|
|
373
393
|
return this.settings.mapImagery.baseTransparency;
|
|
374
394
|
}
|
|
375
|
-
/**
|
|
395
|
+
/** Change the map base transparency as a number between 0 and 1.
|
|
396
|
+
* @public
|
|
397
|
+
*/
|
|
376
398
|
changeBaseMapTransparency(transparency) {
|
|
377
399
|
if (this.settings.mapImagery.backgroundBase instanceof core_common_1.ColorDef) {
|
|
378
400
|
this.settings.mapImagery.backgroundBase = this.settings.mapImagery.backgroundBase.withTransparency(transparency * 255);
|
|
@@ -382,7 +404,17 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
382
404
|
}
|
|
383
405
|
this._synchBackgroundMapImagery();
|
|
384
406
|
}
|
|
385
|
-
/**
|
|
407
|
+
/** Modify a subset of a map layer settings.
|
|
408
|
+
* @param props props JSON representation of the properties to change. Any properties not present will retain their current values.
|
|
409
|
+
* @param index where the layer should be inserted.
|
|
410
|
+
* @param isOverlay true if layer is overlay, otherwise layer is background.
|
|
411
|
+
*
|
|
412
|
+
* Example that changes only the visibility of the first overlay map layer.
|
|
413
|
+
* ``` ts
|
|
414
|
+
* style.changeMapLayerProps({ visible: false }, 0, false);
|
|
415
|
+
* ```
|
|
416
|
+
* @public
|
|
417
|
+
*/
|
|
386
418
|
changeMapLayerProps(props, index, isOverlay) {
|
|
387
419
|
const layers = this.getMapLayers(isOverlay);
|
|
388
420
|
if (index < 0 || index >= layers.length)
|
|
@@ -390,6 +422,7 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
390
422
|
layers[index] = layers[index].clone(props);
|
|
391
423
|
this._synchBackgroundMapImagery();
|
|
392
424
|
}
|
|
425
|
+
/** @public */
|
|
393
426
|
changeMapLayerCredentials(index, isOverlay, userName, password) {
|
|
394
427
|
const layers = this.getMapLayers(isOverlay);
|
|
395
428
|
if (index < 0 || index >= layers.length)
|
|
@@ -400,6 +433,14 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
400
433
|
this._synchBackgroundMapImagery();
|
|
401
434
|
}
|
|
402
435
|
}
|
|
436
|
+
/** Modify a subset of a sub-layer settings.
|
|
437
|
+
* @param props props JSON representation of the properties to change. Any properties not present will retain their current values.
|
|
438
|
+
* @param subLayerId Id of the sub-layer that should be modified.
|
|
439
|
+
* @param layerIndex of the owning map layer.
|
|
440
|
+
* @param isOverlay true if the map layer is overlay, otherwise layer is background
|
|
441
|
+
*
|
|
442
|
+
* @public
|
|
443
|
+
*/
|
|
403
444
|
changeMapSubLayerProps(props, subLayerId, layerIndex, isOverlay) {
|
|
404
445
|
const mapLayerSettings = this.mapLayerAtIndex(layerIndex, isOverlay);
|
|
405
446
|
if (undefined === mapLayerSettings)
|
|
@@ -414,7 +455,12 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
414
455
|
}
|
|
415
456
|
this.changeMapLayerProps({ subLayers }, layerIndex, isOverlay);
|
|
416
457
|
}
|
|
417
|
-
/**
|
|
458
|
+
/** Returns the cartographic range of map layer.
|
|
459
|
+
* @param layerIndex of the map layer.
|
|
460
|
+
* @param isOverlay true if the map layer is overlay, otherwise layer is background
|
|
461
|
+
*
|
|
462
|
+
* @internal
|
|
463
|
+
*/
|
|
418
464
|
async getMapLayerRange(layerIndex, isOverlay) {
|
|
419
465
|
var _a;
|
|
420
466
|
const mapLayerSettings = this.mapLayerAtIndex(layerIndex, isOverlay);
|
|
@@ -468,7 +514,7 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
468
514
|
* Move map layer to top.
|
|
469
515
|
* @param index index of layer to move.
|
|
470
516
|
* @param isOverlay true if layer is overlay.
|
|
471
|
-
* @
|
|
517
|
+
* @public
|
|
472
518
|
*
|
|
473
519
|
*/
|
|
474
520
|
moveMapLayerToTop(index, isOverlay) {
|
|
@@ -483,7 +529,7 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
483
529
|
* Move map layer to bottom.
|
|
484
530
|
* @param index index of layer to move.
|
|
485
531
|
* @param isOverlay true if layer is overlay.
|
|
486
|
-
* @
|
|
532
|
+
* @public
|
|
487
533
|
*/
|
|
488
534
|
moveMapLayerToBottom(index, isOverlay) {
|
|
489
535
|
const layers = this.getMapLayers(isOverlay);
|
|
@@ -497,7 +543,7 @@ class DisplayStyleState extends EntityState_1.ElementState {
|
|
|
497
543
|
* Reorder map layers
|
|
498
544
|
* @param fromIndex index of map layer to move
|
|
499
545
|
* @param toIndex insert index. If equal to length of map array the map layer is moved to end of array.
|
|
500
|
-
* @
|
|
546
|
+
* @public
|
|
501
547
|
*/
|
|
502
548
|
moveMapLayerToIndex(fromIndex, toIndex, isOverlay) {
|
|
503
549
|
const layers = this.getMapLayers(isOverlay);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayStyleState.js","sourceRoot":"","sources":["../../src/DisplayStyleState.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 Views\r\n */\r\nimport { assert, BeEvent, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Angle, Range1d, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n BackgroundMapProps, BackgroundMapProvider, BackgroundMapProviderProps, BackgroundMapSettings,\r\n BaseLayerSettings, BaseMapLayerSettings, CartographicRange, ColorDef, ContextRealityModelProps, DisplayStyle3dSettings, DisplayStyle3dSettingsProps,\r\n DisplayStyleProps, DisplayStyleSettings, Environment, FeatureAppearance, GlobeMode, ImageMapLayerSettings, LightSettings, MapLayerProps,\r\n MapLayerSettings, MapSubLayerProps, ModelMapLayerSettings, RenderSchedule, RenderTimelineProps,\r\n SolarShadowSettings, SubCategoryOverride, SubLayerId, TerrainHeightOriginMode, ThematicDisplay, ThematicDisplayMode, ThematicGradientMode, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { ApproximateTerrainHeights } from \"./ApproximateTerrainHeights\";\r\nimport { BackgroundMapGeometry } from \"./BackgroundMapGeometry\";\r\nimport { ContextRealityModelState } from \"./ContextRealityModelState\";\r\nimport { ElementState } from \"./EntityState\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { PlanarClipMaskState } from \"./PlanarClipMaskState\";\r\nimport { RenderScheduleState } from \"./RenderScheduleState\";\r\nimport { getCesiumOSMBuildingsUrl, MapCartoRectangle, TileTreeReference } from \"./tile/internal\";\r\nimport { viewGlobalLocation, ViewGlobalLocationConstants } from \"./ViewGlobalLocation\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\nimport { GeometricModelState } from \"./ModelState\";\r\n\r\n/** @internal */\r\nexport class TerrainDisplayOverrides {\r\n public wantSkirts?: boolean;\r\n public wantNormals?: boolean;\r\n public produceGeometry?: boolean;\r\n}\r\n\r\n/** Options controlling display of [OpenStreetMap Buildings](https://cesium.com/platform/cesium-ion/content/cesium-osm-buildings/).\r\n * @see [[DisplayStyleState.setOSMBuildingDisplay]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface OsmBuildingDisplayOptions {\r\n /** If defined, enables or disables display of the buildings by attaching or detaching the OpenStreetMap Buildings reality model. */\r\n onOff?: boolean;\r\n /** If defined, overrides aspects of the appearance of the OpenStreetMap building meshes. */\r\n appearanceOverrides?: FeatureAppearance;\r\n}\r\n\r\n/** A DisplayStyle defines the parameters for 'styling' the contents of a [[ViewState]].\r\n * @public\r\n * @extensions\r\n */\r\nexport abstract class DisplayStyleState extends ElementState implements DisplayStyleProps {\r\n /** @internal */\r\n public static override get className() { return \"DisplayStyle\"; }\r\n private _scheduleState?: RenderScheduleState;\r\n private _ellipsoidMapGeometry: BackgroundMapGeometry | undefined;\r\n private _attachedRealityModelPlanarClipMasks = new Map<Id64String, PlanarClipMaskState>();\r\n /** @internal */\r\n protected _queryRenderTimelinePropsPromise?: Promise<RenderTimelineProps | undefined>;\r\n\r\n /** Event raised just before the [[scheduleScriptReference]] property is changed. */\r\n public readonly onScheduleScriptReferenceChanged = new BeEvent<(newScriptReference: RenderSchedule.ScriptReference | undefined) => void>();\r\n /** Event raised just after [[setOSMBuildingDisplay]] changes the enabled state of the OSM buildings. */\r\n public readonly onOSMBuildingDisplayChanged = new BeEvent<(osmBuildingDisplayEnabled: boolean) => void>();\r\n\r\n /** The container for this display style's settings. */\r\n public abstract get settings(): DisplayStyleSettings;\r\n\r\n /** @internal */\r\n public abstract overrideTerrainDisplay(): TerrainDisplayOverrides | undefined;\r\n\r\n /** Construct a new DisplayStyleState from its JSON representation.\r\n * @param props JSON representation of the display style.\r\n * @param iModel IModelConnection containing the display style.\r\n * @param source If the constructor is being invoked from [[EntityState.clone]], the display style that is being cloned.\r\n */\r\n constructor(props: DisplayStyleProps, iModel: IModelConnection, source?: DisplayStyleState) {\r\n super(props, iModel);\r\n const styles = this.jsonProperties.styles;\r\n\r\n if (source)\r\n this._scheduleState = source._scheduleState;\r\n\r\n if (styles) {\r\n // ###TODO Use DisplayStyleSettings.planarClipMasks\r\n if (styles.planarClipOvr)\r\n for (const planarClipOvr of styles.planarClipOvr)\r\n if (Id64.isValid(planarClipOvr.modelId))\r\n this._attachedRealityModelPlanarClipMasks.set(planarClipOvr.modelId, PlanarClipMaskState.fromJSON(planarClipOvr));\r\n }\r\n }\r\n\r\n /** Ensures all of the data required by the display style is loaded. This method is invoked for you by [[ViewState.load]], but if\r\n * you obtain a display style by some other means you should `await` this method before using the display style.\r\n */\r\n public async load(): Promise<void> {\r\n // If we were cloned, we may already have a valid schedule state, and our display style Id may be invalid / different.\r\n // Preserve it if still usable.\r\n if (this._scheduleState) {\r\n if (this.settings.renderTimeline === this._scheduleState.sourceId) {\r\n // The script came from the same RenderTimeline element. Keep it.\r\n return;\r\n }\r\n\r\n if (undefined === this.settings.renderTimeline) {\r\n // The script cam from a display style's JSON properties. Keep it if (1) this style is not persistent or (2) this style has the same Id\r\n if (this.id === this._scheduleState.sourceId || !Id64.isValidId64(this.id))\r\n return;\r\n }\r\n }\r\n\r\n if (undefined !== this.settings.renderTimeline)\r\n await this.loadScheduleStateFromTimeline(this.settings.renderTimeline);\r\n else\r\n this.loadScheduleStateFromScript(this.settings.scheduleScriptProps); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n private loadScheduleStateFromScript(scriptProps: Readonly<RenderSchedule.ScriptProps> | undefined): void {\r\n let newState;\r\n if (scriptProps) {\r\n try {\r\n const script = RenderSchedule.Script.fromJSON(scriptProps);\r\n if (script)\r\n newState = new RenderScheduleState(this.id, script);\r\n } catch (_) {\r\n // schedule state is undefined.\r\n }\r\n }\r\n\r\n if (newState !== this._scheduleState) {\r\n this.onScheduleScriptReferenceChanged.raiseEvent(newState);\r\n this._scheduleState = newState;\r\n }\r\n }\r\n\r\n private async loadScheduleStateFromTimeline(timelineId: Id64String): Promise<void> {\r\n let newState;\r\n try {\r\n // If a subsequent call to loadScheduleStateFromTimeline is made while we're awaiting this one, we'll abort this one.\r\n const promise = this._queryRenderTimelinePropsPromise = this.queryRenderTimelineProps(timelineId);\r\n const timeline = await promise;\r\n if (promise !== this._queryRenderTimelinePropsPromise)\r\n return;\r\n\r\n if (timeline) {\r\n const scriptProps = JSON.parse(timeline.script);\r\n const script = RenderSchedule.Script.fromJSON(scriptProps);\r\n if (script)\r\n newState = new RenderScheduleState(timelineId, script);\r\n }\r\n } catch (_) {\r\n // schedule state is undefined.\r\n }\r\n\r\n this._queryRenderTimelinePropsPromise = undefined;\r\n if (newState !== this._scheduleState) {\r\n this.onScheduleScriptReferenceChanged.raiseEvent(newState);\r\n this._scheduleState = newState;\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected async queryRenderTimelineProps(timelineId: Id64String): Promise<RenderTimelineProps | undefined> {\r\n try {\r\n return await this.iModel.elements.loadProps(timelineId, { renderTimeline: { omitScriptElementIds: true } }) as RenderTimelineProps;\r\n } catch (_) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get displayTerrain() {\r\n return this.viewFlags.backgroundMap && this.settings.backgroundMap.applyTerrain;\r\n }\r\n\r\n /** @internal */\r\n public get globeMode(): GlobeMode { return this.settings.backgroundMap.globeMode; }\r\n\r\n /** @internal */\r\n public get backgroundMapLayers(): MapLayerSettings[] { return this.settings.mapImagery.backgroundLayers; }\r\n\r\n /** @beta */\r\n public get backgroundMapBase(): BaseLayerSettings {\r\n return this.settings.mapImagery.backgroundBase;\r\n }\r\n public set backgroundMapBase(base: BaseLayerSettings) {\r\n this.settings.mapImagery.backgroundBase = base;\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @internal */\r\n public get overlayMapLayers(): MapLayerSettings[] { return this.settings.mapImagery.overlayLayers; }\r\n\r\n /** The settings controlling how a background map is displayed within a view.\r\n * @see [[ViewFlags.backgroundMap]] for toggling display of the map on or off.\r\n */\r\n public get backgroundMapSettings(): BackgroundMapSettings { return this.settings.backgroundMap; }\r\n public set backgroundMapSettings(settings: BackgroundMapSettings) {\r\n this.settings.backgroundMap = settings;\r\n }\r\n\r\n /** Modify a subset of the background map display settings.\r\n * @param name props JSON representation of the properties to change. Any properties not present will retain their current values in `this.backgroundMapSettings`.\r\n * @see [[ViewFlags.backgroundMap]] for toggling display of the map.\r\n * @see [[changeBackgroundMapProvider]] to change the type of map imagery displayed.\r\n *\r\n * Example that changes only the elevation, leaving the provider and type unchanged:\r\n * ``` ts\r\n * style.changeBackgroundMapProps({ groundBias: 16.2 });\r\n * ```\r\n */\r\n public changeBackgroundMapProps(props: BackgroundMapProps): void {\r\n const newSettings = this.backgroundMapSettings.clone(props);\r\n this.backgroundMapSettings = newSettings;\r\n }\r\n\r\n /** Change aspects of the [BackgroundMapProvider]($common) from which background map imagery is obtained.\r\n * Any properties not explicitly specified by `props` will retain their current values.\r\n * @public\r\n */\r\n public changeBackgroundMapProvider(props: BackgroundMapProviderProps): void {\r\n const base = this.settings.mapImagery.backgroundBase;\r\n if (base instanceof ColorDef) {\r\n this.settings.mapImagery.backgroundBase = BaseMapLayerSettings.fromProvider(BackgroundMapProvider.fromJSON(props));\r\n } else {\r\n const provider = base.provider ? base.provider.clone(props) : BackgroundMapProvider.fromJSON(props);\r\n this.settings.mapImagery.backgroundBase = base.cloneWithProvider(provider);\r\n }\r\n\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** Call a function for each reality model attached to this display style.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common).\r\n */\r\n public forEachRealityModel(func: (model: ContextRealityModelState) => void): void {\r\n for (const model of this.settings.contextRealityModels.models) {\r\n assert(model instanceof ContextRealityModelState);\r\n func(model);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public forEachRealityTileTreeRef(func: (ref: TileTreeReference) => void): void {\r\n this.forEachRealityModel((model) => func(model.treeRef));\r\n }\r\n\r\n /** @internal */\r\n public forEachTileTreeRef(func: (ref: TileTreeReference) => void): void {\r\n this.forEachRealityTileTreeRef(func);\r\n }\r\n\r\n /** Performs logical comparison against another display style. Two display styles are logically equivalent if they have the same name, Id, and settings.\r\n * @param other The display style to which to compare.\r\n * @returns true if the specified display style is logically equivalent to this display style - i.e., both styles have the same values for all of their settings.\r\n */\r\n public equalState(other: DisplayStyleState): boolean {\r\n if (this.name !== other.name || this.id !== other.id)\r\n return false;\r\n else\r\n return JSON.stringify(this.settings) === JSON.stringify(other.settings);\r\n }\r\n\r\n /** The name of this DisplayStyle */\r\n public get name(): string { return this.code.value; }\r\n\r\n /** Change the Id of the [RenderTimeline]($backend) element that hosts the [RenderSchedule.Script]($common) to be applied by this display style for\r\n * animating the contents of the view, and update [[scheduleScriptReference]] using the script associated with the [RenderTimeline]($backend) element.\r\n * @see [DisplayStyleSettings.renderTimeline]($common).\r\n */\r\n public async changeRenderTimeline(timelineId: Id64String | undefined): Promise<void> {\r\n // Potentially trigger async loading of new schedule state.\r\n this.settings.renderTimeline = timelineId;\r\n\r\n // Await async loading if necessary.\r\n // Note the `await` in loadScheduleStateFromTimeline will resolve before this one [per the spec](https://262.ecma-international.org/6.0/#sec-triggerpromisereactions).\r\n if (this._queryRenderTimelinePropsPromise)\r\n await this._queryRenderTimelinePropsPromise;\r\n }\r\n\r\n /** The [RenderSchedule.Script]($common) that animates the contents of the view, if any.\r\n * @see [[changeRenderTimeline]] to change the script.\r\n */\r\n public get scheduleScript(): RenderSchedule.Script | undefined {\r\n return this._scheduleState?.script;\r\n }\r\n\r\n /** The [RenderSchedule.Script]($common) that animates the contents of the view, if any, along with the Id of the element that hosts the script.\r\n * @note The host element may be a [RenderTimeline]($backend) or a [DisplayStyle]($backend).\r\n * @see [[changeRenderTimeline]] to change the script.\r\n */\r\n public get scheduleScriptReference(): RenderSchedule.ScriptReference | undefined {\r\n return this._scheduleState;\r\n }\r\n\r\n /** @internal */\r\n public get scheduleState(): RenderScheduleState | undefined {\r\n return this._scheduleState;\r\n }\r\n\r\n /** This is only used by [RealityTransitionTool]($frontend-devtools). It basically can only work if the script contains nothing that requires special tiles to be generated -\r\n * no symbology changes, transforms, or clipping - because the backend tile generator requires a *persistent* element to host the script for those features to work.\r\n * @internal\r\n */\r\n public setScheduleState(state: RenderScheduleState | undefined): void {\r\n if (state === this._scheduleState)\r\n return;\r\n\r\n this.onScheduleScriptReferenceChanged.raiseEvent(state);\r\n this._scheduleState = state;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.settings.scheduleScriptProps = state?.script.toJSON();\r\n }\r\n\r\n /** Attach a [ContextRealityModel]($common) to this display style.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common).\r\n * @see [ContextRealityModels.add]($common)\r\n */\r\n public attachRealityModel(props: ContextRealityModelProps): ContextRealityModelState {\r\n const model = this.settings.contextRealityModels.add(props);\r\n assert(model instanceof ContextRealityModelState);\r\n return model;\r\n }\r\n\r\n /** Detach the first [ContextRealityModel]($common) that matches the specified name and url.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common)\r\n * @see [ContextRealityModels.delete]($common)\r\n */\r\n public detachRealityModelByNameAndUrl(name: string, url: string): boolean {\r\n const model = this.settings.contextRealityModels.models.find((x) => x.matchesNameAndUrl(name, url));\r\n return undefined !== model && this.settings.contextRealityModels.delete(model);\r\n }\r\n\r\n /** Get the [[ContextRealityModelState]] that displays the OpenStreetMap worldwide building layer, if enabled.\r\n * @see [[setOSMBuildingDisplay]]\r\n */\r\n public getOSMBuildingRealityModel(): ContextRealityModelState | undefined {\r\n if (!this.iModel.isGeoLocated || this.globeMode !== GlobeMode.Ellipsoid) // The OSM tile tree is ellipsoidal.\r\n return undefined;\r\n\r\n const url = getCesiumOSMBuildingsUrl();\r\n if (undefined === url)\r\n return undefined;\r\n\r\n return this.contextRealityModelStates.find((x) => x.url === url);\r\n }\r\n\r\n /** Set the display of the OpenStreetMap worldwide building layer in this display style by attaching or detaching the reality model displaying the buildings.\r\n * The OSM buildings are displayed from a reality model aggregated and served from Cesium ion.<(https://cesium.com/content/cesium-osm-buildings/>\r\n * The options [[OsmBuildingDisplayOptions]] control the display and appearance overrides.\r\n */\r\n public setOSMBuildingDisplay(options: OsmBuildingDisplayOptions): boolean {\r\n if (!this.iModel.isGeoLocated || this.globeMode !== GlobeMode.Ellipsoid) // The OSM tile tree is ellipsoidal.\r\n return false;\r\n\r\n const url = getCesiumOSMBuildingsUrl();\r\n if (undefined === url)\r\n return false;\r\n\r\n let model = this.settings.contextRealityModels.models.find((x) => x.url === url);\r\n if (options.onOff === false) {\r\n const turnedOff = undefined !== model && this.settings.contextRealityModels.delete(model);\r\n if (turnedOff)\r\n this.onOSMBuildingDisplayChanged.raiseEvent(false);\r\n\r\n return turnedOff;\r\n }\r\n\r\n if (!model) {\r\n const name = IModelApp.localization.getLocalizedString(\"iModelJs:RealityModelNames.OSMBuildings\");\r\n model = this.attachRealityModel({ tilesetUrl: url, name });\r\n this.onOSMBuildingDisplayChanged.raiseEvent(true);\r\n }\r\n\r\n if (options.appearanceOverrides)\r\n model.appearanceOverrides = options.appearanceOverrides;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Return if a context reality model is attached.\r\n * @see [[ContextRealityModelProps]].\r\n * */\r\n public hasAttachedRealityModel(name: string, url: string): boolean {\r\n return undefined !== this.settings.contextRealityModels.models.find((x) => x.matchesNameAndUrl(name, url));\r\n }\r\n\r\n /** @internal */\r\n public getMapLayers(isOverlay: boolean) { return isOverlay ? this.overlayMapLayers : this.backgroundMapLayers; }\r\n\r\n /** @internal */\r\n public attachMapLayerSettings(settings: MapLayerSettings, isOverlay: boolean, insertIndex = -1): void {\r\n const layerSettings = settings.clone({});\r\n if (undefined === layerSettings)\r\n return;\r\n\r\n const layers = this.getMapLayers(isOverlay);\r\n\r\n if (insertIndex < 0 || insertIndex > (layers.length - 1)) {\r\n this.getMapLayers(isOverlay).push(layerSettings);\r\n } else {\r\n layers.splice(insertIndex, 0, layerSettings);\r\n }\r\n\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @internal */\r\n public attachMapLayer(props: MapLayerProps, isOverlay: boolean, insertIndex = -1): void {\r\n const layerSettings = MapLayerSettings.fromJSON(props);\r\n if (undefined === layerSettings)\r\n return;\r\n\r\n this.attachMapLayerSettings(layerSettings, isOverlay, insertIndex);\r\n }\r\n\r\n /** @internal */\r\n public hasAttachedMapLayer(name: string, source: string, isOverlay: boolean): boolean {\r\n return -1 !== this.findMapLayerIndexByNameAndSource(name, source, isOverlay);\r\n }\r\n\r\n /** @internal */\r\n public detachMapLayerByNameAndSource(name: string, source: string, isOverlay: boolean): void {\r\n const index = this.findMapLayerIndexByNameAndSource(name, source, isOverlay);\r\n if (- 1 !== index)\r\n this.detachMapLayerByIndex(index, isOverlay);\r\n }\r\n\r\n /** Detach map layer at index (-1 to remove all layers)\r\n * @internal\r\n */\r\n public detachMapLayerByIndex(index: number, isOverlay: boolean): void {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index < 0)\r\n layers.length = 0;\r\n else\r\n layers.splice(index, 1);\r\n\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @internal */\r\n public findMapLayerIndexByNameAndSource(name: string, source: string, isOverlay: boolean) {\r\n return this.getMapLayers(isOverlay).findIndex((layer) => layer.matchesNameAndSource(name, source));\r\n }\r\n\r\n /** @internal */\r\n public mapLayerAtIndex(index: number, isOverlay: boolean): MapLayerSettings | undefined {\r\n const layers = this.getMapLayers(isOverlay);\r\n return (index < 0 || index >= layers.length) ? undefined : layers[index];\r\n }\r\n\r\n /** Return map base transparency as a number between 0 and 1.\r\n * @internal\r\n */\r\n public get baseMapTransparency(): number {\r\n return this.settings.mapImagery.baseTransparency;\r\n }\r\n\r\n /** @internal */\r\n public changeBaseMapTransparency(transparency: number) {\r\n if (this.settings.mapImagery.backgroundBase instanceof ColorDef) {\r\n this.settings.mapImagery.backgroundBase = this.settings.mapImagery.backgroundBase.withTransparency(transparency * 255);\r\n } else {\r\n this.settings.mapImagery.backgroundBase = this.settings.mapImagery.backgroundBase.clone({transparency});\r\n }\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @internal */\r\n public changeMapLayerProps(props: Partial<MapLayerProps>, index: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index < 0 || index >= layers.length)\r\n return;\r\n layers[index] = layers[index].clone(props);\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n public changeMapLayerCredentials(index: number, isOverlay: boolean, userName?: string, password?: string,) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index < 0 || index >= layers.length)\r\n return;\r\n const layer = layers[index];\r\n if (layer instanceof ImageMapLayerSettings) {\r\n layer.setCredentials(userName, password);\r\n this._synchBackgroundMapImagery();\r\n }\r\n }\r\n\r\n public changeMapSubLayerProps(props: Partial<MapSubLayerProps>, subLayerId: SubLayerId, layerIndex: number, isOverlay: boolean) {\r\n const mapLayerSettings = this.mapLayerAtIndex(layerIndex, isOverlay);\r\n if (undefined === mapLayerSettings)\r\n return;\r\n\r\n if (!(mapLayerSettings instanceof ImageMapLayerSettings)) {\r\n assert (false);\r\n return;\r\n }\r\n\r\n const subLayers = new Array<MapSubLayerProps>();\r\n for (const subLayer of mapLayerSettings.subLayers) {\r\n subLayers.push((subLayerId === -1 || subLayer.id === subLayerId) ? subLayer.clone(props).toJSON() : subLayer.toJSON());\r\n }\r\n\r\n this.changeMapLayerProps({ subLayers }, layerIndex, isOverlay);\r\n }\r\n\r\n /** @internal */\r\n public async getMapLayerRange(layerIndex: number, isOverlay: boolean): Promise<MapCartoRectangle | undefined> {\r\n const mapLayerSettings = this.mapLayerAtIndex(layerIndex, isOverlay);\r\n if (undefined === mapLayerSettings)\r\n return undefined;\r\n\r\n if (mapLayerSettings instanceof ModelMapLayerSettings) {\r\n const ecefTransform = this.iModel.ecefLocation?.getTransform();\r\n if (!ecefTransform)\r\n return undefined;\r\n const model = this.iModel.models.getLoaded(mapLayerSettings.modelId);\r\n if (!model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const modelRange = await model.queryModelRange();\r\n const cartoRange = new CartographicRange(modelRange, ecefTransform).getLongitudeLatitudeBoundingBox();\r\n\r\n return MapCartoRectangle.create(cartoRange.low.x, cartoRange.low.y, cartoRange.high.x, cartoRange.high.y);\r\n }\r\n if (! (mapLayerSettings instanceof ImageMapLayerSettings)) {\r\n assert(false);\r\n return undefined;\r\n }\r\n\r\n const imageryProvider = IModelApp.mapLayerFormatRegistry.createImageryProvider(mapLayerSettings);\r\n if (undefined === imageryProvider)\r\n return undefined;\r\n\r\n try {\r\n await imageryProvider.initialize();\r\n return imageryProvider.cartoRange;\r\n\r\n } catch (_error) {\r\n return undefined;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** change viewport to include range of map layer.\r\n * @internal\r\n */\r\n public async viewMapLayerRange(layerIndex: number, isOverlay: boolean, vp: ScreenViewport): Promise<boolean> {\r\n const range = await this.getMapLayerRange(layerIndex, isOverlay);\r\n if (!range)\r\n return false;\r\n\r\n if (range.xLength() > 1.5 * Angle.piRadians)\r\n viewGlobalLocation(vp, true, ViewGlobalLocationConstants.satelliteHeightAboveEarthInMeters, undefined, undefined);\r\n else\r\n viewGlobalLocation(vp, true, undefined, undefined, range.globalLocation);\r\n\r\n return true;\r\n }\r\n\r\n /* @internal */\r\n private _synchBackgroundMapImagery() {\r\n this.settings.synchMapImagery();\r\n }\r\n\r\n /**\r\n * Move map layer to top.\r\n * @param index index of layer to move.\r\n * @param isOverlay true if layer is overlay.\r\n * @internal\r\n *\r\n */\r\n public moveMapLayerToTop(index: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index >= 0 && index < layers.length - 1) {\r\n const layer = layers.splice(index, 1);\r\n layers.push(layer[0]);\r\n this._synchBackgroundMapImagery();\r\n }\r\n }\r\n\r\n /**\r\n * Move map layer to bottom.\r\n * @param index index of layer to move.\r\n * @param isOverlay true if layer is overlay.\r\n * @internal\r\n */\r\n public moveMapLayerToBottom(index: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index > 0 && index < layers.length) {\r\n const layer = layers.splice(index, 1);\r\n layers.unshift(layer[0]);\r\n this._synchBackgroundMapImagery();\r\n }\r\n }\r\n\r\n /**\r\n * Reorder map layers\r\n * @param fromIndex index of map layer to move\r\n * @param toIndex insert index. If equal to length of map array the map layer is moved to end of array.\r\n * @internal\r\n */\r\n public moveMapLayerToIndex(fromIndex: number, toIndex: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (fromIndex === toIndex)\r\n return;\r\n\r\n if (fromIndex < 0 || fromIndex >= layers.length || toIndex > layers.length)\r\n return;\r\n\r\n const layer = layers.splice(fromIndex, 1);\r\n layers.splice(toIndex, 0, layer[0]); // note: if toIndex === settings.mapImagery.backgroundLayers.length item is appended\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** Flags controlling various aspects of the display style.\r\n * @see [DisplayStyleSettings.viewFlags]($common)\r\n */\r\n public get viewFlags(): ViewFlags { return this.settings.viewFlags; }\r\n public set viewFlags(flags: ViewFlags) { this.settings.viewFlags = flags; }\r\n\r\n /** The background color for this DisplayStyle */\r\n public get backgroundColor(): ColorDef { return this.settings.backgroundColor; }\r\n public set backgroundColor(val: ColorDef) { this.settings.backgroundColor = val; }\r\n\r\n /** The color used to draw geometry in monochrome mode.\r\n * @see [ViewFlags.monochrome]($common) for enabling monochrome mode.\r\n */\r\n public get monochromeColor(): ColorDef { return this.settings.monochromeColor; }\r\n public set monochromeColor(val: ColorDef) { this.settings.monochromeColor = val; }\r\n\r\n private _backgroundMapGeometry?: {\r\n bimElevationBias: number;\r\n geometry: BackgroundMapGeometry;\r\n globeMode: GlobeMode;\r\n };\r\n\r\n /** @internal */\r\n public anyMapLayersVisible(overlay: boolean): boolean {\r\n const layers = this.getMapLayers(overlay);\r\n\r\n for (const mapLayer of layers)\r\n if (mapLayer.visible)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /** @internal */\r\n public getIsBackgroundMapVisible(): boolean {\r\n return undefined !== this.iModel.ecefLocation && (this.viewFlags.backgroundMap || this.anyMapLayersVisible(false));\r\n }\r\n /** @internal */\r\n public get backgroundMapElevationBias(): number | undefined {\r\n if (this.backgroundMapSettings.applyTerrain) {\r\n const terrainSettings = this.backgroundMapSettings.terrainSettings;\r\n switch (terrainSettings.heightOriginMode) {\r\n case TerrainHeightOriginMode.Ground:\r\n return (undefined === this.iModel.projectCenterAltitude) ? undefined : terrainSettings.heightOrigin + terrainSettings.exaggeration * this.iModel.projectCenterAltitude;\r\n\r\n case TerrainHeightOriginMode.Geodetic:\r\n return terrainSettings.heightOrigin;\r\n\r\n case TerrainHeightOriginMode.Geoid:\r\n return (undefined === this.iModel.geodeticToSeaLevel) ? undefined : terrainSettings.heightOrigin + this.iModel.geodeticToSeaLevel;\r\n }\r\n } else {\r\n return this.backgroundMapSettings.groundBias;\r\n }\r\n\r\n }\r\n\r\n /** @internal */\r\n public getBackgroundMapGeometry(): BackgroundMapGeometry | undefined {\r\n if (undefined === this.iModel.ecefLocation)\r\n return undefined;\r\n\r\n const bimElevationBias = this.backgroundMapElevationBias;\r\n\r\n if (undefined === bimElevationBias)\r\n return undefined;\r\n\r\n const globeMode = this.globeMode;\r\n if (undefined === this._backgroundMapGeometry || this._backgroundMapGeometry.globeMode !== globeMode || this._backgroundMapGeometry.bimElevationBias !== bimElevationBias) {\r\n const geometry = new BackgroundMapGeometry(bimElevationBias, globeMode, this.iModel);\r\n this._backgroundMapGeometry = { bimElevationBias, geometry, globeMode };\r\n }\r\n return this._backgroundMapGeometry.geometry;\r\n }\r\n\r\n /** [[ContextRealityModelState]]s attached to this display style.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common).\r\n */\r\n public get contextRealityModelStates(): ReadonlyArray<ContextRealityModelState> {\r\n return this.settings.contextRealityModels.models as ContextRealityModelState[];\r\n }\r\n\r\n /** @internal */\r\n public getGlobalGeometryAndHeightRange(): { geometry: BackgroundMapGeometry, heightRange: Range1d } | undefined {\r\n let geometry = this.getIsBackgroundMapVisible() ? this.getBackgroundMapGeometry() : undefined;\r\n const terrainRange = ApproximateTerrainHeights.instance.globalHeightRange;\r\n let heightRange = this.displayTerrain ? terrainRange : Range1d.createXX(-1, 1);\r\n if (this.globeMode === GlobeMode.Ellipsoid && this.contextRealityModelStates.find((model) => model.isGlobal)) {\r\n if (!geometry) {\r\n if (!this._ellipsoidMapGeometry)\r\n this._ellipsoidMapGeometry = new BackgroundMapGeometry(0, GlobeMode.Ellipsoid, this.iModel);\r\n\r\n geometry = this._ellipsoidMapGeometry;\r\n }\r\n\r\n heightRange = terrainRange;\r\n }\r\n\r\n return geometry ? { geometry, heightRange } : undefined;\r\n }\r\n\r\n /** Returns true if this is a 3d display style. */\r\n public is3d(): this is DisplayStyle3dState { return this instanceof DisplayStyle3dState; }\r\n\r\n /** Customize the way geometry belonging to a [[SubCategory]] is drawn by this display style.\r\n * @param id The ID of the SubCategory whose appearance is to be overridden.\r\n * @param ovr The overrides to apply to the [[SubCategoryAppearance]].\r\n * @see [[dropSubCategoryOverride]]\r\n */\r\n public overrideSubCategory(id: Id64String, ovr: SubCategoryOverride) { this.settings.overrideSubCategory(id, ovr); }\r\n\r\n /** Remove any [[SubCategoryOverride]] applied to a [[SubCategoryAppearance]] by this style.\r\n * @param id The ID of the [[SubCategory]].\r\n * @see [[overrideSubCategory]]\r\n */\r\n public dropSubCategoryOverride(id: Id64String) { this.settings.dropSubCategoryOverride(id); }\r\n\r\n /** Returns true if an [[SubCategoryOverride]]s are defined by this style. */\r\n public get hasSubCategoryOverride() { return this.settings.hasSubCategoryOverride; }\r\n\r\n /** Obtain the overrides applied to a [[SubCategoryAppearance]] by this style.\r\n * @param id The ID of the [[SubCategory]].\r\n * @returns The corresponding SubCategoryOverride, or undefined if the SubCategory's appearance is not overridden.\r\n * @see [[overrideSubCategory]]\r\n */\r\n public getSubCategoryOverride(id: Id64String): SubCategoryOverride | undefined { return this.settings.getSubCategoryOverride(id); }\r\n\r\n /** @internal */\r\n public get wantShadows(): boolean {\r\n return this.is3d() && this.viewFlags.shadows && false !== IModelApp.renderSystem.options.displaySolarShadows;\r\n }\r\n\r\n /** @internal */\r\n protected registerSettingsEventListeners(): void {\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.settings.onScheduleScriptPropsChanged.addListener((scriptProps) => {\r\n if (undefined === this.settings.renderTimeline)\r\n this.loadScheduleStateFromScript(scriptProps);\r\n });\r\n\r\n this.settings.onRenderTimelineChanged.addListener((newTimeline) => {\r\n // Cancel any in-progress loading of script from timeline.\r\n this._queryRenderTimelinePropsPromise = undefined;\r\n\r\n if (undefined !== newTimeline)\r\n this.loadScheduleStateFromTimeline(newTimeline); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n else\r\n this.loadScheduleStateFromScript(this.settings.scheduleScriptProps); // eslint-disable-line deprecation/deprecation\r\n });\r\n\r\n this.settings.onPlanarClipMaskChanged.addListener((id, newSettings) => {\r\n if (newSettings)\r\n this._attachedRealityModelPlanarClipMasks.set(id, PlanarClipMaskState.create(newSettings));\r\n else\r\n this._attachedRealityModelPlanarClipMasks.delete(id);\r\n });\r\n }\r\n\r\n /** @internal */\r\n protected createRealityModel(props: ContextRealityModelProps): ContextRealityModelState {\r\n return new ContextRealityModelState(props, this.iModel, this);\r\n }\r\n\r\n /** @internal */\r\n public getPlanarClipMaskState(modelId: Id64String): PlanarClipMaskState | undefined {\r\n const model = this.iModel.models.getLoaded(modelId)?.asSpatialModel;\r\n return (model && model.isRealityModel) ? this._attachedRealityModelPlanarClipMasks.get(modelId) : undefined;\r\n }\r\n}\r\n\r\n/** A display style that can be applied to 2d views.\r\n * @public\r\n * @extensions\r\n */\r\nexport class DisplayStyle2dState extends DisplayStyleState {\r\n /** @internal */\r\n public static override get className() { return \"DisplayStyle2d\"; }\r\n private readonly _settings: DisplayStyleSettings;\r\n\r\n public get settings(): DisplayStyleSettings { return this._settings; }\r\n\r\n /** @internal */\r\n public overrideTerrainDisplay(): TerrainDisplayOverrides | undefined { return undefined; }\r\n\r\n constructor(props: DisplayStyleProps, iModel: IModelConnection) {\r\n super(props, iModel);\r\n this._settings = new DisplayStyleSettings(this.jsonProperties, { createContextRealityModel: (modelProps) => this.createRealityModel(modelProps) });\r\n this.registerSettingsEventListeners();\r\n }\r\n}\r\n\r\n/** A [[DisplayStyleState]] that can be applied to spatial views.\r\n * @public\r\n * @extensions\r\n */\r\nexport class DisplayStyle3dState extends DisplayStyleState {\r\n /** @internal */\r\n public static override get className() { return \"DisplayStyle3d\"; }\r\n private _settings: DisplayStyle3dSettings;\r\n\r\n public get settings(): DisplayStyle3dSettings { return this._settings; }\r\n\r\n public constructor(props: DisplayStyleProps, iModel: IModelConnection, source?: DisplayStyle3dState) {\r\n super(props, iModel, source);\r\n this._settings = new DisplayStyle3dSettings(this.jsonProperties, { createContextRealityModel: (modelProps) => this.createRealityModel(modelProps) });\r\n this.registerSettingsEventListeners();\r\n }\r\n\r\n public get environment(): Environment {\r\n return this.settings.environment;\r\n }\r\n public set environment(env: Environment) {\r\n this.settings.environment = env;\r\n }\r\n\r\n public get lights(): LightSettings { return this.settings.lights; }\r\n public set lights(lights: LightSettings) { this.settings.lights = lights; }\r\n\r\n /** The direction of the solar light. */\r\n public get sunDirection(): Readonly<Vector3d> {\r\n return this.settings.lights.solar.direction;\r\n }\r\n\r\n /** Set the solar light direction based on time value\r\n * @param time The time in unix time milliseconds.\r\n * @see [DisplayStyle3dSettings.sunTime]($common) to obtain the current sun time.\r\n * @see [DisplayStyle3dSettings.setSunTime]($common).\r\n */\r\n public setSunTime(time: number) {\r\n this.settings.setSunTime(time, this.iModel);\r\n }\r\n\r\n /** Settings controlling shadow display. */\r\n public get solarShadows(): SolarShadowSettings {\r\n return this.settings.solarShadows;\r\n }\r\n public set solarShadows(settings: SolarShadowSettings) {\r\n this.settings.solarShadows = settings;\r\n }\r\n\r\n /** @internal */\r\n protected override registerSettingsEventListeners(): void {\r\n super.registerSettingsEventListeners();\r\n\r\n this.settings.onOverridesApplied.addListener((overrides: DisplayStyle3dSettingsProps) => {\r\n if (overrides.thematic && this.settings.thematic.displayMode === ThematicDisplayMode.Height && undefined === overrides.thematic.range) {\r\n // Use the project extents as reasonable default height range.\r\n // NB: assumes using Z axis...\r\n const extents = this.iModel.projectExtents;\r\n const props = { ...overrides.thematic };\r\n props.range = { low: extents.zLow, high: extents.zHigh };\r\n this.settings.thematic = ThematicDisplay.fromJSON(props);\r\n }\r\n });\r\n }\r\n\r\n /** @internal */\r\n public overrideTerrainDisplay(): TerrainDisplayOverrides | undefined {\r\n if (undefined !== this.settings.thematic) {\r\n const ovr = new TerrainDisplayOverrides();\r\n if (this.viewFlags.thematicDisplay && ThematicGradientMode.IsoLines === this.settings.thematic.gradientSettings.mode)\r\n ovr.wantSkirts = false;\r\n if (this.viewFlags.thematicDisplay && (ThematicDisplayMode.Slope === this.settings.thematic.displayMode || ThematicDisplayMode.HillShade === this.settings.thematic.displayMode))\r\n ovr.wantNormals = true;\r\n return ovr;\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"DisplayStyleState.js","sourceRoot":"","sources":["../../src/DisplayStyleState.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 Views\r\n */\r\nimport { assert, BeEvent, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Angle, Range1d, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n BackgroundMapProps, BackgroundMapProvider, BackgroundMapProviderProps, BackgroundMapSettings,\r\n BaseLayerSettings, BaseMapLayerSettings, CartographicRange, ColorDef, ContextRealityModelProps, DisplayStyle3dSettings, DisplayStyle3dSettingsProps,\r\n DisplayStyleProps, DisplayStyleSettings, Environment, FeatureAppearance, GlobeMode, ImageMapLayerSettings, LightSettings, MapLayerProps,\r\n MapLayerSettings, MapSubLayerProps, ModelMapLayerSettings, RenderSchedule, RenderTimelineProps,\r\n SolarShadowSettings, SubCategoryOverride, SubLayerId, TerrainHeightOriginMode, ThematicDisplay, ThematicDisplayMode, ThematicGradientMode, ViewFlags,\r\n} from \"@itwin/core-common\";\r\nimport { ApproximateTerrainHeights } from \"./ApproximateTerrainHeights\";\r\nimport { BackgroundMapGeometry } from \"./BackgroundMapGeometry\";\r\nimport { ContextRealityModelState } from \"./ContextRealityModelState\";\r\nimport { ElementState } from \"./EntityState\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { PlanarClipMaskState } from \"./PlanarClipMaskState\";\r\nimport { RenderScheduleState } from \"./RenderScheduleState\";\r\nimport { getCesiumOSMBuildingsUrl, MapCartoRectangle, TileTreeReference } from \"./tile/internal\";\r\nimport { viewGlobalLocation, ViewGlobalLocationConstants } from \"./ViewGlobalLocation\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\nimport { GeometricModelState } from \"./ModelState\";\r\n\r\n/** @internal */\r\nexport class TerrainDisplayOverrides {\r\n public wantSkirts?: boolean;\r\n public wantNormals?: boolean;\r\n public produceGeometry?: boolean;\r\n}\r\n\r\n/** Options controlling display of [OpenStreetMap Buildings](https://cesium.com/platform/cesium-ion/content/cesium-osm-buildings/).\r\n * @see [[DisplayStyleState.setOSMBuildingDisplay]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface OsmBuildingDisplayOptions {\r\n /** If defined, enables or disables display of the buildings by attaching or detaching the OpenStreetMap Buildings reality model. */\r\n onOff?: boolean;\r\n /** If defined, overrides aspects of the appearance of the OpenStreetMap building meshes. */\r\n appearanceOverrides?: FeatureAppearance;\r\n}\r\n\r\n/** A DisplayStyle defines the parameters for 'styling' the contents of a [[ViewState]].\r\n * @public\r\n * @extensions\r\n */\r\nexport abstract class DisplayStyleState extends ElementState implements DisplayStyleProps {\r\n /** @internal */\r\n public static override get className() { return \"DisplayStyle\"; }\r\n private _scheduleState?: RenderScheduleState;\r\n private _ellipsoidMapGeometry: BackgroundMapGeometry | undefined;\r\n private _attachedRealityModelPlanarClipMasks = new Map<Id64String, PlanarClipMaskState>();\r\n /** @internal */\r\n protected _queryRenderTimelinePropsPromise?: Promise<RenderTimelineProps | undefined>;\r\n\r\n /** Event raised just before the [[scheduleScriptReference]] property is changed. */\r\n public readonly onScheduleScriptReferenceChanged = new BeEvent<(newScriptReference: RenderSchedule.ScriptReference | undefined) => void>();\r\n /** Event raised just after [[setOSMBuildingDisplay]] changes the enabled state of the OSM buildings. */\r\n public readonly onOSMBuildingDisplayChanged = new BeEvent<(osmBuildingDisplayEnabled: boolean) => void>();\r\n\r\n /** The container for this display style's settings. */\r\n public abstract get settings(): DisplayStyleSettings;\r\n\r\n /** @internal */\r\n public abstract overrideTerrainDisplay(): TerrainDisplayOverrides | undefined;\r\n\r\n /** Construct a new DisplayStyleState from its JSON representation.\r\n * @param props JSON representation of the display style.\r\n * @param iModel IModelConnection containing the display style.\r\n * @param source If the constructor is being invoked from [[EntityState.clone]], the display style that is being cloned.\r\n */\r\n constructor(props: DisplayStyleProps, iModel: IModelConnection, source?: DisplayStyleState) {\r\n super(props, iModel);\r\n const styles = this.jsonProperties.styles;\r\n\r\n if (source)\r\n this._scheduleState = source._scheduleState;\r\n\r\n if (styles) {\r\n // ###TODO Use DisplayStyleSettings.planarClipMasks\r\n if (styles.planarClipOvr)\r\n for (const planarClipOvr of styles.planarClipOvr)\r\n if (Id64.isValid(planarClipOvr.modelId))\r\n this._attachedRealityModelPlanarClipMasks.set(planarClipOvr.modelId, PlanarClipMaskState.fromJSON(planarClipOvr));\r\n }\r\n }\r\n\r\n /** Ensures all of the data required by the display style is loaded. This method is invoked for you by [[ViewState.load]], but if\r\n * you obtain a display style by some other means you should `await` this method before using the display style.\r\n */\r\n public async load(): Promise<void> {\r\n // If we were cloned, we may already have a valid schedule state, and our display style Id may be invalid / different.\r\n // Preserve it if still usable.\r\n if (this._scheduleState) {\r\n if (this.settings.renderTimeline === this._scheduleState.sourceId) {\r\n // The script came from the same RenderTimeline element. Keep it.\r\n return;\r\n }\r\n\r\n if (undefined === this.settings.renderTimeline) {\r\n // The script cam from a display style's JSON properties. Keep it if (1) this style is not persistent or (2) this style has the same Id\r\n if (this.id === this._scheduleState.sourceId || !Id64.isValidId64(this.id))\r\n return;\r\n }\r\n }\r\n\r\n if (undefined !== this.settings.renderTimeline)\r\n await this.loadScheduleStateFromTimeline(this.settings.renderTimeline);\r\n else\r\n this.loadScheduleStateFromScript(this.settings.scheduleScriptProps); // eslint-disable-line deprecation/deprecation\r\n }\r\n\r\n private loadScheduleStateFromScript(scriptProps: Readonly<RenderSchedule.ScriptProps> | undefined): void {\r\n let newState;\r\n if (scriptProps) {\r\n try {\r\n const script = RenderSchedule.Script.fromJSON(scriptProps);\r\n if (script)\r\n newState = new RenderScheduleState(this.id, script);\r\n } catch (_) {\r\n // schedule state is undefined.\r\n }\r\n }\r\n\r\n if (newState !== this._scheduleState) {\r\n this.onScheduleScriptReferenceChanged.raiseEvent(newState);\r\n this._scheduleState = newState;\r\n }\r\n }\r\n\r\n private async loadScheduleStateFromTimeline(timelineId: Id64String): Promise<void> {\r\n let newState;\r\n try {\r\n // If a subsequent call to loadScheduleStateFromTimeline is made while we're awaiting this one, we'll abort this one.\r\n const promise = this._queryRenderTimelinePropsPromise = this.queryRenderTimelineProps(timelineId);\r\n const timeline = await promise;\r\n if (promise !== this._queryRenderTimelinePropsPromise)\r\n return;\r\n\r\n if (timeline) {\r\n const scriptProps = JSON.parse(timeline.script);\r\n const script = RenderSchedule.Script.fromJSON(scriptProps);\r\n if (script)\r\n newState = new RenderScheduleState(timelineId, script);\r\n }\r\n } catch (_) {\r\n // schedule state is undefined.\r\n }\r\n\r\n this._queryRenderTimelinePropsPromise = undefined;\r\n if (newState !== this._scheduleState) {\r\n this.onScheduleScriptReferenceChanged.raiseEvent(newState);\r\n this._scheduleState = newState;\r\n }\r\n }\r\n\r\n /** @internal */\r\n protected async queryRenderTimelineProps(timelineId: Id64String): Promise<RenderTimelineProps | undefined> {\r\n try {\r\n return await this.iModel.elements.loadProps(timelineId, { renderTimeline: { omitScriptElementIds: true } }) as RenderTimelineProps;\r\n } catch (_) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get displayTerrain() {\r\n return this.viewFlags.backgroundMap && this.settings.backgroundMap.applyTerrain;\r\n }\r\n\r\n /** @internal */\r\n public get globeMode(): GlobeMode { return this.settings.backgroundMap.globeMode; }\r\n\r\n /** Settings controlling how the base map is displayed within a view.\r\n * The base map can be provided by any map imagery source or set to be a single color.\r\n */\r\n public get backgroundMapBase(): BaseLayerSettings {\r\n return this.settings.mapImagery.backgroundBase;\r\n }\r\n public set backgroundMapBase(base: BaseLayerSettings) {\r\n this.settings.mapImagery.backgroundBase = base;\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @internal */\r\n public get backgroundMapLayers(): MapLayerSettings[] { return this.settings.mapImagery.backgroundLayers; }\r\n\r\n /** @internal */\r\n public get overlayMapLayers(): MapLayerSettings[] { return this.settings.mapImagery.overlayLayers; }\r\n\r\n /** The settings controlling how a background map is displayed within a view.\r\n * @see [[ViewFlags.backgroundMap]] for toggling display of the map on or off.\r\n */\r\n public get backgroundMapSettings(): BackgroundMapSettings { return this.settings.backgroundMap; }\r\n public set backgroundMapSettings(settings: BackgroundMapSettings) {\r\n this.settings.backgroundMap = settings;\r\n }\r\n\r\n /** Modify a subset of the background map display settings.\r\n * @param name props JSON representation of the properties to change. Any properties not present will retain their current values in `this.backgroundMapSettings`.\r\n * @see [[ViewFlags.backgroundMap]] for toggling display of the map.\r\n * @see [[changeBackgroundMapProvider]] to change the type of map imagery displayed.\r\n *\r\n * Example that changes only the elevation, leaving the provider and type unchanged:\r\n * ``` ts\r\n * style.changeBackgroundMapProps({ groundBias: 16.2 });\r\n * ```\r\n * @public\r\n */\r\n public changeBackgroundMapProps(props: BackgroundMapProps): void {\r\n const newSettings = this.backgroundMapSettings.clone(props);\r\n this.backgroundMapSettings = newSettings;\r\n }\r\n\r\n /** Change aspects of the [BackgroundMapProvider]($common) from which background map imagery is obtained.\r\n * Any properties not explicitly specified by `props` will retain their current values.\r\n * @public\r\n */\r\n public changeBackgroundMapProvider(props: BackgroundMapProviderProps): void {\r\n const base = this.settings.mapImagery.backgroundBase;\r\n if (base instanceof ColorDef) {\r\n this.settings.mapImagery.backgroundBase = BaseMapLayerSettings.fromProvider(BackgroundMapProvider.fromJSON(props));\r\n } else {\r\n const provider = base.provider ? base.provider.clone(props) : BackgroundMapProvider.fromJSON(props);\r\n this.settings.mapImagery.backgroundBase = base.cloneWithProvider(provider);\r\n }\r\n\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** Call a function for each reality model attached to this display style.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common).\r\n */\r\n public forEachRealityModel(func: (model: ContextRealityModelState) => void): void {\r\n for (const model of this.settings.contextRealityModels.models) {\r\n assert(model instanceof ContextRealityModelState);\r\n func(model);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public forEachRealityTileTreeRef(func: (ref: TileTreeReference) => void): void {\r\n this.forEachRealityModel((model) => func(model.treeRef));\r\n }\r\n\r\n /** @internal */\r\n public forEachTileTreeRef(func: (ref: TileTreeReference) => void): void {\r\n this.forEachRealityTileTreeRef(func);\r\n }\r\n\r\n /** Performs logical comparison against another display style. Two display styles are logically equivalent if they have the same name, Id, and settings.\r\n * @param other The display style to which to compare.\r\n * @returns true if the specified display style is logically equivalent to this display style - i.e., both styles have the same values for all of their settings.\r\n */\r\n public equalState(other: DisplayStyleState): boolean {\r\n if (this.name !== other.name || this.id !== other.id)\r\n return false;\r\n else\r\n return JSON.stringify(this.settings) === JSON.stringify(other.settings);\r\n }\r\n\r\n /** The name of this DisplayStyle */\r\n public get name(): string { return this.code.value; }\r\n\r\n /** Change the Id of the [RenderTimeline]($backend) element that hosts the [RenderSchedule.Script]($common) to be applied by this display style for\r\n * animating the contents of the view, and update [[scheduleScriptReference]] using the script associated with the [RenderTimeline]($backend) element.\r\n * @see [DisplayStyleSettings.renderTimeline]($common).\r\n */\r\n public async changeRenderTimeline(timelineId: Id64String | undefined): Promise<void> {\r\n // Potentially trigger async loading of new schedule state.\r\n this.settings.renderTimeline = timelineId;\r\n\r\n // Await async loading if necessary.\r\n // Note the `await` in loadScheduleStateFromTimeline will resolve before this one [per the spec](https://262.ecma-international.org/6.0/#sec-triggerpromisereactions).\r\n if (this._queryRenderTimelinePropsPromise)\r\n await this._queryRenderTimelinePropsPromise;\r\n }\r\n\r\n /** The [RenderSchedule.Script]($common) that animates the contents of the view, if any.\r\n * @see [[changeRenderTimeline]] to change the script.\r\n */\r\n public get scheduleScript(): RenderSchedule.Script | undefined {\r\n return this._scheduleState?.script;\r\n }\r\n\r\n /** The [RenderSchedule.Script]($common) that animates the contents of the view, if any, along with the Id of the element that hosts the script.\r\n * @note The host element may be a [RenderTimeline]($backend) or a [DisplayStyle]($backend).\r\n * @see [[changeRenderTimeline]] to change the script.\r\n */\r\n public get scheduleScriptReference(): RenderSchedule.ScriptReference | undefined {\r\n return this._scheduleState;\r\n }\r\n\r\n /** @internal */\r\n public get scheduleState(): RenderScheduleState | undefined {\r\n return this._scheduleState;\r\n }\r\n\r\n /** This is only used by [RealityTransitionTool]($frontend-devtools). It basically can only work if the script contains nothing that requires special tiles to be generated -\r\n * no symbology changes, transforms, or clipping - because the backend tile generator requires a *persistent* element to host the script for those features to work.\r\n * @internal\r\n */\r\n public setScheduleState(state: RenderScheduleState | undefined): void {\r\n if (state === this._scheduleState)\r\n return;\r\n\r\n this.onScheduleScriptReferenceChanged.raiseEvent(state);\r\n this._scheduleState = state;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.settings.scheduleScriptProps = state?.script.toJSON();\r\n }\r\n\r\n /** Attach a [ContextRealityModel]($common) to this display style.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common).\r\n * @see [ContextRealityModels.add]($common)\r\n */\r\n public attachRealityModel(props: ContextRealityModelProps): ContextRealityModelState {\r\n const model = this.settings.contextRealityModels.add(props);\r\n assert(model instanceof ContextRealityModelState);\r\n return model;\r\n }\r\n\r\n /** Detach the first [ContextRealityModel]($common) that matches the specified name and url.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common)\r\n * @see [ContextRealityModels.delete]($common)\r\n */\r\n public detachRealityModelByNameAndUrl(name: string, url: string): boolean {\r\n const model = this.settings.contextRealityModels.models.find((x) => x.matchesNameAndUrl(name, url));\r\n return undefined !== model && this.settings.contextRealityModels.delete(model);\r\n }\r\n\r\n /** Get the [[ContextRealityModelState]] that displays the OpenStreetMap worldwide building layer, if enabled.\r\n * @see [[setOSMBuildingDisplay]]\r\n */\r\n public getOSMBuildingRealityModel(): ContextRealityModelState | undefined {\r\n if (!this.iModel.isGeoLocated || this.globeMode !== GlobeMode.Ellipsoid) // The OSM tile tree is ellipsoidal.\r\n return undefined;\r\n\r\n const url = getCesiumOSMBuildingsUrl();\r\n if (undefined === url)\r\n return undefined;\r\n\r\n return this.contextRealityModelStates.find((x) => x.url === url);\r\n }\r\n\r\n /** Set the display of the OpenStreetMap worldwide building layer in this display style by attaching or detaching the reality model displaying the buildings.\r\n * The OSM buildings are displayed from a reality model aggregated and served from Cesium ion.<(https://cesium.com/content/cesium-osm-buildings/>\r\n * The options [[OsmBuildingDisplayOptions]] control the display and appearance overrides.\r\n */\r\n public setOSMBuildingDisplay(options: OsmBuildingDisplayOptions): boolean {\r\n if (!this.iModel.isGeoLocated || this.globeMode !== GlobeMode.Ellipsoid) // The OSM tile tree is ellipsoidal.\r\n return false;\r\n\r\n const url = getCesiumOSMBuildingsUrl();\r\n if (undefined === url)\r\n return false;\r\n\r\n let model = this.settings.contextRealityModels.models.find((x) => x.url === url);\r\n if (options.onOff === false) {\r\n const turnedOff = undefined !== model && this.settings.contextRealityModels.delete(model);\r\n if (turnedOff)\r\n this.onOSMBuildingDisplayChanged.raiseEvent(false);\r\n\r\n return turnedOff;\r\n }\r\n\r\n if (!model) {\r\n const name = IModelApp.localization.getLocalizedString(\"iModelJs:RealityModelNames.OSMBuildings\");\r\n model = this.attachRealityModel({ tilesetUrl: url, name });\r\n this.onOSMBuildingDisplayChanged.raiseEvent(true);\r\n }\r\n\r\n if (options.appearanceOverrides)\r\n model.appearanceOverrides = options.appearanceOverrides;\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Return if a context reality model is attached.\r\n * @see [[ContextRealityModelProps]].\r\n * */\r\n public hasAttachedRealityModel(name: string, url: string): boolean {\r\n return undefined !== this.settings.contextRealityModels.models.find((x) => x.matchesNameAndUrl(name, url));\r\n }\r\n\r\n /** @internal */\r\n public getMapLayers(isOverlay: boolean) { return isOverlay ? this.overlayMapLayers : this.backgroundMapLayers; }\r\n\r\n /**\r\n * Attach a map layer to display style.\r\n * @param Settings representing the map layer.\r\n * @param isOverlay true if layer is overlay, otherwise layer is background. Defaults to false.\r\n * @param index where the layer should be inserted. Defaults to -1, appended to end.\r\n * @public\r\n *\r\n */\r\n public attachMapLayer(options: { settings: MapLayerSettings, isOverlay?: boolean, insertIndex?: number}): void {\r\n const layerSettings = options.settings.clone({});\r\n if (undefined === layerSettings)\r\n return;\r\n\r\n const isOverlay = options.isOverlay ?? false;\r\n const insertIndex = options.insertIndex ?? -1;\r\n const layers = this.getMapLayers(isOverlay);\r\n\r\n if (insertIndex < 0 || insertIndex > (layers.length - 1)) {\r\n this.getMapLayers(isOverlay).push(layerSettings);\r\n } else {\r\n layers.splice(insertIndex, 0, layerSettings);\r\n }\r\n\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @internal */\r\n public attachMapLayerProps(options: { props: MapLayerProps, isOverlay?: boolean, insertIndex?: number}): void {\r\n const settings = MapLayerSettings.fromJSON(options.props);\r\n if (undefined === settings)\r\n return;\r\n\r\n this.attachMapLayer({settings, isOverlay: options.isOverlay, insertIndex:options.insertIndex});\r\n }\r\n\r\n /** @internal */\r\n public hasAttachedMapLayer(name: string, source: string, isOverlay: boolean): boolean {\r\n return -1 !== this.findMapLayerIndexByNameAndSource(name, source, isOverlay);\r\n }\r\n\r\n /** @internal */\r\n public detachMapLayerByNameAndSource(name: string, source: string, isOverlay: boolean): void {\r\n const index = this.findMapLayerIndexByNameAndSource(name, source, isOverlay);\r\n if (- 1 !== index)\r\n this.detachMapLayerByIndex(index, isOverlay);\r\n }\r\n\r\n /** Detach map layer at index (-1 to remove all layers)\r\n * @public\r\n */\r\n public detachMapLayerByIndex(index: number, isOverlay: boolean): void {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index < 0)\r\n layers.length = 0;\r\n else\r\n layers.splice(index, 1);\r\n\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /**\r\n * Lookup a maplayer index by name and source.\r\n * @param name Name of of the layer.\r\n * @param source Unique string identifying the layer.\r\n * @param isOverlay true if layer is overlay, otherwise layer is background. Defaults to false.\r\n * @public\r\n *\r\n */\r\n public findMapLayerIndexByNameAndSource(name: string, source: string, isOverlay: boolean) {\r\n return this.getMapLayers(isOverlay).findIndex((layer) => layer.matchesNameAndSource(name, source));\r\n }\r\n\r\n /** @public */\r\n public mapLayerAtIndex(index: number, isOverlay: boolean): MapLayerSettings | undefined {\r\n const layers = this.getMapLayers(isOverlay);\r\n return (index < 0 || index >= layers.length) ? undefined : layers[index];\r\n }\r\n\r\n /** Return map base transparency as a number between 0 and 1.\r\n * @public\r\n */\r\n public get baseMapTransparency(): number {\r\n return this.settings.mapImagery.baseTransparency;\r\n }\r\n\r\n /** Change the map base transparency as a number between 0 and 1.\r\n * @public\r\n */\r\n public changeBaseMapTransparency(transparency: number) {\r\n if (this.settings.mapImagery.backgroundBase instanceof ColorDef) {\r\n this.settings.mapImagery.backgroundBase = this.settings.mapImagery.backgroundBase.withTransparency(transparency * 255);\r\n } else {\r\n this.settings.mapImagery.backgroundBase = this.settings.mapImagery.backgroundBase.clone({transparency});\r\n }\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** Modify a subset of a map layer settings.\r\n * @param props props JSON representation of the properties to change. Any properties not present will retain their current values.\r\n * @param index where the layer should be inserted.\r\n * @param isOverlay true if layer is overlay, otherwise layer is background.\r\n *\r\n * Example that changes only the visibility of the first overlay map layer.\r\n * ``` ts\r\n * style.changeMapLayerProps({ visible: false }, 0, false);\r\n * ```\r\n * @public\r\n */\r\n public changeMapLayerProps(props: Partial<MapLayerProps>, index: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index < 0 || index >= layers.length)\r\n return;\r\n layers[index] = layers[index].clone(props);\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** @public */\r\n public changeMapLayerCredentials(index: number, isOverlay: boolean, userName?: string, password?: string,) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index < 0 || index >= layers.length)\r\n return;\r\n const layer = layers[index];\r\n if (layer instanceof ImageMapLayerSettings) {\r\n layer.setCredentials(userName, password);\r\n this._synchBackgroundMapImagery();\r\n }\r\n }\r\n\r\n /** Modify a subset of a sub-layer settings.\r\n * @param props props JSON representation of the properties to change. Any properties not present will retain their current values.\r\n * @param subLayerId Id of the sub-layer that should be modified.\r\n * @param layerIndex of the owning map layer.\r\n * @param isOverlay true if the map layer is overlay, otherwise layer is background\r\n *\r\n * @public\r\n */\r\n public changeMapSubLayerProps(props: Partial<MapSubLayerProps>, subLayerId: SubLayerId, layerIndex: number, isOverlay: boolean) {\r\n const mapLayerSettings = this.mapLayerAtIndex(layerIndex, isOverlay);\r\n if (undefined === mapLayerSettings)\r\n return;\r\n\r\n if (!(mapLayerSettings instanceof ImageMapLayerSettings)) {\r\n assert (false);\r\n return;\r\n }\r\n\r\n const subLayers = new Array<MapSubLayerProps>();\r\n for (const subLayer of mapLayerSettings.subLayers) {\r\n subLayers.push((subLayerId === -1 || subLayer.id === subLayerId) ? subLayer.clone(props).toJSON() : subLayer.toJSON());\r\n }\r\n\r\n this.changeMapLayerProps({ subLayers }, layerIndex, isOverlay);\r\n }\r\n\r\n /** Returns the cartographic range of map layer.\r\n * @param layerIndex of the map layer.\r\n * @param isOverlay true if the map layer is overlay, otherwise layer is background\r\n *\r\n * @internal\r\n */\r\n public async getMapLayerRange(layerIndex: number, isOverlay: boolean): Promise<MapCartoRectangle | undefined> {\r\n const mapLayerSettings = this.mapLayerAtIndex(layerIndex, isOverlay);\r\n if (undefined === mapLayerSettings)\r\n return undefined;\r\n\r\n if (mapLayerSettings instanceof ModelMapLayerSettings) {\r\n const ecefTransform = this.iModel.ecefLocation?.getTransform();\r\n if (!ecefTransform)\r\n return undefined;\r\n const model = this.iModel.models.getLoaded(mapLayerSettings.modelId);\r\n if (!model || !(model instanceof GeometricModelState))\r\n return undefined;\r\n\r\n const modelRange = await model.queryModelRange();\r\n const cartoRange = new CartographicRange(modelRange, ecefTransform).getLongitudeLatitudeBoundingBox();\r\n\r\n return MapCartoRectangle.create(cartoRange.low.x, cartoRange.low.y, cartoRange.high.x, cartoRange.high.y);\r\n }\r\n if (! (mapLayerSettings instanceof ImageMapLayerSettings)) {\r\n assert(false);\r\n return undefined;\r\n }\r\n\r\n const imageryProvider = IModelApp.mapLayerFormatRegistry.createImageryProvider(mapLayerSettings);\r\n if (undefined === imageryProvider)\r\n return undefined;\r\n\r\n try {\r\n await imageryProvider.initialize();\r\n return imageryProvider.cartoRange;\r\n\r\n } catch (_error) {\r\n return undefined;\r\n }\r\n return undefined;\r\n }\r\n\r\n /** change viewport to include range of map layer.\r\n * @internal\r\n */\r\n public async viewMapLayerRange(layerIndex: number, isOverlay: boolean, vp: ScreenViewport): Promise<boolean> {\r\n const range = await this.getMapLayerRange(layerIndex, isOverlay);\r\n if (!range)\r\n return false;\r\n\r\n if (range.xLength() > 1.5 * Angle.piRadians)\r\n viewGlobalLocation(vp, true, ViewGlobalLocationConstants.satelliteHeightAboveEarthInMeters, undefined, undefined);\r\n else\r\n viewGlobalLocation(vp, true, undefined, undefined, range.globalLocation);\r\n\r\n return true;\r\n }\r\n\r\n /* @internal */\r\n private _synchBackgroundMapImagery() {\r\n this.settings.synchMapImagery();\r\n }\r\n\r\n /**\r\n * Move map layer to top.\r\n * @param index index of layer to move.\r\n * @param isOverlay true if layer is overlay.\r\n * @public\r\n *\r\n */\r\n public moveMapLayerToTop(index: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index >= 0 && index < layers.length - 1) {\r\n const layer = layers.splice(index, 1);\r\n layers.push(layer[0]);\r\n this._synchBackgroundMapImagery();\r\n }\r\n }\r\n\r\n /**\r\n * Move map layer to bottom.\r\n * @param index index of layer to move.\r\n * @param isOverlay true if layer is overlay.\r\n * @public\r\n */\r\n public moveMapLayerToBottom(index: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (index > 0 && index < layers.length) {\r\n const layer = layers.splice(index, 1);\r\n layers.unshift(layer[0]);\r\n this._synchBackgroundMapImagery();\r\n }\r\n }\r\n\r\n /**\r\n * Reorder map layers\r\n * @param fromIndex index of map layer to move\r\n * @param toIndex insert index. If equal to length of map array the map layer is moved to end of array.\r\n * @public\r\n */\r\n public moveMapLayerToIndex(fromIndex: number, toIndex: number, isOverlay: boolean) {\r\n const layers = this.getMapLayers(isOverlay);\r\n if (fromIndex === toIndex)\r\n return;\r\n\r\n if (fromIndex < 0 || fromIndex >= layers.length || toIndex > layers.length)\r\n return;\r\n\r\n const layer = layers.splice(fromIndex, 1);\r\n layers.splice(toIndex, 0, layer[0]); // note: if toIndex === settings.mapImagery.backgroundLayers.length item is appended\r\n this._synchBackgroundMapImagery();\r\n }\r\n\r\n /** Flags controlling various aspects of the display style.\r\n * @see [DisplayStyleSettings.viewFlags]($common)\r\n */\r\n public get viewFlags(): ViewFlags { return this.settings.viewFlags; }\r\n public set viewFlags(flags: ViewFlags) { this.settings.viewFlags = flags; }\r\n\r\n /** The background color for this DisplayStyle */\r\n public get backgroundColor(): ColorDef { return this.settings.backgroundColor; }\r\n public set backgroundColor(val: ColorDef) { this.settings.backgroundColor = val; }\r\n\r\n /** The color used to draw geometry in monochrome mode.\r\n * @see [ViewFlags.monochrome]($common) for enabling monochrome mode.\r\n */\r\n public get monochromeColor(): ColorDef { return this.settings.monochromeColor; }\r\n public set monochromeColor(val: ColorDef) { this.settings.monochromeColor = val; }\r\n\r\n private _backgroundMapGeometry?: {\r\n bimElevationBias: number;\r\n geometry: BackgroundMapGeometry;\r\n globeMode: GlobeMode;\r\n };\r\n\r\n /** @internal */\r\n public anyMapLayersVisible(overlay: boolean): boolean {\r\n const layers = this.getMapLayers(overlay);\r\n\r\n for (const mapLayer of layers)\r\n if (mapLayer.visible)\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n /** @internal */\r\n public getIsBackgroundMapVisible(): boolean {\r\n return undefined !== this.iModel.ecefLocation && (this.viewFlags.backgroundMap || this.anyMapLayersVisible(false));\r\n }\r\n /** @internal */\r\n public get backgroundMapElevationBias(): number | undefined {\r\n if (this.backgroundMapSettings.applyTerrain) {\r\n const terrainSettings = this.backgroundMapSettings.terrainSettings;\r\n switch (terrainSettings.heightOriginMode) {\r\n case TerrainHeightOriginMode.Ground:\r\n return (undefined === this.iModel.projectCenterAltitude) ? undefined : terrainSettings.heightOrigin + terrainSettings.exaggeration * this.iModel.projectCenterAltitude;\r\n\r\n case TerrainHeightOriginMode.Geodetic:\r\n return terrainSettings.heightOrigin;\r\n\r\n case TerrainHeightOriginMode.Geoid:\r\n return (undefined === this.iModel.geodeticToSeaLevel) ? undefined : terrainSettings.heightOrigin + this.iModel.geodeticToSeaLevel;\r\n }\r\n } else {\r\n return this.backgroundMapSettings.groundBias;\r\n }\r\n\r\n }\r\n\r\n /** @internal */\r\n public getBackgroundMapGeometry(): BackgroundMapGeometry | undefined {\r\n if (undefined === this.iModel.ecefLocation)\r\n return undefined;\r\n\r\n const bimElevationBias = this.backgroundMapElevationBias;\r\n\r\n if (undefined === bimElevationBias)\r\n return undefined;\r\n\r\n const globeMode = this.globeMode;\r\n if (undefined === this._backgroundMapGeometry || this._backgroundMapGeometry.globeMode !== globeMode || this._backgroundMapGeometry.bimElevationBias !== bimElevationBias) {\r\n const geometry = new BackgroundMapGeometry(bimElevationBias, globeMode, this.iModel);\r\n this._backgroundMapGeometry = { bimElevationBias, geometry, globeMode };\r\n }\r\n return this._backgroundMapGeometry.geometry;\r\n }\r\n\r\n /** [[ContextRealityModelState]]s attached to this display style.\r\n * @see [DisplayStyleSettings.contextRealityModels]($common).\r\n */\r\n public get contextRealityModelStates(): ReadonlyArray<ContextRealityModelState> {\r\n return this.settings.contextRealityModels.models as ContextRealityModelState[];\r\n }\r\n\r\n /** @internal */\r\n public getGlobalGeometryAndHeightRange(): { geometry: BackgroundMapGeometry, heightRange: Range1d } | undefined {\r\n let geometry = this.getIsBackgroundMapVisible() ? this.getBackgroundMapGeometry() : undefined;\r\n const terrainRange = ApproximateTerrainHeights.instance.globalHeightRange;\r\n let heightRange = this.displayTerrain ? terrainRange : Range1d.createXX(-1, 1);\r\n if (this.globeMode === GlobeMode.Ellipsoid && this.contextRealityModelStates.find((model) => model.isGlobal)) {\r\n if (!geometry) {\r\n if (!this._ellipsoidMapGeometry)\r\n this._ellipsoidMapGeometry = new BackgroundMapGeometry(0, GlobeMode.Ellipsoid, this.iModel);\r\n\r\n geometry = this._ellipsoidMapGeometry;\r\n }\r\n\r\n heightRange = terrainRange;\r\n }\r\n\r\n return geometry ? { geometry, heightRange } : undefined;\r\n }\r\n\r\n /** Returns true if this is a 3d display style. */\r\n public is3d(): this is DisplayStyle3dState { return this instanceof DisplayStyle3dState; }\r\n\r\n /** Customize the way geometry belonging to a [[SubCategory]] is drawn by this display style.\r\n * @param id The ID of the SubCategory whose appearance is to be overridden.\r\n * @param ovr The overrides to apply to the [[SubCategoryAppearance]].\r\n * @see [[dropSubCategoryOverride]]\r\n */\r\n public overrideSubCategory(id: Id64String, ovr: SubCategoryOverride) { this.settings.overrideSubCategory(id, ovr); }\r\n\r\n /** Remove any [[SubCategoryOverride]] applied to a [[SubCategoryAppearance]] by this style.\r\n * @param id The ID of the [[SubCategory]].\r\n * @see [[overrideSubCategory]]\r\n */\r\n public dropSubCategoryOverride(id: Id64String) { this.settings.dropSubCategoryOverride(id); }\r\n\r\n /** Returns true if an [[SubCategoryOverride]]s are defined by this style. */\r\n public get hasSubCategoryOverride() { return this.settings.hasSubCategoryOverride; }\r\n\r\n /** Obtain the overrides applied to a [[SubCategoryAppearance]] by this style.\r\n * @param id The ID of the [[SubCategory]].\r\n * @returns The corresponding SubCategoryOverride, or undefined if the SubCategory's appearance is not overridden.\r\n * @see [[overrideSubCategory]]\r\n */\r\n public getSubCategoryOverride(id: Id64String): SubCategoryOverride | undefined { return this.settings.getSubCategoryOverride(id); }\r\n\r\n /** @internal */\r\n public get wantShadows(): boolean {\r\n return this.is3d() && this.viewFlags.shadows && false !== IModelApp.renderSystem.options.displaySolarShadows;\r\n }\r\n\r\n /** @internal */\r\n protected registerSettingsEventListeners(): void {\r\n // eslint-disable-next-line deprecation/deprecation\r\n this.settings.onScheduleScriptPropsChanged.addListener((scriptProps) => {\r\n if (undefined === this.settings.renderTimeline)\r\n this.loadScheduleStateFromScript(scriptProps);\r\n });\r\n\r\n this.settings.onRenderTimelineChanged.addListener((newTimeline) => {\r\n // Cancel any in-progress loading of script from timeline.\r\n this._queryRenderTimelinePropsPromise = undefined;\r\n\r\n if (undefined !== newTimeline)\r\n this.loadScheduleStateFromTimeline(newTimeline); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n else\r\n this.loadScheduleStateFromScript(this.settings.scheduleScriptProps); // eslint-disable-line deprecation/deprecation\r\n });\r\n\r\n this.settings.onPlanarClipMaskChanged.addListener((id, newSettings) => {\r\n if (newSettings)\r\n this._attachedRealityModelPlanarClipMasks.set(id, PlanarClipMaskState.create(newSettings));\r\n else\r\n this._attachedRealityModelPlanarClipMasks.delete(id);\r\n });\r\n }\r\n\r\n /** @internal */\r\n protected createRealityModel(props: ContextRealityModelProps): ContextRealityModelState {\r\n return new ContextRealityModelState(props, this.iModel, this);\r\n }\r\n\r\n /** @internal */\r\n public getPlanarClipMaskState(modelId: Id64String): PlanarClipMaskState | undefined {\r\n const model = this.iModel.models.getLoaded(modelId)?.asSpatialModel;\r\n return (model && model.isRealityModel) ? this._attachedRealityModelPlanarClipMasks.get(modelId) : undefined;\r\n }\r\n}\r\n\r\n/** A display style that can be applied to 2d views.\r\n * @public\r\n * @extensions\r\n */\r\nexport class DisplayStyle2dState extends DisplayStyleState {\r\n /** @internal */\r\n public static override get className() { return \"DisplayStyle2d\"; }\r\n private readonly _settings: DisplayStyleSettings;\r\n\r\n public get settings(): DisplayStyleSettings { return this._settings; }\r\n\r\n /** @internal */\r\n public overrideTerrainDisplay(): TerrainDisplayOverrides | undefined { return undefined; }\r\n\r\n constructor(props: DisplayStyleProps, iModel: IModelConnection) {\r\n super(props, iModel);\r\n this._settings = new DisplayStyleSettings(this.jsonProperties, { createContextRealityModel: (modelProps) => this.createRealityModel(modelProps) });\r\n this.registerSettingsEventListeners();\r\n }\r\n}\r\n\r\n/** A [[DisplayStyleState]] that can be applied to spatial views.\r\n * @public\r\n * @extensions\r\n */\r\nexport class DisplayStyle3dState extends DisplayStyleState {\r\n /** @internal */\r\n public static override get className() { return \"DisplayStyle3d\"; }\r\n private _settings: DisplayStyle3dSettings;\r\n\r\n public get settings(): DisplayStyle3dSettings { return this._settings; }\r\n\r\n public constructor(props: DisplayStyleProps, iModel: IModelConnection, source?: DisplayStyle3dState) {\r\n super(props, iModel, source);\r\n this._settings = new DisplayStyle3dSettings(this.jsonProperties, { createContextRealityModel: (modelProps) => this.createRealityModel(modelProps) });\r\n this.registerSettingsEventListeners();\r\n }\r\n\r\n public get environment(): Environment {\r\n return this.settings.environment;\r\n }\r\n public set environment(env: Environment) {\r\n this.settings.environment = env;\r\n }\r\n\r\n public get lights(): LightSettings { return this.settings.lights; }\r\n public set lights(lights: LightSettings) { this.settings.lights = lights; }\r\n\r\n /** The direction of the solar light. */\r\n public get sunDirection(): Readonly<Vector3d> {\r\n return this.settings.lights.solar.direction;\r\n }\r\n\r\n /** Set the solar light direction based on time value\r\n * @param time The time in unix time milliseconds.\r\n * @see [DisplayStyle3dSettings.sunTime]($common) to obtain the current sun time.\r\n * @see [DisplayStyle3dSettings.setSunTime]($common).\r\n */\r\n public setSunTime(time: number) {\r\n this.settings.setSunTime(time, this.iModel);\r\n }\r\n\r\n /** Settings controlling shadow display. */\r\n public get solarShadows(): SolarShadowSettings {\r\n return this.settings.solarShadows;\r\n }\r\n public set solarShadows(settings: SolarShadowSettings) {\r\n this.settings.solarShadows = settings;\r\n }\r\n\r\n /** @internal */\r\n protected override registerSettingsEventListeners(): void {\r\n super.registerSettingsEventListeners();\r\n\r\n this.settings.onOverridesApplied.addListener((overrides: DisplayStyle3dSettingsProps) => {\r\n if (overrides.thematic && this.settings.thematic.displayMode === ThematicDisplayMode.Height && undefined === overrides.thematic.range) {\r\n // Use the project extents as reasonable default height range.\r\n // NB: assumes using Z axis...\r\n const extents = this.iModel.projectExtents;\r\n const props = { ...overrides.thematic };\r\n props.range = { low: extents.zLow, high: extents.zHigh };\r\n this.settings.thematic = ThematicDisplay.fromJSON(props);\r\n }\r\n });\r\n }\r\n\r\n /** @internal */\r\n public overrideTerrainDisplay(): TerrainDisplayOverrides | undefined {\r\n if (undefined !== this.settings.thematic) {\r\n const ovr = new TerrainDisplayOverrides();\r\n if (this.viewFlags.thematicDisplay && ThematicGradientMode.IsoLines === this.settings.thematic.gradientSettings.mode)\r\n ovr.wantSkirts = false;\r\n if (this.viewFlags.thematicDisplay && (ThematicDisplayMode.Slope === this.settings.thematic.displayMode || ThematicDisplayMode.HillShade === this.settings.thematic.displayMode))\r\n ovr.wantNormals = true;\r\n return ovr;\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
|
package/lib/cjs/EntityState.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare class EntityState implements EntityProps {
|
|
|
28
28
|
readonly iModel: IModelConnection;
|
|
29
29
|
/** The full class name in the form "schema:class". */
|
|
30
30
|
readonly classFullName: string;
|
|
31
|
-
/** Optional [json properties]($docs/bis/
|
|
31
|
+
/** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this Entity. */
|
|
32
32
|
readonly jsonProperties: {
|
|
33
33
|
[key: string]: any;
|
|
34
34
|
};
|
|
@@ -54,15 +54,15 @@ export declare class EntityState implements EntityProps {
|
|
|
54
54
|
export declare class ElementState extends EntityState implements ElementProps {
|
|
55
55
|
/** @internal */
|
|
56
56
|
static get className(): string;
|
|
57
|
-
/** The ModelId of the [Model]($docs/bis/
|
|
57
|
+
/** The ModelId of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */
|
|
58
58
|
readonly model: Id64String;
|
|
59
|
-
/** The [Code]($docs/bis/
|
|
59
|
+
/** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */
|
|
60
60
|
readonly code: Code;
|
|
61
61
|
/** The parent Element of this, or undefined if no parent. */
|
|
62
62
|
readonly parent?: RelatedElement;
|
|
63
|
-
/** A [FederationGuid]($docs/bis/
|
|
63
|
+
/** A [FederationGuid]($docs/bis/guide/fundamentals/element-fundamentals.md#federationguid) assigned to this element by some other federated database */
|
|
64
64
|
readonly federationGuid?: GuidString;
|
|
65
|
-
/** A [user-assigned label]($docs/bis/
|
|
65
|
+
/** A [user-assigned label]($docs/bis/guide/fundamentals/element-fundamentals.md#userlabel) for this element. */
|
|
66
66
|
readonly userLabel?: string;
|
|
67
67
|
constructor(props: ElementProps, iModel: IModelConnection);
|
|
68
68
|
/** Obtain this element's JSON representation. Subclasses of ElementState typically override this method with a more
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityState.d.ts","sourceRoot":"","sources":["../../src/EntityState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C;;OAEG;IACH,WAAkB,UAAU,WAAwB;IAEpD,OAAO,KAAK,KAAK,GAAyE;IAE1F;;;;OAIG;IACH,WAAkB,SAAS,WAAuB;IAElD,4DAA4D;IAC5D,IAAW,SAAS,IAAI,MAAM,CAAiC;IAE/D,kGAAkG;IAClG,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,mDAAmD;IACnD,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,sDAAsD;IACtD,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,
|
|
1
|
+
{"version":3,"file":"EntityState.d.ts","sourceRoot":"","sources":["../../src/EntityState.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAQ,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,WAAY,YAAW,WAAW;IAC7C;;OAEG;IACH,WAAkB,UAAU,WAAwB;IAEpD,OAAO,KAAK,KAAK,GAAyE;IAE1F;;;;OAIG;IACH,WAAkB,SAAS,WAAuB;IAElD,4DAA4D;IAC5D,IAAW,SAAS,IAAI,MAAM,CAAiC;IAE/D,kGAAkG;IAClG,SAAgB,EAAE,EAAE,UAAU,CAAC;IAC/B,mDAAmD;IACnD,SAAgB,MAAM,EAAE,gBAAgB,CAAC;IACzC,sDAAsD;IACtD,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,sHAAsH;IACtH,SAAgB,cAAc,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAEvD;;;;OAIG;gBACS,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW;IAO9E,gBAAgB;IACT,MAAM,IAAI,WAAW;IAU5B,+DAA+D;IACxD,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAEnC,mDAAmD;IAC5C,KAAK,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAE7C,kFAAkF;IAClF,WAAkB,aAAa,IAAI,MAAM,CAAmD;CAC7F;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,WAAY,YAAW,YAAY;IACnE,gBAAgB;IAChB,WAA2B,SAAS,WAAwB;IAE5D,6GAA6G;IAC7G,SAAgB,KAAK,EAAE,UAAU,CAAC;IAClC,yEAAyE;IACzE,SAAgB,IAAI,EAAE,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,SAAgB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxC,wJAAwJ;IACxJ,SAAgB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5C,gHAAgH;IAChH,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB;IAWzD;;OAEG;IACa,MAAM,IAAI,YAAY;CAWvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityState.js","sourceRoot":"","sources":["../../src/EntityState.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 ElementState\r\n */\r\n\r\nimport { GuidString, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Code, ElementProps, EntityProps, RelatedElement } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** The \"state\" of an Entity as represented in a web browser. Every subclass of EntityState handles one BIS class.\r\n * @public\r\n * @extensions\r\n */\r\nexport class EntityState implements EntityProps {\r\n /** The name of the BIS schema for this class.\r\n * @note Subclasses from other than the BisCore domain must override the static member \"schemaName\" with their schema name.\r\n */\r\n public static get schemaName() { return \"BisCore\"; }\r\n\r\n private get _ctor(): typeof EntityState { return this.constructor as typeof EntityState; }\r\n\r\n /** The name of the BIS class associated with this class.\r\n * @note Every subclass of EntityState **MUST** override this method to identify its BIS class.\r\n * Failure to do so will ordinarily result in an error when the class is registered, since there may only\r\n * be one JavaScript class for a given BIS class (usually the errant class will collide with its superclass.)\r\n */\r\n public static get className() { return \"Entity\"; }\r\n\r\n /** The name of the BIS class associated with this class. */\r\n public get className(): string { return this._ctor.className; }\r\n\r\n /** The Id of this Entity. May be invalid if the Entity has not yet been saved in the database. */\r\n public readonly id: Id64String;\r\n /** The iModel from which this Entity was loaded */\r\n public readonly iModel: IModelConnection;\r\n /** The full class name in the form \"schema:class\". */\r\n public readonly classFullName: string;\r\n /** Optional [json properties]($docs/bis/
|
|
1
|
+
{"version":3,"file":"EntityState.js","sourceRoot":"","sources":["../../src/EntityState.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 ElementState\r\n */\r\n\r\nimport { GuidString, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { Code, ElementProps, EntityProps, RelatedElement } from \"@itwin/core-common\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** The \"state\" of an Entity as represented in a web browser. Every subclass of EntityState handles one BIS class.\r\n * @public\r\n * @extensions\r\n */\r\nexport class EntityState implements EntityProps {\r\n /** The name of the BIS schema for this class.\r\n * @note Subclasses from other than the BisCore domain must override the static member \"schemaName\" with their schema name.\r\n */\r\n public static get schemaName() { return \"BisCore\"; }\r\n\r\n private get _ctor(): typeof EntityState { return this.constructor as typeof EntityState; }\r\n\r\n /** The name of the BIS class associated with this class.\r\n * @note Every subclass of EntityState **MUST** override this method to identify its BIS class.\r\n * Failure to do so will ordinarily result in an error when the class is registered, since there may only\r\n * be one JavaScript class for a given BIS class (usually the errant class will collide with its superclass.)\r\n */\r\n public static get className() { return \"Entity\"; }\r\n\r\n /** The name of the BIS class associated with this class. */\r\n public get className(): string { return this._ctor.className; }\r\n\r\n /** The Id of this Entity. May be invalid if the Entity has not yet been saved in the database. */\r\n public readonly id: Id64String;\r\n /** The iModel from which this Entity was loaded */\r\n public readonly iModel: IModelConnection;\r\n /** The full class name in the form \"schema:class\". */\r\n public readonly classFullName: string;\r\n /** Optional [json properties]($docs/bis/guide/fundamentals/element-fundamentals.md#jsonproperties) of this Entity. */\r\n public readonly jsonProperties: { [key: string]: any };\r\n\r\n /** Constructor for EntityState\r\n * @param props the properties of the Entity for this EntityState\r\n * @param iModel the iModel from which this EntityState is to be constructed\r\n * @param _state source EntityState for clone\r\n */\r\n constructor(props: EntityProps, iModel: IModelConnection, _state?: EntityState) {\r\n this.classFullName = props.classFullName ? props.classFullName : this._ctor.classFullName;\r\n this.iModel = iModel;\r\n this.id = Id64.fromJSON(props.id);\r\n this.jsonProperties = props.jsonProperties ? JSON.parse(JSON.stringify(props.jsonProperties)) : {}; // make sure we have our own copy\r\n }\r\n\r\n /** @internal */\r\n public toJSON(): EntityProps {\r\n const val: any = {};\r\n val.classFullName = this.classFullName;\r\n if (Id64.isValid(this.id))\r\n val.id = this.id;\r\n if (this.jsonProperties && Object.keys(this.jsonProperties).length > 0)\r\n val.jsonProperties = this.jsonProperties;\r\n return val;\r\n }\r\n\r\n /** Return true if this EntityState is equal to another one. */\r\n public equals(other: this): boolean { return JSON.stringify(this.toJSON()) === JSON.stringify(other.toJSON()); }\r\n\r\n /** Make an independent copy of this EntityState */\r\n public clone(iModel?: IModelConnection): this { return new this._ctor(this.toJSON(), iModel ? iModel : this.iModel, this) as this; }\r\n\r\n /** Get full BIS class name of this Entity in the form \"SchemaName:ClassName\". */\r\n public static get classFullName(): string { return `${this.schemaName}:${this.className}`; }\r\n}\r\n\r\n/** The \"state\" of an Element as represented in a web browser.\r\n * @public\r\n * @extensions\r\n */\r\nexport class ElementState extends EntityState implements ElementProps {\r\n /** @internal */\r\n public static override get className() { return \"Element\"; }\r\n\r\n /** The ModelId of the [Model]($docs/bis/guide/fundamentals/model-fundamentals.md) containing this element */\r\n public readonly model: Id64String;\r\n /** The [Code]($docs/bis/guide/fundamentals/codes.md) for this element */\r\n public readonly code: Code;\r\n /** The parent Element of this, or undefined if no parent. */\r\n public readonly parent?: RelatedElement;\r\n /** A [FederationGuid]($docs/bis/guide/fundamentals/element-fundamentals.md#federationguid) assigned to this element by some other federated database */\r\n public readonly federationGuid?: GuidString;\r\n /** A [user-assigned label]($docs/bis/guide/fundamentals/element-fundamentals.md#userlabel) for this element. */\r\n public readonly userLabel?: string;\r\n\r\n constructor(props: ElementProps, iModel: IModelConnection) {\r\n super(props, iModel);\r\n this.code = Code.fromJSON(props.code);\r\n this.model = RelatedElement.idFromJson(props.model);\r\n this.parent = RelatedElement.fromJSON(props.parent);\r\n if (undefined !== props.federationGuid)\r\n this.federationGuid = props.federationGuid;\r\n if (undefined !== props.userLabel)\r\n this.userLabel = props.userLabel;\r\n }\r\n\r\n /** Obtain this element's JSON representation. Subclasses of ElementState typically override this method with a more\r\n * specific return type.\r\n */\r\n public override toJSON(): ElementProps {\r\n const val = super.toJSON() as ElementProps;\r\n if (Id64.isValid(this.code.spec))\r\n val.code = this.code;\r\n\r\n val.model = this.model;\r\n val.parent = this.parent;\r\n val.federationGuid = this.federationGuid;\r\n val.userLabel = this.userLabel;\r\n return val;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,cAAc;AAEd,eAAO,MAAM,oBAAoB,QAAkD,CAAC;AAGpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAA0C,UAAU,
|
|
1
|
+
{"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
|