@itwin/rpcinterface-full-stack-tests 4.8.0-dev.4 → 4.8.0-dev.6

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\\2\\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\\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":""}
@@ -39856,6 +39856,16 @@ class FeatureOverrides {
39856
39856
  getSubCategoryPriority(idLo, idHi) {
39857
39857
  return this._subCategoryPriorities.get(idLo, idHi) ?? 0;
39858
39858
  }
39859
+ /** Adds all fully transparent elements to the _neverDrawn set. This is used for BatchedModels planar masks.
39860
+ * @internal
39861
+ */
39862
+ addInvisibleElementOverridesToNeverDrawn() {
39863
+ this._elementOverrides.forEach((lo, hi) => {
39864
+ const app = this.getElementOverrides(lo, hi, 0);
39865
+ if (app?.isFullyTransparent)
39866
+ this._neverDrawn.add(lo, hi);
39867
+ });
39868
+ }
39859
39869
  /** Construct a new Overrides that overrides nothing.
39860
39870
  * @see [FeatureSymbology.Overrides]($frontend) to construct overrides based on a [ViewState]($frontend) or [Viewport]($frontend).
39861
39871
  */
@@ -44546,15 +44556,24 @@ var PlanarClipMaskMode;
44546
44556
  /** Mask based on priority. Different types of models have different default priorities as enumerated by [[PlanarClipMaskPriority]].
44547
44557
  * For example, background maps have the lowest priority, so they are masked by all other types, while design models have the highest priority and are therefore never masked.
44548
44558
  * The priority of a reality model can be overridden by [[PlanarClipMaskSettings.priority]]. This is useful to allow one reality model to mask another overlapping one.
44559
+ * Everything visible in the view creates the mask, so turning off models, categories, or elements (via fully transparent overrides) will make things not be in the mask.
44549
44560
  */
44550
44561
  PlanarClipMaskMode[PlanarClipMaskMode["Priority"] = 1] = "Priority";
44551
- /** Indicates that masks should be produced from the geometry in a set of [GeometricModel]($backend)s. */
44562
+ /** Indicates that masks should be produced from the geometry in a set of [GeometricModel]($backend)s, regardless of what model is on or off in the view.
44563
+ * However, things that are off from category settings or element feature overrides in the view will not be in the mask for these models.
44564
+ */
44552
44565
  PlanarClipMaskMode[PlanarClipMaskMode["Models"] = 2] = "Models";
44553
- /** Indicates that masks should be produced from geometry belonging to a set of subcategories. */
44566
+ /** Indicates that masks should be produced from geometry belonging to a set of subcategories.
44567
+ * View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
44568
+ */
44554
44569
  PlanarClipMaskMode[PlanarClipMaskMode["IncludeSubCategories"] = 3] = "IncludeSubCategories";
44555
- /** Indicates that masks should be produced from the geometry of a set of [GeometricElement]($backend)s. */
44570
+ /** Indicates that masks should be produced from the geometry of a set of [GeometricElement]($backend)s.
44571
+ * View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
44572
+ */
44556
44573
  PlanarClipMaskMode[PlanarClipMaskMode["IncludeElements"] = 4] = "IncludeElements";
44557
- /** Indicates that masks should be produced from the geometry of all [GeometricElement]($backend)s in a view, **except** for a specified set of excluded elements. */
44574
+ /** Indicates that masks should be produced from the geometry of all [GeometricElement]($backend)s in a view, **except** for a specified set of excluded elements.
44575
+ * View settings do not affect what is in the mask, unless [[PlanarClipMaskSettings.subCategoryOrElementIds]] is undefined, in which case it behaves like Models mode.
44576
+ */
44558
44577
  PlanarClipMaskMode[PlanarClipMaskMode["ExcludeElements"] = 5] = "ExcludeElements";
44559
44578
  })(PlanarClipMaskMode || (PlanarClipMaskMode = {}));
44560
44579
  /** The default priority values for a [[PlanarClipMaskSettings]], based on model type. Models with a lower priority are masked by models with a higher priority.
@@ -50702,7 +50721,8 @@ class TextAnnotation {
50702
50721
  /** Compute the transform that positions and orients this annotation relative to its anchor point, based on the [[textBlock]]'s computed bounding box.
50703
50722
  * The anchor point is computed as specified by this annotation's [[anchor]] setting. For example, if the text block is anchored
50704
50723
  * at the bottom left, then the transform will be relative to the bottom-left corner of `textBlockExtents`.
50705
- * The text block will be rotated around the fixed anchor point according to [[orientation]], then the anchor point will be translated by [[offset]].
50724
+ * The text block will be rotated around the fixed anchor point according to [[orientation]], then translated by [[offset]].
50725
+ * The anchor point will coincide with (0, 0, 0).
50706
50726
  * @param boundingBox A box fully containing the [[textBlock]].
50707
50727
  * @see [[computeAnchorPoint]] to compute the transform's anchor point.
50708
50728
  */
@@ -50710,7 +50730,7 @@ class TextAnnotation {
50710
50730
  const anchorPt = this.computeAnchorPoint(boundingBox);
50711
50731
  const matrix = this.orientation.toMatrix3d();
50712
50732
  const rotation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createFixedPointAndMatrix(anchorPt, matrix);
50713
- const translation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createTranslation(this.offset);
50733
+ const translation = _itwin_core_geometry__WEBPACK_IMPORTED_MODULE_0__.Transform.createTranslation(this.offset.minus(anchorPt));
50714
50734
  return translation.multiplyTransformTransform(rotation, rotation);
50715
50735
  }
50716
50736
  /** Compute the anchor point of this annotation as specified by [[anchor]].
@@ -91177,10 +91197,8 @@ __webpack_require__.r(__webpack_exports__);
91177
91197
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
91178
91198
  /* harmony export */ "PlanarClipMaskState": () => (/* binding */ PlanarClipMaskState)
91179
91199
  /* harmony export */ });
91180
- /* harmony import */ var _itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-bentley */ "../../core/bentley/lib/esm/core-bentley.js");
91181
- /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
91182
- /* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
91183
- /* harmony import */ var _tile_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./tile/internal */ "../../core/frontend/lib/esm/tile/internal.js");
91200
+ /* harmony import */ var _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @itwin/core-common */ "../../core/common/lib/esm/core-common.js");
91201
+ /* harmony import */ var _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render/FeatureSymbology */ "../../core/frontend/lib/esm/render/FeatureSymbology.js");
91184
91202
  /*---------------------------------------------------------------------------------------------
91185
91203
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
91186
91204
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -91190,8 +91208,6 @@ __webpack_require__.r(__webpack_exports__);
91190
91208
  */
91191
91209
 
91192
91210
 
91193
-
91194
-
91195
91211
  /** The State of Planar Clip Mask applied to a reality model or background map.
91196
91212
  * Handles loading models and their associated tiles for models that are used by masks but may not be otherwise loaded or displayed.
91197
91213
  * @beta
@@ -91205,16 +91221,18 @@ class PlanarClipMaskState {
91205
91221
  return new PlanarClipMaskState(settings);
91206
91222
  }
91207
91223
  static fromJSON(props) {
91208
- return this.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskSettings.fromJSON(props));
91224
+ return this.create(_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskSettings.fromJSON(props));
91209
91225
  }
91210
91226
  discloseTileTrees(trees) {
91211
91227
  if (this._tileTreeRefs)
91212
91228
  this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));
91213
91229
  }
91230
+ // Returns the TileTreeReferences for the models that need to be drawn to create the planar clip mask.
91214
91231
  getTileTrees(view, classifiedModelId) {
91215
- if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.Priority) {
91232
+ if (this.settings.mode === _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority) {
91233
+ // For priority mode we simply want refs for all viewed models if the priority is higher than the mask priority.
91216
91234
  const viewTrees = new Array();
91217
- const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
91235
+ const thisPriority = this.settings.priority === undefined ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskPriority.RealityModel : this.settings.priority;
91218
91236
  view.forEachTileTreeRef((ref) => {
91219
91237
  const tree = ref.treeOwner.load();
91220
91238
  if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)
@@ -91222,38 +91240,55 @@ class PlanarClipMaskState {
91222
91240
  });
91223
91241
  return viewTrees;
91224
91242
  }
91243
+ // For all other modes we need to let the tree refs in the view state decide which refs need to be drawn
91244
+ // since batched tiles cannot turn on/off individual models just by their tile tree refs.
91225
91245
  if (!this._tileTreeRefs) {
91226
91246
  this._tileTreeRefs = new Array();
91227
- if (this.settings.modelIds) {
91228
- for (const modelId of this.settings.modelIds) {
91229
- const model = view.iModel.models.getLoaded(modelId);
91230
- (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
91231
- if (model?.asGeometricModel)
91232
- this._tileTreeRefs.push((0,_tile_internal__WEBPACK_IMPORTED_MODULE_3__.createMaskTreeReference)(view, model.asGeometricModel));
91233
- }
91234
- }
91247
+ if (this.settings.modelIds)
91248
+ view.collectMaskRefs(this.settings.modelIds, this._tileTreeRefs);
91235
91249
  }
91236
91250
  if (!this._allLoaded)
91237
91251
  this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);
91238
91252
  return this._allLoaded ? this._tileTreeRefs : undefined;
91239
91253
  }
91240
- getPlanarClipMaskSymbologyOverrides() {
91241
- if (!this.settings.subCategoryOrElementIds)
91254
+ // Returns any potential FeatureSymbology overrides for drawing the planar clip mask.
91255
+ getPlanarClipMaskSymbologyOverrides(view, context) {
91256
+ // 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).
91257
+ const overrideModels = view.getModelsNotInMask(this.settings.modelIds, _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode);
91258
+ const noSubCategoryOrElementIds = !this.settings.subCategoryOrElementIds;
91259
+ if (noSubCategoryOrElementIds && !overrideModels)
91242
91260
  return undefined;
91261
+ const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__.FeatureSymbology.Overrides();
91262
+ if (overrideModels) {
91263
+ // overrideModels is used for batched models. For those, we need to create model overrides to turn off models that are
91264
+ // not wanted in the mask (using transparency) no matter what mask mode is being used.
91265
+ const appOff = _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.FeatureAppearance.fromTransparency(1.0);
91266
+ // For Priority or Models mode, we need to start with the current overrides and modify them
91267
+ if (_itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Priority === this.settings.mode || _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.Models === this.settings.mode || noSubCategoryOrElementIds) {
91268
+ const curOverrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_1__.FeatureSymbology.Overrides(context.viewport);
91269
+ curOverrides.addInvisibleElementOverridesToNeverDrawn(); // need this for fully trans element overrides to not participate in mask
91270
+ overrideModels.forEach((modelId) => {
91271
+ curOverrides.override({ modelId, appearance: appOff, onConflict: "replace" });
91272
+ });
91273
+ return curOverrides;
91274
+ }
91275
+ // Otherwise, we just start with a default overrides and modify it.
91276
+ overrideModels.forEach((modelId) => {
91277
+ overrides.override({ modelId, appearance: appOff, onConflict: "replace" });
91278
+ });
91279
+ }
91280
+ // Add overrides to turn things on or off based on the subcategories or elements in the mask settings.
91243
91281
  switch (this.settings.mode) {
91244
- case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.IncludeElements: {
91245
- const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
91282
+ case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.IncludeElements: {
91246
91283
  overrides.setAlwaysDrawnSet(this.settings.subCategoryOrElementIds, true);
91247
91284
  return overrides;
91248
91285
  }
91249
- case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.ExcludeElements: {
91250
- const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
91286
+ case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.ExcludeElements: {
91251
91287
  overrides.ignoreSubCategory = true;
91252
91288
  overrides.setNeverDrawnSet(this.settings.subCategoryOrElementIds);
91253
91289
  return overrides;
91254
91290
  }
91255
- case _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.PlanarClipMaskMode.IncludeSubCategories: {
91256
- const overrides = new _render_FeatureSymbology__WEBPACK_IMPORTED_MODULE_2__.FeatureSymbology.Overrides();
91291
+ case _itwin_core_common__WEBPACK_IMPORTED_MODULE_0__.PlanarClipMaskMode.IncludeSubCategories: {
91257
91292
  for (const subCategoryId of this.settings.subCategoryOrElementIds)
91258
91293
  overrides.setVisibleSubCategory(subCategoryId);
91259
91294
  return overrides;
@@ -93503,6 +93538,22 @@ class SpatialViewState extends _ViewState__WEBPACK_IMPORTED_MODULE_6__.ViewState
93503
93538
  setTileTreeReferencesDeactivated(modelIds, deactivated, which) {
93504
93539
  this._treeRefs.setDeactivated(modelIds, deactivated, which);
93505
93540
  }
93541
+ /** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
93542
+ * @param modelIds modelIds for which to get the TileTreeReferences
93543
+ * @param maskTreeRefs where to store the TileTreeReferences
93544
+ * @internal
93545
+ */
93546
+ collectMaskRefs(modelIds, maskTreeRefs) {
93547
+ this._treeRefs.collectMaskRefs(modelIds, maskTreeRefs);
93548
+ }
93549
+ /** For getting a list of modelIds which do not participate in masking for planar classification.
93550
+ * @param maskModels models which DO participate in planar clip masking
93551
+ * @param useVisible when true, use visible models to set flag
93552
+ * @internal
93553
+ */
93554
+ getModelsNotInMask(maskModels, useVisible) {
93555
+ return this._treeRefs.getModelsNotInMask(maskModels, useVisible);
93556
+ }
93506
93557
  registerModelSelectorListeners() {
93507
93558
  const models = this.modelSelector.observableModels;
93508
93559
  const func = () => {
@@ -123569,7 +123620,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
123569
123620
  if (undefined === context.viewingSpace)
123570
123621
  return;
123571
123622
  const viewState = context.viewingSpace.view;
123572
- if (undefined === viewState)
123623
+ if (!viewState.isSpatialView())
123573
123624
  return;
123574
123625
  const requiredHeight = context.target.viewRect.height;
123575
123626
  const requiredWidth = context.target.viewRect.width;
@@ -123589,7 +123640,7 @@ class PlanarClassifier extends _RenderPlanarClassifier__WEBPACK_IMPORTED_MODULE_
123589
123640
  this._projectionMatrix = projection.projectionMatrix;
123590
123641
  this._frustum = projection.textureFrustum;
123591
123642
  this._debugFrustum = projection.debugFrustum;
123592
- this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides();
123643
+ this._planarClipMaskOverrides = this._planarClipMask?.getPlanarClipMaskSymbologyOverrides(viewState, context);
123593
123644
  const drawTree = (treeRef, graphics) => {
123594
123645
  this._graphics = graphics;
123595
123646
  const frustumPlanes = this._frustum ? _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FrustumPlanes.fromFrustum(this._frustum) : _itwin_core_common__WEBPACK_IMPORTED_MODULE_1__.FrustumPlanes.createEmpty();
@@ -146869,8 +146920,11 @@ class GraphicsCollectorDrawArgs extends _internal__WEBPACK_IMPORTED_MODULE_0__.T
146869
146920
  this._collector.addGraphic(this.context.createBranch(graphics, this.location));
146870
146921
  }
146871
146922
  drawGraphics() {
146872
- if (!this.graphics.isEmpty)
146873
- this._collector.addGraphic(this.context.createBranch(this.graphics, this.location));
146923
+ if (!this.graphics.isEmpty) {
146924
+ const graphics = this.produceGraphics();
146925
+ if (undefined !== graphics)
146926
+ this._collector.addGraphic(graphics);
146927
+ }
146874
146928
  }
146875
146929
  static create(context, collector, ref, planes, worldToViewMap) {
146876
146930
  const args = ref.createDrawArgs(context);
@@ -150256,6 +150310,26 @@ class SpatialRefs {
150256
150310
  for (const modelId of modelIds)
150257
150311
  this._refs.get(modelId)?.setDeactivated(deactivated, refs);
150258
150312
  }
150313
+ /** For getting the [TileTreeReference]s that are in the modelIds, for planar classification.
150314
+ * @param modelIds modelIds for which to get the TileTreeReferences
150315
+ * @param maskTreeRefs where to store the TileTreeReferences
150316
+ * @internal
150317
+ */
150318
+ collectMaskRefs(modelIds, maskTreeRefs) {
150319
+ for (const modelId of modelIds) {
150320
+ if (!this._excludedModels?.has(modelId)) {
150321
+ const model = this._view.iModel.models.getLoaded(modelId);
150322
+ (0,_itwin_core_bentley__WEBPACK_IMPORTED_MODULE_0__.assert)(model !== undefined); // Models should be loaded by RealityModelTileTree
150323
+ if (model?.asGeometricModel)
150324
+ maskTreeRefs.push(createMaskTreeReference(this._view, model.asGeometricModel));
150325
+ }
150326
+ }
150327
+ }
150328
+ /** For getting a list of modelIds which do not participate in masking, for planar classification.
150329
+ * For non-batched tile trees this is not needed, so just return undefined.
150330
+ * @internal
150331
+ */
150332
+ getModelsNotInMask(_maskModels, _useVisible) { return undefined; }
150259
150333
  load() {
150260
150334
  if (!this._allLoaded) {
150261
150335
  this._allLoaded = true;
@@ -196366,11 +196440,11 @@ __webpack_require__.r(__webpack_exports__);
196366
196440
  /* harmony export */ "AnnotatedLineString3d": () => (/* binding */ AnnotatedLineString3d),
196367
196441
  /* harmony export */ "LineString3d": () => (/* binding */ LineString3d)
196368
196442
  /* harmony export */ });
196369
- /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
196443
+ /* harmony import */ var _Geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Geometry */ "../../core/geometry/lib/esm/Geometry.js");
196370
196444
  /* harmony import */ var _geometry3d_Angle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../geometry3d/Angle */ "../../core/geometry/lib/esm/geometry3d/Angle.js");
196371
196445
  /* harmony import */ var _geometry3d_GrowableFloat64Array__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../geometry3d/GrowableFloat64Array */ "../../core/geometry/lib/esm/geometry3d/GrowableFloat64Array.js");
196372
196446
  /* harmony import */ var _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../geometry3d/GrowableXYArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYArray.js");
196373
- /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
196447
+ /* harmony import */ var _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geometry3d/GrowableXYZArray */ "../../core/geometry/lib/esm/geometry3d/GrowableXYZArray.js");
196374
196448
  /* harmony import */ var _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../geometry3d/Matrix3d */ "../../core/geometry/lib/esm/geometry3d/Matrix3d.js");
196375
196449
  /* harmony import */ var _geometry3d_Plane3dByOriginAndVectors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../geometry3d/Plane3dByOriginAndVectors */ "../../core/geometry/lib/esm/geometry3d/Plane3dByOriginAndVectors.js");
196376
196450
  /* harmony import */ var _geometry3d_Point3dVector3d__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../geometry3d/Point3dVector3d */ "../../core/geometry/lib/esm/geometry3d/Point3dVector3d.js");
@@ -196380,7 +196454,7 @@ __webpack_require__.r(__webpack_exports__);
196380
196454
  /* harmony import */ var _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry3d/Transform */ "../../core/geometry/lib/esm/geometry3d/Transform.js");
196381
196455
  /* harmony import */ var _CurveExtendMode__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./CurveExtendMode */ "../../core/geometry/lib/esm/curve/CurveExtendMode.js");
196382
196456
  /* harmony import */ var _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CurveLocationDetail */ "../../core/geometry/lib/esm/curve/CurveLocationDetail.js");
196383
- /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
196457
+ /* harmony import */ var _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CurvePrimitive */ "../../core/geometry/lib/esm/curve/CurvePrimitive.js");
196384
196458
  /* harmony import */ var _internalContexts_PlaneAltitudeRangeContext__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./internalContexts/PlaneAltitudeRangeContext */ "../../core/geometry/lib/esm/curve/internalContexts/PlaneAltitudeRangeContext.js");
196385
196459
  /* harmony import */ var _LineSegment3d__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./LineSegment3d */ "../../core/geometry/lib/esm/curve/LineSegment3d.js");
196386
196460
  /* harmony import */ var _OffsetOptions__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./OffsetOptions */ "../../core/geometry/lib/esm/curve/OffsetOptions.js");
@@ -196405,10 +196479,10 @@ __webpack_require__.r(__webpack_exports__);
196405
196479
 
196406
196480
 
196407
196481
  /**
196408
- * Starting with baseIndex and moving index by stepDirection:
196409
- * If the vector from baseIndex to baseIndex +1 crossed with vectorA can be normalized, accumulate it (scaled) to normal.
196410
- * Return when successful.
196411
- * (Do nothing if everything is parallel through limits of the array)
196482
+ * Starting with the segment at (baseIndex, baseIndex + 1):
196483
+ * * If the segment vector and vectorA determine a normal, accumulate it (scaled) to normal, and return.
196484
+ * * Otherwise move to next/previous segment if stepDirection is positive/negative and repeat.
196485
+ * * Do nothing if everything is parallel through the end of the array.
196412
196486
  */
196413
196487
  function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirection, weight, normal, workVector) {
196414
196488
  const n = points.length;
@@ -196418,6 +196492,8 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
196418
196492
  vectorA.crossProduct(workVector, workVector);
196419
196493
  if (workVector.normalizeInPlace()) {
196420
196494
  normal.addScaledInPlace(workVector, weight);
196495
+ if (normal.isAlmostEqualXYZ(0, 0, 0, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction))
196496
+ workVector.scale(-weight, normal); // Concavity changed! Revert to previous
196421
196497
  return true;
196422
196498
  }
196423
196499
  }
@@ -196430,6 +196506,8 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
196430
196506
  workVector.crossProduct(vectorA, workVector);
196431
196507
  if (workVector.normalizeInPlace()) {
196432
196508
  normal.addScaledInPlace(workVector, weight);
196509
+ if (normal.isAlmostEqualXYZ(0, 0, 0, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallFraction))
196510
+ workVector.scale(-weight, normal); // Concavity changed! Revert to previous
196433
196511
  return true;
196434
196512
  }
196435
196513
  }
@@ -196448,7 +196526,7 @@ function accumulateGoodUnitPerpendicular(points, vectorA, baseIndex, stepDirecti
196448
196526
  * * Use `moveSignedDistanceFromFraction` to do true-length evaluations.
196449
196527
  * @public
196450
196528
  */
196451
- class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive {
196529
+ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive {
196452
196530
  /** test if `other` is an instance of `LineString3d` */
196453
196531
  isSameGeometryClass(other) {
196454
196532
  return other instanceof LineString3d;
@@ -196505,7 +196583,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196505
196583
  if (points)
196506
196584
  this._points = points;
196507
196585
  else
196508
- this._points = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
196586
+ this._points = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
196509
196587
  }
196510
196588
  /** Clone this linestring and apply the transform to the clone points. */
196511
196589
  cloneTransformed(transform) {
@@ -196536,7 +196614,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196536
196614
  if (enforceClosure && points.length > 1) {
196537
196615
  const distance = xyz.distanceIndexIndex(0, xyz.length - 1);
196538
196616
  if (distance !== undefined && distance !== 0.0) {
196539
- if (_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(0, distance)) {
196617
+ if (_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(0, distance)) {
196540
196618
  xyz.pop(); // nonzero but small distance -- to be replaced by point 0 exactly.
196541
196619
  const xyzA = xyz.front();
196542
196620
  xyz.push(xyzA);
@@ -196611,7 +196689,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196611
196689
  ensureEmptySurfaceNormals() {
196612
196690
  const n = this.numPoints();
196613
196691
  if (!this._surfaceNormals) {
196614
- this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(n);
196692
+ this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(n);
196615
196693
  return this._surfaceNormals;
196616
196694
  }
196617
196695
  this._surfaceNormals.clear();
@@ -196622,7 +196700,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196622
196700
  ensureEmptyDerivatives() {
196623
196701
  const n = this.numPoints();
196624
196702
  if (!this._derivatives) {
196625
- this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(n);
196703
+ this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(n);
196626
196704
  return this._derivatives;
196627
196705
  }
196628
196706
  this._derivatives.clear();
@@ -196686,7 +196764,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196686
196764
  */
196687
196765
  addDerivative(vector) {
196688
196766
  if (!this._derivatives)
196689
- this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
196767
+ this._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
196690
196768
  this._derivatives.push(vector);
196691
196769
  }
196692
196770
  /**
@@ -196695,13 +196773,13 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196695
196773
  */
196696
196774
  addSurfaceNormal(vector) {
196697
196775
  if (!this._surfaceNormals)
196698
- this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray();
196776
+ this._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray();
196699
196777
  this._surfaceNormals.push(vector);
196700
196778
  }
196701
196779
  /** If the linestring is not already closed, add a closure point. */
196702
196780
  addClosurePoint() {
196703
196781
  const distance = this._points.distanceIndexIndex(0, this._points.length - 1);
196704
- if (distance !== undefined && !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(distance, 0))
196782
+ if (distance !== undefined && !_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(distance, 0))
196705
196783
  this._points.pushWrap(1);
196706
196784
  }
196707
196785
  /** Eliminate (but do not return!!) the final point of the linestring */
@@ -196990,7 +197068,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
196990
197068
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createIdentity(result);
196991
197069
  }
196992
197070
  if (n === 2)
196993
- return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createRefs(this._points.interpolate(0, fraction, 1), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidHeadsUp(this._points.vectorIndexIndex(0, 1), _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.XYZ));
197071
+ return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createRefs(this._points.interpolate(0, fraction, 1), _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidHeadsUp(this._points.vectorIndexIndex(0, 1), _Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisOrder.XYZ));
196994
197072
  /** 3 or more points. */
196995
197073
  const numSegment = n - 1;
196996
197074
  const df = 1.0 / numSegment;
@@ -197023,7 +197101,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197023
197101
  accumulateGoodUnitPerpendicular(this._points, vectorA, baseIndex - 1, -1, (1.0 - localFraction), normal, workVector);
197024
197102
  accumulateGoodUnitPerpendicular(this._points, vectorA, baseIndex + 1, 1, (localFraction), normal, workVector);
197025
197103
  }
197026
- const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidFromColumns(normal, vectorA, _Geometry__WEBPACK_IMPORTED_MODULE_2__.AxisOrder.ZXY);
197104
+ const matrix = _geometry3d_Matrix3d__WEBPACK_IMPORTED_MODULE_10__.Matrix3d.createRigidFromColumns(normal, vectorA, _Geometry__WEBPACK_IMPORTED_MODULE_0__.AxisOrder.ZXY);
197027
197105
  if (matrix)
197028
197106
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createOriginAndMatrix(origin, matrix, result);
197029
197107
  return _geometry3d_Transform__WEBPACK_IMPORTED_MODULE_9__.Transform.createTranslation(origin, result);
@@ -197158,7 +197236,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197158
197236
  moveSignedDistanceFromFraction(startFraction, signedDistance, allowExtension, result) {
197159
197237
  const numSegments = this._points.length - 1;
197160
197238
  const scaledFraction = startFraction * numSegments;
197161
- let leftPointIndex = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.restrictToInterval(Math.floor(scaledFraction), 0, numSegments - 1); // lower point index on active segment.
197239
+ let leftPointIndex = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.restrictToInterval(Math.floor(scaledFraction), 0, numSegments - 1); // lower point index on active segment.
197162
197240
  const localFraction = scaledFraction - leftPointIndex;
197163
197241
  const point0 = this._points.interpolate(leftPointIndex, localFraction, leftPointIndex + 1, LineString3d._workPointA);
197164
197242
  const point1 = LineString3d._workPointB;
@@ -197244,7 +197322,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197244
197322
  }
197245
197323
  /** Test if all points of the linestring are in a plane. */
197246
197324
  isInPlane(plane) {
197247
- return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance);
197325
+ return this._points.isCloseToPlane(plane, _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance);
197248
197326
  }
197249
197327
  /** Push a hit, fixing up the prior entry if needed. */
197250
197328
  static pushVertexHit(result, counter, cp, fraction, point) {
@@ -197283,7 +197361,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197283
197361
  let segmentFraction = 0;
197284
197362
  for (let i = 0; i < this._points.length; i++, pointA.setFrom(pointB), hA = hB) {
197285
197363
  this._points.getPoint3dAtUncheckedPointIndex(i, pointB);
197286
- hB = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.correctSmallMetricDistance(plane.altitude(pointB));
197364
+ hB = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.correctSmallMetricDistance(plane.altitude(pointB));
197287
197365
  if (hB === 0.0)
197288
197366
  LineString3d.pushVertexHit(result, numConsecutiveZero++, this, i / divisor, pointB);
197289
197367
  else {
@@ -197307,7 +197385,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197307
197385
  isAlmostEqual(other) {
197308
197386
  if (!(other instanceof LineString3d))
197309
197387
  return false;
197310
- if (!_geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray.isAlmostEqual(this._points, other._points))
197388
+ if (!_geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray.isAlmostEqual(this._points, other._points))
197311
197389
  return false;
197312
197390
  return true;
197313
197391
  }
@@ -197321,7 +197399,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197321
197399
  let add = true;
197322
197400
  const addFraction = fraction !== undefined && this._fractions !== undefined;
197323
197401
  if (n > 0) {
197324
- if (addFraction && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(fraction, this._fractions.back()))
197402
+ if (addFraction && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(fraction, this._fractions.back()))
197325
197403
  add = false;
197326
197404
  if (point.isAlmostEqual(this._points.getPoint3dAtUncheckedPointIndex(n - 1)))
197327
197405
  add = false;
@@ -197333,7 +197411,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197333
197411
  }
197334
197412
  }
197335
197413
  /** Compress out duplicate points (according to point.isAlmostEqual) */
197336
- removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.smallMetricDistance) {
197414
+ removeDuplicatePoints(tolerance = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.smallMetricDistance) {
197337
197415
  const n = this._points.length;
197338
197416
  if (n < 2)
197339
197417
  return;
@@ -197407,8 +197485,8 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197407
197485
  ls._uvParams = new _geometry3d_GrowableXYArray__WEBPACK_IMPORTED_MODULE_4__.GrowableXYArray(capacity);
197408
197486
  }
197409
197487
  if (options.needNormals) {
197410
- ls._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(capacity);
197411
- ls._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_1__.GrowableXYZArray(capacity);
197488
+ ls._derivatives = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(capacity);
197489
+ ls._surfaceNormals = new _geometry3d_GrowableXYZArray__WEBPACK_IMPORTED_MODULE_2__.GrowableXYZArray(capacity);
197412
197490
  }
197413
197491
  }
197414
197492
  return ls;
@@ -197537,7 +197615,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197537
197615
  const numStrokeOnSegment = applyOptions ? options.applyMaxEdgeLength(1, segmentLength) : 1;
197538
197616
  myData.addToCountAndLength(numStrokeOnSegment, segmentLength);
197539
197617
  }
197540
- _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive.installStrokeCountMap(this, myData, parentStrokeMap);
197618
+ _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive.installStrokeCountMap(this, myData, parentStrokeMap);
197541
197619
  }
197542
197620
  /** Second step of double dispatch: call `handler.handleLineString3d(this)` */
197543
197621
  dispatchToGeometryHandler(handler) {
@@ -197560,7 +197638,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197560
197638
  let globalFractionB = 1.0;
197561
197639
  const capture = (localFraction0, localFraction1) => {
197562
197640
  if (announce)
197563
- announce(_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(globalFractionA, localFraction0, globalFractionB), _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(globalFractionA, localFraction1, globalFractionB), this);
197641
+ announce(_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(globalFractionA, localFraction0, globalFractionB), _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(globalFractionA, localFraction1, globalFractionB), this);
197564
197642
  };
197565
197643
  const pointA = LineString3d._workPointA;
197566
197644
  const pointB = LineString3d._workPointB;
@@ -197623,7 +197701,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197623
197701
  index0 = 1; // first original vertex is not in clone
197624
197702
  }
197625
197703
  else if (0 <= fractionA && fractionA <= 1) {
197626
- index0 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallRelative(1 - localA.fraction) ? localA.index + 2 : localA.index + 1;
197704
+ index0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallRelative(1 - localA.fraction) ? localA.index + 2 : localA.index + 1;
197627
197705
  }
197628
197706
  else { // 1 < fractionA
197629
197707
  index0 = n; // no original vertices in clone
@@ -197632,7 +197710,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197632
197710
  index1 = -1; // no original vertices in clone
197633
197711
  }
197634
197712
  else if (0 <= fractionB && fractionB <= 1) {
197635
- index1 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallRelative(localB.fraction) ? localB.index - 1 : localB.index;
197713
+ index1 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallRelative(localB.fraction) ? localB.index - 1 : localB.index;
197636
197714
  }
197637
197715
  else { // 1 < fractionB
197638
197716
  index1 = n - 2; // last original vertex is not in clone
@@ -197656,7 +197734,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197656
197734
  }
197657
197735
  /** Returns true if first and last points are within metric tolerance. */
197658
197736
  get isPhysicallyClosed() {
197659
- return this._points.length > 0 && _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
197737
+ return this._points.length > 0 && _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSmallMetricDistance(this._points.distanceIndexIndex(0, this._points.length - 1));
197660
197738
  }
197661
197739
  /**
197662
197740
  * Evaluate strokes at fractions indicated in a StrokeCountMap.
@@ -197742,7 +197820,7 @@ class LineString3d extends _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePri
197742
197820
  for (const seg of this.collectCurvePrimitives(undefined, true, true)) {
197743
197821
  const offset = seg.constructOffsetXY(options);
197744
197822
  if (offset !== undefined) {
197745
- if (offset instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_0__.CurvePrimitive)
197823
+ if (offset instanceof _CurvePrimitive__WEBPACK_IMPORTED_MODULE_1__.CurvePrimitive)
197746
197824
  offsets.push(offset);
197747
197825
  else if (Array.isArray(offset))
197748
197826
  offset.forEach((cp) => offsets.push(cp));
@@ -197807,7 +197885,7 @@ class MoveByDistanceContext {
197807
197885
  }
197808
197886
  // Return CurveSearchStatus indicating whether the accumulated distance has reached the target.
197809
197887
  distanceStatus() {
197810
- return _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(this.distance0, this.targetDistance) ?
197888
+ return _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(this.distance0, this.targetDistance) ?
197811
197889
  _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveSearchStatus.success : _CurveLocationDetail__WEBPACK_IMPORTED_MODULE_12__.CurveSearchStatus.stoppedAtBoundary;
197812
197890
  }
197813
197891
  /**
@@ -197826,16 +197904,16 @@ class MoveByDistanceContext {
197826
197904
  announcePoint(point1, fraction1) {
197827
197905
  const a = this.point0.distance(point1);
197828
197906
  const distance1 = this.distance0 + a;
197829
- if (distance1 < this.targetDistance && !_Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.isSameCoordinate(distance1, this.targetDistance)) {
197907
+ if (distance1 < this.targetDistance && !_Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.isSameCoordinate(distance1, this.targetDistance)) {
197830
197908
  this.point0.setFromPoint3d(point1);
197831
197909
  this.distance0 = distance1;
197832
197910
  this.fraction0 = fraction1;
197833
197911
  return false;
197834
197912
  }
197835
197913
  const b = this.targetDistance - this.distance0;
197836
- const intervalFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.safeDivideFraction(b, a, 0.0);
197914
+ const intervalFraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.safeDivideFraction(b, a, 0.0);
197837
197915
  this.point0.interpolate(intervalFraction, point1, this.point0);
197838
- this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(this.fraction0, intervalFraction, fraction1);
197916
+ this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(this.fraction0, intervalFraction, fraction1);
197839
197917
  this.distance0 = this.targetDistance;
197840
197918
  return true;
197841
197919
  }
@@ -197855,14 +197933,14 @@ class MoveByDistanceContext {
197855
197933
  const d01 = points.distanceIndexIndex(index0, index1);
197856
197934
  if (!d01)
197857
197935
  return false;
197858
- const extensionFraction = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.conditionalDivideFraction(residual, d01);
197936
+ const extensionFraction = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.conditionalDivideFraction(residual, d01);
197859
197937
  if (extensionFraction === undefined)
197860
197938
  return false;
197861
197939
  // (Remark: indices are swapped and extensionFraction negated to prevent incidental precision
197862
197940
  // loss with the alternative call with (index0, 1 + extensionFraction, index1);
197863
197941
  points.interpolate(index1, -extensionFraction, index0, this.point0);
197864
197942
  this.distance0 = this.targetDistance;
197865
- this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_2__.Geometry.interpolate(fraction1, -extensionFraction, fraction0);
197943
+ this.fraction0 = _Geometry__WEBPACK_IMPORTED_MODULE_0__.Geometry.interpolate(fraction1, -extensionFraction, fraction0);
197866
197944
  return true;
197867
197945
  }
197868
197946
  }
@@ -290623,7 +290701,7 @@ class TestContext {
290623
290701
  this.initializeRpcInterfaces({ title: this.settings.Backend.name, version: this.settings.Backend.version });
290624
290702
  const iModelClient = new imodels_client_management_1.IModelsClient({ api: { baseUrl: `https://${process.env.IMJS_URL_PREFIX ?? ""}api.bentley.com/imodels` } });
290625
290703
  await core_frontend_1.NoRenderApp.startup({
290626
- applicationVersion: "4.8.0-dev.4",
290704
+ applicationVersion: "4.8.0-dev.6",
290627
290705
  applicationId: this.settings.gprid,
290628
290706
  authorizationClient: new frontend_1.TestFrontendAuthorizationClient(this.adminUserAccessToken),
290629
290707
  hubAccess: new imodels_access_frontend_1.FrontendIModelsAccess(iModelClient),
@@ -314616,7 +314694,7 @@ function __disposeResources(env) {
314616
314694
  /***/ ((module) => {
314617
314695
 
314618
314696
  "use strict";
314619
- module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.4","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.8.0-dev.4","@itwin/core-bentley":"workspace:^4.8.0-dev.4","@itwin/core-common":"workspace:^4.8.0-dev.4","@itwin/core-geometry":"workspace:^4.8.0-dev.4","@itwin/core-orbitgt":"workspace:^4.8.0-dev.4","@itwin/core-quantity":"workspace:^4.8.0-dev.4"},"//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.1","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.1.0","@itwin/object-storage-core":"^2.2.2","@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"}}');
314697
+ module.exports = JSON.parse('{"name":"@itwin/core-frontend","version":"4.8.0-dev.6","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.8.0-dev.6","@itwin/core-bentley":"workspace:^4.8.0-dev.6","@itwin/core-common":"workspace:^4.8.0-dev.6","@itwin/core-geometry":"workspace:^4.8.0-dev.6","@itwin/core-orbitgt":"workspace:^4.8.0-dev.6","@itwin/core-quantity":"workspace:^4.8.0-dev.6"},"//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.1","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.1.0","@itwin/object-storage-core":"^2.2.2","@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"}}');
314620
314698
 
314621
314699
  /***/ }),
314622
314700