@itwin/ecschema-rpcinterface-tests 4.9.0-dev.23 → 4.9.0-dev.24

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.
@@ -1 +1 @@
1
- {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\14\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
1
+ {"version":3,"file":"_bea9.bundled-tests.js","mappings":";;;;;;;;AAAA","sources":["file:///ignored|D:\\vsts_a\\6\\s\\common\\temp\\node_modules\\.pnpm\\@loaders.gl+worker-utils@3.1.6\\node_modules\\@loaders.gl\\worker-utils\\dist\\esm\\lib\\library-utils|../node/require-utils.node"],"names":[],"sourceRoot":""}
@@ -24451,6 +24451,12 @@ class Logger {
24451
24451
  Logger._logError(category, message, metaData);
24452
24452
  }
24453
24453
  static getExceptionMessage(err) {
24454
+ if (err === undefined) {
24455
+ return "Error: err is undefined.";
24456
+ }
24457
+ if (err === null) {
24458
+ return "Error: err is null.";
24459
+ }
24454
24460
  const stack = Logger.logExceptionCallstacks ? `\n${_BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorStack(err)}` : "";
24455
24461
  return _BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorMessage(err) + stack;
24456
24462
  }
@@ -24461,7 +24467,7 @@ class Logger {
24461
24467
  */
24462
24468
  static logException(category, err, log = (_category, message, metaData) => Logger.logError(_category, message, metaData)) {
24463
24469
  log(category, Logger.getExceptionMessage(err), () => {
24464
- return { ..._BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorMetadata(err), exceptionType: err.constructor.name };
24470
+ return { ..._BentleyError__WEBPACK_IMPORTED_MODULE_1__.BentleyError.getErrorMetadata(err), exceptionType: err?.constructor?.name ?? "<Unknown>" };
24465
24471
  });
24466
24472
  }
24467
24473
  /** Log the specified message to the **warning** stream.
@@ -85568,15 +85574,15 @@ class PlanarClipMaskState {
85568
85574
  this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));
85569
85575
  }
85570
85576
  // Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask, and extend the maskRange if needed.
85571
- getTileTrees(view, classifiedModelId, maskRange) {
85577
+ getTileTrees(context, classifiedModelId, maskRange) {
85572
85578
  if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority) {
85573
85579
  // For priority mode we simply want refs for all viewed models if the priority is higher than the mask priority.
85574
85580
  // For this case, we don't need a maskRange so leave it as null.
85575
85581
  const viewTrees = new Array();
85576
85582
  const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
85577
- view.forEachTileTreeRef((ref) => {
85583
+ context.viewport.forEachTileTreeRef((ref) => {
85578
85584
  const tree = ref.treeOwner.load();
85579
- if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)
85585
+ if (tree && tree.modelId !== classifiedModelId && ref.planarClipMaskPriority > thisPriority)
85580
85586
  viewTrees.push(ref);
85581
85587
  });
85582
85588
  return viewTrees;
@@ -85586,8 +85592,8 @@ class PlanarClipMaskState {
85586
85592
  // Keep calling this until loaded so that the range is valid.
85587
85593
  if (!this._allLoaded) {
85588
85594
  this._tileTreeRefs = new Array();
85589
- if (this.settings.modelIds) {
85590
- view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs, maskRange);
85595
+ if (this.settings.modelIds && context.viewport.view.isSpatialView()) {
85596
+ context.viewport.view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs, maskRange);
85591
85597
  }
85592
85598
  this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);
85593
85599
  maskRange.clone(this._maskRange);
@@ -85597,10 +85603,10 @@ class PlanarClipMaskState {
85597
85603
  return this._allLoaded ? this._tileTreeRefs : undefined;
85598
85604
  }
85599
85605
  // Returns any potential FeatureSymbology overrides for drawing the planar clip mask.
85600
- getPlanarClipMaskSymbologyOverrides(view, context, featureSymbologySource) {
85606
+ getPlanarClipMaskSymbologyOverrides(context, featureSymbologySource) {
85601
85607
  this._usingViewportOverrides = false;
85602
85608
  // First obtain a list of models that will need to be turned off for drawing the planar clip mask (only used for batched tile trees).
85603
- const overrideModels = view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode);
85609
+ const overrideModels = context.viewport.view.isSpatialView() ? context.viewport.view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode) : undefined;
85604
85610
  const noSubCategoryOrElementIds = !this.settings.subCategoryOrElementIds;
85605
85611
  if (noSubCategoryOrElementIds && !overrideModels)
85606
85612
  return undefined;
@@ -118328,7 +118334,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
118328
118334
  this._width = requiredWidth;
118329
118335
  this._height = requiredHeight;
118330
118336
  const maskRange = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_2__.Range3d.createNull();
118331
- const maskTrees = this._planarClipMask?.getTileTrees(viewState, target.modelId, maskRange);
118337
+ const maskTrees = this._planarClipMask?.getTileTrees(context, target.modelId, maskRange);
118332
118338
  if (!maskTrees && !this._classifierTreeRef)
118333
118339
  return;
118334
118340
  const allTrees = maskTrees ? maskTrees.slice() : new Array();
@@ -118340,14 +118346,14 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
118340
118346
  this._projectionMatrix = projection.projectionMatrix;
118341
118347
  this._frustum = projection.textureFrustum;
118342
118348
  this._debugFrustum = projection.debugFrustum;
118343
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
118349
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);
118344
118350
  if (!this._planarClipMask?.usingViewportOverrides && this._removeMe) {
118345
118351
  this._removeMe();
118346
118352
  this._removeMe = undefined;
118347
118353
  }
118348
118354
  else if (this._planarClipMask?.usingViewportOverrides && !this._removeMe) {
118349
118355
  this._removeMe = context.viewport.onFeatureOverridesChanged.addListener(() => {
118350
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context, this._featureSymbologySource);
118356
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(context, this._featureSymbologySource);
118351
118357
  context.viewport.requestRedraw();
118352
118358
  });
118353
118359
  }
@@ -135264,7 +135270,7 @@ const applyPlanarClassificationColorForThematic = applyPlanarClassificationPrelu
135264
135270
  return classColor;
135265
135271
  `;
135266
135272
  const overrideFeatureId = `
135267
- if (u_pClassColorParams.x > kClassifierDisplay_Element) return currentId;
135273
+ if (u_pClassColorParams.x != kClassifierDisplay_Element) return currentId;
135268
135274
  vec2 classPos = v_pClassPos / v_pClassPosW;
135269
135275
  vec4 featureTexel = TEXTURE(s_pClassSampler, vec2(classPos.x, (1.0 + classPos.y) / u_pClassColorParams.z));
135270
135276
  return (featureTexel == vec4(0)) ? currentId : addUInt32s(u_batchBase, featureTexel * 255.0) / 255.0;
@@ -147576,8 +147582,10 @@ class GraphicRef extends _internal__WEBPACK_IMPORTED_MODULE_1__.TileTreeReferenc
147576
147582
  this._owner = args.iModel.tiles.getTileTreeOwner(args, supplier);
147577
147583
  this._modelId = args.modelId;
147578
147584
  this._getToolTip = args.getToolTip;
147585
+ this._planarClipMaskPriority = args.planarClipMaskPriority;
147579
147586
  }
147580
147587
  get treeOwner() { return this._owner; }
147588
+ get planarClipMaskPriority() { return this._planarClipMaskPriority ?? super.planarClipMaskPriority; }
147581
147589
  canSupplyToolTip(hit) {
147582
147590
  return undefined !== this._getToolTip && this._modelId === hit.modelId;
147583
147591
  }
@@ -150721,11 +150729,11 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
150721
150729
  }
150722
150730
  /** Return whether this reference has global coverage. Mapping data is global and some non-primary models such as the OSM building layer have global coverage */
150723
150731
  get isGlobal() { return false; }
150724
- /** Return the clip mask priority for this model - models will be clipped by any other viewed model with a higher proirity.
150725
- * BIM models have highest prioirty and are never clipped.
150726
- * @alpha
150732
+ /** The [PlanarClipMaskPriority]($common) of this tile tree used to determine which tile trees contribute to a clip mask when
150733
+ * using [PlanarClipMaskMode.Priority]($common).
150734
+ * @beta
150727
150735
  */
150728
- get planarclipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.PlanarClipMaskPriority.DesignModel; }
150736
+ get planarClipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_2__.PlanarClipMaskPriority.DesignModel; }
150729
150737
  /** Add attribution logo cards for the tile tree source logo cards to the viewport's logo div. */
150730
150738
  addLogoCards(_cards, _vp) { }
150731
150739
  /** Create a tile tree reference equivalent to this one that also supplies an implementation of [[GeometryTileTreeReference.collectTileGeometry]].
@@ -150762,10 +150770,18 @@ class TileTreeReference /* implements RenderMemory.Consumer */ {
150762
150770
  return this._createGeometryTreeReference();
150763
150771
  }
150764
150772
  /** Create a [[TileTreeReference]] that displays a pre-defined [[RenderGraphic]].
150765
- * The reference can be used by a [[TiledGraphicsProvider]] or as a [[DynamicSpatialClassifier]]. For example:
150773
+ * The reference can be used to add dynamic content to a [[Viewport]]'s scene as a [[TiledGraphicsProvider]], as in the following example:
150766
150774
  * ```ts
150767
150775
  * [[include:TileTreeReference_createFromRenderGraphic]]
150768
150776
  *```
150777
+ * Or, it can be used as a [[DynamicSpatialClassifier]] to contextualize a reality model, like so:
150778
+ * ```ts
150779
+ * [[include:TileTreeReference_DynamicClassifier]]
150780
+ * ```
150781
+ * It can also be used to mask out portions of the background map or terrain via [PlanarClipMaskSettings]($common), as shown below:
150782
+ * ```ts
150783
+ * [[include:TileTreeReference_DynamicClipMask]]
150784
+ * ```
150769
150785
  * @beta
150770
150786
  */
150771
150787
  static createFromRenderGraphic(args) {
@@ -157954,7 +157970,7 @@ class MapTileTreeReference extends _internal__WEBPACK_IMPORTED_MODULE_7__.TileTr
157954
157970
  }
157955
157971
  get isGlobal() { return true; }
157956
157972
  get baseColor() { return this._baseColor; }
157957
- get planarclipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskPriority.BackgroundMap; }
157973
+ get planarClipMaskPriority() { return _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskPriority.BackgroundMap; }
157958
157974
  _createGeometryTreeReference() {
157959
157975
  if (!this._settings.applyTerrain || this._isDrape)
157960
157976
  return undefined; // Don't bother generating non-terrain (flat) geometry.
@@ -186510,7 +186526,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
186510
186526
  * @param center arc center
186511
186527
  * @param vector0 vector to 0 degrees (commonly major axis)
186512
186528
  * @param vector90 vector to 90 degree point (commonly minor axis)
186513
- * @param sweep sweep limits
186529
+ * @param sweep sweep limits (default full sweep)
186514
186530
  * @param result optional preallocated result
186515
186531
  */
186516
186532
  static create(center, vector0, vector90, sweep, result) {
@@ -186519,12 +186535,12 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
186519
186535
  return Arc3d.createRefs(center !== undefined ? center.clone() : _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.create(0, 0, 0), matrix, sweep ? sweep.clone() : _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360(), result);
186520
186536
  }
186521
186537
  /**
186522
- * Create an arc from three points on the ellipse: two points on an axis and one in between.
186538
+ * Create an elliptical arc from three points on the ellipse: two points on an axis and one in between.
186523
186539
  * @param point0 start of arc, on an axis
186524
186540
  * @param point1 point on arc somewhere between `point0` and `point2`
186525
186541
  * @param point2 point on arc directly opposite `point0`
186526
186542
  * @param sweep angular sweep, measured from `point0` in the direction of `point1`.
186527
- * For a semicircle from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
186543
+ * For a half-ellipse from `point0` to `point2` passing through `point1`, pass `AngleSweep.createStartEndDegrees(0,180)`.
186528
186544
  * Default value is full sweep to create the entire ellipse.
186529
186545
  * @param result optional preallocated result
186530
186546
  * @returns elliptical arc, or undefined if construction impossible.
@@ -186548,9 +186564,9 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
186548
186564
  return Arc3d.create(center, vector0, vector90, sweep, result);
186549
186565
  }
186550
186566
  /**
186551
- * Create a circular arc defined by start point, tangent at start point, and end point.
186552
- * If tangent is parallel to line segment from start to end, return the line segment.
186553
- */
186567
+ * Create a circular arc defined by start point, tangent at start point, and end point.
186568
+ * If tangent is parallel to line segment from start to end, return the line segment.
186569
+ */
186554
186570
  static createCircularStartTangentEnd(start, tangentAtStart, end, result) {
186555
186571
  // To find the circle passing through start and end with tangentAtStart at start:
186556
186572
  // - find line 1: the perpendicular bisector of the line from start to end.
@@ -186576,6 +186592,39 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
186576
186592
  }
186577
186593
  return _LineSegment3d__WEBPACK_IMPORTED_MODULE_6__.LineSegment3d.create(start, end);
186578
186594
  }
186595
+ /**
186596
+ * Create a circular arc defined by start and end points and radius.
186597
+ * @param start start point of the arc
186598
+ * @param end end point of the arc
186599
+ * @param helper a third point near the arc in its plane, or a vector in the direction of the arc normal
186600
+ * @returns the constructed arc, or undefined if desired arc cannot be constructed
186601
+ */
186602
+ static createCircularStartEndRadius(start, end, radius, helper) {
186603
+ // Construct a line segment from start to end. It is a chord of the circle,
186604
+ // so the circle center is on its perpendicular bisector.
186605
+ const semiChordLen2 = 0.25 * start.distanceSquared(end);
186606
+ const radius2 = radius * radius;
186607
+ if (radius2 < semiChordLen2)
186608
+ return undefined;
186609
+ const height = Math.sqrt(radius2 - semiChordLen2); // Pythagoras gives us distance from chord to center
186610
+ const normal = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createZero(this._workVectorU);
186611
+ const vecToCenter = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createZero(this._workVectorV);
186612
+ // the helper gives us the circle normal
186613
+ if (helper instanceof _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d)
186614
+ start.crossProductToPoints(helper, end, normal);
186615
+ else
186616
+ normal.setFrom(helper);
186617
+ // the normal and chord direction give us the side of the chord on which the center resides
186618
+ if (!normal.normalizeInPlace() || !normal.crossProductStartEnd(start, end, vecToCenter).scaleToLength(height, vecToCenter))
186619
+ return undefined;
186620
+ const center = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.createZero();
186621
+ start.interpolate(0.5, end, center).addInPlace(vecToCenter);
186622
+ const vector0 = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createStartEnd(center, start, this._workVectorW);
186623
+ const endVector = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.createStartEnd(center, end, this._workVectorV); // reuse static
186624
+ const sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create(vector0.signedAngleTo(endVector, normal));
186625
+ const vector90 = normal.crossProduct(vector0, this._workVectorV); // has length radius (reuse static)
186626
+ return Arc3d.createRefs(center, _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createColumns(vector0, vector90, normal), sweep);
186627
+ }
186579
186628
  /**
186580
186629
  * Return a clone of this arc, projected to given z value.
186581
186630
  * * If `z` is omitted, the clone is at the z of the center.
@@ -187051,7 +187100,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187051
187100
  result.set(plane.altitude(this._center), plane.velocityXYZ(this._matrix.coffs[0], this._matrix.coffs[3], this._matrix.coffs[6]), plane.velocityXYZ(this._matrix.coffs[1], this._matrix.coffs[4], this._matrix.coffs[7]));
187052
187101
  return result;
187053
187102
  }
187054
- /** Create a new arc which is a unit circle centered at the origin. */
187103
+ /** Create a new arc which is a unit circle in the xy-plane centered at the origin. */
187055
187104
  static createUnitCircle() {
187056
187105
  return Arc3d.createRefs(_geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.create(0, 0, 0), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createIdentity(), _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360());
187057
187106
  }
@@ -187062,7 +187111,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187062
187111
  * @param sweep sweep limits. defaults to full circle.
187063
187112
  */
187064
187113
  static createXY(center, radius, sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360()) {
187065
- return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radius, radius, 1.0), sweep);
187114
+ return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radius, radius, 1.0), sweep.clone());
187066
187115
  }
187067
187116
  /**
187068
187117
  * Create a new arc which is parallel to the xy plane, with given center and x,y radii, and optional angle sweep
@@ -187072,7 +187121,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187072
187121
  * @param sweep angle sweep
187073
187122
  */
187074
187123
  static createXYEllipse(center, radiusA, radiusB, sweep = _geometry3d_AngleSweep__WEBPACK_IMPORTED_MODULE_2__.AngleSweep.create360()) {
187075
- return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep);
187124
+ return new Arc3d(center.clone(), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createScale(radiusA, radiusB, 1.0), sweep.clone());
187076
187125
  }
187077
187126
  /**
187078
187127
  * Replace the arc's 0 and 90 degree vectors.
@@ -187089,7 +187138,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187089
187138
  const vector90A = this._matrix.multiplyXY(-angleData.s, angleData.c);
187090
187139
  const axes = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createRigidFromColumns(vector0A, vector90A, _Geometry__WEBPACK_IMPORTED_MODULE_5__.AxisOrder.XYZ);
187091
187140
  return {
187092
- center: this._center,
187141
+ center: this._center.clone(),
187093
187142
  axes: (axes ? axes : _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_3__.Matrix3d.createIdentity()),
187094
187143
  r0: vector0A.magnitude(),
187095
187144
  r90: vector90A.magnitude(),
@@ -187099,10 +187148,10 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187099
187148
  /** Return the arc definition with center, two vectors, and angle sweep; */
187100
187149
  toVectors() {
187101
187150
  return {
187102
- center: this.center,
187151
+ center: this.center.clone(),
187103
187152
  vector0: this._matrix.columnX(),
187104
187153
  vector90: this._matrix.columnY(),
187105
- sweep: this.sweep,
187154
+ sweep: this.sweep.clone(),
187106
187155
  };
187107
187156
  }
187108
187157
  /** Return the arc definition with center, two vectors, and angle sweep, optionally transformed. */
@@ -187111,13 +187160,13 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187111
187160
  center: transform.multiplyPoint3d(this._center),
187112
187161
  vector0: transform.multiplyVector(this._matrix.columnX()),
187113
187162
  vector90: transform.multiplyVector(this._matrix.columnY()),
187114
- sweep: this.sweep,
187163
+ sweep: this.sweep.clone(),
187115
187164
  }
187116
187165
  : {
187117
187166
  center: this._center.clone(),
187118
187167
  vector0: this._matrix.columnX(),
187119
187168
  vector90: this._matrix.columnY(),
187120
- sweep: this.sweep,
187169
+ sweep: this.sweep.clone(),
187121
187170
  };
187122
187171
  }
187123
187172
  /** Return the arc definition with center, two vectors, and angle sweep, transformed to 4d points. */
@@ -187126,7 +187175,7 @@ class Arc3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive
187126
187175
  center: matrix.multiplyPoint3d(this._center, 1.0),
187127
187176
  vector0: matrix.multiplyPoint3d(this._matrix.columnX(), 0.0),
187128
187177
  vector90: matrix.multiplyPoint3d(this._matrix.columnY(), 0.0),
187129
- sweep: this.sweep,
187178
+ sweep: this.sweep.clone(),
187130
187179
  };
187131
187180
  }
187132
187181
  /**
@@ -187386,6 +187435,7 @@ Arc3d._workPointB = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Poi
187386
187435
  Arc3d._workPointC = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Point3d.create();
187387
187436
  Arc3d._workVectorU = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create();
187388
187437
  Arc3d._workVectorV = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create();
187438
+ Arc3d._workVectorW = _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_4__.Vector3d.create();
187389
187439
  // !! misspelled Gauss in the published static !! Declare it ok.
187390
187440
  // cspell::word Guass
187391
187441
  /** Gauss point quadrature count for evaluating curve length. (The number of intervals is adjusted to the arc sweep) */
@@ -219189,9 +219239,10 @@ class Vector3d extends XYZ {
219189
219239
  return result;
219190
219240
  }
219191
219241
  /**
219192
- * Return a (optionally new or reused) vector in the direction of `this` but with specified length.
219242
+ * Return a vector in the direction of `this` but with specified length.
219193
219243
  * @param length desired length of vector
219194
- * @param result optional preallocated result
219244
+ * @param result optional preallocated result to populate and return
219245
+ * @returns scaled instance vector, or undefined if the instance magnitude is too small
219195
219246
  */
219196
219247
  scaleToLength(length, result) {
219197
219248
  const mag = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.correctSmallFraction(this.magnitude());
@@ -301934,7 +301985,7 @@ var loadLanguages = instance.loadLanguages;
301934
301985
  /***/ ((module) => {
301935
301986
 
301936
301987
  "use strict";
301937
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.9.0-dev.23","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 ES2020 --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 --includes=../../generated-docs/extract --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 -f visualstudio \\"./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 -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","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:^4.9.0-dev.23","@itwin/core-bentley":"workspace:^4.9.0-dev.23","@itwin/core-common":"workspace:^4.9.0-dev.23","@itwin/core-geometry":"workspace:^4.9.0-dev.23","@itwin/core-orbitgt":"workspace:^4.9.0-dev.23","@itwin/core-quantity":"workspace:^4.9.0-dev.23"},"//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/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//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/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
301988
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.9.0-dev.24","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 ES2020 --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 --includes=../../generated-docs/extract --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 -f visualstudio \\"./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 -s webpackTests && certa -r chrome","cover":"npm -s test","test:debug":"certa -r chrome --debug","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:^4.9.0-dev.24","@itwin/core-bentley":"workspace:^4.9.0-dev.24","@itwin/core-common":"workspace:^4.9.0-dev.24","@itwin/core-geometry":"workspace:^4.9.0-dev.24","@itwin/core-orbitgt":"workspace:^4.9.0-dev.24","@itwin/core-quantity":"workspace:^4.9.0-dev.24"},"//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/certa":"workspace:*","@itwin/eslint-plugin":"^4.0.2","@types/chai":"4.3.1","@types/chai-as-promised":"^7","@types/mocha":"^10.0.6","@types/sinon":"^17.0.2","babel-loader":"~8.2.5","babel-plugin-istanbul":"~6.1.1","chai":"^4.3.10","chai-as-promised":"^7.1.1","cpx2":"^3.0.0","eslint":"^8.56.0","glob":"^10.3.12","mocha":"^10.2.0","nyc":"^15.1.0","rimraf":"^3.0.2","sinon":"^17.0.2","source-map-loader":"^4.0.0","typescript":"~5.3.3","typemoq":"^2.1.0","webpack":"^5.76.0"},"//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/core-telemetry":"workspace:*","@itwin/webgl-compatibility":"workspace:*","@loaders.gl/core":"^3.1.6","@loaders.gl/draco":"^3.1.6","fuse.js":"^3.3.0","meshoptimizer":"~0.20.0","wms-capabilities":"0.4.0"},"nyc":{"extends":"./node_modules/@itwin/build-tools/.nycrc"}}');
301938
301989
 
301939
301990
  /***/ })
301940
301991