@itwin/ecschema-rpcinterface-tests 5.0.0-dev.50 → 5.0.0-dev.52

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.
@@ -66652,6 +66652,48 @@ class Format extends _SchemaItem__WEBPACK_IMPORTED_MODULE_4__.SchemaItem {
66652
66652
  setStationSeparator(separator) {
66653
66653
  this._base.stationSeparator = separator;
66654
66654
  }
66655
+ /**
66656
+ * @alpha Used in schema editing.
66657
+ */
66658
+ setStationOffsetSize(stationOffsetSize) {
66659
+ this._base.stationOffsetSize = stationOffsetSize;
66660
+ }
66661
+ /**
66662
+ * @alpha Used in schema editing.
66663
+ */
66664
+ setScientificType(scientificType) {
66665
+ this._base.scientificType = scientificType;
66666
+ }
66667
+ /**
66668
+ * @alpha Used in schema editing.
66669
+ */
66670
+ setMinWidth(minWidth) {
66671
+ this._base.minWidth = minWidth;
66672
+ }
66673
+ /**
66674
+ * @alpha Used in schema editing.
66675
+ */
66676
+ setSpacer(spacer) {
66677
+ this._base.spacer = spacer;
66678
+ }
66679
+ /**
66680
+ * @alpha Used in schema editing.
66681
+ */
66682
+ setIncludeZero(includeZero) {
66683
+ this._base.includeZero = includeZero;
66684
+ }
66685
+ /**
66686
+ * @alpha Used in schema editing.
66687
+ */
66688
+ setFormatTraits(formatTraits) {
66689
+ this._base.formatTraits = formatTraits;
66690
+ }
66691
+ /**
66692
+ * @alpha Used in schema editing.
66693
+ */
66694
+ setUnits(units) {
66695
+ this._units = units;
66696
+ }
66655
66697
  }
66656
66698
  /**
66657
66699
  * @internal
@@ -71879,10 +71921,18 @@ class Flags {
71879
71921
  this.animateRotation = false;
71880
71922
  }
71881
71923
  }
71882
- /** @internal */
71924
+ /** AccuDraw value round off settings. Allows dynamic distance and angle values to be rounded to the nearest increment of the specified units value(s).
71925
+ * @public
71926
+ */
71883
71927
  class RoundOff {
71884
71928
  constructor() {
71929
+ /** Whether rounding is to be applied to the corresponding dynamic distance or angle value.
71930
+ * @note To be considered active, units must also specify at least one increment value.
71931
+ */
71885
71932
  this.active = false;
71933
+ /** Round off increment value(s), meters for distance round off, and radians for angle round off.
71934
+ * @note When multiple values are specified, rounding is based on smallest discernable value at current view zoom.
71935
+ */
71886
71936
  this.units = new Set();
71887
71937
  }
71888
71938
  }
@@ -72049,6 +72099,10 @@ class AccuDraw {
72049
72099
  if (wasActive !== this.isActive)
72050
72100
  this.onCompassDisplayChange(wasActive ? "hide" : "show");
72051
72101
  }
72102
+ /** Get distance round off settings */
72103
+ get distanceRoundOff() { return this._distanceRoundOff; }
72104
+ /** Get angle round off settings */
72105
+ get angleRoundOff() { return this._angleRoundOff; }
72052
72106
  static { this._tempRot = new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Matrix3d(); }
72053
72107
  /** @internal */
72054
72108
  onInitialized() { this.enableForSession(); }
@@ -78506,16 +78560,12 @@ class DisplayStyleState extends _EntityState__WEBPACK_IMPORTED_MODULE_6__.Elemen
78506
78560
  return this.getRealityModels();
78507
78561
  }
78508
78562
  /** @internal */
78509
- forEachRealityTileTreeRef(func) {
78510
- this.forEachRealityModel((model) => {
78563
+ *getTileTreeRefs() {
78564
+ for (const model of this.realityModels) {
78511
78565
  if (!model.invisible) {
78512
- func(model.treeRef);
78566
+ yield model.treeRef;
78513
78567
  }
78514
- });
78515
- }
78516
- /** @internal */
78517
- forEachTileTreeRef(func) {
78518
- this.forEachRealityTileTreeRef(func);
78568
+ }
78519
78569
  }
78520
78570
  /** Performs logical comparison against another display style. Two display styles are logically equivalent if they have the same name, Id, and settings.
78521
78571
  * @param other The display style to which to compare.
@@ -86612,11 +86662,11 @@ class PlanarClipMaskState {
86612
86662
  // For this case, we don't need a maskRange so leave it as null.
86613
86663
  const viewTrees = new Array();
86614
86664
  const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
86615
- context.viewport.forEachTileTreeRef((ref) => {
86665
+ for (const ref of context.viewport.getTileTreeRefs()) {
86616
86666
  const tree = ref.treeOwner.load();
86617
86667
  if (tree && tree.modelId !== classifiedModelId && ref.planarClipMaskPriority > thisPriority)
86618
86668
  viewTrees.push(ref);
86619
- });
86669
+ }
86620
86670
  return viewTrees;
86621
86671
  }
86622
86672
  // For all other modes we need to let the tree refs in the view state decide which refs need to be drawn
@@ -89114,9 +89164,9 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
89114
89164
  computeFitRange(options) {
89115
89165
  // Fit to the union of the ranges of all loaded tile trees.
89116
89166
  const range = options?.baseExtents?.clone() ?? new _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d();
89117
- this.forEachTileTreeRef((ref) => {
89167
+ for (const ref of this.getTileTreeRefs()) {
89118
89168
  ref.unionFitRange(range);
89119
- });
89169
+ }
89120
89170
  // Fall back to the project extents if necessary.
89121
89171
  if (range.isNull)
89122
89172
  range.setFrom(this.computeBaseExtents());
@@ -89164,9 +89214,10 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
89164
89214
  }
89165
89215
  }
89166
89216
  /** @internal */
89167
- forEachModelTreeRef(func) {
89168
- for (const ref of this._treeRefs)
89169
- func(ref);
89217
+ *getModelTreeRefs() {
89218
+ for (const ref of this._treeRefs) {
89219
+ yield ref;
89220
+ }
89170
89221
  }
89171
89222
  /** @internal */
89172
89223
  createScene(context) {
@@ -92318,11 +92369,12 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
92318
92369
  * map tiles as well call [[Viewport.areAreAllTileTreesLoaded]].
92319
92370
  */
92320
92371
  get areAllTileTreesLoaded() {
92321
- let allLoaded = true;
92322
- this.forEachTileTreeRef((ref) => {
92323
- allLoaded = allLoaded && ref.isLoadingComplete;
92324
- });
92325
- return allLoaded;
92372
+ for (const ref of this.getTileTreeRefs()) {
92373
+ if (!ref.isLoadingComplete) {
92374
+ return false;
92375
+ }
92376
+ }
92377
+ return true;
92326
92378
  }
92327
92379
  /** Get the name of the [[ViewDefinition]] from which this ViewState originated. */
92328
92380
  get name() {
@@ -92366,17 +92418,29 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
92366
92418
  this.setOrigin(this.getOrigin().plus(diff));
92367
92419
  }
92368
92420
  /** Execute a function against each [[TileTreeReference]] associated with this view.
92369
- * @note This may include tile trees not associated with any [[GeometricModelState]] - e.g., context reality data.
92421
+ * This may include tile trees not associated with any [[GeometricModelState]] - e.g., context reality data.
92422
+ * @note This method is inefficient (iteration cannot be aborted) and awkward (callback cannot be async nor return a value). Prefer to iterate using [[getTileTreeRefs]].
92423
+ * @deprecated in 5.0. Use [[getTileTreeRefs]] instead.
92370
92424
  */
92371
92425
  forEachTileTreeRef(func) {
92372
- this.forEachModelTreeRef(func);
92373
- this.displayStyle.forEachTileTreeRef(func);
92426
+ for (const ref of this.getModelTreeRefs()) {
92427
+ func(ref);
92428
+ }
92429
+ for (const ref of this.displayStyle.getTileTreeRefs()) {
92430
+ func(ref);
92431
+ }
92432
+ }
92433
+ *getTileTreeRefs() {
92434
+ yield* this.getModelTreeRefs();
92435
+ yield* this.displayStyle.getTileTreeRefs();
92374
92436
  }
92375
92437
  /** Disclose *all* TileTrees currently in use by this view. This set may include trees not reported by [[forEachTileTreeRef]] - e.g., those used by view attachments, map-draped terrain, etc.
92376
92438
  * @internal
92377
92439
  */
92378
92440
  discloseTileTrees(trees) {
92379
- this.forEachTileTreeRef((ref) => trees.disclose(ref));
92441
+ for (const ref of this.getTileTreeRefs()) {
92442
+ trees.disclose(ref);
92443
+ }
92380
92444
  }
92381
92445
  /** Discloses graphics memory consumed by viewed tile trees and other consumers like view attachments.
92382
92446
  * @internal
@@ -92396,7 +92460,9 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
92396
92460
  }
92397
92461
  /** @internal */
92398
92462
  createScene(context) {
92399
- this.forEachTileTreeRef((ref) => ref.addToScene(context));
92463
+ for (const ref of this.getTileTreeRefs()) {
92464
+ ref.addToScene(context);
92465
+ }
92400
92466
  }
92401
92467
  /** Add view-specific decorations. The base implementation draws the grid. Subclasses must invoke super.decorate()
92402
92468
  * @internal
@@ -92880,13 +92946,13 @@ class ViewState extends _EntityState__WEBPACK_IMPORTED_MODULE_5__.ElementState {
92880
92946
  */
92881
92947
  refreshForModifiedModels(modelIds) {
92882
92948
  let refreshed = false;
92883
- this.forEachModelTreeRef((ref) => {
92949
+ for (const ref of this.getModelTreeRefs()) {
92884
92950
  const tree = ref.treeOwner.tileTree;
92885
92951
  if (undefined !== tree && (undefined === modelIds || _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.Id64.has(modelIds, tree.modelId))) {
92886
92952
  ref.treeOwner[Symbol.dispose]();
92887
92953
  refreshed = true;
92888
92954
  }
92889
- });
92955
+ }
92890
92956
  return refreshed;
92891
92957
  }
92892
92958
  /** Determine whether this ViewState has the same coordinate system as another one.
@@ -93941,10 +94007,10 @@ class ViewState2d extends ViewState {
93941
94007
  func(model);
93942
94008
  }
93943
94009
  /** @internal */
93944
- forEachModelTreeRef(func) {
93945
- const ref = this._tileTreeRef;
93946
- if (undefined !== ref)
93947
- func(ref);
94010
+ *getModelTreeRefs() {
94011
+ if (this._tileTreeRef) {
94012
+ yield this._tileTreeRef;
94013
+ }
93948
94014
  }
93949
94015
  createAuxCoordSystem(acsName) { return _AuxCoordSys__WEBPACK_IMPORTED_MODULE_3__.AuxCoordSystem2dState.createNew(acsName, this.iModel); }
93950
94016
  }
@@ -94023,6 +94089,7 @@ __webpack_require__.r(__webpack_exports__);
94023
94089
  /* harmony import */ var _common_ViewRect__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./common/ViewRect */ "../../core/frontend/lib/esm/common/ViewRect.js");
94024
94090
  /* harmony import */ var _Frustum2d__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Frustum2d */ "../../core/frontend/lib/esm/Frustum2d.js");
94025
94091
  /* harmony import */ var _BackgroundMapGeometry__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./BackgroundMapGeometry */ "../../core/frontend/lib/esm/BackgroundMapGeometry.js");
94092
+ /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
94026
94093
  /*---------------------------------------------------------------------------------------------
94027
94094
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
94028
94095
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -94037,6 +94104,7 @@ __webpack_require__.r(__webpack_exports__);
94037
94104
 
94038
94105
 
94039
94106
 
94107
+
94040
94108
  /** Describes a [[Viewport]]'s viewing volume, plus its size on the screen. A new
94041
94109
  * instance of ViewingSpace is created every time the Viewport's frustum changes.
94042
94110
  * @see [[Viewport.viewingSpace]].
@@ -94247,11 +94315,11 @@ class ViewingSpace {
94247
94315
  this.rotation.setFrom(view.getRotation());
94248
94316
  this.getViewedExtents = () => {
94249
94317
  const extents = this._view.getViewedExtents();
94250
- vp.forEachTiledGraphicsProvider((provider) => {
94251
- provider.forEachTileTreeRef(vp, (ref) => {
94318
+ for (const provider of vp.tiledGraphicsProviders) {
94319
+ for (const ref of _tile_internal__WEBPACK_IMPORTED_MODULE_7__.TiledGraphicsProvider.getTileTreeRefs(provider, vp)) {
94252
94320
  ref.unionFitRange(extents);
94253
- });
94254
- });
94321
+ }
94322
+ }
94255
94323
  return extents;
94256
94324
  };
94257
94325
  // first, make sure none of the deltas are negative
@@ -95178,22 +95246,11 @@ class Viewport {
95178
95246
  */
95179
95247
  async getToolTip(hit) {
95180
95248
  const promises = new Array();
95181
- this.view.forEachTileTreeRef((ref) => {
95182
- const promise = ref.getToolTipPromise(hit);
95183
- if (promise)
95184
- promises.push(promise);
95185
- });
95186
- this.forEachMapTreeRef((ref) => {
95249
+ for (const ref of this.getTileTreeRefs()) {
95187
95250
  const promise = ref.getToolTipPromise(hit);
95188
- if (promise)
95251
+ if (promise) {
95189
95252
  promises.push(promise);
95190
- });
95191
- for (const provider of this.tiledGraphicsProviders) {
95192
- provider.forEachTileTreeRef(this, (ref) => {
95193
- const promise = ref.getToolTipPromise(hit);
95194
- if (promise)
95195
- promises.push(promise);
95196
- });
95253
+ }
95197
95254
  }
95198
95255
  const results = await Promise.all(promises);
95199
95256
  return results.find((result) => undefined !== result) ?? "";
@@ -95207,7 +95264,9 @@ class Viewport {
95207
95264
  const promises = new Array();
95208
95265
  // Execute 'getMapFeatureInfo' on every tree, and make sure to handle exception for each call,
95209
95266
  // so that we get still get results even though a tree has failed.
95210
- this.forEachMapTreeRef(async (tree) => promises.push(tree.getMapFeatureInfo(hit, options).catch(() => undefined)));
95267
+ for (const tree of this.mapTileTreeRefs) {
95268
+ promises.push(tree.getMapFeatureInfo(hit, options).catch(() => undefined));
95269
+ }
95211
95270
  const featureInfo = {};
95212
95271
  const worldPoint = hit.hitPoint.clone();
95213
95272
  const backgroundMapGeometry = hit.viewport.displayStyle.getBackgroundMapGeometry();
@@ -95708,25 +95767,36 @@ class Viewport {
95708
95767
  return this._tiledGraphicsProviders;
95709
95768
  }
95710
95769
  /** @internal */
95711
- forEachTiledGraphicsProvider(func) {
95712
- for (const provider of this._tiledGraphicsProviders)
95713
- func(provider);
95714
- }
95715
- /** @internal */
95716
- forEachTiledGraphicsProviderTree(func) {
95717
- for (const provider of this._tiledGraphicsProviders)
95718
- provider.forEachTileTreeRef(this, (ref) => func(ref));
95770
+ *tiledGraphicsProviderRefs() {
95771
+ for (const provider of this.tiledGraphicsProviders) {
95772
+ yield* _tile_internal__WEBPACK_IMPORTED_MODULE_21__.TiledGraphicsProvider.getTileTreeRefs(provider, this);
95773
+ }
95719
95774
  }
95720
- /** Apply a function to every tile tree reference associated with the map layers displayed by this viewport. */
95775
+ /** Apply a function to every tile tree reference associated with the map layers displayed by this viewport.
95776
+ * @deprecated in 5.0. Use [[mapTileTreeRefs]] instead.
95777
+ */
95721
95778
  forEachMapTreeRef(func) {
95722
95779
  if (this._mapTiledGraphicsProvider)
95723
95780
  this._mapTiledGraphicsProvider.forEachTileTreeRef(this, (ref) => func(ref));
95724
95781
  }
95725
- /** Apply a function to every [[TileTreeReference]] displayed by this viewport. */
95782
+ /** Obtain an iterator over the tile tree references used to render map imagery in this viewport, if any. */
95783
+ get mapTileTreeRefs() {
95784
+ return this._mapTiledGraphicsProvider?.getReferences(this) ?? [];
95785
+ }
95786
+ ;
95787
+ /** Apply a function to every [[TileTreeReference]] displayed by this viewport.
95788
+ * @deprecated in 5.0. Use [[getTileTreeRefs]] instead.
95789
+ */
95726
95790
  forEachTileTreeRef(func) {
95727
- this.view.forEachTileTreeRef(func);
95728
- this.forEachTiledGraphicsProviderTree(func);
95729
- this.forEachMapTreeRef(func);
95791
+ for (const ref of this.getTileTreeRefs()) {
95792
+ func(ref);
95793
+ }
95794
+ }
95795
+ /** Iterate over every [[TileTreeReference]] displayed by this viewport. */
95796
+ *getTileTreeRefs() {
95797
+ yield* this.view.getTileTreeRefs();
95798
+ yield* this.mapTileTreeRefs;
95799
+ yield* this.tiledGraphicsProviderRefs();
95730
95800
  }
95731
95801
  /**
95732
95802
  * Returns true if all [[TileTree]]s required by this viewport have been loaded.
@@ -95745,8 +95815,12 @@ class Viewport {
95745
95815
  * @internal
95746
95816
  */
95747
95817
  discloseTileTrees(trees) {
95748
- this.forEachTiledGraphicsProviderTree((ref) => trees.disclose(ref));
95749
- this.forEachMapTreeRef((ref) => trees.disclose(ref));
95818
+ for (const ref of this.tiledGraphicsProviderRefs()) {
95819
+ trees.disclose(ref);
95820
+ }
95821
+ for (const ref of this.mapTileTreeRefs) {
95822
+ trees.disclose(ref);
95823
+ }
95750
95824
  trees.disclose(this.view);
95751
95825
  }
95752
95826
  /** Register a provider of tile graphics to be drawn in this viewport.
@@ -95778,7 +95852,9 @@ class Viewport {
95778
95852
  /** @internal */
95779
95853
  getTerrainHeightRange() {
95780
95854
  const heightRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range1d.createNull();
95781
- this.forEachTileTreeRef((ref) => ref.getTerrainHeight(heightRange));
95855
+ for (const ref of this.mapTileTreeRefs) {
95856
+ ref.getTerrainHeight(heightRange);
95857
+ }
95782
95858
  return heightRange;
95783
95859
  }
95784
95860
  /** @internal */
@@ -96265,9 +96341,9 @@ class Viewport {
96265
96341
  /** Compute the range of all geometry to be displayed in this viewport. */
96266
96342
  computeViewRange() {
96267
96343
  const fitRange = this.view.computeFitRange();
96268
- this.forEachTiledGraphicsProviderTree((ref) => {
96344
+ for (const ref of this.tiledGraphicsProviderRefs()) {
96269
96345
  ref.unionFitRange(fitRange);
96270
- });
96346
+ }
96271
96347
  return fitRange;
96272
96348
  }
96273
96349
  /** Set or clear the animator for this Viewport.
@@ -97023,10 +97099,13 @@ class ScreenViewport extends Viewport {
97023
97099
  const aboutBox = _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.makeModalDiv({ autoClose: true, width: 460, closeBox: true, rootDiv: this.vpDiv.ownerDocument.body }).modal;
97024
97100
  aboutBox.className += " imodeljs-about"; // only added so the CSS knows this is the about dialog
97025
97101
  const logos = _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.makeHTMLElement("table", { parent: aboutBox, className: "logo-cards" });
97026
- if (undefined !== _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.applicationLogoCard)
97102
+ if (undefined !== _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.applicationLogoCard) {
97027
97103
  logos.appendChild(_IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.applicationLogoCard());
97104
+ }
97028
97105
  logos.appendChild(_IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.makeIModelJsLogoCard());
97029
- this.forEachTileTreeRef((ref) => ref.addLogoCards(logos, this));
97106
+ for (const ref of this.getTileTreeRefs()) {
97107
+ ref.addLogoCards(logos, this);
97108
+ }
97030
97109
  ev.stopPropagation();
97031
97110
  };
97032
97111
  logo.onclick = showLogos;
@@ -97239,7 +97318,9 @@ class ScreenViewport extends Viewport {
97239
97318
  // Some naughty decorators unwittingly do so by e.g. invalidating the scene in their decorate method.
97240
97319
  this._decorationCache.prohibitRemoval = true;
97241
97320
  context.addFromDecorator(this.view);
97242
- this.forEachTiledGraphicsProviderTree((ref) => context.addFromDecorator(ref));
97321
+ for (const ref of this.tiledGraphicsProviderRefs()) {
97322
+ context.addFromDecorator(ref);
97323
+ }
97243
97324
  for (const decorator of _IModelApp__WEBPACK_IMPORTED_MODULE_10__.IModelApp.viewManager.decorators)
97244
97325
  context.addFromDecorator(decorator);
97245
97326
  ScreenViewport.removeMarkedChildren(this.decorationDiv);
@@ -127591,7 +127672,7 @@ class SolarShadowMap {
127591
127672
  const shadowRange = worldToMapTransform.multiplyRange(iModel.projectExtents);
127592
127673
  // Limit the map to only displayed models.
127593
127674
  const viewTileRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
127594
- view.forEachTileTreeRef((ref) => {
127675
+ for (const ref of view.getTileTreeRefs()) {
127595
127676
  if (ref.castsShadows) {
127596
127677
  if (ref.isGlobal) {
127597
127678
  // A shadow-casting tile tree that spans the globe. Limit its range to the viewed extents.
@@ -127607,7 +127688,7 @@ class SolarShadowMap {
127607
127688
  ref.accumulateTransformedRange(viewTileRange, worldToMap, undefined);
127608
127689
  }
127609
127690
  }
127610
- });
127691
+ }
127611
127692
  if (!viewTileRange.isNull)
127612
127693
  viewTileRange.clone(shadowRange);
127613
127694
  // Expand shadow range to include both the shadowers and shadowed portion of background map.
@@ -127636,7 +127717,7 @@ class SolarShadowMap {
127636
127717
  mapToWorld.multiplyPoint3dArrayQuietNormalize(this._shadowFrustum.points);
127637
127718
  const tileRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_1__.Range3d.createNull();
127638
127719
  scratchFrustumPlanes.init(this._shadowFrustum);
127639
- view.forEachTileTreeRef(((ref) => {
127720
+ for (const ref of view.getTileTreeRefs()) {
127640
127721
  if (!ref.castsShadows)
127641
127722
  return;
127642
127723
  const drawArgs = createDrawArgs(context, this, ref, scratchFrustumPlanes, (tiles) => {
@@ -127647,7 +127728,7 @@ class SolarShadowMap {
127647
127728
  return;
127648
127729
  const tileToMapTransform = worldToMapTransform.multiplyTransformTransform(drawArgs.location, this._scratchTransform);
127649
127730
  drawArgs.tree.draw(drawArgs);
127650
- }));
127731
+ }
127651
127732
  if (tileRange.isNull) {
127652
127733
  this.clearGraphics(true);
127653
127734
  }
@@ -153998,6 +154079,21 @@ var TiledGraphicsProvider;
153998
154079
  return allLoaded;
153999
154080
  }
154000
154081
  TiledGraphicsProvider.isLoadingComplete = isLoadingComplete;
154082
+ /** Obtain an iterator over all of the [[TileTreeReference]]s belonging to this provider that should be drawn in the specified [[Viewport]].
154083
+ * This function invokes [[TiledGraphicsProvider.getReferences]] if implemented by `provider`; otherwise, it populates an iterable from the references
154084
+ * provided by [[TiledGraphicsProvider.forEachTileTreeRef]], which is less efficient.
154085
+ */
154086
+ function getTileTreeRefs(provider, viewport) {
154087
+ if (provider.getReferences) {
154088
+ return provider.getReferences(viewport);
154089
+ }
154090
+ const refs = [];
154091
+ provider.forEachTileTreeRef(viewport, (ref) => {
154092
+ refs.push(ref);
154093
+ });
154094
+ return refs;
154095
+ }
154096
+ TiledGraphicsProvider.getTileTreeRefs = getTileTreeRefs;
154001
154097
  })(TiledGraphicsProvider || (TiledGraphicsProvider = {}));
154002
154098
 
154003
154099
 
@@ -161301,6 +161397,12 @@ __webpack_require__.r(__webpack_exports__);
161301
161397
 
161302
161398
  /** @internal */
161303
161399
  class MapTiledGraphicsProvider {
161400
+ *getReferences(viewport) {
161401
+ if (viewport.viewFlags.backgroundMap) {
161402
+ yield this.backgroundMap;
161403
+ yield this.overlayMap;
161404
+ }
161405
+ }
161304
161406
  forEachTileTreeRef(viewport, func) {
161305
161407
  if (viewport.viewFlags.backgroundMap) {
161306
161408
  func(this.backgroundMap);
@@ -164079,6 +164181,8 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
164079
164181
  fixedLocation: false,
164080
164182
  /** Layout controls in a single row horizontally instead of in columns vertically as an option when using fixed location. */
164081
164183
  horizontalArrangement: false,
164184
+ /** When controls follow the cursor, the X and Y offsets applied to the current point to position the top left (values in inches based on screen DPI) */
164185
+ cursorOffset: { x: .4, y: .1 },
164082
164186
  /** Replace "^", ";", and ".." with "°" or ":" for easier input. */
164083
164187
  simplifiedInput: true,
164084
164188
  /** Enable simple math operations not supported by quantity parser. */
@@ -164593,11 +164697,12 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
164593
164697
  return;
164594
164698
  if (undefined !== this._controls && this._controls.overlay.parentElement !== vp.vpDiv)
164595
164699
  this.removeControls(); // Could be enhanced to save/restore partial input of currently focused item...
164700
+ const props = AccuDrawViewportUI.controlProps;
164596
164701
  if (undefined === this._controls) {
164597
164702
  const overlay = vp.addNewDiv("accudraw-overlay", true, 35);
164598
164703
  const div = this.createControlDiv();
164599
164704
  const is3dLayout = vp.view.is3d();
164600
- const isHorizontalLayout = AccuDrawViewportUI.controlProps.horizontalArrangement;
164705
+ const isHorizontalLayout = props.horizontalArrangement;
164601
164706
  overlay.appendChild(div);
164602
164707
  const createFieldAndLock = (item) => {
164603
164708
  const itemField = itemFields[item] = this.createItemField(item);
@@ -164605,7 +164710,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
164605
164710
  itemField.style.left = isHorizontalLayout ? `${columnOffset}px` : "0";
164606
164711
  div.appendChild(itemField);
164607
164712
  if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
164608
- rowOffset += itemField.offsetHeight * AccuDrawViewportUI.controlProps.rowSpacingFactor;
164713
+ rowOffset += itemField.offsetHeight * props.rowSpacingFactor;
164609
164714
  itemWidth = itemField.offsetWidth;
164610
164715
  itemHeight = itemField.offsetHeight;
164611
164716
  const itemLock = itemLocks[item] = this.createItemFieldLock(item);
@@ -164615,7 +164720,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
164615
164720
  div.appendChild(itemLock);
164616
164721
  lockWidth = itemLock.offsetWidth;
164617
164722
  if (is3dLayout || _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item !== item)
164618
- columnOffset += (itemWidth + lockWidth) * AccuDrawViewportUI.controlProps.columnSpacingFactor;
164723
+ columnOffset += (itemWidth + lockWidth) * props.columnSpacingFactor;
164619
164724
  };
164620
164725
  let rowOffset = 0;
164621
164726
  let columnOffset = 0;
@@ -164632,7 +164737,7 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
164632
164737
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Y_Item);
164633
164738
  createFieldAndLock(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.ItemField.Z_Item); // Both polar and rectangular modes support Z in 3d views...
164634
164739
  div.style.width = isHorizontalLayout ? `${columnOffset}px` : `${itemWidth + lockWidth + 5}px`;
164635
- div.style.height = isHorizontalLayout ? `${itemHeight * AccuDrawViewportUI.controlProps.rowSpacingFactor}px` : `${rowOffset}px`;
164740
+ div.style.height = isHorizontalLayout ? `${itemHeight * props.rowSpacingFactor}px` : `${rowOffset}px`;
164636
164741
  this._controls = { overlay, div, itemFields, itemLocks };
164637
164742
  this.updateControlVisibility(_AccuDraw__WEBPACK_IMPORTED_MODULE_1__.CompassMode.Polar === this.compassMode, vp.view.is3d());
164638
164743
  this.setFocusItem(this._focusItem);
@@ -164641,13 +164746,13 @@ class AccuDrawViewportUI extends _AccuDraw__WEBPACK_IMPORTED_MODULE_1__.AccuDraw
164641
164746
  }
164642
164747
  const viewRect = vp.viewRect;
164643
164748
  const position = vp.worldToView(ev.point);
164644
- if (AccuDrawViewportUI.controlProps.fixedLocation) {
164749
+ if (props.fixedLocation) {
164645
164750
  position.x = (viewRect.left + ((viewRect.width - this._controls.div.offsetWidth) * 0.5));
164646
164751
  position.y = (viewRect.bottom - this._controls.div.offsetHeight);
164647
164752
  }
164648
164753
  else {
164649
- position.x += Math.floor(vp.pixelsFromInches(0.4)) + 0.5;
164650
- position.y += Math.floor(vp.pixelsFromInches(0.1)) + 0.5;
164754
+ position.x += Math.floor(vp.pixelsFromInches(props.cursorOffset.x)) + 0.5;
164755
+ position.y += Math.floor(vp.pixelsFromInches(props.cursorOffset.y)) + 0.5;
164651
164756
  }
164652
164757
  const controlRect = new _common_ViewRect__WEBPACK_IMPORTED_MODULE_2__.ViewRect(position.x, position.y, position.x + this._controls.div.offsetWidth, position.y + this._controls.div.offsetHeight);
164653
164758
  this.modifyControlRect(controlRect, vp);
@@ -292662,10 +292767,10 @@ class Settings {
292662
292767
  });
292663
292768
  }
292664
292769
  toString() {
292665
- return `Configurations:
292666
- oidc client id: ${this.oidcClientId},
292667
- oidc scopes: ${this.oidcScopes},
292668
- applicationId: ${this.gprid},
292770
+ return `Configurations:
292771
+ oidc client id: ${this.oidcClientId},
292772
+ oidc scopes: ${this.oidcScopes},
292773
+ applicationId: ${this.gprid},
292669
292774
  log level: ${this.logLevel}`;
292670
292775
  }
292671
292776
  }
@@ -305507,7 +305612,7 @@ var loadLanguages = instance.loadLanguages;
305507
305612
  /***/ ((module) => {
305508
305613
 
305509
305614
  "use strict";
305510
- module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.50","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run --coverage","test:debug":"vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^2.1.0","@vitest/coverage-v8":"^2.1.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","cpx2":"^3.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^3.0.2","source-map-loader":"^4.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^2.1.0","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"1.0.6","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
305615
+ module.exports = /*#__PURE__*/JSON.parse('{"name":"@itwin/core-frontend","version":"5.0.0-dev.52","description":"iTwin.js frontend components","main":"lib/cjs/core-frontend.js","module":"lib/esm/core-frontend.js","typings":"lib/cjs/core-frontend","license":"MIT","scripts":{"build":"npm run -s copy:public && npm run -s build:cjs && npm run -s build:esm && npm run -s webpackWorkers && npm run -s copy:workers","build:cjs":"npm run -s copy:js:cjs && tsc 1>&2 --outDir lib/cjs","build:esm":"npm run -s copy:js:esm && tsc 1>&2 --module ES2022 --outDir lib/esm","clean":"rimraf lib .rush/temp/package-deps*.json","copy:public":"cpx \\"./src/public/**/*\\" ./lib/public","copy:js:cjs":"cpx \\"./src/**/*.js\\" ./lib/cjs","copy:js:esm":"cpx \\"./src/**/*.js\\" ./lib/esm","copy:workers":"cpx \\"./lib/workers/webpack/parse-imdl-worker.js\\" ./lib/public/scripts","docs":"betools docs --json=../../generated-docs/core/core-frontend/file.json --tsIndexFile=./core-frontend.ts --onlyJson --excludes=webgl/**/*,**/map/*.d.ts,**/tile/*.d.ts,**/*-css.ts","extract-api":"betools extract-api --entry=core-frontend && npm run extract-extension-api","extract-extension-api":"eslint --no-inline-config -c extraction.eslint.config.js \\"./src/**/*.ts\\" 1>&2","lint":"eslint \\"./src/**/*.ts\\" 1>&2","lint-fix":"eslint --fix -f visualstudio \\"./src/**/*.ts\\" 1>&2","pseudolocalize":"betools pseudolocalize --englishDir ./src/public/locales/en --out ./public/locales/en-PSEUDO","test":"npm run webpackTestWorker && vitest --run","cover":"npm run webpackTestWorker && vitest --run --coverage","test:debug":"vitest --run","webpackTests":"webpack --config ./src/test/utils/webpack.config.js 1>&2 && npm run -s webpackTestWorker","webpackTestWorker":"webpack --config ./src/test/worker/webpack.config.js 1>&2 && cpx \\"./lib/test/test-worker.js\\" ./lib/test","webpackWorkers":"webpack --config ./src/workers/ImdlParser/webpack.config.js 1>&2"},"repository":{"type":"git","url":"https://github.com/iTwin/itwinjs-core.git","directory":"core/frontend"},"keywords":["Bentley","BIM","iModel","digital-twin","iTwin"],"author":{"name":"Bentley Systems, Inc.","url":"http://www.bentley.com"},"peerDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*"},"//devDependencies":["NOTE: All peerDependencies should also be listed as devDependencies since peerDependencies are not considered by npm install","NOTE: All tools used by scripts in this package must be listed as devDependencies"],"devDependencies":{"@itwin/appui-abstract":"workspace:*","@itwin/build-tools":"workspace:*","@itwin/core-bentley":"workspace:*","@itwin/core-common":"workspace:*","@itwin/core-geometry":"workspace:*","@itwin/core-orbitgt":"workspace:*","@itwin/core-quantity":"workspace:*","@itwin/eslint-plugin":"5.0.0-dev.1","@types/chai-as-promised":"^7","@vitest/browser":"^2.1.0","@vitest/coverage-v8":"^2.1.0","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","cpx2":"^3.0.0","eslint":"^9.13.0","glob":"^10.3.12","playwright":"~1.47.1","rimraf":"^3.0.2","source-map-loader":"^4.0.0","typescript":"~5.6.2","typemoq":"^2.1.0","vitest":"^2.1.0","vite-multiple-assets":"^1.3.1","vite-plugin-static-copy":"1.0.6","webpack":"^5.97.1"},"//dependencies":["NOTE: these dependencies should be only for things that DO NOT APPEAR IN THE API","NOTE: core-frontend should remain UI technology agnostic, so no react/angular dependencies are allowed"],"dependencies":{"@itwin/cloud-agnostic-core":"^2.2.4","@itwin/object-storage-core":"^2.2.5","@itwin/core-i18n":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","wms-capabilities":"0.4.0"}}');
305511
305616
 
305512
305617
  /***/ })
305513
305618